вот что нагенерил ИИ:
Код:
1 2 3 4 5 | type
IMyComInterface = interface (IDispatch)
[ '{00000000-0000-0000-0000-000000000000}' ]
procedure ProcessArray(Values: OleVariant); safecall;
end ;
|
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 | procedure TMyComObject . ProcessArray(Values: OleVariant);
var
i: Integer ;
begin
if VarIsArray(Values) then
begin
for i := VarArrayLowBound(Values, 1 ) to VarArrayHighBound(Values, 1 ) do
begin
ShowMessage(IntToStr(Values[i]));
end ;
end ;
end ;
|
Вызов:
Код:
1 2 3 4 5 6 7 8 9 10 11 | var
ComObj: IMyComInterface;
Values: OleVariant;
begin
ComObj := CreateComObject(CLASS_MyComObject) as IMyComInterface;
Values := VarArrayCreate([ 0 , 2 ], varInteger);
Values[ 0 ] := 10 ;
Values[ 1 ] := 20 ;
Values[ 2 ] := 30 ;
ComObj . ProcessArray(Values);
end ;
|
Тут передача интов в примере, поменять на varString, а исходный массив - простой динамический массив, только надо посмортеть, если не ошибаюсь, то лучше использовать Array Of WideString