How to pass an array of Single to a VB OLE object

        I have an OLE object that was written in VB.  How can I pass an array of Single
to one of its methods?  I tried using the OLE Safe Arrays available in Delphi, but the VB object
doesn't like that: I get a runtime (not compile time) error indicating incompatible types.

Non-array methods and properties all work fine from Delphi 3.0

And, I can pass a dynamic array in VB (Excel version) using code like this:

                Dim A() As Single
                TheObject.GetArrayData A()

        This code causes A to be returned with data and the HBound and
LBound functions can return the dimensions.

I need to do this in Delphi.  The method of the VB object should be able
set the dimensions of A, as it does using dynamic arrays in VB.  

My guess is that one needs to pass some special VB-specific
structure.  Any help would be highly appreciated.
This must be a common problem with so many VB objects out there.