|
function SetHtml3(const WebBrowser: TWebBrowser; const Html: string): Boole
$ {3 r% {1 S# a9 D, L; s7 ?" b# o: pan; 4 J1 A- t+ T! @# y( R
var 1 e4 o, H2 l" B. V5 \
Stream: TStringStream;
2 T1 b8 T' ~- p5 X: u Adapter: TStreamAdapter;
/ {3 s: u3 `. v* R \6 [begin . r$ p4 d2 g- I6 {- B
Stream := TStringStream.Create(Html); 5 K1 A5 @1 X% i, C6 W/ |+ N
try ; q6 x0 K) B9 C
Adapter := TStreamAdapter.Create(Stream); & F$ B' `$ p5 P8 c
try
/ l! a& N! W! u j OleCheck((WebBrowser.Document as IPersistStreamInit).Load(Adapter)); ' f: y+ H* z1 Y/ M* D
Result := True; / P7 m& P5 B) P% x2 l* y. G) w
finally 5 F! [" x% I1 c
Adapter.Free; ; T1 Q9 u( _. n7 X! K& L
end;
+ J: K$ J( V; H2 i finally
5 G, x* T+ w( \& R/ } Stream.Free;
7 x5 I4 }. `7 u3 _; W- ? end;
9 a3 V$ N3 e& S( L( a3 g2 A8 y. z/ yend; % A4 `* a1 Q$ l9 D* U
function GetHtml3(const WebBrowser: TWebBrowser; var Html: string): Boolean; , j4 e! N4 S" G! n5 Q; m9 n
; i$ E9 ]9 l% o) _! `: g0 @
var # M! K+ ~$ i3 O+ N
Stream: TMemoryStream; 9 {5 T2 }0 [! S/ ?3 j% H; _' @
Adapter: TStreamAdapter;
% f1 _) X5 ^, i8 }2 f4 e, {6 zbegin , ?& X' h7 j6 N7 ^1 a
Stream := TMemoryStream.Create; 5 w. z# {$ ~, ?5 {$ c* z
try " H0 |9 {9 t( n0 [ X8 ]+ b# C2 u
Adapter := TStreamAdapter.Create(Stream); 0 w# o0 F6 o; T% K* l8 C! ^
try % v2 F( Z) U6 D" u3 ?
OleCheck((WebBrowser.Document as IPersistStreamInit).Save(Adapter, Tru % h1 y8 H, t) Z: Q+ o5 Y
e)); 7 @4 }% b& W$ U2 P
SetLength(Html, Stream.Size+1);
" C. c: d; M ]) C StrLCopy(PChar(Html), Stream.Memory, Stream.Size);
0 @8 O' `" B6 z8 A- C* I Result := True; ' b' D' b6 K& B' s6 X5 z: @( Q
: M' S @# e" H2 N: k9 K+ `- l4 e
finally 4 z6 O8 p0 T+ q9 F
Adapter.Free;
G- X" `8 V. K. O4 U/ e end;
1 L/ k. U; j: p$ l; v finally
0 t3 H. o |" X+ S- M Stream.Free; ' _1 Q" T" `0 X+ a- @
end; " S! V6 p( K9 ~, v0 v6 ^
end; |