[python-win32] com wrapper problem
Paul Rudin
paul_rudin at scientia.com
Tue Dec 9 12:13:57 EST 2003
I posted this stuff to comp.lang.python, sombody suggested this was a
better forum for this:
>>>>> "Paul" == Paul Rudin <paul_rudin at scientia.com> writes:
>> I'm having a problem with the python wrappers generated from a
>> type library.
>> The symptom is that I get failures to find connections points
>> inside the wrappers when called from DispatchWithEvents or
>> WithEvents - e.g. "com_error: (-2147220992,
>> 'CONNECT_E_NOCONNECTION', None, None)"
>> It seems that the coclass_clsid property of some classes is
>> incorrect. It seems that when a coclass in the type library has
>> multiple "[source] dispinterface" it can happen that this
>> coclass can end up as the one referenced by each of the
>> corresponding DispatchBaseClass subclasses via the
>> coclass_clsid property, whereas probably what should happen is
>> that only ones that are default should be so treated.
>> But maybe I'm misdiagnosing the problem; has anyone else seen
>> this and/or know what the problem is?
> To test this I had a quick look at the code that generates the
> wrappers. In win32com/client/genpy.py The class Generator has a
> method _Build_CoClassChildren. Replacing the line:
> dispItem.coclass_clsid = coclass.clsid
> with the lines:
> if flags & pythoncom.IMPLTYPEFLAG_FDEFAULT:
> dispItem.coclass_clsid = coclass.clsid
> seems to solve the problem, although perhaps this breaks
> something else?
More information about the Python-win32
mailing list