COM and Threads

Roger Upole rupole at
Fri Oct 13 01:37:34 EDT 2006

"Teja" <tejovathi.p at> wrote:
> Roger Upole wrote:
>> "Teja" <tejovathi.p at> wrote:
>> >I have an application which uses COM 's Dispatch to create a COM based
>> > object. Now I need to upgrade the application to a threaded one. But
>> > its giving an error that COM and threads wont go together. Specifically
>> > its an attribute error at the point where COM object is invoked. Any
>> > pointers please??????
>> >
>> An actual traceback would help.
>> At a guess, when using COM in a thread
>> you need to call pythoncom.CoInitialize and
>> CoUninitialize yourself.
>>      Roger
> Actually Roger, this is the scenario....
> I create a COM object at the beginnning of the main thread. In the sub
> thread, I need to access the same instance of the COM object. If it
> were a normal object ie. not a COM obj, i was able to do it. But if it
> were a COM object, its giving an attribute error? Should I pass a COM
> object to the thread. If so How? Please let me know ASAP... Thnks

To pass COM objects between threads, usually they'll need to be marshaled
using pythoncom.CoMarshalInterThreadInterfaceInStream, and unmarshaled
with pythoncom.CoGetInterfaceAndReleaseStream.


More information about the Python-list mailing list