comtypes 1.1.0__zip → 1.1.3__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 (97) hide show
  1. comtypes-1.1.3/CHANGES.txt +1061 -0
  2. comtypes-1.1.3/LICENSE.txt +24 -0
  3. comtypes-1.1.3/MANIFEST.in +1 -0
  4. {comtypes-1.1.0 → comtypes-1.1.3}/PKG-INFO +1 -1
  5. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/__init__.py +7 -2
  6. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/_comobject.py +112 -74
  7. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/automation.py +5 -1
  8. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/client/_code_cache.py +1 -1
  9. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/npsupport.py +20 -15
  10. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/patcher.py +26 -2
  11. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/safearray.py +6 -10
  12. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/TestComServer.py +3 -4
  13. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_variant.py +5 -0
  14. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/tools/codegenerator.py +8 -0
  15. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/typeinfo.py +6 -1
  16. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes.egg-info/PKG-INFO +1 -1
  17. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes.egg-info/SOURCES.txt +3 -0
  18. {comtypes-1.1.0 → comtypes-1.1.3}/README +0 -0
  19. {comtypes-1.1.0 → comtypes-1.1.3}/clear_comtypes_cache.py +0 -0
  20. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/GUID.py +0 -0
  21. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/_meta.py +0 -0
  22. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/_safearray.py +0 -0
  23. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/client/__init__.py +0 -0
  24. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/client/_events.py +0 -0
  25. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/client/_generate.py +0 -0
  26. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/client/dynamic.py +0 -0
  27. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/client/lazybind.py +0 -0
  28. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/connectionpoints.py +0 -0
  29. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/errorinfo.py +0 -0
  30. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/git.py +0 -0
  31. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/hresult.py +0 -0
  32. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/logutil.py +0 -0
  33. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/messageloop.py +0 -0
  34. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/persist.py +0 -0
  35. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/server/__init__.py +0 -0
  36. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/server/automation.py +0 -0
  37. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/server/connectionpoints.py +0 -0
  38. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/server/inprocserver.py +0 -0
  39. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/server/localserver.py +0 -0
  40. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/server/register.py +0 -0
  41. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/server/w_getopt.py +0 -0
  42. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/shelllink.py +0 -0
  43. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/TestComServer.idl +0 -0
  44. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/TestComServer.tlb +0 -0
  45. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/TestDispServer.idl +0 -0
  46. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/TestDispServer.py +0 -0
  47. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/TestDispServer.tlb +0 -0
  48. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/__init__.py +0 -0
  49. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/find_memleak.py +0 -0
  50. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/mylib.idl +0 -0
  51. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/mytypelib.idl +0 -0
  52. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/runtests.py +0 -0
  53. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/setup.py +0 -0
  54. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_BSTR.py +0 -0
  55. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_DISPPARAMS.py +0 -0
  56. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_GUID.py +0 -0
  57. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_QueryService.py +0 -0
  58. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_agilent.py +0 -0
  59. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_avmc.py +0 -0
  60. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_basic.py +0 -0
  61. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_casesensitivity.py +0 -0
  62. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_client.py +0 -0
  63. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_collections.py +0 -0
  64. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_comserver.py +0 -0
  65. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_createwrappers.py +0 -0
  66. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_dict.py +0 -0
  67. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_dispinterface.py +0 -0
  68. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_dyndispatch.py +0 -0
  69. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_excel.py +0 -0
  70. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_findgendir.py +0 -0
  71. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_getactiveobj.py +0 -0
  72. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_ie.py +0 -0
  73. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_jscript.js +0 -0
  74. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_msscript.py +0 -0
  75. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_outparam.py +0 -0
  76. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_propputref.py +0 -0
  77. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_pump_events.py +0 -0
  78. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_safearray.py +0 -0
  79. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_sapi.py +0 -0
  80. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_server.py +0 -0
  81. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_showevents.py +0 -0
  82. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_subinterface.py +0 -0
  83. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_typeinfo.py +0 -0
  84. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_urlhistory.py +0 -0
  85. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_win32com_interop.py +0 -0
  86. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_wmi.py +0 -0
  87. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/test/test_word.py +0 -0
  88. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/tools/__init__.py +0 -0
  89. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/tools/tlbparser.py +0 -0
  90. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/tools/typedesc.py +0 -0
  91. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/tools/typedesc_base.py +0 -0
  92. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/util.py +0 -0
  93. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes/viewobject.py +0 -0
  94. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes.egg-info/dependency_links.txt +0 -0
  95. {comtypes-1.1.0 → comtypes-1.1.3}/comtypes.egg-info/top_level.txt +0 -0
  96. {comtypes-1.1.0 → comtypes-1.1.3}/setup.cfg +0 -0
  97. {comtypes-1.1.0 → comtypes-1.1.3}/setup.py +0 -0
