[python-win32] no array returned in output parameter
Enric Jaen
enricjaen at yahoo.es
Mon Dec 15 20:57:01 CET 2008
Thanks for the explanation, Tim.
I am 100 % sure because I have tested it with a VB program and it returns data.
As I have seen from previous posts in this mailinglist, the memory is allocated at the COM side.
This also returns a null array:
a,b = r.getFilters()
/Enric
----- Mensaje original ----
De: Tim Roberts <timr at probo.com>
Para: Python-Win32 List <python-win32 at python.org>
Enviado: lunes, 15 de diciembre, 2008 19:11:42
Asunto: Re: [python-win32] no array returned in output parameter
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.
_______________________________________________
python-win32 mailing list
python-win32 at python.org
http://mail.python.org/mailman/listinfo/python-win32
More information about the python-win32
mailing list