在 JMAIL 里的 IMessage中有个函数 LoadFromStream(const Stream: IUnknown); safecall;我已经定义了个 s:TMemoryStream; 也装入了数据,请问怎样调用这函数装入?

解决方案 »

  1.   

    s:=TMemoryStream.Create;
    s.LoadFromStream();
    .
    .
    s.free;记得要uese mmsystem;
      

  2.   

    楼上理解错了,我写清楚点吧s:=TMemoryStream.Create;
    IMessage1.LoadFromStream(s);/////出错,要如何能实现?
      

  3.   

    直接给你个数据库读图的例子吧:
    var
      mem : TStream;
      bmp : TBitmap;
    begin
      with ADOTable1 do
      begin
        Active:=True;
        mem := CreateBlobStream(FieldByName('Data'),bmRead);
        mem.Position:=0;
        bmp := TBitmap.Create;
        bmp.LoadFromStream(mem);
        Image1.Picture.Assign(bmp);
        bmp.Free;
        mem.Free;
        Active:=False;
      end;
    end;
      

  4.   

    谢谢楼上的回复但还不是我要的答案啊。
     JMAIL 里的 IMessage直接读入邮件只有这个函数,原型是:LoadFromStream(const Stream: IUnknown); safecall;我现有一个.eml邮件文件需要读入到 IMessage 对象里。
    我先定义了一个 s:TMemoryStream;
    s:=TMemoryStream.Create;
    s.LoadFromFile('c:\\abcd.eml');但因为LoadFromStream(const Stream: IUnknown);  里的参数 Stream 类型为IUnknown 所以那个 s 不能直接代入。需要对 s 进入类型转换处理,使能放入 
    IMessage1.LoadFromStream();里作参数。
      

  5.   

    正确答案在 http://community.csdn.net/Expert/topic/5230/5230067.xml?temp=.2726862
    但还是谢谢楼上的热心回复了