comtypes 1.1.14__zip → 1.2.1__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. {comtypes-1.1.14 → comtypes-1.2.1}/CHANGES.txt +37 -0
  2. comtypes-1.2.1/PKG-INFO +79 -0
  3. comtypes-1.2.1/README.md +59 -0
  4. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/__init__.py +302 -555
  5. comtypes-1.2.1/comtypes/_memberspec.py +520 -0
  6. comtypes-1.2.1/comtypes/_npsupport.py +143 -0
  7. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/automation.py +99 -11
  8. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/client/__init__.py +80 -26
  9. comtypes-1.2.1/comtypes/client/_generate.py +274 -0
  10. comtypes-1.2.1/comtypes/hints.pyi +26 -0
  11. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/persist.py +14 -0
  12. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/safearray.py +22 -21
  13. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/__init__.py +0 -7
  14. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_client.py +35 -0
  15. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_dict.py +0 -4
  16. comtypes-1.2.1/comtypes/test/test_npsupport.py +343 -0
  17. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_safearray.py +2 -235
  18. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_variant.py +6 -59
  19. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/tools/codegenerator.py +454 -337
  20. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/tools/tlbparser.py +56 -75
  21. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/tools/typedesc.py +31 -3
  22. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/tools/typedesc_base.py +28 -1
  23. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/typeinfo.py +291 -121
  24. comtypes-1.2.1/comtypes.egg-info/PKG-INFO +79 -0
  25. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes.egg-info/SOURCES.txt +4 -1
  26. {comtypes-1.1.14 → comtypes-1.2.1}/setup.cfg +0 -1
  27. {comtypes-1.1.14 → comtypes-1.2.1}/setup.py +15 -8
  28. comtypes-1.1.14/PKG-INFO +0 -50
  29. comtypes-1.1.14/README.md +0 -31
  30. comtypes-1.1.14/comtypes/client/_generate.py +0 -257
  31. comtypes-1.1.14/comtypes/npsupport.py +0 -125
  32. comtypes-1.1.14/comtypes.egg-info/PKG-INFO +0 -50
  33. {comtypes-1.1.14 → comtypes-1.2.1}/LICENSE.txt +0 -0
  34. {comtypes-1.1.14 → comtypes-1.2.1}/MANIFEST.in +0 -0
  35. {comtypes-1.1.14 → comtypes-1.2.1}/clear_comtypes_cache.py +0 -0
  36. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/GUID.py +0 -0
  37. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/_comobject.py +0 -0
  38. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/_meta.py +0 -0
  39. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/_safearray.py +0 -0
  40. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/client/_code_cache.py +0 -0
  41. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/client/_constants.py +0 -0
  42. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/client/_events.py +0 -0
  43. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/client/dynamic.py +0 -0
  44. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/client/lazybind.py +0 -0
  45. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/connectionpoints.py +0 -0
  46. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/errorinfo.py +0 -0
  47. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/git.py +0 -0
  48. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/hresult.py +0 -0
  49. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/logutil.py +0 -0
  50. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/messageloop.py +0 -0
  51. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/patcher.py +0 -0
  52. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/server/__init__.py +0 -0
  53. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/server/automation.py +0 -0
  54. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/server/connectionpoints.py +0 -0
  55. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/server/inprocserver.py +0 -0
  56. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/server/localserver.py +0 -0
  57. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/server/register.py +0 -0
  58. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/server/w_getopt.py +0 -0
  59. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/shelllink.py +0 -0
  60. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/TestComServer.idl +0 -0
  61. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/TestComServer.py +0 -0
  62. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/TestComServer.tlb +0 -0
  63. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/TestDispServer.idl +0 -0
  64. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/TestDispServer.py +0 -0
  65. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/TestDispServer.tlb +0 -0
  66. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/find_memleak.py +0 -0
  67. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/mylib.idl +0 -0
  68. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/mytypelib.idl +0 -0
  69. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/runtests.py +0 -0
  70. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/setup.py +0 -0
  71. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_BSTR.py +0 -0
  72. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_DISPPARAMS.py +0 -0
  73. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_GUID.py +0 -0
  74. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_QueryService.py +0 -0
  75. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_agilent.py +0 -0
  76. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_avmc.py +0 -0
  77. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_basic.py +0 -0
  78. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_casesensitivity.py +0 -0
  79. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_collections.py +0 -0
  80. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_comserver.py +0 -0
  81. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_createwrappers.py +0 -0
  82. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_dispinterface.py +0 -0
  83. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_dyndispatch.py +0 -0
  84. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_excel.py +0 -0
  85. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_findgendir.py +0 -0
  86. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_getactiveobj.py +0 -0
  87. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_ie.py +0 -0
  88. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_jscript.js +0 -0
  89. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_msscript.py +0 -0
  90. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_outparam.py +0 -0
  91. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_propputref.py +0 -0
  92. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_pump_events.py +0 -0
  93. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_sapi.py +0 -0
  94. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_server.py +0 -0
  95. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_showevents.py +0 -0
  96. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_subinterface.py +0 -0
  97. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_typeinfo.py +0 -0
  98. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_urlhistory.py +0 -0
  99. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_win32com_interop.py +0 -0
  100. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_wmi.py +0 -0
  101. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/test/test_word.py +0 -0
  102. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/tools/__init__.py +0 -0
  103. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/util.py +0 -0
  104. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes/viewobject.py +0 -0
  105. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes.egg-info/dependency_links.txt +0 -0
  106. {comtypes-1.1.14 → comtypes-1.2.1}/comtypes.egg-info/top_level.txt +0 -0
@@ -8,29 +8,24 @@ import sys
8
8
  import weakref
9
9
 
10
10
  from ctypes import *
