[python-win32] no array returned in output parameter
Tim Roberts
timr at probo.com
Mon Dec 15 19:11:42 CET 2008
Enric Jaen wrote:
> I have the following method generated by makepy.py:
>
> def GetFilters(self, pvarFilterArray=defaultNamedNotOptArg, pnArraySize=defaultNamedNotOptArg):
> """method GetFilters"""
> return self._oleobj_.InvokeTypes(68, LCID, 1, (24, 0), ((16396, 0), (16387, 0)),pvarFilterArray
> , pnArraySize)
>
>
> As you see, the method has two output params: The first is of type pointer to a Variant (which the COM object should fill with an array) and the second a pointer to a type long.
>
> But when I invoke that method it returns a tuple as if there were no data:
>
>>>> r.GetFilters()
>>>>
> (None, 0)
>
> i.e array is Null with size is 0.
>
> The same is happening with other methods that have an output array.
>
>
> - Which type represents 16396 ?
>
That's 12 + 0x4000, so it's VT_VARIANT + VT_BYREF. That is, a variant
output parameter. 16387 is VT_I4 + VT_BYREF, or a long integer output
parameter.
Are you 100% convinced that the object has an array of filters to
return? How do you know?
--
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.
More information about the python-win32
mailing list