COM "out" Variant Array params and such
Mark Hammond
MarkH at ActiveState.com
Sun Dec 2 19:30:03 EST 2001
Michael Kelly wrote:
...
> strange errors and also a quandry. The
> quandry is I can't figure how to make a
> call that has an "out" parameter that
> is not a retval and is a Variant Array.
>
> When I make the call in Python as in
> MyIniFile.ReadSections("Section name", VariantArrayofStrings)
> whatever I put for VariantArrayofStrings never get assigned anything.
VariantArrayofStrings is an "out" param - it should not be assigned
anywhere.
The correct way to call this should be:
VariantArrayOfStrings = MyIniFile.ReadSections("Section name")
You probably need to generate "makepy" support for this to work - but it
seems you have already done that.
> I read some stuff in the docs about coercing PyObject and Variants
> but with no real pointers where to see how this is done.
Some pretty deep magic. The type libraries are processed, and code that
calls PyIDispatch::InvokeTypes() is called. The "type tuple" passed to
InvokeTypes directs InvokeTypes on how to transform the Python args.
> The weird behavior is if I use the method WriteDate to write
> a date and then ReadDate to read it back I get an exception:
>
> type: exceptions.SystemError
> value: error return without exception set
This is a bug. Something like that has been fixed recently, but without
more details I can not be sure if it is exactly the same thing.
Mark.
More information about the Python-list
mailing list