Why not do as most COM objects do, often when you use an activex compnent it returns an object with some properties that you can read.
Hell, you can even attach different arrays to that same object. You could return hundreds of variables.
Example:
PROCEDURE test
LOCAL loVarObj, lcTest1, lcTest2
lcTest1 = "MyReturnValue"
lcTest2 = "MyOtherReturnValue"
*- I wish to return the 2 values of variables lcTest1 and lcTest2
*- VarObj hodls the variables I wish to return
loVarObj = CREATEOBJECT('Custom')
WITH loVarObj
.AddProperty("cTestVal1", SPACE(0))
.AddProperty("cTestVal2", SPACE(0))
.cTestVal1 = lcTest1
.cTestVal2 = lcTest2
ENDWITH
RETURN loVarObj
ENDPROC
Now, if you get the object as return value something like:
loObject = test()
Than your values to read are:
loObject.cTestVal1 and loObject.cTestVal2
As you can see, in this way you can return an endless number of values.
HTH,
Weedz (Edward W.F. Veld)
My private project:
Download the CrownBase source code !!