Alexander Eisenhuth <[EMAIL PROTECTED]> 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, [EMAIL PROTECTED]
  Providenza & Boekelheide, Inc.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to