TAppInfo是一个继承于TObject的类. 现在我想将这个对象传递给一个Com组件处理,但com组件只能兼容OleVariant类型.请教高手我如何将这个对象能传递到这个Com对象中,或者告诉我如何将这样的对象存入OleVariant类型的变量中. 最终目标想通过这样的方法, 来实现组件的物理分离.之前我试过很多方法,就是将对象序列化,通过动态数组来传递:
var ole:OleVariant;procedure TForm1.btn1Click(Sender: TObject);
var ms:tmemorystream;
  slt: TStrings;
begin
  slt:= TStringList.Create;
  slt.Add('obj',AppInfo);
  ole :=  ToOle(slt) ;
 
  ComObj.Enter(ole);   // 对Com对象调用,类型为OleVariant
end;function TForm1.ToOle(sltObj: TStrings): OleVariant;
var ms:tmemorystream;
begin
  ms := Tmemorystream.create;
  try
    sltObj.SaveToStream(ms);  // 呵呵... 别笑话我,当时我只希望能通过这样的方法将对象序列化.
    result := vararraycreate([0,ms.size-1],varbyte);
    ms.position := 0;
    ms.readbuffer(varArrayLock(result)^, ms.size);
  finally
    ms.free;
    varArrayunlock(result);
  end;
end;
但,结果很显然失败了.现在我是一点办法都没有,跪谢!