Two ActiveX with passing a variant array

Giganews Newsgroups
Subject: Two ActiveX with passing a variant array
Posted by:  R.Wieser (addre…@not.available)
Date: Sun, 3 Jan 2021

Hello all,

From within some vbscript I'm calling a method in a simple ActiveX object,
providing it a two-dimensional array, and have two problems :

1) How to I define, in the TypeLib (IDL) file, that I want to pass a
(pointer to a) variant array ?  Currently I have this :

HRESULT VarArray([in] variant* Array);

The thing is that this causes the VarArray method to receive a variant which
in turn holds a pointer to the Array, instead of just receiving a simple
pointer to the Array.

2) For some reason the above mentioned received variant has the pointer to
the Array in bytes 0x0C...0x0F of the VARIANT structure, instead of in bytes
0x08...0x0B (as described here :
https://docs.microsoft.com/en-us/windows/win32/api/oaidl/ns-oaidl-variant ),
and I've got no idea why.

The used OS version is XPsp3

Regards,
Rudy Wieser

Replies