Strange Python COM behaviour
Mark Hammond
mhammond at skippinet.com.au
Sat Nov 15 21:12:34 EST 2003
a_bogdan_marinescu wrote:
> Hello all,
>
> I'm trying to do some COM automation from Python (using Mark
> Hammond's Win32 extensions, of course) and I'm getting some very
> strange errors. Specifically, I try to use a COM object that supports
> events, and I'm instantiating it like this:
>
> eventobj = win32com.client.DispatchWithEvents( crtthread,
> DebuggerThreadEvents )
>
> When I try to do this, I get the following error:
>
> ...
> File "d:\work\scripts\automation\autobuild.py", line 106, in
> execute_one_file
> eventobj = win32com.client.DispatchWithEvents( crtthread,
> DebuggerThreadEvents )
> File "C:\Python23\lib\site-packages\win32com\client\__init__.py",
> line 264, in DispatchWithEvents
> result_class = new.classobj("COMEventClass", (disp_class,
> events_class, user_event_class), {"__setattr__" : _event_setattr_})
> TypeError: str() takes at most 1 argument (3 given)
>
> It seems that events_class's type is str ( as returned by
> getevents() function in __init__.py file from win32com/Client
> directory) instead of 'classobj' as it is supposed to be. event_class
> is actually a simple string showing a CLSID. I'm new to COM and I
> can't understand why this is happening. Please help me if you can.
> Regards,
It looks to me as if this error could occur if the event interface you
are trying to implement is not based on IDispatch. It looks like a bug
in win32com - what is the object you are trying to use?
Mark.
More information about the Python-list
mailing list