如果没有的话,怎么通过其它的ole类型,比如olevariant转化为对应TStream类型的ole数据类型?

解决方案 »

  1.   

    procedure VariantToStream (V: OLEVariant; var Stream : TStream);
    var
      P : Pointer;
    begin
      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;
    end;procedure StreamToVariant (Stream : TStream; var V: OLEVariant);
    var
      P : Pointer;
    begin
      V := VarArrayCreate ([0, Stream.Size - 1], varByte);
      P := VarArrayLock (V);
      Stream.Position := 0;
      Stream.Read (P^, Stream.Size);
      VarArrayUnlock (V);
    end;
      

  2.   

    http://aiirii.mblogger.cn/posts/12204.aspx