Roger Upole wrote: > Ross McKerchar wrote: > >> Any suggestions would be much appreciated - even just some key phrases >> that may help energise my search efforts... >> > An object needs to be registered in the Running Object Table (ROT) for this to > work. See pythoncom.RegisterActiveObject. > Ta very much - that's exactly the missing snippet I was looking for.
For posterity, here's my updated test solution: ----------------------------------------------- class TestThread(threading.Thread): def run(self): pythoncom.CoInitialize() wrapped = win32com.server.util.wrap(self.comobj) handle = pythoncom.RegisterActiveObject(wrapped, self.comobj._reg_clsid_, 0) time.sleep(20) pythoncom.RevokeActiveObject(handle) class FaxJob(object): _public_methods_ = ["go"] _reg_progid_ = "pythonutils.test" _reg_clsid_ = "{57E47876-69CB-4822-92F1-B8D2716F54A4}" _reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER testthread = TestThread() def go(self): if self.testthread.isAlive(): return "Server is already running" else: self.testthread.comobj = self self.testthread.start() return "Starting new server" ----------------------------------------------- Many thanks. -ross _______________________________________________ Python-win32 mailing list Python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32