type TFunc = class
public
  //...
  //Variant 转换成 Stream 的函数
  class function VariantToMemStream ( const v :olevariant ): TMemoryStream; 
  //Stream 转换成 Variant  的函数
  class function MemStreamToVariant ( Stream : TStream ): OleVariant;  //...
end;
//Variant 转换成 Stream 的函数
class function TFunc.VariantToMemStream ( const v :olevariant ): TMemoryStream;
var 
  p : pointer; 
  Stream : TMemoryStream;
begin 
  Stream := TMemoryStream.Create;
  Stream.Position := 0; 
  Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound(v, 1) + 1; 
  p := VarArrayLock (v); 
  Stream.Write (p^, Stream.Size); 
  VarArrayUnlock (v); 
  Stream.Position := 0; 
  Result := Stream;
end; //Stream 转换成 Variant  的函数
class function TFunc.MemStreamToVariant ( Stream : TStream ): OleVariant;
var 
  p : pointer; 
  v : OleVariant;
begin 
  v := VarArrayCreate ([0, Stream.Size - 1], varByte); 
  p := VarArrayLock (v); 
  Stream.Position := 0; 
  Stream.Read (p^, Stream.Size); 
  VarArrayUnlock (v); 
  Result := v;
end;