@@ -0,0 +1,1061 @@
1
+ Comtypes CHANGELOG
2
+ ==================
3
+
4
+ Release 1.1.3
5
+ -------------
6
+
7
+ * Fix SyntaxError caused by enums containing python keywords. Thanks to
8
+ laripk for the fix and janbrohl for the bug report.
9
+
10
+ Release 1.1.2
11
+ -------------
12
+
13
+ * Fix TypeError when interfaces return a single in-out result (#84). Thanks to
14
+ FranOis for the bug report and max-egger for suggesting the fix.
15
+ * Fix AttributeError when cleaning up safe arrays at shutdown (#83). Thanks to
16
+ mitaa for the bug report and fix.
17
+ * Fix 64-bit ULONG_PTR definition in typeinfo module (#82). Thanks to aparamon
18
+ for the bug report.
19
+ * Add POINTER(BSTR) to supported VARIANT types (#81). This allows the Esri
20
+ ArcObjects library to be loaded. Thanks to Matt Wilkie for the patch.
21
+ * Properly catch error when attempting to cache code to an unwritable
22
+ directory (#78). Thanks to Robin Dunn for the patch.
23
+
24
+
25
+
26
+ Release 1.1.1
27
+ -------------
28
+
29
+ * Fixed backwards-incompatible change where empty strings in VARIANTs were
30
+ being converted to NULL (#68). Thanks to shgohh for the bug report.
31
+ * Fixed npsupport module to fail gracefully when numpy is not present (#62).
32
+ Thanks to kyleMR for the patch.
33
+ * Fixed low-level property machinery in _comobject (#60).
34
+ * Fixed bug where numpy would be imported when using safe arrays (#59). Thanks
35
+ to Paul Moore (pfmoore) for submitting the bug and a patch.
36
+ * Fixed bug in patching machinery (#57). Thanks to Paul Moore (pfmoore) for
37
+ the patch.
38
+ * Various documentation cleanups.
39
+
40
+
41
+ Release 1.1.0
42
+ -------------
43
+
44
+ * Updated automation code to convert c_int64 and c_uint64 to their VT_I8 and
45
+ VT_UI8, respectively (#49).
46
+ * Update automation code to convert VT_DECIMAL VARIANT to Decimal type (#44).
47
+ * Fixed an undocumented bug that would lead to improper behavior when nesting
48
+ the ``safearray_as_ndarray`` context (#41).
49
+ * Added a license file and merged the ChangeLog into CHANGES.txt (#35, #39).
50
+ * Extended and homogenized indexing across container and named property
51
+ interfaces (#32, #43). This introduces the ability to index with an empty
52
+ slice, which has the same meaning as indexing with an empty tuple.
53
+ * Completed migration to ``patcher`` module (#31).
54
+ * Extended NumPy support so object and datetime64 arrays can be converted to
55
+ VARIANT safearrays (#29).
56
+ * Extended test runner so it can be run under 32- and 64-bit Python and be used
57
+ in an automated testing system (#25, #28).
58
+ * Modified many tests so they run under 64-bit python (#21, #22, #23).
59
+ * Removed reference cycle in PumpEvents (#19).
60
+ * Fixed safearray test that would fail under NumPy 1.6 (#19).
61
+ * Project migrated to http://github.com/enthought/comtypes. Issue numbers
62
+ refer to the new project page.
63
+
64
+
65
+ Release 1.0.0
66
+ -------------
67
+
68
+ * #27: Replaced the ``partial`` module with a ``patcher`` module. This new
69
+ technique patches the underlying classes explicitly. This technique avoids
70
+ the problems with the metaclass magic on Python 3.
71
+ * Officially dropped support for Python 2.5.
72
+ * #25: Allow installation on non-Windows systems.
73
+ * #31: Improved 64-bit compatibility by specifying argtypes for GetMessage.
74
+
75
+
76
+ Earlier Changes
77
+ ---------------
78
+
79
+ 2010-04-09 Thomas Heller <theller@python.net>
80
+
81
+ * comtypes.client.dynamic: Added _FlagAsMethod(*names) method
82
+ to the _Dispatch class.
83
+
84
+ This allows to flag these attribute names as being methods. Some
85
+ objects do not correctly differentiate methods and properties,
86
+ leading to problems when calling these methods.
87
+
88
+ 2010-02-23 Thomas Heller <theller@python.net>
89
+
90
+ * pointers and byref() objects will now be stored in a VARIANT as
91
+ VT_BYREF type. This allows to call dispinterface methods with
92
+ BYREF arguments.
93
+
94
+ 2010-01-21 Thomas Heller <theller@python.net>
95
+
96
+ * Add a __repr__ method to named_property and bound_named_property
97
+ object.
98
+
99
+ 2010-01-15 Thomas Heller <theller@python.net>
100
+
101
+ * Bump version number to 0.6.3dev: development version.
102
+
103
+ 2010-01-15 Thomas Heller <theller@python.net>
104
+
105
+ * Bumped version number to 0.6.2.
106
+
107
+ * CoUninitialize() returns nothing, not HRESULT.
108
+
109
+ 2009-12-22 Thomas Heller <theller@python.net>
110
+
111
+ * Bug fixes for event handlers implemented in Python.
112
+
113
+ 2009-12-11 Thomas Heller <theller@python.net>
114
+
115
+ * COM servers implemented in Python can now fire events; it did
116
+ not work in some cases.
117
+
118
+ * When an exception occurs in a COM event handler, a traceback is
119
+ printed.
120
+
121
+ 2009-11-26 Thomas Heller <theller@python.net>
122
+
123
+ * Allow typelib wrappers that contain 'SAFEARRAY(VARIANT*)'
124
+ parameter types to be imported. Calling these methods will fail,
125
+ though.
126
+
127
+ 2009-11-13 Thomas Heller <theller@python.net>
128
+
129
+ * To avoid a memory leak when PyInitialize()/PyUninitialize() are
130
+ called several times, return S_FALSE from inproc server's
131
+ DllCanUnloadNow().
132
+
133
+ 2009-11-05 Thomas Heller <theller@python.net>
134
+
135
+ * COMObject subclasses can now implement a _final_release_()
136
+ method to free up resources, for example. This method is called
137
+ when the COM reference count reaches zero.
138
+
139
+ * Implement __hash__ method in dynamic dispatch classes. This
140
+ fixes a 'python -3' warning.
141
+
142
+ * comtypes\safearray.py: When numpy is not installed, creating
143
+ safearrays took a very long time. This is fixed now.
144
+
145
+ * comtypes\test\test_server.py: New way to test COM client and
146
+ server. Work in progress.
147
+
148
+ 2009-10-22 Thomas Heller <theller@python.net>
149
+
150
+ * Support broken COM objects that provide IProvideClassInfo2, but
151
+ not IProvideClassInfo (although the latter is derived from the
152
+ former). See
153
+ http://sourceforge.net/tracker/index.php?func=detail&aid=2829887&group_id=115265&atid=692942
154
+
155
+ * Fixed a regression from the 0.4 version, [out] parameters didn't
156
+ accept pointers or arrays any longer. Thanks again to Michael
157
+ Eddington.
158
+
159
+ 2009-10-19 Thomas Heller <theller@python.net>
160
+
161
+ * Fix a memory leak in Python COM servers. Thanks to Michael
162
+ Eddington for the patch.
163
+
164
+ 2009-10-02 Thomas Heller <theller@python.net>
165
+
166
+ * comtypes\test\test_server.py: Start a better approach to test
167
+ both COM object calls and COM object implementations.
168
+
169
+ 2009-09-09 Thomas Heller <theller@python.net>
170
+
171
+ * Fix returning SAFEARRAY of VT_RECORDs. Based on a patch from
172
+ Eduardo Arias.
173
+
174
+ * New module comtypes.viewobject, contains the interfaces
175
+ IViewObject, IViewObject2, IViewObjectEx. IAdviseSink is faked.
176
+
177
+ * Change version number to 0.6.2dev.
178
+
179
+ 2009-09-04 Thomas Heller <theller@python.net>
180
+
181
+ * CoTaskMemFree does not return a HRESULT. Patch from James Teh.
182
+
183
+ 2009-08-19 Thomas Heller <theller@python.net>
184
+
185
+ * Bumped version number to 0.6.1.
186
+
187
+ 2009-08-07 Thomas Heller <theller@python.net>
188
+
189
+ * When an interface was specified in the call to
190
+ IClassObject.CreateInstance, return that instead of calling
191
+ GetBestInterface. Patch from James Teh.
192
+
193
+ 2009-08-04 Thomas Heller <theller@python.net>
194
+
195
+ * Added comtypes.CoGetClassObject() low-level function,
196
+ comtypes.client.GetClassObject() high-level function, and
197
+ implemented a pythonic interface to IClassFactory's CreateInstance
198
+ method:
199
+
200
+ def CreateInstance(self,
201
+ punkouter=None,
202
+ interface=None,
203
+ dynamic=False)
204
+
205
+ * Added the 'dynamic=False' parameter to the
206
+ comtypes.client.CoGetObject and comtypes.client.GetActiveObject
207
+ functions. Suggested by James Teh.
208
+
209
+ 2009-06-17 Thomas Heller <theller@python.net>
210
+
211
+ * comtypes.automation: Support VT_I8 and VT_UI8 SAFEARRAYs.
212
+
213
+ * comtypes._comobject: Restore compatibility with Python 2.3.
214
+
215
+ * Add the comtypes.IServiceProvider interface. Based on a patch
216
+ from Michael Curran.
217
+
218
+ 2009-04-30 Thomas Heller <theller@python.net>
219
+
220
+ * Change version number in repository to 0.6.0.2dev.
221
+
222
+ * Replace the VARIANTEnumerator implementation class in
223
+ comtypes.server.automation with a new one which should actually be
224
+ usable.
225
+
226
+ * A completely new way how localserver and inproc server instances
227
+ are managed:
228
+
229
+ A comtypes.LocalServer or comtypes.InprocServer instance
230
+ is attached to the comtypes.COMObject class at runtime.
231
+
232
+ These changes keep localserver running as long as
233
+ COMObject instances are alive.
234
+
235
+ 2009-04-29 Thomas Heller <theller@python.net>
236
+
237
+ * comtypes.errorinfo.ReportException now takes an additional
238
+ 'stacklevel' named argument.
239
+
240
+ * Add E_OUTOFMEMORY hresult code.
241
+
242
+ * Register the InprocServer32 only when running as script or
243
+ py2exe dll, not when running as py2exe exe server.
244
+
245
+ 2009-04-25 Thomas Heller <theller@python.net>
246
+
247
+ * SAFEARRAYs can now also be created from multi-dimensional numpy
248
+ arrays.
249
+
250
+ 2009-04-23 Thomas Heller <theller@python.net>
251
+
252
+ * Change version number in repository to 0.6.0.1dev.
253
+
254
+ * SAFEARRAYs can now also be created from array.array objects, and
255
+ from (one-dimensional) numpy arrays. This is a lot faster than
256
+ creating them from Python lists or tuples, at least for large
257
+ arrays.
258
+
259
+ * ctypes instances like c_int, c_ubyte, and so on can now be
260
+ assigned to VARIANT().value. This allows to force creation of
261
+ VARIANTs with the corresponding typecodes V_I4, VT_UI1 and alike.
262
+
263
+ * Accept typelibs that contain SAFEARRAY(char).
264
+
265
+ 2009-03-17 Thomas Heller <theller@python.net>
266
+
267
+ * Fixed the return type of ITypeLib::ReleaseTLibAttr, which is
268
+ documented wrongly in MSDN. The return type is void, not HRESULT.
269
+ Reported to cause crashes on Windows 7.
270
+
271
+ 2009-01-29 Thomas Heller <theller@python.net>
272
+
273
+ * Restore compatibility with Python 2.3.
274
+
275
+ * comtypes\client\_code_cache.py: Add missing 'import types' in
276
+ comtypes\client\_code_cache.py.
277
+
278
+ 2008-12-19 Thomas Heller <theller@python.net>
279
+
280
+ * Bumped version number to 0.6.0.
281
+
282
+ * comtypes.client.lazybind.Dipatch:
283
+ If __getitem__ fails the get the indexed default value, try
284
+ NewENUM. Implement __eq__ for Python 3 compatibility.
285
+
286
+ * Fix a problem with SAFEARRAYs where the contained data was
287
+ released too early.
288
+
289
+ * Fix property get handling for FUNC_PUREVIRTUAL functions in
290
+ lazybind.py
291
+
292
+ 2008-12-18 Thomas Heller <theller@python.net>
293
+
294
+ * Fix memoryleak in IEnumVARIANT.
295
+
296
+ 2008-12-12 Thomas Heller <theller@python.net>
297
+
298
+ * Merged changes from the dyndispatch branch:
299
+
300
+ * Add a comtypes.client.Constants class that provides a way to
301
+ access constants in the type library for an object, even when
302
+ no wrapper has been created for the type library. The
303
+ contants can be accessed as attributes like this, assuming
304
+ 'obj' is a COM object that exposes type information at runtime
305
+ via the dispatch interface:
306
+ Constants(obj).MyConstant
307
+
308
+ * New comtypes.client.lazybind module.
309
+
310
+ * Implement NamedProperty.__call__(). Extend
311
+ NamedProperty.__getitem__() and NamedProperty.__setitem__() so
312
+ that they accept a tuple, which make lazy bound objects more
313
+ compatible with early bound objects.
314
+
315
+ * Finished (for now) the comtypes.client.lazybind module.
316
+ IEnumVARIANT instances get a _dynamic attribute which defaults
317
+ to False. The values returned from next() calls are retrived
318
+ by calling ._set_value(self._dynamic) on the VARIANT result.
319
+
320
+ * comtypes.client.dynamic:
321
+
322
+ * Started changes based on ideas from Michael Curran: better
323
+ dynamic dispatch support, and a way to disable the
324
+ time-consuming wrapper code generation on demand.
325
+
326
+ * comtypes\client: Add a new 'dynamic=False' parameter to the
327
+ CreateObject function. This parameter allows to create a
328
+ dynamic dispatch object, bypassing the code generation.
329
+
330
+ * comtypes\automation.py: Add a new parameter to the
331
+ VARIANT._get_value(dynamic=False) method. This allows to
332
+ retrieve the current value as a _Dispatch() instance if the
333
+ typecode is VT_DISPATCH, bypassing the code generation on the
334
+ result. The IDispatch.Invoke implementation now uses this to
335
+ ensure that dynamic objects are returned when possible.
336
+
337
+ * comtypes\client\dynamic.py: Implement _Dispatch.__eq__ so
338
+ that we can compare instances for equality.
339
+
340
+
341
+ 2008-12-12 Thomas Heller <theller@python.net>
342
+
343
+ * Bumped version number to 0.5.3.
344
+
345
+ * Added VARIANT support for VT_I8 and VT_UI8 typecodes.
346
+
347
+ 2008-12-11 Thomas Heller <theller@python.net>
348
+
349
+ * Workaround for Python bug: Python 3 cannot handle a distutils
350
+ installscript in the setup script
351
+
352
+ * Merged the py3-branch:
353
+
354
+ Various changes for py3 compatibility. The setup script now uses
355
+ distutils.command.build_py.build_py_2to3 when run with Python 3.x,
356
+ and converts the sources into py3 syntax on the fly (in the build
357
+ directory).
358
+
359
+ 2008-11-26 Thomas Heller <theller@python.net>
360
+
361
+ * Added untested code to comtypes.server: RegisterActiveObject()
362
+ and RevokeActiveObject(), plus some flags.
363
+
364
+ * Applied a patch from Torbjørn Tyridal. This allows to
365
+ high-level implement methods in COM servers, and event handler
366
+ methods that have [in] and [out] arguments in mixed order.
367
+
368
+ 2008-11-05 Thomas Heller <theller@python.net>
369
+
370
+ * Add the IPersistFile interface to the comtypes.persist module.
371
+ Add comtypes.shelllink module which contains IShellLinkA and
372
+ IShellLinkW interfaces, plus the ShellLink coclass.
373
+
374
+ 2008-10-29 Thomas Heller <theller@python.net>
375
+
376
+ * Handle coclass pointers as arguments in com interface methods
377
+ correctly. Method calls will now accept pointers to the default
378
+ interface of this coclass.
379
+
380
+ * The Fire_Event() method in comtypes.server.connectionpoints now
381
+ returns a list of results.
382
+
383
+ 2008-10-10 Thomas Heller <theller@python.net>
384
+
385
+ * Import cStringIO, which should always be available on Windows,
386
+ instead of first trying cStringIO and then StringIO.
387
+
388
+ * Python 2.6 compatibility: use 'types.MethodType' instead of
389
+ 'new.instancemethod' to fix a -3 warning.
390
+
391
+ Use 'raise Exception(details)' instead of
392
+ 'raise Exception, details'.
393
+
394
+ Don't use tuple unpacking in exception handlers:
395
+ 'except COMError, err:
396
+ (hresult, text, details) = err'
397
+ instead of
398
+ 'except COMError, (hresult, text, details)'
399
+
400
+ * Python 2.4 compatibility: os.stat() raises OSError instead of
401
+ WindowsError when a file is not found.
402
+
403
+ 2008-09-19 Thomas Heller <theller@python.net>
404
+
405
+ * Bump version number to 0.5.3dev.
406
+
407
+ * Bump version number to 0.5.2.
408
+ Released comtypes-0.5.2.
409
+
410
+ * COMError nows prints the contained hresult in hex.
411
+
412
+ 2008-09-18 Thomas Heller <theller@python.net>
413
+
414
+ * Changed the version-checking code that the code generator
415
+ creates. Reintroduced (sorry, Anthony!) the comparison of
416
+ timestamps, if both the typelib and the generated module are
417
+ files.
418
+
419
+ 2008-09-10 Thomas Heller <theller@python.net>
420
+
421
+ * In comtypes\_comobject.py, Invoke: Named arguments passed to
422
+ COMObject.IDispatch_Invoke are now (hopefully!) unpacked
423
+ correctly. This should fix the order of parameters passed to MS
424
+ office (Word, Excel) and other (autocad?) event handlers.
425
+
426
+ 2008-09-04 Thomas Heller <theller@python.net>
427
+
428
+ * Removed the code that compared the timestamps of Python wrapper
429
+ modules and type library files - this approach was totally broken.
430
+
431
+ Generated modules are out of date if they were created by the code
432
+ generator module with a different version number; the version
433
+ number is now checked when a module is imported.
434
+
435
+ The current mechanism also works correctly for generated modules
436
+ in frozen scripts.
437
+
438
+ Thanks to Anthony Tuininga.
439
+
440
+ 2008-08-27 Thomas Heller <theller@python.net>
441
+
442
+ * Avoid double-free of BSTR strings under certain conditions.
443
+
444
+ * A NULL handler is now added to the comtypes logger; this
445
+ prevents messages like 'No handlers could be found for logger
446
+ "comtypes"' when an error message is logged and the logging module
447
+ is not configured.
448
+
449
+ https://sourceforge.net/tracker/index.php?func=detail&aid=2066024&group_id=115265&atid=692940
450
+
451
+ 2008-08-20 Thomas Heller <theller@python.net>
452
+
453
+ * Changed the codegenerator to generate 'c_longlong' instead of
454
+ 'c_float' for CURRENCY. This is not really correct since the
455
+ CURRENCY value is a fixed point integer scaled by a factor of
456
+ 10000, but at least the code will not crash. Need a test case.
457
+
458
+ * comtypes.server.register: Add an optional 'executable' parameter
459
+ to Registrar.register(cls), can be used to override the executable
460
+ image name that comtypes detects itself. Patch by Michael
461
+ Robellard.
462
+
463
+ 2008-08-15 Thomas Heller <theller@python.net>
464
+
465
+ * comtypes.client._find_gen_dir() improved (based on a patch and
466
+ helpful thoughts of Stefan Schukat): If comtypes.gen is not a
467
+ directory in the filesystem, or not writeable by users, a new
468
+ directory is created which will cache generated code. This could
469
+ be the case if comtypes is installed in a directory that has no
470
+ write permissions by the urrent user, if the comtypes package
471
+ resides in a zip-archive or a zipped egg, or if comtypes is used
472
+ in a py2exe'd script.
473
+
474
+ '%APPDATA%\<username>\Python\Python<XY>\comtypes_cache'
475
+
476
+ is used for a normal Python script, for a py2exe frozen executables
477
+ the directory will be
478
+
479
+ '%TEMP%\comtypes_cache\<imagebasename>-<XY>'
480
+
481
+ where <imagebasename> is the basename without extension of the
482
+ frozen executable image, and <XY> is the major and minor Python
483
+ version number, '25' for example.
484
+
485
+ This makes sure that generated modules will *always* cached in the
486
+ file system.
487
+
488
+ 2008-08-13 Thomas Heller <theller@python.net>
489
+
490
+ * comtypes\automation.py: Allow this module to be imported on
491
+ Windows CE. Using safearrays on Windows CE will not work. I'm not
492
+ sure if they are used much.
493
+
494
+ 2008-08-08 Thomas Heller <theller@python.net>
495
+
496
+ * Implement InterlockedIncrement and InterlockedDecrement for
497
+ win64.
498
+
499
+ 2008-08-07 Thomas Heller <theller@python.net>
500
+
501
+ * Bump version number to 0.5.1
502
+
503
+ * comtypes\tools\codegenerator.py: Change the order of the
504
+ interfaces in the _com_interfaces_ and _outgoing_interfaces_ list
505
+ so that the default interface is the first one. This fixes the
506
+ bug that GetEvents() and ShowEvents() sometimes did use the wrong
507
+ event interface.
508
+
509
+ 2008-08-06 Thomas Heller <theller@python.net>
510
+
511
+ * The repository was moved from python.org to sourceforge.net.
512
+ The svn trunk URL is now:
513
+ https://comtypes.svn.sourceforge.net/svnroot/comtypes/trunk
514
+
515
+ The script that extracted the repository is in
516
+ admin/extract_comtypes_repo. The repository structure and the
517
+ revision numbers have changed; the last revision on python.org is
518
+ rev 65336, this was imported as revision rev 355.
519
+
520
+ 2008-07-18 Thomas Heller <theller@python.net>
521
+
522
+ * comtypes\test\find_memleak.py: Windows CE does not have
523
+ GetProcessMemoryInfo; disable the find_memleak function because it
524
+ cannot work.
525
+
526
+ * comtypes\client\_generate.py, comtypes\typeinfo.py: Windows CE
527
+ doesn't have QueryPathOfRegTypeLib - try to emulate it. Also it
528
+ doesn't use tha PATH environment variable; use a hardcoded search
529
+ path for type libraries.
530
+
531
+ * comtypes\test\runtests.py: Define a main() function.
532
+
533
+ 2008-05-29 Thomas Heller <theller@python.net>
534
+
535
+ * Improved the [in, out] parameter workaround. These parameters
536
+ are now optional. Removed the special codegeneration for [in,
537
+ out] parameters in IEnumXXX.Next methods. Added test.
538
+
539
+ 2008-05-16 Thomas Heller <theller@python.net>
540
+
541
+ * Provide a workaround for a bug in ctypes. This allows methods
542
+ using [in, out] parameters to correctly convert native Python
543
+ values.
544
+
545
+ * comtypes/tools/tlbparser.py: When GetRefTypeInfo(hreftype)
546
+ fails, emit a warning and generate a fake type instead.
547
+
548
+ 2008-05-07 Thomas Heller <theller@python.net>
549
+
550
+ * Fixed the definition of VARIANT.empty and VARIANT.null; the
551
+ values were swapped.
552
+ https://sourceforge.net/tracker/?func=detail&atid=692940&aid=1959722&group_id=115265
553
+
554
+ 2008-04-25 Thomas Heller <theller@python.net>
555
+
556
+ * Replace logger.info() calls with logger.debug() since it is more
557
+ appropriate.
558
+
559
+ In comtypes.server.connectionpoints, when a event notification
560
+ fails with an error indicating that the event sink is no longer
561
+ present, close the connection and log a warning.
562
+
563
+ The __repr__ of VARIANT changed again to make it a little bit shorter.
564
+
565
+ VARIANT instances of VT_BREF are NOT unpacked when the .value
566
+ attribute as accessed. The value instead can be got or set by
567
+ indexing, so the api is the same as for pointer instances:
568
+
569
+ print byref_var[0]
570
+ byref_var[0] = value
571
+
572
+
573
+ 2008-04-17 Thomas Heller <theller@python.net>
574
+
575
+ * More changes merged from upstream svn 26400, add support for
576
+ implementing (non-dual) dispinterfaces (work in progress).
577
+
578
+ * Merge in a lot of changes from the private upstream repository
579
+ 26394; mainly much better support for implementing comtypes
580
+ servers.
581
+
582
+ 2008-04-09 Thomas Heller <theller@python.net>
583
+
584
+ * Bump version number to 0.4.3a
585
+
586
+ * Released version comtypes 0.4.2.
587
+
588
+ * comtypes.util: New module, containing the byref_at() and
589
+ cast_field() helper functions.
590
+
591
+ 2008-04-07 Thomas Heller <theller@python.net>
592
+
593
+ * Fix the codegenerator to handle all kinds of IEnumXXX::Next
594
+ method signatures; the second and third parameters may be [out] or
595
+ [in, out].
596
+
597
+ 2008-03-07 Thomas Heller <theller@python.net>
598
+
599
+ * Implemented support for SAFEARRAYs containing com interface
600
+ pointers.
601
+
602
+ 2008-03-04 Thomas Heller <theller@python.net>
603
+
604
+ * Add comtypes.client.gen_dir to comtypes.gen.__path__ so that the
605
+ codegenerator can import its generated module(s).
606
+
607
+ 2008-02-08 Thomas Heller <theller@python.net>
608
+
609
+ * Hacked support for 'open array' [out] parameters in COM methods.
610
+ These are arrays that have both size_is() and length_is() in IDL.
611
+ See the comments in comtypes\tools\codegenerator.py, search for
612
+ 'OPENARRAY'.
613
+
614
+ 2008-02-06 Thomas Heller <theller@python.net>
615
+
616
+ * The badly named comtypes.client.wrap function was renamed into
617
+ comtypes.client.GetBestInterface. For backwards compatibility the
618
+ old name stays as an alias.
619
+
620
+ * Replaced the comtypes.messageloop.add_filter(filter) function
621
+ with comtypes-messageloop.insert_filter(index, filter). This
622
+ allows to specify the order in which the filters are applied.
623
+
624
+ * Added a workaround for the buggy _ctypes.COMError in Python 2.5
625
+ and 2.51.
626
+
627
+ 2007-12-19 Thomas Heller <theller@python.net>
628
+
629
+ * Bump version number to 0.4.2.
630
+
631
+ * Special methods (__iter__ and so on) did not work on
632
+ dispinterfaces, because the __map_case__ dictionary was not
633
+ populated.
634
+
635
+ 2007-11-23 Thomas Heller <theller@python.net>
636
+
637
+ * Released version comtypes 0.4.1.
638
+
639
+ * Add a PumpEvents(timeout) function to comtypes.client. This
640
+ function calls the win32 CoWaitForMultipleHandles() function which
641
+ will wait in a way compatible with all types of apartments;
642
+ additionally this function can be interrupted with Control+C.
643
+
644
+ 2007-11-21 Thomas Heller <theller@python.net>
645
+
646
+ * comtypes\__init__.py: Add docstrings to special methods. Make
647
+ named_property a data descriptor by providing a __set__ method
648
+ (which will raise AttributeError when called).
649
+
650
+ 2007-11-15 Thomas Heller <theller@python.net>
651
+
652
+ * comtypes\__init__.py: Fix bound_named_property.__setitem__ so
653
+ that COM properties can be set that require zero or more than one
654
+ arguments.
655
+
656
+ * comtypes\__init__.py: Restructure the code that extend the COM
657
+ interface subclasses with __len__, __call__, __getitem__, and
658
+ __iter__ methods. This is done with the comtypes.partial module,
659
+ and apparently had strange behaviour when the code is run under a
660
+ debugger.
661
+
662
+ 2007-11-07 Thomas Heller <theller@python.net>
663
+
664
+ * Changed version number to 0.4.1.
665
+
666
+ * Add an post-install script that will (after confirmation) remove
667
+ the comtypes\gen directory containing the generated modules.
668
+
669
+ 2007-11-02 Thomas Heller <theller@python.net>
670
+
671
+ * Bump version number to 0.4.0.
672
+ Released version 0.4.0.
673
+
674
+ * In _wrap_coclass, attach a __clsid attribute to the returned
675
+ object. This allows, for example, to find outgoing interfaces when
676
+ a CoClass is returned from a COM method call.
677
+
678
+ 2007-10-26 Thomas Heller <theller@python.net>
679
+
680
+ * Implemented property get, put, and putref with arguments
681
+ in comtypes.client.dynamic.
682
+
683
+ * When a COM property has both propput and propputref accessor
684
+ methods, the Python property fset methods determines the type of
685
+ the argument.
686
+
687
+ If the argument is a COM interface pointer, or a VARIANT
688
+ containing one, then propputref is called, otherwise proput is
689
+ called to set the property.
690
+
691
+ * Allow the creation of SAFEARRAY(UDT) types even if the UDT has
692
+ no _recordinfo_. Creating instances of these types will fail
693
+ however since no IRecordInfo pointer can be created. This change
694
+ allows to import typelib wrappers that have UDTs without guids.
695
+
696
+ 2007-10-24 Thomas Heller <theller@python.net>
697
+
698
+ * When a COM property has a 'propputref' but no 'propput' accessor
699
+ method, use the former in the same way as a 'propput' would work.
700
+ When both 'propputref' and 'propput' are present, raise a
701
+ TypeError because we cannot handle this case for now.
702
+
703
+ * Fixed infinit recursion error in __getattr__ implementation.
704
+
705
+ * comtypes.dynamic._Dispatch now implements a __setattr__ methods
706
+ that will call to Invoke() with DISPATCH_PROPERTYPUT or
707
+ DISPATCH_PROPERTYPUTREF.
708
+
709
+ * Handle DISPATCH_PROPERTYPUTREF in IDispatch.Invoke
710
+ implementation.
711
+
712
+ * comtypes.dynamic._Dispatch objects can now be used as VARIANT
713
+ value.
714
+
715
+ 2007-10-22 Thomas Heller <theller@python.net>
716
+
717
+ * The repr of a COM pointer instance now includes the pointer
718
+ value for easier debugging.
719
+
720
+ 2007-10-17 Thomas Heller <theller@python.net>
721
+
722
+ * Disable the VT_UNKNOWN and VT_DISPATCH safearray codes, they do
723
+ not work yet.
724
+
725
+ * More multidimensional safearray tests, bug fixes.
726
+
727
+ * Speed up the unpacking of 1- and 2-dimensional safearrays.
728
+
729
+ * Lots of refatoring of the new SAFEARRAY code; added a docstring
730
+ to the public function comtypes.safearray._midlSAFEARRAY.
731
+
732
+ * For easier debugging, the repr of a VARIANT instance now
733
+ contains the vartype.
734
+
735
+ 2007-10-16 Thomas Heller <theller@python.net>
736
+
737
+ * Changed version number to 0.3.4.
738
+
739
+ * Mega-patch: Completely rewritten safearray support. SAFERARRAYs
740
+ are now automatically converted to Python tuples when they are
741
+ received as [out] parameters in COM methods, and sequences are
742
+ accepted as SAFEARRAY [in] parameters. Multidimensional safearray
743
+ support still has to be added.
744
+
745
+ * VARIANTs can now also contain SAFEARRAYs. VARIANTs containing
746
+ SAFEARRAYs with a typecode other than VT_VARIANT, Python
747
+ array.array instances can be used.
748
+
749
+ * Added a comtypes.messageloop module that contains a simple
750
+ messageloop which allows to add and remove custom filter functions.
751
+
752
+ * Removed the comtypes.client.PumpWaitingMessages function.
753
+
754
+ * Fixed the codegenerator so that it handles unnamed method
755
+ parameters.
756
+
757
+ 2007-10-04 Thomas Heller <theller@python.net>
758
+
759
+ * Several refactorings and a small bugfix from the upstream
760
+ repository.
761
+
762
+ * In the comtypes\gen\... type library wrappers, the code
763
+ generator now creates a commented out template that shows an
764
+ implementation for each interface it wraps.
765
+
766
+ 2007-10-02 Thomas Heller <theller@python.net>
767
+
768
+ * comtypes.safearray.UnpackSafeArray can now unpack SAFEARRAYs
769
+ that containt UDT (user defined data types). Patch by Rimon Barr,
770
+ testcase by me.
771
+
772
+ 2007-09-14 Thomas Heller <theller@python.net>
773
+
774
+ * Released version 0.3.3.
775
+
776
+ 2007-09-12 Thomas Heller <theller@python.net>
777
+
778
+ * Bump version number to 0.3.3.
779
+
780
+ 2007-09-03 Thomas Heller <theller@python.net>
781
+
782
+ * Add the partial module, which allows the usual class statement
783
+ syntax to attach methods to already existing classes.
784
+
785
+ * Use partial in comtypes.automation to attach methods to
786
+ POINTER(VARIANT).
787
+
788
+
789
+ 2007-08-24 Thomas Heller <theller@python.net>
790
+
791
+ * Added a custom outgoing interface to TestComServer.idl.
792
+ Implemented IConnectionPointContainer in TestComServer.py.
793
+
794
+ * comtypes.server.automation: Fix the IProvideClassInfo2.GetGUID
795
+ implementation.
796
+
797
+ * comtypes.client: Fix ShowEvents(): COM methods must return a
798
+ HRESULT value, not None. Fix several NameErrors in the
799
+ PumpWaitingMessages function.
800
+
801
+ 2007-08-14 Thomas Heller <theller@python.net>
802
+
803
+ * comtypes\tools\codegenerator.py: Generate the needed imports
804
+ when COM defaultvalues are used in parameter lists.
805
+
806
+ 2007-08-10 Thomas Heller <theller@python.net>
807
+
808
+ * Add comtypes.client.PumpWaitingMessages() helper funtion. May
809
+ be used to dispatch COM events in single threaded appartments.
810
+
811
+ 2007-08-09 Thomas Heller <theller@python.net>
812
+
813
+ * Added the IRecordInfo interface to comtypes.typeinfo.
814
+
815
+ * If UDTs (structures or unions) in a typelib have a GUID defined,
816
+ add a _recordinfo_ attribute to the generated code. This allows
817
+ to call GetRecordInfoFromGuids(*_recordinfo_) to get an
818
+ IRecordInfo pointer.
819
+
820
+ * Released comtypes-0.3.2
821
+
822
+ 2007-08-08 Thomas Heller <theller@python.net>
823
+
824
+ * Add better support for dynamic dispatch, comtypes.CoUninitialize
825
+ function. Patch from Belyaev Dmitry.
826
+
827
+ 2007-03-23 Thomas Heller <theller@python.net>
828
+
829
+ * Fixed: TextWrap did destroy the generated code when very long
830
+ symbol names used were in the type library.
831
+
832
+ * The IEnumVARIANT.Next(celt) method can now be called with
833
+ celt != 1. It will return a list of items then; this allows to get
834
+ more objects at a time.
835
+
836
+ 2007-03-22 Thomas Heller <theller@python.net>
837
+
838
+ * In comtypes.hresult, add the hex HRESULT values in comments for
839
+ reference.
840
+
841
+ * In comtypes.errorinfo.ReportError, use the supplied hresult
842
+ value.
843
+
844
+ * Improved _NewEnum client-side handling.
845
+
846
+ * When a relative pathname to a type library is passed to
847
+ comtypes.client.GetModule(), the pathname is now interpreted
848
+ relative to the __file__ of the caller if this pathname actually
849
+ exists in the filesystem.
850
+
851
+ * Fixed several memory leaks and other problems in the BSTR
852
+ implementation. The previous change that requires ctypes version
853
+ 1.0.2 was backed out again because it was the wrong approach.
854
+
855
+ 2007-01-25 Thomas Heller <theller@python.net>
856
+
857
+ NOTE: This comment is no longer true, see above.
858
+ * Removed unneeded methods from comtypes.BSTR. The resource
859
+ management is handled by ctypes; this requires ctypes version
860
+ 1.0.2 to correctly release BSTR resources.
861
+
862
+ 2007-01-19 Thomas Heller <theller@python.net>
863
+
864
+ * The comtypes.test package is now self contained, it does no
865
+ longer depend on ctypes.test which may not be available.
866
+
867
+ 2007-01-16 Thomas Heller <theller@python.net>
868
+
869
+ * comtypes.tools.tlbparser: Sort interface methods by VTable order
870
+ (there are typeinfos that list the methods in a different order).
871
+
872
+ 2007-01-11 Thomas Heller <theller@python.net>
873
+
874
+ * comtypes codegenerator: Do not hardcode pointer and VARIANT size
875
+ and alignment. This fixes code generation issues on 64-bit
876
+ Windows.
877
+
878
+ * comtypes.automation: Fix size of VARIANT definition for 64-bit
879
+ Windows.
880
+
881
+ 2007-01-10 Thomas Heller <theller@python.net>
882
+
883
+ * (Re-)Added comtypes.__version__ again, and set it to "0.3.2".
884
+
885
+ * Removed assert statements about sizeof() and alingment() of
886
+ generated Structure subclasses for portability to 64-bit Windows.
887
+
888
+ * Iterating over COM collections retrived the _NewEnum property
889
+ twice.
890
+
891
+ * Cleaned up the codegeneration. Generated modules now have a
892
+ 'typelib_path' variable that points to the type library used to
893
+ generate them, 'CoClass' subclasses have '_typelib_path_' which is
894
+ used for registration.
895
+
896
+ 2007-01-02 Thomas Heller <theller@python.net>
897
+
898
+ * comtypes\client\_generate.py: Make sure that generated modules
899
+ have a __file__ attribute, even if gen_dir is None. The filename
900
+ part of the __file__ attribute is '<memory>' in this case.
901
+
902
+ 2006-12-20 Thomas Heller <theller@python.net>
903
+
904
+ * comtypes.client.GetModule now recreates the Python module
905
+ automatically if the type library file timestamp is newer than the
906
+ module. The actual code for GetModule now lives in a separate
907
+ module comtypes.client._generate, but the GetModule symbol is
908
+ still exposed from comtypes.client.
909
+
910
+ * COM method implementations are now found doing case insensitive
911
+ lookup if the interfaces "_case_insensitivity_" attribute is True.
912
+
913
+ * Some memory leaks with BSTR have been fixed.
914
+
915
+ 2006-12-13 Thomas Heller <theller@python.net>
916
+
917
+ * Fix the case insensitivity for COM interfaces (client-side only,
918
+ so far): If the Python interface class has a "_case_insensitive_"
919
+ attribute which is True, access of methods and properties is case
920
+ insensitive.
921
+
922
+ By default, this attribute is set to True in interfaces generated
923
+ from type libraries, because type libraries generally don't
924
+ preserve the casing of identifiers from IDL interface definitions.
925
+
926
+ 2006-12-06 Thomas Heller <theller@python.net>
927
+
928
+ * Fix comtypes.test.test_typeinfo to work when either IE6 or IE7
929
+ is installed.
930
+
931
+ * comtypes.hresult: Add MAKE_HRESULT and HRESULT_FROM_WIN32
932
+ functions which return HRESULT values.
933
+
934
+ * Receive events from the event interface plus all the super
935
+ interfaces.
936
+
937
+ * When a NULL IDispatch pointer is received as an [out] parameter,
938
+ return None instead of the NULL pointer.
939
+
940
+ * Changed the way COM is shut down. No longer a need to call the
941
+ possibly expensive (or dangerous?) _is_com_initialized.
942
+
943
+ 2006-11-15 Thomas Heller <theller@python.net>
944
+
945
+ * comtypes.client._events.GetEvents: Catch the exception when
946
+ IProvideClassInfo::GetGUID fails, and try the next strategy for
947
+ finding the outgoing interface.
948
+
949
+ * comtypes now has a __version__ attribute. This is set to
950
+ "0.3.1". Added test command to the setup script.
951
+
952
+ * New function comtypes.client.ShowEvents(source, interface=None).
953
+ This function is useful for debugging; it connects the source
954
+ object to a special event receiver that will first print out all
955
+ the event names, and later print out the events as they occur.
956
+
957
+ 2006-08-04 Thomas Heller <theller@python.net>
958
+
959
+ * Fixed quite some tests to work or be skipped on Windows CE.
960
+
961
+ * comtypes\typesinfo.py: Added ICreateTypeLib2 interface, and
962
+ changed the CreateTypeLib function to return a pointer to that
963
+ interface.
964
+
965
+ * Added a COM server for testing to the comtypes.test package,
966
+ plus tests for it. There are still several memory leaks in
967
+ comtypes, as the tests show.
968
+
969
+ 2006-08-03 Thomas Heller <theller@python.net>
970
+
971
+ * comtypes\server\register.py: For localserver, the wrong script
972
+ was registered when the class was not in a toplevel module.
973
+
974
+ 2006-08-02 Thomas Heller <theller@python.net>
975
+
976
+ * Version number changed to 0.3.0, added 'comtypes.server' package
977
+ to the setup script.
978
+
979
+ * Merged in a LOT of changes from the upstream version.
980
+ For details see the svn commit messages.
981
+
982
+ The most prominent changes are:
983
+
984
+ - The strings returned by ITypeInfo::GetDocumentation() do not
985
+ contain NUL characters any more (some buggy typelibs contain them)
986
+
987
+ - comtypes.client.GetEvents returns a 'connection object', which
988
+ will UnAdvise the connection when deleted. In other words, you
989
+ must keep the return value of the GetEvents call as long as you
990
+ want to reveive events.
991
+
992
+ - Pointer to COM interface pointer instances __setitem__ method manages
993
+ the COM refcount correctly.
994
+
995
+ - Changes in the COM shutdown code: maybe the win32com way of
996
+ never calling CoUninitialize() is the best compromise ;-), but I
997
+ have not yet given up.
998
+
999
+ 2006-07-11 Thomas Heller <theller@python.net>
1000
+
1001
+ * Imported comtypes 0.2.1 into the python.org svn repository.
1002
+
1003
+ 2006-04-25 Thomas Heller <theller@python.net>
1004
+
1005
+ * Released version 0.2.1 (svn revision 8).
1006
+
1007
+ 2006-03-07 Thomas Heller <theller@python.net>
1008
+
1009
+ * Imported comtypes from the ctypes CVS repository into the
1010
+ comtypes SVN repository.
1011
+
1012
+ 2006-03-03 Thomas Heller <theller@python.net>
1013
+
1014
+ * (Repository): Move the code generator modules into the
1015
+ comtypes.tools package. Should be refactored later - most
1016
+ important is now that it works again.
1017
+
1018
+ 2006-02-11 Thomas Heller <theller@python.net>
1019
+
1020
+ * Merged in lots of changes from the upstream version. Started
1021
+ localserver support.
1022
+
1023
+ 2005-10-20 Thomas Heller <theller@python.net>
1024
+
1025
+ * comtypes\__init__.py: Add logging for easier debugging. Add
1026
+ COINIT_... flags. Use the value of sys.coinit_flags (when
1027
+ defined) in the call to CoInitializeEx, this allows to use
1028
+ multithreaded appartments.
1029
+
1030
+ Clean up the lifetime management of implemented COM objects. Make
1031
+ COM attribute access case insensitive (has a large impact on the
1032
+ performance, unfortunately).
1033
+
1034
+ Move the COMObject definition in a separate module
1035
+ comtypes\_comobject.py.
1036
+
1037
+ * comtypes\tools\codegenerator.py: Don't generate dispid() for
1038
+ non-dispatch based interfaces.
1039
+
1040
+ * comtypes\client\__init__.py: Add logging for easier debugging.
1041
+
1042
+ * comtypes\persist.py: Remove dispid() from non-dispatch based
1043
+ interfaces. Correct the Read method. Hack around the
1044
+ POINTER(c_wchar) <-> c_wchar_p problem.
1045
+
1046
+ 2005-10-11 Thomas Heller <theller@python.net>
1047
+
1048
+ * comtypes\client\__init__.py: Renamed CreateModule() into
1049
+ GetModule(). Removed the 'modulename' parameter from all the
1050
+ function calls - the typelib wrapper alias name is now taken from
1051
+ the typelib library name. Suggestions from Bruce Dodson.
1052
+
1053
+ 2005-09-29 Thomas Heller <theller@python.net>
1054
+
1055
+ * comtypes\GUID.py: Rename the GUID.progid() classmethod into
1056
+ GUID.as_progid().
1057
+
1058
+ 2005-09-02 Thomas Heller <theller@python.net>
1059
+
1060
+ * comtypes\client\__init__.py: Can now receive events from custom,
1061
+ non-dispatch interfaces.