11
- from ctypes.wintypes import ULONG
12
- from comtypes import STDMETHOD
13
- from comtypes import COMMETHOD
14
- from comtypes import _GUID, GUID
15
- # XXX should import more stuff from ctypes.wintypes...
16
- from comtypes.automation import BSTR
17
- from comtypes.automation import DISPID
18
- from comtypes.automation import DISPPARAMS
19
- from comtypes.automation import DWORD
20
- from comtypes.automation import EXCEPINFO
21
- from comtypes.automation import HRESULT
22
- from comtypes.automation import IID
23
- from comtypes.automation import IUnknown
24
- from comtypes.automation import LCID
25
- from comtypes.automation import LONG
26
- from comtypes.automation import SCODE
27
- from comtypes.automation import UINT
28
- from comtypes.automation import VARIANT
29
- from comtypes.automation import VARIANTARG
30
- from comtypes.automation import VARTYPE
31
- from comtypes.automation import WCHAR
32
- from comtypes.automation import WORD
33
- from comtypes.automation import tagVARIANT
11
+ from ctypes.wintypes import DWORD, LONG, UINT, ULONG, WCHAR, WORD
12
+ from comtypes import (
13
+ BSTR, COMMETHOD, _GUID, GUID, IID, IUnknown, STDMETHOD, TYPE_CHECKING,
14
+ )
15
+ from comtypes.automation import (
16
+ DISPID, DISPPARAMS, EXCEPINFO, LCID, SCODE, VARIANT, VARIANTARG, VARTYPE,
17
+ tagVARIANT,
18
+ )
19
+
20
+ if TYPE_CHECKING:
21
+ from ctypes import _CData, _Pointer
22
+ from typing import (
23
+ Any, Callable, List, Optional, overload, Sequence, Type, TypeVar,
24
+ Tuple, Union as _UnionT,
25
+ )
26
+ from comtypes import hints
27
+ _CT = TypeVar("_CT", bound=_CData)
28
+ _T_IUnknown = TypeVar("_T_IUnknown", bound=IUnknown)
34
29
 
35
30
  is_64_bit = sys.maxsize > 2**32
36
31
 
@@ -185,7 +180,9 @@ PARAMFLAG_FHASCUSTDATA = 64
185
180
 
186
181
  ################################################################
187
182
  # a helper
183
+
188
184
  def _deref_with_release(ptr, release):
185
+ # type: (_Pointer[_CT], Callable[..., Any]) -> _CT
189
186
  # Given a POINTER instance, return the pointed to value.
190
187
  # Call the 'release' function with 'ptr' to release resources
191
188
  # when the value is no longer needed.
@@ -198,32 +195,46 @@ def _deref_with_release(ptr, release):
198
195
  class ITypeLib(IUnknown):
199
196
  _iid_ = GUID("{00020402-0000-0000-C000-000000000046}")
200
197
 
201
- # Commented out methods use the default implementation that comtypes
198
+ # type-checking only methods use the default implementation that comtypes
202
199
  # automatically creates for COM methods.
203
-
204
- ## def GetTypeInfoCount(self):
205
- ## "Return the number of type informations"
206
-
207
- ## def GetTypeInfo(self, index):
208
- ## "Load type info by index"
209
-
210
- ## def GetTypeInfoType(self, index):
211
- ## "Return the TYPEKIND of type information"
212
-
213
- ## def GetTypeInfoOfGuid(self, guid):
214
- ## "Return type information for a guid"
200
+ if TYPE_CHECKING:
201
+ def GetTypeInfoCount(self):
202
+ # type: () -> int
203
+ """Return the number of type informations"""
204
+ raise
205
+ def GetTypeInfo(self, index):
206
+ # type: (int) -> ITypeInfo
207
+ """Load type info by index"""
208
+ raise
209
+ def GetTypeInfoType(self, index):
210
+ # type: (int) -> int
211
+ """Return the TYPEKIND of type information"""
212
+ raise
213
+ def GetTypeInfoOfGuid(self, guid):
214
+ # type: (GUID) -> ITypeInfo
215
+ """Return type information for a guid"""
216
+ raise
217
+ def GetTypeComp(self):
218
+ # type: () -> ITypeComp
219
+ """Return an ITypeComp pointer."""
220
+ raise
221
+ def GetDocumentation(self, index):
222
+ # type: (int) -> Tuple[str, str, int, Optional[str]]
223
+ """Return documentation for a type description."""
224
+ raise
225
+ def ReleaseTLibAttr(self, ptla):
226
+ # type: (_Pointer[TLIBATTR]) -> int
227
+ """Release TLIBATTR"""
228
+ raise
229
+ _GetLibAttr = hints.AnnoField() # type: Callable[[], _Pointer[TLIBATTR]]
215
230
 
216
231
  def GetLibAttr(self):
217
- "Return type library attributes"
232
+ # type: () -> TLIBATTR
233
+ """Return type library attributes"""
218
234
  return _deref_with_release(self._GetLibAttr(), self.ReleaseTLibAttr)
219
235
 
220
- ## def GetTypeComp(self):
221
- ## "Return an ITypeComp pointer."
222
-
223
- ## def GetDocumentation(self, index):
224
- ## "Return documentation for a type description."
225
-
226
236
  def IsName(self, name, lHashVal=0):
