Calling a method with SAFEARRAY parameter

Alessandro Fiorino <[email protected]> Wed, 25 Sep 2024 13:41:43 +0200
Newsgroups gmane.comp.python.windows
Message-ID <CAAmYX6zK=xbBG_aNL+S86Hiv4Y8r0+P0s_YZB1X+UT1GwBVgyQ@mail.gmail.com>
--===============5624862674071874964==
Content-Type: multipart/alternative; boundary="00000000000058a7530622f01d82"

--00000000000058a7530622f01d82
Content-Type: text/plain; charset="UTF-8"

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.

--00000000000058a7530622f01d82
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail-contents">
<p>
</p>I have to call a method of a COM Object which is defined as</div><div c=
lass=3D"gmail-contents">GetTableInfo ([in] BSTR bstrTableName,[in, out] SAF=
EARRAY(BSTR)*bstrColumnTitles,[in, out] SAFEARRAY(long)*lColumnPos)</div><d=
iv class=3D"gmail-contents"><br></div><div class=3D"gmail-contents">I tried=
 with</div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 columnTitles =3D VARIA=
NT(pythoncom.VT_ARRAY | pythoncom.VT_BSTR, [None])<br>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 columnPos =3D VARIANT(pythoncom.VT_ARRAY | pythoncom.V=
T_I4, [None])<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 object.GetTableI=
nfo(&quot;TABLENAME&quot;, columnTitles, columnPos)<div>and with</div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 columnTitles =3D VARIANT(pythonco=
m.VT_ARRAY | pythoncom.VT_BSTR, [&quot;&quot;])<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 columnPos =3D VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I=
4, [0])<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 object.GetTableInfo(&q=
uot;TABLENAME&quot;, columnTitles, columnPos)</div><div><br></div><div>but =
I get an error:=C2=A0</div><div>Object ot type=C2=A0VARIANT has no len()</d=
iv><div><br></div><div>What I am doing wrong ?</div><div><br></div><div>Tha=
nks in advance.</div><div><br></div></div>

--00000000000058a7530622f01d82--

--===============5624862674071874964==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
python-win32 mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-win32

--===============5624862674071874964==--