[plt-scheme] Re: MysterX and arrays/vectors
On Sat, Mar 1, 2008 at 4:26 PM, Filipe Cabecinhas <filcab at gmail.com> wrote:
> How can I create a double vector?
IIRC, the safe array code in MysterX wasn't particularly well-tested,
so the strategy of
always putting VARIANTs in the SAFEARRAY may have been ill-advised.
Here's what I'd suggest. In plt/src/array.cxx, there's a function
doSetArrayElements().
In it, there's a call to marshalSchemeValueToVariant(), followed by a call to
SafeArrayPutElement(). You can write a function that pulls the COM value out
of the variant by dispatching on the vt (type) field, and pass that
value, rather
than the VARIANT, to SafeArrayPutElement().
-- Paul