> 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 _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32