237
+ # type: (str, int) -> Optional[str]
227
238
  """Check if there is type information for this name.
228
239
 
229
240
  Returns the name with capitalization found in the type
@@ -232,27 +243,33 @@ class ITypeLib(IUnknown):
232
243
  from ctypes import create_unicode_buffer
233
244
  namebuf = create_unicode_buffer(name)
234
245
  found = BOOL()
235
- self.__com_IsName(namebuf, lHashVal, byref(found))
246
+ self.__com_IsName(namebuf, lHashVal, byref(found)) # type: ignore
236
247
  if found.value:
237
- return namebuf[:].split("\0", 1)[0]
248
+ return namebuf[:].split("\0", 1)[0] # type: ignore
238
249
  return None
239
250
 
240
251
  def FindName(self, name, lHashVal=0):
252
+ # type: (str, int) -> Optional[Tuple[int, ITypeInfo]]
241
253
  # Hm...
242
254
  # Could search for more than one name - should we support this?
243
255
  found = c_ushort(1)
244
256
  tinfo = POINTER(ITypeInfo)()
245
257
  memid = MEMBERID()
246
- self.__com_FindName(name, lHashVal, byref(tinfo), byref(memid), byref(found))
258
+ self.__com_FindName(name, lHashVal, byref(tinfo), byref(memid), byref(found)) # type: ignore
247
259
  if found.value:
248
- return memid.value, tinfo
260
+ return memid.value, tinfo # type: ignore
249
261
  return None
250
262
 
251
- ## def ReleaseTLibAttr(self, ptla):
252
- ## "Release TLIBATTR"
253
-
254
263
  ################
255
-
264
+ if TYPE_CHECKING:
265
+ @overload
266
+ def fix_name(name):
267
+ # type: (None) -> None
268
+ pass
269
+ @overload
270
+ def fix_name(name):
271
+ # type: (str) -> str
272
+ pass
256
273
  def fix_name(name):
257
274
  # Some typelibs contain BSTR with embedded NUL characters,
258
275
  # probably the len of the BSTR is wrong.
@@ -263,58 +280,80 @@ def fix_name(name):
263
280
  class ITypeInfo(IUnknown):
264
281
  _iid_ = GUID("{00020401-0000-0000-C000-000000000046}")
265
282
 
283
+ if TYPE_CHECKING:
284
+ def GetTypeComp(self):
285
+ # type: () -> ITypeComp
286
+ """Return ITypeComp pointer for this type"""
287
+ raise
288
+ def GetRefTypeOfImplType(self, index):
289
+ # type: (int) -> int
290
+ """Get the reftype of an implemented type"""
291
+ raise
292
+ def GetImplTypeFlags(self, index):
293
+ # type: (int) -> int
294
+ """Get IMPLTYPEFLAGS"""
295
+ raise
296
+ # not yet wrapped
297
+ # STDMETHOD(HRESULT, 'Invoke', [PVOID, MEMBERID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT)]),
298
+ def GetDllEntry(self, memid, invkind):
299
+ # type: (int, int) -> Tuple[Optional[str], Optional[str], int]
300
+ """Return the dll name, function name, and ordinal for a function and invkind."""
301
+ raise
302
+ def GetRefTypeInfo(self, href):
303
+ # type: (int) -> ITypeInfo
304
+ """Get type info for reftype"""
305
+ raise
306
+ def GetMops(self, index):
307
+ # type: (int) -> Optional[str]
308
+ """Get marshalling opcodes (whatever that is...)"""
309
+ raise
310
+ def GetContainingTypeLib(self):
311
+ # type: () -> Tuple[ITypeLib, int]
312
+ """Return index into and the containing type lib itself"""
313
+ raise
314
+ ReleaseTypeAttr = hints.AnnoField() # type: Callable[[_Pointer[TYPEATTR]], int]
315
+ ReleaseFuncDesc = hints.AnnoField() # type: Callable[[_Pointer[FUNCDESC]], int]
316
+ ReleaseVarDesc = hints.AnnoField() # type: Callable[[_Pointer[VARDESC]], int]
317
+ _GetTypeAttr = hints.AnnoField() # type: Callable[[], _Pointer[TYPEATTR]]
318
+ _GetFuncDesc = hints.AnnoField() # type: Callable[[int], _Pointer[FUNCDESC]]
319
+ _GetVarDesc = hints.AnnoField() # type: Callable[[int], _Pointer[VARDESC]]
320
+ _GetDocumentation = hints.AnnoField() # type: Callable[[int], Tuple[str, str, int, Optional[str]]]
321
+
266
322
  def GetTypeAttr(self):
267
- "Return the TYPEATTR for this type"
323
+ """Return the TYPEATTR for this type"""
268
324
  return _deref_with_release(self._GetTypeAttr(), self.ReleaseTypeAttr)
269
325
 
270
- ## def GetTypeComp(self):
271
- ## "Return ITypeComp pointer for this type"
272
-
273
326
  def GetDocumentation(self, memid):
274
327
  """Return name, docstring, helpcontext, and helpfile for 'memid'."""
275
328
  name, doc, helpcontext, helpfile = self._GetDocumentation(memid)
276
329
  return fix_name(name), fix_name(doc), helpcontext, fix_name(helpfile)
277
330
 
278
331
  def GetFuncDesc(self, index):
279
- "Return FUNCDESC for index"
332
+ """Return FUNCDESC for index"""
280
333
  return _deref_with_release(self._GetFuncDesc(index), self.ReleaseFuncDesc)
281
334
 
282
335
  def GetVarDesc(self, index):
283
- "Return VARDESC for index"
336
+ """Return VARDESC for index"""
284
337
  return _deref_with_release(self._GetVarDesc(index), self.ReleaseVarDesc)
285
338
 
286
339
  def GetNames(self, memid, count=1):
287
- "Return names for memid"
340
+ # type: (int, int) -> List[str]
341
+ """Return names for memid"""
288
342
  names = (BSTR * count)()
289
343
  cnames = c_uint()
290
- self.__com_GetNames(memid, names, count, byref(cnames))
344
+ self.__com_GetNames(memid, names, count, byref(cnames)) # type: ignore
291
345
  return names[:cnames.value]
292
346
 
293
- ## def GetRefTypeOfImplType(self, index):
294
- ## "Get the reftype of an implemented type"
295
-
296
- ## def GetImplTypeFlags(self, index):
297
- ## "Get IMPLTYPEFLAGS"
298
-
299
347
  def GetIDsOfNames(self, *names):
300
- "Maps function and argument names to identifiers"
348
+ # type: (str) -> List[int]
349
+ """Maps function and argument names to identifiers"""
301
350
  rgsznames = (c_wchar_p * len(names))(*names)
302
351
  ids = (MEMBERID * len(names))()
303
- self.__com_GetIDsOfNames(rgsznames, len(names), ids)
352
+ self.__com_GetIDsOfNames(rgsznames, len(names), ids) # type: ignore
304
353
  return ids[:]
305
354
 
306
-
307
- # not yet wrapped
308
- ## STDMETHOD(HRESULT, 'Invoke', [PVOID, MEMBERID, WORD, POINTER(DISPPARAMS), POINTER(VARIANT), POINTER(EXCEPINFO), POINTER(UINT)]),
309
-
310
- ## def GetDllEntry(self, memid, invkind):
311
- ## "Return the dll name, function name, and ordinal for a function and invkind."
312
-
313
- ## def GetRefTypeInfo(self, href):
314
- ## "Get type info for reftype"
315
-
316
355
  def AddressOfMember(self, memid, invkind):
317
- "Get the address of a function in a dll"
356
+ """Get the address of a function in a dll"""
318
357
  raise RuntimeError("Check Me")
319
358
  p = c_void_p()
320
359
  self.__com_AddressOfMember(memid, invkind, byref(p))
@@ -322,21 +361,10 @@ class ITypeInfo(IUnknown):
322
361
  return p.value
323
362
 
324
363
  def CreateInstance(self, punkouter=None, interface=IUnknown, iid=None):
364
+ # type: (Optional[Type[_Pointer[IUnknown]]], Type[_T_IUnknown], Optional[GUID]) -> _T_IUnknown
325
365
  if iid is None:
326
366
  iid = interface._iid_
327
- return self._CreateInstance(punkouter, byref(interface._iid_))
328
-
329
- ## def GetMops(self, index):
330
- ## "Get marshalling opcodes (whatever that is...)"
331
-
332
- ## def GetContainingTypeLib(self):
333
- ## "Return index into and the containing type lib itself"
334
-
335
- ## def ReleaseTypeAttr(self, pta):
336
-
337
- ## def ReleaseFuncDesc(self, pfd):
338
-
339
- ## def ReleaseVarDesc(self, pvd):
367
+ return self._CreateInstance(punkouter, byref(interface._iid_)) # type: ignore
340
368
 
341
369
  ################
342
370
 
@@ -344,11 +372,12 @@ class ITypeComp(IUnknown):
344
372
  _iid_ = GUID("{00020403-0000-0000-C000-000000000046}")
345
373
 
346
374
  def Bind(self, name, flags=0, lHashVal=0):
347
- "Bind to a name"
375
+ # type: (str, int, int) -> Optional[Tuple[str, _UnionT[FUNCDESC, VARDESC, ITypeComp]]]
376
+ """Bind to a name"""
348
377
  bindptr = BINDPTR()
349
378
  desckind = DESCKIND()
350
- ti = POINTER(ITypeInfo)()
351
- self.__com_Bind(name, lHashVal, flags, byref(ti), byref(desckind), byref(bindptr))
379
+ ti = POINTER(ITypeInfo)() # type: ITypeInfo
380
+ self.__com_Bind(name, lHashVal, flags, byref(ti), byref(desckind), byref(bindptr)) # type: ignore
352
381
  kind = desckind.value
353
382
  if kind == DESCKIND_FUNCDESC:
354
383
  fd = bindptr.lpfuncdesc[0]
@@ -366,11 +395,12 @@ class ITypeComp(IUnknown):
366
395
  raise NameError("Name %s not found" % name)
367
396
 
368
397
  def BindType(self, name, lHashVal=0):
369
- "Bind a type, and return both the typeinfo and typecomp for it."
398
+ # type: (str, int) -> Tuple[ITypeInfo, ITypeComp]
399
+ """Bind a type, and return both the typeinfo and typecomp for it."""
370
400
  ti = POINTER(ITypeInfo)()
371
401
  tc = POINTER(ITypeComp)()
372
- self.__com_BindType(name, lHashVal, byref(ti), byref(tc))
373
- return ti, tc
402
+ self.__com_BindType(name, lHashVal, byref(ti), byref(tc)) # type: ignore
403
+ return ti, tc # type: ignore
374
404
 
375
405
 
376
406
  ################
@@ -385,8 +415,11 @@ class ICreateTypeLib2(ICreateTypeLib):
385
415
  class ICreateTypeInfo(IUnknown):
386
416
  _iid_ = GUID("{00020405-0000-0000-C000-000000000046}")
387
417
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 915
418
+ if TYPE_CHECKING:
419
+ _SetFuncAndParamNames = hints.AnnoField() # Callable[[int, Array[c_wchar_p], int], int]
388
420
 
389
421
  def SetFuncAndParamNames(self, index, *names):
422
+ # type: (int, str) -> int
390
423
  rgszNames = (c_wchar_p * len(names))()
391
424
  for i, n in enumerate(names):
392
425
  rgszNames[i] = n
@@ -397,15 +430,16 @@ class IRecordInfo(IUnknown):
397
430
  _iid_ = GUID("{0000002F-0000-0000-C000-000000000046}")
398
431
 
399
432
  def GetFieldNames(self, *args):
433
+ # type: (Any) -> List[Optional[str]]
400
434
  count = c_ulong()
401
- self.__com_GetFieldNames(count, None)
435
+ self.__com_GetFieldNames(count, None) # type: ignore
402
436
  array = (BSTR * count.value)()
403
- self.__com_GetFieldNames(count, array)
437
+ self.__com_GetFieldNames(count, array) # type: ignore
404
438
  result = array[:]
405
439
  # XXX Should SysFreeString the array contents. How to?
406
440
  return result
407
441
 
408
- IRecordInfo. _methods_ = [
442
+ IRecordInfo._methods_ = [
409
443
  COMMETHOD([], HRESULT, 'RecordInit',
410
444
  (['in'], c_void_p, 'pvNew')),
411
445
  COMMETHOD([], HRESULT, 'RecordClear',
@@ -459,59 +493,69 @@ IRecordInfo. _methods_ = [
459
493
  _oleaut32 = oledll.oleaut32
460
494
 
461
495
  def GetRecordInfoFromTypeInfo(tinfo):
496
+ # type: (ITypeInfo) -> IRecordInfo
462
497
  "Return an IRecordInfo pointer to the UDT described in tinfo"
463
498
  ri = POINTER(IRecordInfo)()
464
499
  _oleaut32.GetRecordInfoFromTypeInfo(tinfo, byref(ri))
465
- return ri
500
+ return ri # type: ignore
466
501
 
467
502
  def GetRecordInfoFromGuids(rGuidTypeLib, verMajor, verMinor, lcid, rGuidTypeInfo):
503
+ # type: (str, int, int, int, str) -> IRecordInfo
468
504
  ri = POINTER(IRecordInfo)()
469
505
  _oleaut32.GetRecordInfoFromGuids(byref(GUID(rGuidTypeLib)),
470
506
  verMajor, verMinor, lcid,
471
507
  byref(GUID(rGuidTypeInfo)),
472
508
  byref(ri))
473
- return ri
509
+ return ri # type: ignore
474
510
 
475
511
  def LoadRegTypeLib(guid, wMajorVerNum, wMinorVerNum, lcid=0):
476
- "Load a registered type library"
512
+ # type: (_UnionT[str, GUID], int, int, int) -> ITypeLib
513
+ """Load a registered type library"""
477
514
  tlib = POINTER(ITypeLib)()
478
515
  _oleaut32.LoadRegTypeLib(byref(GUID(guid)), wMajorVerNum, wMinorVerNum, lcid, byref(tlib))
479
- return tlib
516
+ return tlib # type: ignore
480
517
 
481
518
  if hasattr(_oleaut32, "LoadTypeLibEx"):
482
519
  def LoadTypeLibEx(szFile, regkind=REGKIND_NONE):
520
+ # type: (str, int) -> ITypeLib
483
521
  "Load, and optionally register a type library file"
484
522
  ptl = POINTER(ITypeLib)()
485
523
  _oleaut32.LoadTypeLibEx(c_wchar_p(szFile), regkind, byref(ptl))
486
- return ptl
524
+ return ptl # type: ignore
487
525
  else:
488
526
  def LoadTypeLibEx(szFile, regkind=REGKIND_NONE):
527
+ # type: (str, int) -> ITypeLib
489
528
  "Load, and optionally register a type library file"
490
529
  ptl = POINTER(ITypeLib)()
491
530
  _oleaut32.LoadTypeLib(c_wchar_p(szFile), byref(ptl))
492
- return ptl
531
+ return ptl # type: ignore
493
532
 
494
533
  def LoadTypeLib(szFile):
534
+ # type: (str) -> ITypeLib
495
535
  "Load and register a type library file"
496
536
  tlib = POINTER(ITypeLib)()
497
537
  _oleaut32.LoadTypeLib(c_wchar_p(szFile), byref(tlib))
498
- return tlib
538
+ return tlib # type: ignore
499
539
 
500
540
  def UnRegisterTypeLib(libID, wVerMajor, wVerMinor, lcid=0, syskind=SYS_WIN32):
541
+ # type: (str, int, int, int, int) -> int
501
542
  "Unregister a registered type library"
502
543
  return _oleaut32.UnRegisterTypeLib(byref(GUID(libID)), wVerMajor, wVerMinor, lcid, syskind)
503
544
 
504
545
  def RegisterTypeLib(tlib, fullpath, helpdir=None):
546
+ # type: (ITypeLib, str, Optional[str]) -> int
505
547
  "Register a type library in the registry"
506
548
  return _oleaut32.RegisterTypeLib(tlib, c_wchar_p(fullpath), c_wchar_p(helpdir))
507
549
 
508
550
  def CreateTypeLib(filename, syskind=SYS_WIN32):
551
+ # type: (str, int) -> ICreateTypeLib2
509
552
  "Return a ICreateTypeLib2 pointer"
510
553
  ctlib = POINTER(ICreateTypeLib2)()
511
554
  _oleaut32.CreateTypeLib2(syskind, c_wchar_p(filename), byref(ctlib))
512
- return ctlib
555
+ return ctlib # type: ignore
513
556
 
514
557
  def QueryPathOfRegTypeLib(libid, wVerMajor, wVerMinor, lcid=0):
558
+ # type: (str, int, int, int) -> str
515
559
  "Return the path of a registered type library"
516
560
  pathname = BSTR()
517
561
  _oleaut32.QueryPathOfRegTypeLib(byref(GUID(libid)), wVerMajor, wVerMinor, lcid, byref(pathname))
@@ -522,6 +566,14 @@ def QueryPathOfRegTypeLib(libid, wVerMajor, wVerMinor, lcid=0):
522
566
 
523
567
  class tagTLIBATTR(Structure):
524
568
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 4437
569
+ if TYPE_CHECKING:
570
+ guid = hints.AnnoField() # type: GUID
571
+ lcid = hints.AnnoField() # type: int
572
+ syskind = hints.AnnoField() # type: int
573
+ wMajorVerNum = hints.AnnoField() # type: int
574
+ wMinorVerNum = hints.AnnoField() # type: int
575
+ wLibFlags = hints.AnnoField() # type: int
576
+
525
577
  def __repr__(self):
526
578
  return "TLIBATTR(GUID=%s, Version=%s.%s, LCID=%s, FLags=0x%x)" % \
527
579
  (self.guid, self.wMajorVerNum, self.wMinorVerNum, self.lcid, self.wLibFlags)
@@ -529,6 +581,26 @@ TLIBATTR = tagTLIBATTR
529
581
 
530
582
  class tagTYPEATTR(Structure):
531
583
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 672
584
+ if TYPE_CHECKING:
585
+ guid = hints.AnnoField() # type: GUID
586
+ lcid = hints.AnnoField() # type: int
587
+ dwReserved = hints.AnnoField() # type: int
588
+ memidConstructor = hints.AnnoField() # type: int
589
+ memidDestructor = hints.AnnoField() # type: int
590
+ lpstrSchema = hints.AnnoField() # type: str
591
+ cbSizeInstance = hints.AnnoField() # type: int
592
+ typekind = hints.AnnoField() # type: int
593
+ cFuncs = hints.AnnoField() # type: int
594
+ cVars = hints.AnnoField() # type: int
595
+ cImplTypes = hints.AnnoField() # type: int
596
+ cbSizeVft = hints.AnnoField() # type: int
597
+ cbAlignment = hints.AnnoField() # type: int
598
+ wTypeFlags = hints.AnnoField() # type: int
599
+ wMajorVerNum = hints.AnnoField() # type: int
600
+ wMinorVerNum = hints.AnnoField() # type: int
601
+ tdescAlias = hints.AnnoField() # type: TYPEDESC
602
+ idldescType = hints.AnnoField() # type: IDLDESC
603
+
532
604
  def __repr__(self):
533
605
  return "TYPEATTR(GUID=%s, typekind=%s, funcs=%s, vars=%s, impltypes=%s)" % \
534
606
  (self.guid, self.typekind, self.cFuncs, self.cVars, self.cImplTypes)
@@ -536,33 +608,62 @@ TYPEATTR = tagTYPEATTR
536
608
 
537
609
  class tagFUNCDESC(Structure):
538
610
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 769
611
+ if TYPE_CHECKING:
612
+ memid = hints.AnnoField() # type: int
613
+ lprgscode = hints.AnnoField() # type: int
614
+ lprgelemdescParam = hints.AnnoField() # type: Sequence[ELEMDESC]
615
+ funckind = hints.AnnoField() # type: int
616
+ invkind = hints.AnnoField() # type: int
617
+ callconv = hints.AnnoField() # type: int
618
+ cParams = hints.AnnoField() # type: int
619
+ cParamsOpt = hints.AnnoField() # type: int
620
+ oVft = hints.AnnoField() # type: int
621
+ cScodes = hints.AnnoField() # type: int
622
+ elemdescFunc = hints.AnnoField() # type: ELEMDESC
623
+ wFuncFlags = hints.AnnoField() # type: int
624
+
539
625
  def __repr__(self):
540
626
  return "FUNCDESC(memid=%s, cParams=%s, cParamsOpt=%s, callconv=%s, invkind=%s, funckind=%s)" % \
541
627
  (self.memid, self.cParams, self.cParamsOpt, self.callconv, self.invkind, self.funckind)
542
-
543
-
544
628
  FUNCDESC = tagFUNCDESC
629
+
545
630
  class tagVARDESC(Structure):
546
631
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 803
547
- pass
632
+ if TYPE_CHECKING:
633
+ memid = hints.AnnoField() # type: int
634
+ lpstrSchema = hints.AnnoField() # type: str
635
+ _ = hints.AnnoField() # type: N10tagVARDESC5DOLLAR_205E
636
+ elemdescVar = hints.AnnoField() # type: ELEMDESC
637
+ wVarFlags = hints.AnnoField() # type: int
638
+ varkind = hints.AnnoField() # type: int
548
639
  VARDESC = tagVARDESC
549
640
 
550
641
  class tagBINDPTR(Union):
551
642
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 3075
552
- pass
643
+ if TYPE_CHECKING:
644
+ lpfuncdesc = hints.AnnoField() # type: _Pointer[FUNCDESC]
645
+ lpvardesc = hints.AnnoField() # type: _Pointer[VARDESC]
646
+ lptcomp = hints.AnnoField() # type: ITypeComp
553
647
  BINDPTR = tagBINDPTR
554
648
  class tagTYPEDESC(Structure):
555
649
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 582
556
- pass
650
+ if TYPE_CHECKING:
651
+ _ = hints.AnnoField() # type: N11tagTYPEDESC5DOLLAR_203E
652
+ vt = hints.AnnoField() # type: int
557
653
  TYPEDESC = tagTYPEDESC
558
654
  class tagIDLDESC(Structure):
559
655
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 633
560
- pass
656
+ if TYPE_CHECKING:
657
+ dwReserved = hints.AnnoField() # type: int
658
+ wIDLFlags = hints.AnnoField() # type: int
561
659
  IDLDESC = tagIDLDESC
562
660
 
563
661
  class tagARRAYDESC(Structure):
564
662
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 594
565
- pass
663
+ if TYPE_CHECKING:
664
+ tdescElem = hints.AnnoField() # type: TYPEDESC
665
+ cDims = hints.AnnoField() # type: int
666
+ rgbounds = hints.AnnoField() # type: Sequence[SAFEARRAYBOUND]
566
667
 
567
668
  ################################################################
568
669
  # interface vtbl definitions
@@ -729,6 +830,8 @@ ICreateTypeInfo._methods_ = [
729
830
 
730
831
  class IProvideClassInfo(IUnknown):
731
832
  _iid_ = GUID("{B196B283-BAB4-101A-B69C-00AA00341D07}")
833
+ if TYPE_CHECKING:
834
+ GetClassInfo = hints.AnnoField() # type: Callable[[], ITypeInfo]
732
835
  _methods_ = [
733
836
  # Returns the ITypeInfo interface for the object's coclass type information.
734
837
  COMMETHOD([], HRESULT, "GetClassInfo",
@@ -737,6 +840,8 @@ class IProvideClassInfo(IUnknown):
737
840
 
738
841
  class IProvideClassInfo2(IProvideClassInfo):
739
842
  _iid_ = GUID("{A6BC3AC0-DBAA-11CE-9DE3-00AA004BB851}")
843
+ if TYPE_CHECKING:
844
+ GetGUID = hints.AnnoField() # type: Callable[[int], GUID]
740
845
  _methods_ = [
741
846
  # Returns the GUID for the object's outgoing IID for its default event set.
742
847
  COMMETHOD([], HRESULT, "GetGUID",
@@ -759,7 +864,10 @@ tagTLIBATTR._fields_ = [
759
864
  ]
760
865
  class N11tagTYPEDESC5DOLLAR_203E(Union):
761
866
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 584
762
- pass
867
+ if TYPE_CHECKING:
868
+ lptdesc = hints.AnnoField() # type: TYPEDESC
869
+ lpadesc = hints.AnnoField() # type: tagARRAYDESC
870
+ hreftype = hints.AnnoField() # type: int
763
871
  N11tagTYPEDESC5DOLLAR_203E._fields_ = [
764
872
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 584
765
873
  ('lptdesc', POINTER(tagTYPEDESC)),
@@ -801,7 +909,9 @@ tagTYPEATTR._fields_ = [
801
909
  ]
802
910
  class N10tagVARDESC5DOLLAR_205E(Union):
803
911
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 807
804
- pass
912
+ if TYPE_CHECKING:
913
+ oInst = hints.AnnoField() # type: int
914
+ lpvarValue = hints.AnnoField() # type: VARIANT
805
915
  N10tagVARDESC5DOLLAR_205E._fields_ = [
806
916
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 807
807
917
  ('oInst', DWORD),
@@ -809,18 +919,26 @@ N10tagVARDESC5DOLLAR_205E._fields_ = [
809
919
  ]
810
920
  class tagELEMDESC(Structure):
811
921
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 661
812
- pass
922
+ if TYPE_CHECKING:
923
+ tdesc = hints.AnnoField() # type: TYPEDESC
924
+ _ = hints.AnnoField() # type: N11tagELEMDESC5DOLLAR_204E
813
925
  class N11tagELEMDESC5DOLLAR_204E(Union):
814
926
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 663
815
- pass
927
+ if TYPE_CHECKING:
928
+ idldesc = hints.AnnoField() # type: IDLDESC
929
+ paramdesc = hints.AnnoField() # type: PARAMDESC
816
930
 
817
931
  class tagPARAMDESC(Structure):
818
932
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 609
819
- pass
933
+ if TYPE_CHECKING:
934
+ pparamdescex = hints.AnnoField() # type: tagPARAMDESCEX
935
+ wParamFlags = hints.AnnoField() # type: int
820
936
 
821
937
  class tagPARAMDESCEX(Structure):
822
938
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 601
823
- pass
939
+ if TYPE_CHECKING:
940
+ cBytes = hints.AnnoField() # type: int
941
+ varDefaultValue = hints.AnnoField() # type: VARIANTARG
824
942
  LPPARAMDESCEX = POINTER(tagPARAMDESCEX)
825
943
 
826
944
  tagPARAMDESC._fields_ = [
@@ -884,6 +1002,9 @@ tagPARAMDESCEX._fields_ = [
884
1002
 
885
1003
  class tagSAFEARRAYBOUND(Structure):
886
1004
  # C:/Programme/gccxml/bin/Vc71/PlatformSDK/oaidl.h 226
1005
+ if TYPE_CHECKING:
1006
+ cElements = hints.AnnoField() # type: int
1007
+ lLbound = hints.AnnoField() # type: int
887
1008
  _fields_ = [
888
1009
  ('cElements', DWORD),
889
1010
  ('lLbound', LONG),
@@ -896,3 +1017,52 @@ tagARRAYDESC._fields_ = [
896
1017
  ('cDims', USHORT),
897
1018
  ('rgbounds', SAFEARRAYBOUND * 1),
898
1019
  ]
1020
+
1021
+
1022
+ __known_symbols__ = [
1023
+ 'tagARRAYDESC', 'BINDPTR', 'tagBINDPTR', 'CALLCONV', 'tagCALLCONV',
1024
+ 'CC_CDECL', 'CC_FASTCALL', 'CC_FPFASTCALL', 'CC_MACPASCAL', 'CC_MAX',
1025
+ 'CC_MPWCDECL', 'CC_MPWPASCAL', 'CC_MSCPASCAL', 'CC_PASCAL', 'CC_STDCALL',
1026
+ 'CC_SYSCALL', 'CreateTypeLib', 'DESCKIND', 'tagDESCKIND',
1027
+ 'DESCKIND_FUNCDESC', 'DESCKIND_IMPLICITAPPOBJ', 'DESCKIND_MAX',
1028
+ 'DESCKIND_NONE', 'DESCKIND_TYPECOMP', 'DESCKIND_VARDESC', 'ELEMDESC',
1029
+ 'tagELEMDESC', 'FUNC_DISPATCH', 'FUNC_NONVIRTUAL', 'FUNC_PUREVIRTUAL',
1030
+ 'FUNC_STATIC', 'FUNC_VIRTUAL', 'FUNCDESC', 'tagFUNCDESC',
1031
+ 'FUNCFLAG_FBINDABLE', 'FUNCFLAG_FDEFAULTBIND', 'FUNCFLAG_FDEFAULTCOLLELEM',
1032
+ 'FUNCFLAG_FDISPLAYBIND', 'FUNCFLAG_FHIDDEN', 'FUNCFLAG_FIMMEDIATEBIND',
1033
+ 'FUNCFLAG_FNONBROWSABLE', 'FUNCFLAG_FREPLACEABLE', 'FUNCFLAG_FREQUESTEDIT',
1034
+ 'FUNCFLAG_FRESTRICTED', 'FUNCFLAG_FSOURCE', 'FUNCFLAG_FUIDEFAULT',
1035
+ 'FUNCFLAG_FUSESGETLASTERROR', 'FUNCFLAGS', 'tagFUNCFLAGS', 'FUNCKIND',
1036
+ 'tagFUNCKIND', 'GetRecordInfoFromGuids', 'GetRecordInfoFromTypeInfo',
1037
+ 'HREFTYPE', 'ICreateTypeInfo', 'ICreateTypeLib', 'ICreateTypeLib2',
1038
+ 'IDLDESC', 'tagIDLDESC', 'IMPLTYPEFLAG_FDEFAULT',
1039
+ 'IMPLTYPEFLAG_FDEFAULTVTABLE', 'IMPLTYPEFLAG_FRESTRICTED',
1040
+ 'IMPLTYPEFLAG_FSOURCE', 'IProvideClassInfo', 'IProvideClassInfo2',
1041
+ 'IRecordInfo', 'ITypeComp', 'ITypeInfo', 'ITypeLib', 'LoadRegTypeLib',
1042
+ 'LoadTypeLib', 'LoadTypeLibEx', 'LPPARAMDESCEX', 'MEMBERID',
1043
+ 'N10tagVARDESC5DOLLAR_205E', 'N11tagELEMDESC5DOLLAR_204E',
1044
+ 'N11tagTYPEDESC5DOLLAR_203E', 'OLECHAR', 'PARAMDESC', 'tagPARAMDESC',
1045
+ 'tagPARAMDESCEX', 'PARAMFLAG_FHASCUSTDATA', 'PARAMFLAG_FHASDEFAULT',
1046
+ 'PARAMFLAG_FIN', 'PARAMFLAG_FLCID', 'PARAMFLAG_FOPT', 'PARAMFLAG_FOUT',
1047
+ 'PARAMFLAG_FRETVAL', 'PARAMFLAG_NONE', 'PVOID', 'QueryPathOfRegTypeLib',
1048
+ 'RegisterTypeLib', 'REGKIND', 'tagREGKIND', 'REGKIND_DEFAULT',
1049
+ 'REGKIND_NONE', 'REGKIND_REGISTER', 'SAFEARRAYBOUND', 'tagSAFEARRAYBOUND',
1050
+ 'SYS_MAC', 'SYS_WIN16', 'SYS_WIN32', 'SYS_WIN64', 'SYSKIND', 'tagSYSKIND',
1051
+ 'TKIND_ALIAS', 'TKIND_COCLASS', 'TKIND_DISPATCH', 'TKIND_ENUM',
1052
+ 'TKIND_INTERFACE', 'TKIND_MAX', 'TKIND_MODULE', 'TKIND_RECORD',
1053
+ 'TKIND_UNION', 'tagTLIBATTR', 'TLIBATTR', 'tagTYPEATTR', 'TYPEATTR',
1054
+ 'tagTYPEDESC', 'TYPEDESC', 'TYPEFLAG_FAGGREGATABLE', 'TYPEFLAG_FAPPOBJECT',
1055
+ 'TYPEFLAG_FCANCREATE', 'TYPEFLAG_FCONTROL', 'TYPEFLAG_FDISPATCHABLE',
1056
+ 'TYPEFLAG_FDUAL', 'TYPEFLAG_FHIDDEN', 'TYPEFLAG_FLICENSED',
1057
+ 'TYPEFLAG_FNONEXTENSIBLE', 'TYPEFLAG_FOLEAUTOMATION',
1058
+ 'TYPEFLAG_FPREDECLID', 'TYPEFLAG_FPROXY', 'TYPEFLAG_FREPLACEABLE',
1059
+ 'TYPEFLAG_FRESTRICTED', 'TYPEFLAG_FREVERSEBIND', 'TYPEFLAGS',
1060
+ 'tagTYPEFLAGS', 'TYPEKIND', 'tagTYPEKIND', 'ULONG_PTR',
1061
+ 'UnRegisterTypeLib', 'VAR_CONST', 'VAR_DISPATCH', 'VAR_PERINSTANCE',
1062
+ 'VAR_STATIC', 'VARDESC', 'tagVARDESC', 'VARFLAG_FBINDABLE',
1063
+ 'VARFLAG_FDEFAULTBIND', 'VARFLAG_FDEFAULTCOLLELEM', 'VARFLAG_FDISPLAYBIND',
1064
+ 'VARFLAG_FHIDDEN', 'VARFLAG_FIMMEDIATEBIND', 'VARFLAG_FNONBROWSABLE',
1065
+ 'VARFLAG_FREADONLY', 'VARFLAG_FREPLACEABLE', 'VARFLAG_FREQUESTEDIT',
1066
+ 'VARFLAG_FRESTRICTED', 'VARFLAG_FSOURCE', 'VARFLAG_FUIDEFAULT',
1067
+ 'VARFLAGS', 'tagVARFLAGS', 'VARKIND', 'tagVARKIND',
1068
+ ]