I’m not sure about the context on this one, but shouldn’t you be calling the
COM object with data like:
columnTitles = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_BSTR,
[“something”])
Versus:
columnTitles = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_BSTR,
[None])
Without context, I can’t actually do much other than this suggestion.
HTH
Steven
From: python-win32 <[email protected]> On
Behalf Of Alessandro Fiorino
Sent: Wednesday, September 25, 2024 4:42 AM
To: [email protected]
Subject: [python-win32] Calling a method with SAFEARRAY parameter
I have to call a method of a COM Object which is defined as
GetTableInfo ([in] BSTR bstrTableName,[in, out]
SAFEARRAY(BSTR)*bstrColumnTitles,[in, out] SAFEARRAY(long)*lColumnPos)
I tried with
columnTitles = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_BSTR,
[None])
columnPos = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I4, [None])
object.GetTableInfo("TABLENAME", columnTitles, columnPos)
and with
columnTitles = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_BSTR, [""])
columnPos = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I4, [0])
object.GetTableInfo("TABLENAME", columnTitles, columnPos)
but I get an error:
Object ot type VARIANT has no len()
What I am doing wrong ?
Thanks in advance.
_______________________________________________
python-win32 mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-win32