<div dir="ltr"><div>Thanks for the response! <br></div><div>Hmm ok, I could find the following information using OLEView (se attachment).<br></div><div>It states that the two in parameters are noted as VT_LPWSTR for the scriptCmd command. <br></div><div>Would that mean that I have no way of interfacing with them at all?<br></div><div>I would prefer exhausting what I can do using python before I contact the company, although if that is the only route available I will take it.</div><div><br></div><div>Kind Regards,</div><div>Olle<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 22, 2021 at 5:26 AM Mark Hammond <<a href="mailto:skippy.hammond@gmail.com">skippy.hammond@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 21/01/2021 10:00 pm, Olle Pontén wrote:<br>
> Hello!<br>
> <br>
> I'm quite new to the pywin32 package (as in I have never interacted with <br>
> it before).<br>
> I'm currently trying to implement a python interface to a win32 bit program<br>
> that I can connect to using the ordinary win32com.client.Dispatch method.<br>
> This program controls an microscope camera and the only way to connect to<br>
> it is via this COM connection.<br>
> There is already an version of this software written in pascal by the <br>
> manufacturers<br>
> so I'm trying to create an expanded python version of this software.<br>
> <br>
> I've managed to get the connection working and I can send commands that <br>
> do not<br>
> require any inputs and access the attributes of the interface/program.<br>
> <br>
> The problem is that when I try to send commands to one of two exposed <br>
> methods that require input I get the<br>
> follow error:<br>
> <br>
> s = win32com.client.VARIANT(pythoncom.VT_LPWSTR, 'On\0')<br>
> <br>
> r = win32com.client.VARIANT(pythoncom.VT_LPWSTR, 'AL\0')<br>
> <br>
> Response = AIPam.scriptCmd(r,s)<br>
> Traceback (most recent call last):<br>
> <br>
>    File "<ipython-input-38-c5635b52a462>", line 1, in <module><br>
>      Response = AIPam.scriptCmd(r,s)<br>
> <br>
>    File <br>
> "C:\Users\GWHLAB~2\AppData\Local\Temp\gen_py\3.8\E07C24C7-56CE-409F-AB60-DC7EDE9D9888x0x1x0.py", <br>
> line 37, in scriptCmd<br>
>      return self._oleobj_.InvokeTypes(216, LCID, 1, (3, 0), ((31, 1), <br>
> (31, 1)),cmd<br>
> <br>
> TypeError: The VARIANT type is unknown (0x0000001f)<br>
<br>
If you look at <br>
<a href="https://docs.microsoft.com/en-us/windows/win32/api/wtypes/ne-wtypes-varenum#remarks" rel="noreferrer" target="_blank">https://docs.microsoft.com/en-us/windows/win32/api/wtypes/ne-wtypes-varenum#remarks</a>, <br>
VT_LPWSTR is not valid in a VARIANT, so pywin32 doesn't let you create <br>
them. Use VT_BSTR (or just pass a Python string) and see if that works - <br>
if it doesn't you probably need to contact the vendor of the package.<br>
<br>
HTH,<br>
<br>
Mark<br>
</blockquote></div>