Strange Python COM behaviour

a_bogdan_marinescu a_bogdan_marinescu at yahoo.com
Fri Nov 14 05:05:39 EST 2003


    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,

    Bogdan Marinescu






More information about the Python-list mailing list