在COM/DCOM中如何将数组作为函数返回的类型传递

在进程内自动化服务器中定义一个函数方法,需要在函数返回时,返回多个值,这就需要采
用数组的类型,比如,我定义了一个方法:
function Calculate(inputtime: Integer): PSafeArray; safecall;
需要返回一个数组,如何实现呢?是否采用safearray类型呢?
在定义参数时采用的是safearray类型,怎么实现呢?


参考D5开发人员指南 23章, 交换2进制数据


用Variant,如:
function Calculate(inputtime: Integer): OleVariant; safecall;
begin
Result := VarArrayCreate([0,2], VarOleStr);//三个元素的可变数组
Result[0] := UserNo;//用户编号,数字型
Result[1] := UserName;//用户名称,字符型
Result[2] := FireDate;//入职日期,日期时间型
end;
调用该接口的程序,可以先判断返回值是不是可变数组(用VarIsArray),再反过来赋值就行了,类型会自动转换的。

来源:http://www.delphibbs.com/delphibbs/dispq.asp?lid=1518451

你可能感兴趣的:(com)