COM Error -- Urgent help

Teja tejovathi.p at gmail.com
Tue Oct 17 00:55:22 EDT 2006


HI all,

I have a problem in accesing COM objects in threads. To be precise,
lets assume that I have a class GenericFunctions which is defined as
follows:


import win32com.client, pythoncom, thread
ie=win32com.client.Dispatch('internetexplorer.application')
ie.Visible=1


class GenericFunctions:


       def __init__(self):
             print "In Constructor of Generic Functions"


       def MyNavigate(self,dest):
             ie.Navigate(dest)


Now there  is another file Main.py which is defined as follows:


import win32com.client, pythoncom, thread
from GenericFunctions import *
obj = GenericFunctions()


class Mainclass:
       def __init__(self);
            print "In Constructor of Main class"


       def threadFunction(self,dest):
            pythoncom.CoInitialize()
            d=pythoncom.CoGetInterfaceAndReleaseStream(s,
pythoncom.IID_IDispatch)
            my_ie=win32com.client.Dispatch(d)
            obj.func(dest)          # this is gving an error.
            pythoncom.CoUninitialize()


if __name__ == "__main__":


s=pythoncom.CoMarshalInterThreadInterfaceInStream(pythoncom.IID_IDispatch,i­e)

         thread.start_new_thread(self.nav, (s,'www.google.com')


Basically, I want to access object of GenericFunctions class inside
threadFunction(). However I was able to execute
my_ie.Navigate("google.com"). But that was not I wanted. I am not
knowing where the error is....
Please let me know the solution ASAP... 


Teja.P




More information about the Python-list mailing list