Variant array passing to COM function

While this question is not strictly an automation one I hope that no one
minds the posting here.

My problem goes something like this. An in-process COM server exposes the
function:

UnpackData(Value: OleVariant; TimeStamp: OleVariant; Confidence: OleVariant;
Tolerance: OleVariant);

Whatever I pass to it always comes back empty when I know that it should
contain data. If I use the same COM
object in VB(!) I pass it  4 variants and get back an array of data for each
(Value, TimeStamp...)

I have tried passing an OleVariant, a variant array set to the known size of
the data, and a reference
to a variant array using VarArrayRef() - nothing worked.

Any help greatly appreciated.

Evan Petridis.