win32 COM and data types / direction
Tim Roberts
timr at probo.com
Sun Mar 6 02:21:09 EST 2005
Alexander Eisenhuth <newsuser at stacom-software.de> wrote:
>
>Hello everybody,
>
>i wonder how the win32 COM extension handles different C-int types
>(short, int, long).
All of those types are passed on the stack as 32-bit dwords. No problem.
>Another question for me is weather the
>"out-direction" of parameter is supported "out of the box" ?
Yes, but you have to make them outputs from your function. Remember that
assigning to a parameter in Python does not change the parameter from the
caller's point of view:
def FunWithTwoInts( self, inShort, inInt ):
print "got as short:% as int%d" % (inShort, inInt)
return inShort + inInt
If you have multiple OUT parameters, you return a tuple of values.
>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)
>--------------------------------------------------------------------------
--
- Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.
More information about the Python-list
mailing list