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 <t...@probo.com> Para: Python-Win32 List <python-win32@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, t...@probo.com Providenza & Boekelheide, Inc. _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32 _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32