[python-win32] Error: VARIANT Type is unknown
Mark Hammond
skippy.hammond at gmail.com
Thu Jan 21 23:26:51 EST 2021
On 21/01/2021 10:00 pm, Olle Pontén wrote:
> Hello!
>
> I'm quite new to the pywin32 package (as in I have never interacted with
> it before).
> I'm currently trying to implement a python interface to a win32 bit program
> that I can connect to using the ordinary win32com.client.Dispatch method.
> This program controls an microscope camera and the only way to connect to
> it is via this COM connection.
> There is already an version of this software written in pascal by the
> manufacturers
> so I'm trying to create an expanded python version of this software.
>
> I've managed to get the connection working and I can send commands that
> do not
> require any inputs and access the attributes of the interface/program.
>
> The problem is that when I try to send commands to one of two exposed
> methods that require input I get the
> follow error:
>
> s = win32com.client.VARIANT(pythoncom.VT_LPWSTR, 'On\0')
>
> r = win32com.client.VARIANT(pythoncom.VT_LPWSTR, 'AL\0')
>
> Response = AIPam.scriptCmd(r,s)
> Traceback (most recent call last):
>
> File "<ipython-input-38-c5635b52a462>", line 1, in <module>
> Response = AIPam.scriptCmd(r,s)
>
> File
> "C:\Users\GWHLAB~2\AppData\Local\Temp\gen_py\3.8\E07C24C7-56CE-409F-AB60-DC7EDE9D9888x0x1x0.py",
> line 37, in scriptCmd
> return self._oleobj_.InvokeTypes(216, LCID, 1, (3, 0), ((31, 1),
> (31, 1)),cmd
>
> TypeError: The VARIANT type is unknown (0x0000001f)
If you look at
https://docs.microsoft.com/en-us/windows/win32/api/wtypes/ne-wtypes-varenum#remarks,
VT_LPWSTR is not valid in a VARIANT, so pywin32 doesn't let you create
them. Use VT_BSTR (or just pass a Python string) and see if that works -
if it doesn't you probably need to contact the vendor of the package.
HTH,
Mark
More information about the python-win32
mailing list