[python-win32] Problem passing a VARIANT argument to a method of aCOM object
Mark Hammond
mhammond at skippinet.com.au
Sun Feb 5 08:54:31 CET 2006
> I am struggling with a problem related to passing a
> VARIANT argument to a COM object.
>
> I am getting this exception:
>
> TypeError: The VARIANT type is unknown (0000001e)
Hmmm - I guess that is a bug in pywin32 - that variant type *is* valid in a
TYPEDESC, so pywin32 probably should convert that during the makepy process.
> The makepy generated code-snippet is this:
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - - - - -
> def AddTest(self, lpProperty=defaultNamedNotOptArg,
> vValue=defaultNamedNotOptArg):
> """method AddTest"""
> return self._oleobj_.InvokeTypes(4, LCID, 1, (24,
> 0), ((30, 1), (12, 1)),lpProperty, vValue)
Can you please try changing the 30 there to 8 (ie, changing from VT_LPSTR to
VT_BSTR) and let me know if it works?
Actually, better yet - if it *does* work, please open a new pywin32 bug at
sourceforge. If it *doesn't* work it may point at an error in the COM
object.
> What does the above exception really mean? Regardless
> of what I pass as the second argument, I get the same
> exception message.
> It just complains about unknown type 0000001e, which
> probably corresponds to VT_LPSTR. But, why is it
> trying to convert True to a VT_LPSTR?!
It is the first string arg that is causing the problem.
Thanks,
Mark.
More information about the Python-win32
mailing list