Passing Parameters by Reference
You can pass parameters by reference every time or only in a specific instance.
To pass parameters by reference
Use the TO REFERENCE clause of the SET UDFPARMS command before calling the UDF:
-or-
Use the @ token to pass a variable or array by reference, as in the following example:
? "UDF value: " + STR(plusone(@nX))
To properly reference a variant data type in a COM object, you first must create an instance of the variable to the type you expect to retrieve. This applies only when you use Visual FoxPro as an early binding client.
DEFINE CLASS varianttest AS SESSION OLEPUBLIC FUNCTION varret(outVal AS VARIANT@, inVal AS VARIANT) AS VOID OutVal = inVal ENDFUNC ENDDEFINE
After this class is built into a DLL named myServer, you can reference the data as in the following code:
x = CREATEOBJECT("myServer.varianttest","","") ov = "" tt.varret(@ov, "string") && Sets string value. ov = 0 tt.varret(@ov, 123) && Sets ov to an integer value. ov = 0.0 tt.varret(@ov, 44.44) && Sets ov to a real numeric value. ov = l tt.varret(@ov, f) && Sets ov to a Boolean value.
See Also
Passing Parameters by Value | SET UDFPARMS Command | User-Defined Functions | Data Manipulation