Hi All,

We are trying to make a call to a method which has the following COMMETHOD
definition:

    COMMETHOD([dispid(13), helpstring(u'method PopMessage')], HRESULT,
'PopMessage',
              ( ['in', 'out'], POINTER(AACDMAMessageEnum), 'MessageType' ),
              ( ['in', 'out'], POINTER(AAProtocolEnum), 'Protocol' ),
              ( ['in', 'out'], POINTER(c_int), 'PN' ),
              ( ['in', 'out'], POINTER(c_int), 'CDMAChannel' ),
              ( ['in', 'out'], POINTER(AACodeChannelEnum), 'CodeChannel' ),
              ( ['in', 'out'], POINTER(BSTR), 'TimeStamp' ),
              ( ['in', 'out'], POINTER(BSTR), 'Description' ),
              ( ['retval', 'out'], POINTER(POINTER(ICDMAMessage)), 'Message'
)),

What we are finding is that the return result is a tuple, however the
POINTER(POINTER(ICDMAMessage)) parameter is missing from the returned
tuple.  All other elements are there.

Now if I modify the definition and change the ['retval', 'out'] to a ['in',
'out'] then it works nicely and all items are returned in the tuple.

Is this a bug with comtypes?  The call we are doing is simply
"PopMessage()".  I guess there is some ambiguity here, would passing
pointers for each IN attribute make comtypes return Message alone?

The behaviour with win32com is that Message is returned as the 1st item of
the tuple, and the rest follow.

Thanks,
Eddie
------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
comtypes-users mailing list
comtypes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/comtypes-users

Reply via email to