COM组件中的方法,怎么返回一个自己定义的类或者集合?(100分)

  • 主题发起人 主题发起人 genphone_ru
  • 开始时间 开始时间
把数据写入stream
再变成variant
按照相同顺序读出来
procedure VariantToStream(const Data: OleVariant;
Stream: TMemoryStream);
var
p: Pointer;
begin
p := VarArrayLock(Data);
try
Stream.Write(p^, VarArrayHighBound(Data,1) + 1);

finally
VarArrayUnlock(Data);
end;
end;

function StreamToVariant(Stream: TStream): OleVariant;
var
p: Pointer;
begin

Result := VarArrayCreate([0, Stream.Size - 1], varByte);
p := VarArrayLock(Result);

try
Stream.Position := 0;

Stream.Read(p^, Stream.Size);

finally
VarArrayUnlock(Result);

end;

end;

 
后退
顶部