Python COM Server

Chris chris.rowley at ntlworld.com
Fri May 19 18:27:37 EDT 2000


I am trying to build a COM object with Python that I can reference from VB.
I have followed examples in Python-programming on Win32 and from other
sources.  I manage to register the COM objects and in VB it does the
"CreateObject" bit but will not allow me to call a method of one of my COM
objects.

I am a final year degree student trying to build a simple COM/CORBA bridge
demonstration using Python, so if anyone can help I would really appreciate
it.

This is my Python code;

#PythonSplitutil
#Chris Rowley
#12 May 2000
class PythonSplit:
 _public_methods_ = ['SplitString']
 _reg_progid_ = "PythonDemos.Split"
 _reg_clsid_ = "{2222EEB8-790E-4B9D-B8F6-41E05A4A0F2D}"

def SplitString(self, val, item=None):
 import string
 if item != None: item = str(item)
 return string.split(str(val), item)

if __name__=='__main__':
 print "Registering COM Server..."
 import win32com.server.register
 win32com.server.register.UseCommandLine(PythonSplit)

And this is the VB code which fails;

Private Sub Command1_Click()
Dim pu As Object
 Set pu = CreateObject("PythonDemos.Split")
 Dim r As Variant
 r = pu.SplitString("hello from VB")    '**
  MsgBox r
End Sub

It fails on the line marked ** with error message "Run-time error '438'
Object doesn't support this property or method"

I presume from this that the object is registered but the method isn't?  Is
there a make type library function that I am missing?

Chris Rowley


--
Chris Rowley






More information about the Python-list mailing list