|
function SetHtml3(const WebBrowser: TWebBrowser; const Html: string): Boole ( c m! r0 |# U) u
an; # a n9 G! A+ |5 z/ m0 U% a
var 7 w- j: S9 G- V# b
Stream: TStringStream; 3 ~( F0 P2 x9 X6 U. L4 u& u
Adapter: TStreamAdapter;
7 K& H7 U) B- V1 sbegin # P: k& v% r% `
Stream := TStringStream.Create(Html);
) d% |7 d5 A4 p. e try & A1 X0 a& C1 _7 v) `
Adapter := TStreamAdapter.Create(Stream); - D% M2 s, P6 d0 @9 d4 x
try
# ^7 w- P. y% Z! W; y! n6 z OleCheck((WebBrowser.Document as IPersistStreamInit).Load(Adapter)); ' T6 ]' h; ~) l! K; C6 E9 z
Result := True; 2 P# v8 x9 e4 n! U! G$ P
finally / d; B: ?" A! k% a* K
Adapter.Free;
3 A1 @' ?* l7 H$ F$ i V) _ end; ; ~. P+ N: l) p$ z" a) ]1 n
finally
+ ~+ |* _" e/ i( ~ Stream.Free;
8 ~) a5 H8 c/ [7 {9 @# U7 f m4 R end;
k8 h! g! A6 e* S" g& f! y( dend;
7 j9 m* v$ g- {% F7 l5 Yfunction GetHtml3(const WebBrowser: TWebBrowser; var Html: string): Boolean;
7 @3 A+ l4 o9 `5 i
# D2 F: S$ z' e: e8 zvar
9 s" k4 K. X2 e/ S6 T1 ~5 ]" U+ G Stream: TMemoryStream; & ]$ U& f, M* x4 I2 P& L+ @5 x
Adapter: TStreamAdapter; 7 A8 e4 h' j, U/ V& @- j' H
begin 9 h a) _4 y8 s
Stream := TMemoryStream.Create; 5 w( l" x9 a* b! E' \: n: e
try
% M c! k: b5 u+ c2 b: j Adapter := TStreamAdapter.Create(Stream); ; q. f3 I7 ~5 n1 v8 {' z8 l- V: h3 @4 o
try
Q# ~' K/ V0 I+ N( v% ~ OleCheck((WebBrowser.Document as IPersistStreamInit).Save(Adapter, Tru " k4 U- E4 K2 p5 O- ]' m
e));
8 i4 a9 p, x. y8 u, c/ D SetLength(Html, Stream.Size+1);
. P) J+ q- g5 s" t) q StrLCopy(PChar(Html), Stream.Memory, Stream.Size);
8 U. ^; s3 P0 |+ C/ y Result := True;
: J; _5 p- m1 V4 z$ W& O3 b% w0 d, p8 |% I
finally 5 w* k1 K% l) v; G" r5 ^
Adapter.Free; % @1 Y; e3 ?; v6 Z+ i! U
end; # K& t+ L3 { @0 B4 D
finally 3 }$ ~' `8 m/ f6 q
Stream.Free; , G' G( u7 H) f5 C
end; 5 w+ m7 F+ ^. {( d# t6 R
end; |