win32com: get error 80004005 in attempt to use a pythom COM serve r

LArbilla at pav.com LArbilla at pav.com
Mon Aug 6 13:15:04 EDT 2001


I'm seriously stuck (2 days now) at my first attempt to use win32com to
write a com server in python.
I've search and read all I could find and I still don't see how to solve the
problem:
  
1) I wrote a simple COM server in python, it registers and I can see it in
PythonWin's COM Browser:
2) I tried to use it from VB:
	Dim theServer As Object
	Set theServer = CreateObject("Python.Rae")
   and got error -2147467259 (80004005) "Unexpected Python Error:
exceptions.ImportError: No module named raecom"
3) So, I decided to first test it from Python.
   The client calls the server's  __init__ (from win32com.client.Dispatch), 
   but the call fails with the same error (in python, it only shows
-2147467259)
3) I tried:
	- putting all of the code in c:\program files\python  (where python
and win32com are installed)
		and it didn't make a difference
	- I also tried commenting out the line "_reg_class_spec", which has
the only reference to "raecom"
		and it didn't make a difference

I would appreciate any tips. I'm sure it is something simple.
Below is the code for the server, the client and the "trace".
Thanks a bunch!!
Laura.
larbilla at pav.com

SERVER CODE:
import win32com.server
import raeapimodule
import win32traceutil

class Rae:
	_public_methods_ = ['ConfigFromFile', 'Init']
	_public_attrs_ = ['projectName']
	_readonly_attrs_ = ['projectName']
	_reg_clsid_ = "{8680B790-875A-11d5-9A59-005004630197}"
	_reg_progid_ = "Python.Rae"
	_reg_desc_ = "Python COM RAE Wrapper"
	_reg_class_spec_ = "raecom.Rae"
#only for dual interfaces
#	_com_interfaces_ = ['IRae']
	def __init__(self):
		print "raecomp.py.class Rae.__init__ being called"
		self._pid = -1
		print "raecomp.py.class Rae.__init__ uno"
		self.projectName = ""
		print "raecomp.py.class Rae.__init__ dos"
		return 1
	def ConfigFromFile(self, fileName):
		print "raecom.py.class Rae.ConfigFromFile being called"
		self._pid = raeapimodule.ConfigFromFile(fileName)
		if (self._pid > 0):
			self.projectName = fileName
		return self._pid
	def Init(self):
		print "raecom.py.class Rae.Init being called"
		status = raeapimodule.Init(self._pid)
		return status

if __name__ == '__main__':
	import win32com.server.register
	win32com.server.register.UseCommandLine(Rae)

CLIENT CODE:

import win32com.client
print "start"
o = win32com.client.Dispatch("Python.Rae")
print "called dispatch"
o.ConfigFromFile("c:\\larbilla\\test\\raetest\\pull_multimap_4.pi_ot_config"
)
print "called configfromfile"
print o.projectName

TRACEUTIL:

Registered: Python.Rae 
start  <--- this actually shows in the command line
raecomp.py.class Rae.__init__ being called
raecomp.py.class Rae.__init__ uno
raecomp.py.class Rae.__init__ dos
Traceback (innermost last):
  File "raecomtest.py", line 4, in ?
    o = win32com.client.Dispatch("Python.Rae")
  File "C:\Program Files\Python\win32com\client\__init__.py", line 94, in
Dispatch
    dispatch, userName =
dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Program Files\Python\win32com\client\dynamic.py", line 80, in
_GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Program Files\Python\win32com\client\dynamic.py", line 71, in
_GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx,
pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147467259, 'Unspecified error', None, None)






More information about the Python-list mailing list