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