機能の主な用途:
_DMxDrawX :: ReadBinStream
以下に詳細に記載された2ストリーム方式、からグラフィックデータをロードします。
パラメータ | 説明 |
---|---|
VARIANT varBinArray |
2つのシステムストリームデータ、バイト配列であります |
BSTR sPassword |
パスワードにパスワードを描画しない、空の文字列を渡します |
LONG lReadContent |
ローディング量は、完全にロードされた場合、16777215、進0xFFFFFFのを渡します |
以下を達成するためにDelphiコード:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
function
OleToMStream(OV:OleVariant): TMemoryStream;
var
Data: PByteArray;
Size: integer;
beginResult:=TMemoryStream.Create;
try
Size:=VarArrayHighBound(OV,1)-VarArrayLowBound(OV,1)+1;
Data:=VarArrayLock(OV);
try
Result.Position:=0;
Result.WriteBuffer(Data^,Size);
finally
VarArrayUnlock(OV);
end;
except
Result.Free;Result:=nil;
end;
end;
function
MStreamToOle(Strm:TMemoryStream): OleVariant;
var
Data: PByteArray;
beginResult:= VarArrayCreate([0, Strm.Size - 1], varByte);
Data:= VarArrayLock(Result);
try
Strm.Position := 0;
Strm.ReadBuffer(Data^, Strm.Size);
finally
VarArrayUnlock(Result);
end;
end;
procedure TForm2.Button6Click(Sender: TObject);
var
aryData:OleVariant;
memStream : TMemoryStream ;
aryReadData: OleVariant;
begin
// 写到内存流
MxDrawX1.WriteBinStream(aryData,
''
,23);
memStream := OleToMStream(aryData);
// 从内存流加载
aryReadData := MStreamToOle( memStream);
MxDrawX1.ReadBinStream(aryData,
''
,23);
end;
|