I have to get this jBase active x control working and I think there's something wrong with this declaration in the typelib for this active-x control.
This was a desktop app 19.0

Code:
    // Executes a jSH command on the host
    Procedure ComExecute String llCmd Variant llPassList String ByRef llCapturing String ByRef llReturning Variant llReturnList
        Handle hDispatchDriver
        Get phDispatchDriver to hDispatchDriver
        Send PrepareParams to hDispatchDriver 5
        Send DefineParam to hDispatchDriver OLE_VT_BSTR llCmd
        Send DefineParam to hDispatchDriver OLE_VT_DISPATCH llPassList
        Send DefineParam to hDispatchDriver (OLE_VT_BYREF ior OLE_VT_BSTR) llCapturing
        Send DefineParam to hDispatchDriver (OLE_VT_BYREF ior OLE_VT_BSTR) llReturning
        Send DefineParam to hDispatchDriver (OLE_VT_BYREF ior OLE_VT_DISPATCH) llReturnList
        Send InvokeComMethod to hDispatchDriver 20 OLE_VT_VOID
    End_Procedure



Having trouble with this declaration. I think it's wrong but it's what the typelib file spit out when it was loaded. Specifically


Send DefineParam to hDispatchDriver OLE_VT_DISPATCH llPassList

This passlist can actually be nil, so it's seems to definitely be in the way this typelib came through


The VT_DISPATCH is a memory location and it's defined as a variant. lPasslist is a memory location, that much I know.
Getting an illegal Datatype Conversion. It's not a variant. It's being translated to VT_DISPATCH which is a memory location but the definition above from the typelib is only defined above as a variant. That seems wrong to me. The lReturnlist seems wrong too, that should also be a memory location. Any help I can get would be very much appreciated.

By the way, I have it communicating with the jBase (pick multi-value) server so the object declarations work, i.e. the control is actually working, but it's not getting past this execution.

This is how I'm using it after declaring the objects.

Code:
            
            Variant vRetVal vRetList Dummylst Capturing Returning
            String lSelect 
            
            Move "QUERY-Index DEBTOR WITH Client_ID EQ 'RCEN062'" to lSelect

            //Procedure ComExecute String llCmd Variant llPassList String ByRef llCapturing String ByRef llReturning Variant llReturnList            
            Send ComExecute of oJbaseConnection lSelect Dummylst capturing returning vRetList to vRetVal