|
function SetHtml3(const WebBrowser: TWebBrowser; const Html: string): Boole
4 H' l3 W2 E( a0 Can; + ?: P5 Y" }8 {7 p
var
0 X% B4 r- r5 ]' r Stream: TStringStream; ( V' A8 C& f/ a* U ~: [ g6 v
Adapter: TStreamAdapter;
5 | a2 l( _4 K# A! u p# |" Fbegin
2 e, v" _9 s" F6 ?* |0 n" a# B) T6 T Stream := TStringStream.Create(Html); / M2 e$ F$ u+ u1 X, V: a5 t( a
try
3 N" N# \; t1 M. o Adapter := TStreamAdapter.Create(Stream); $ g8 m9 C/ Z. |3 q$ t$ T1 h
try % P! [5 r7 e* K' K) r6 V
OleCheck((WebBrowser.Document as IPersistStreamInit).Load(Adapter)); / \+ D/ D0 I$ Z$ y/ n
Result := True;
6 M3 x0 _- M! U8 {' Q: K( A$ i1 z finally
& O5 I% ~+ {2 l Adapter.Free;
' R' U1 x7 `. V, R/ } end;
, r" V0 o# P" N* I9 l6 H finally 5 Q5 I1 a D0 d/ l& }) L; q0 }' p
Stream.Free; 1 J: U# M7 ^0 H2 z0 T9 \- x9 g
end; 8 m: w. ^( f# s
end; / w$ s$ [6 D0 w8 N' W& \5 }
function GetHtml3(const WebBrowser: TWebBrowser; var Html: string): Boolean; ( m2 p4 x5 D7 l- w! ^
) Q! n3 ?; h9 Z( [# z/ m* Kvar 6 {. i; t# I" ~( y$ i$ d, T9 ?5 o, n( @
Stream: TMemoryStream; - q8 a; P/ S: O% g
Adapter: TStreamAdapter;
2 X. ^) h6 i \0 f, Ybegin
; N J! Q1 }3 _6 E) x6 H/ ?# \ Stream := TMemoryStream.Create;
3 f$ X$ G1 B+ g, h, f' x+ B8 T. G, { try
3 i: M# A+ z! Q1 a, Q ?. J* t Adapter := TStreamAdapter.Create(Stream);
8 ~7 A8 ?. r# M5 C+ I: x8 W try 7 t: C# v1 W u6 `
OleCheck((WebBrowser.Document as IPersistStreamInit).Save(Adapter, Tru
, o, W8 Q! [4 K8 b& Y4 M' be)); $ o7 |/ ^2 W( W6 `6 m$ q
SetLength(Html, Stream.Size+1);
- @0 _" H8 v6 m9 z7 p StrLCopy(PChar(Html), Stream.Memory, Stream.Size);
# g6 _! Q; c" w$ y Result := True; ! z* \) F- Q3 \: ?8 e
( I% C# ^+ D% h- h7 |- D$ h
finally ! l. e5 C+ O: F. Y$ o2 c0 Z
Adapter.Free; 5 v: g% {% [! H) i$ Y6 _
end;
: ?; g0 I7 B" v' D0 s: Q finally
4 ^ ^0 t M$ l- E/ |0 K Stream.Free;
$ r/ R9 l5 q' V end; 0 K& f7 v1 w4 D% ^/ }+ ?0 g/ E
end; |