多层中Tstream参数的传递!(100分)

  • 主题发起人 主题发起人 liounzhou
  • 开始时间 开始时间
L

liounzhou

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在COM为中间件的多层系统中,从客户端传递一个TStream类型的参数给应用层。请问
在设计服务器端方法时,应该定义什么类型?
 
:(,不对啊。这两个类型我已经用过了,提示不能调用Dispatch Call
 
定义OleVariant,将TStream转化为OleVariant类型即可
 
:)
小弟是个新手,请问TStream类型怎么转化为OleVariant类型呢?帮助里好像没有啊。
 
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;
 
接受答案了.
 
后退
顶部