[python-win32] Max parameters in method of IConnectionPoint interface?

Mark Hammond mhammond at skippinet.com.au
Thu Mar 27 22:58:48 CET 2008


> I've gotten right down to the problem. Has nothing to do with the
> number of
> parameters. One of the parameters is of type VT_VARIANT (0x000c). That
> variant
> type is not supported by the function PyCom_PyObjectFromVariant, which
> gets
> called along the chain of getting the values down to Python. The
> default case
> statement returns E_OUTOFMEMORY if the type can't be converted to a
> BSTR.

That is strange - that function usually gets called with a variant holding a
specific type.  Why are you passing a variant holding a variant?  Why not
just pass a variant holding the actual value and type?

> So, obviously PyCom doesn't like a variant of type VT_VARIANT.

In all other cases, it handles VT_VARIANT fine - its just that we are not
expecting a variant holding a variant (other than a byref one) and if it was
a general requirement, I'm extremely surprised we haven't hit it before - or
maybe we have and people are living with the BSTR conversion?

> So I guess my question becomes how can I change the parameter type so
> everyone is happy?

Pass it as a variant holding the actual type instead of adding a kind of
"indirection".

Cheers,

Mark



More information about the python-win32 mailing list