我在HUBDOG的葵花宝典中找到将流中的内容复制到剪帖板的方法:(如下)
Procedure CopyStreamToClipboard( fmt: Cardinal; S: TStream );
Var
hMem: THandle;
pMem: Pointer;
Begin
S.Position := 0;
hMem := GlobalAlloc( GHND or GMEM_DDESHARE, S.Size );
If hMem <> 0 Then Begin
pMem := GlobalLock( hMem );
If pMem <> Nil Then Begin
S.Read( pMem^, S.Size );
S.Position := 0;
GlobalUnlock( hMem );
Clipboard.Open;
try
Clipboard.SetAsHandle( fmt, hMem );
finally
Clipboard.Close;
end;
End { If }
Else Begin
GlobalFree( hMem );
OutOfMemoryError;
End;
End { If }
Else
OutOfMemoryError;
End; { CopyStreamToClipboard }
于是我调用该过程,如下:
var MS: TStream;
begin
with adotable1 do
begin
open;
MS:=CreateBlobStream(FieldbyName('question'),bmRead);
CopyStreamToClipboard(soFromcurrent,ms);
Close ;
end;
end;
但是在word中paste却只得到了“BDOC”字样,不能得到流中的word文档。
请高手指教,问题出在哪里?