Your
code is explicitly creating a buffer object, which the win32com framework
translates as "array of bytes". Try just passing a list (or tuple) of
integers instead of the buffer.
Mark
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Shad Muegge
Sent: Thursday, 20 October 2005 6:23 AM
To: python-win32@python.org
Subject: [python-win32] win32com calling C++ COM interfaceHi,I've just started looking at Python. I am trying to resolve an issue a user is having trying to access the COM interface in our application from Python.C++ code:STDMETHODIMPCMyClass::Read(
const int x,VARIANT *indexlist, // IN: "safe" array of 4-byte integers
VARIANT *results)Python code:def read(self, x, addr):
try:
addr = buffer(array.array('L', addr))
data = "" addr)
...x.read(0, 0x12345678)The variant that shows up on the C++ code is a safearray of 1-byte integers with 4 elements: 12, 34, 56, 78.The API treats them each as individual "addresses"...Here's the COM definition from the .py file.def Read(self, x=defaultNamedNotOptArg, indexlist=defaultNamedNotOptArg, results=pythoncom.Missing):
"""method Read"""
return self._ApplyTypes_(2, 1, (24, 0), ((3, 1), (16396, 1), (16396, 2)), 'Read', None,x
, indexlist, results)
Thanks,Shad
_______________________________________________ Python-win32 mailing list Python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32