I am trying to convert a VB COM implementation of an activeX .OCX.
The Method I am calling has some numeric values and an object as the argument.
It returns an Object of which I need one of the properties.
in VB:
My translation that will not compile
In the generic case, how do you specify an object as an argument to a function call?
In this case, how do you send NOTHING as an object argument?
Actual:
Member CALL Discovery<&H00000006>(IN A AS SomeDefinedMethod<&H00000000>, IN B AS LONG<&H00000001>, IN C AS LONG<&H00000002>, IN D AS LONG<&H00000003>) AS AnotherDefinedMethod
The Method I am calling has some numeric values and an object as the argument.
It returns an Object of which I need one of the properties.
in VB:
Code:
PRIVATE SUB Command1_Click() ' VB example DIM oGeneric AS Object SET oGeneric = CreateObject("MiscClass.Values") DIM oAnotherDefinedMethod AS Object ' ' CALL oGeneric( IN A AS SomeDefinedMethod, ' IN B AS LONG, ' IN C AS LONG, ' IN D AS LONG) AS AnotherDefinedMethod SET oAnotherDefinedMethod = oGeneric.Values(Nothing, True, False, True) MSGBOX (oAnotherDefinedMethod.Count) SET oAnotherDefinedMethod = Nothing END SUB
Code:
DIM oGeneric AS DISPATCH ' LET oGeneric = NEW DISPATCH IN "MiscClass.Values" DIM vA AS VARIANT DIM vB AS VARIANT DIM vC AS VARIANT DIM oObj AS SomeDefinedMethod ' OCX DIM oRet AS AnotherDefinedMethod ' OCX ' CALL oGeneric( IN A AS SomeDefinedMethod, ' IN B AS LONG, ' IN C AS LONG, ' IN D AS LONG) AS AnotherDefinedMethod LET vA = 1 LET vB = 0 LET vC = 1 SET oObj = NOTHING ' Nothing, True, False, True OBJECT CALL oGeneric.Values( oObj, vA, vB, vC ) TO oRet ' No Worky DIM vCount AS VARIANT OBJECT GET oRet.Count TO vCount DIM Count AS LONG Count = VARIANT#(vCount) MSGBOX STR$(Count) SET oGeneric = NOTHING
In this case, how do you send NOTHING as an object argument?
Actual:
Member CALL Discovery<&H00000006>(IN A AS SomeDefinedMethod<&H00000000>, IN B AS LONG<&H00000001>, IN C AS LONG<&H00000002>, IN D AS LONG<&H00000003>) AS AnotherDefinedMethod