win32 COM and data types / direction

Thomas Heller theller at python.net
Fri Mar 4 16:02:20 EST 2005


Alexander Eisenhuth <newsuser at stacom-software.de> writes:

> Hello everybody,
>
> i wonder how the win32 COM extension handles different C-int types
> (short, int, long). Another question for me is weather the
> "out-direction" of parameter is supported "out of the box" ?
>
> To clarify look at the methode "FunWithTwoInts"
> --------------------------------------------------------------------------
> #SimpleCOMServer.py - A sample COM server - almost as small as they come!
> #
> # We expose a single method in a Python COM object
> class PythonUtilities:
>      _public_methods_ = [ 'FunWithTwoInts' ]
>      _reg_progid_ = "PythonDemo.Utilities"
>
>      # NEVER copy the following ID!
>      # Use "print pythoncom.CreateGuid( )" to make a new one
>      _reg_clsid_  = "{40CEA5F8-4D4C-4655-BD8B-0E7B6A26B556}"
>
>      def FunWithTwoInts(self, inShort, inInt, outSum):
> 	print "got as short:%d as int:%d sum:%d" % (inShort, inInt, outSum)
> 	outSum = inShort + inInt
>
> # Add code so that when this script is run by
> # Python.exe, it self-registers
> if __name__=='__main_  _':
>      print "Registering COM server..."
>      import win32com.server.register
>      win32com.server.register.UseCommandLine(PythonUtilities)
> --------------------------------------------------------------------------
> Does anybody have experiences in this ?

Since there is no type library, the client code has to guess.  And it
will pass the server whatever the client calls with.  That could even be
a string or anything else - but why not try it out?

*IF* there is a type library that the server implements, you will get
and return what it describes.

Thomas



More information about the Python-list mailing list