取脚本函数,调用我觉得不太可能function TForm1.GetHtml(const WebBrowser: TWebBrowser): string;
const
BufSize = $10000;
var
Size: Int64;
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
if not Assigned(WebBrowser.Document) then Exit;
OleCheck(WebBrowser.Document.QueryInterface (IPersistStreamInit, psi));
try
//OleCheck(psi.GetSizeMax(Size));
hHTMLText := GlobalAlloc(GPTR, BufSize);
if 0 = hHTMLText then RaiseLastWin32Error;
OleCheck(CreateStreamOnHGlobal(hHTMLText, True, Stream));
try
OleCheck(psi.Save(Stream, False));
Size := StrLen(PChar(hHTMLText));
SetLength(Result, Size);
CopyMemory(PChar(Result), Pointer(hHTMLText), Size);
finally
Stream := nil;
end;
finally
psi := nil;
end;
end;Procedure Tform1.SetHtml(Const WebBrowser:TWebBrowser; Const Html: String);
Var
Stream : IStream;
hHTMLText : HGLOBAL;
psi : IPersistStreamInit;
Begin
If Not Assigned(WebBrowser.Document) Then Exit; hHTMLText := GlobalAlloc(GPTR, Length(Html) + 1);
If 0 = hHTMLText Then RaiseLastWin32Error; CopyMemory(Pointer(hHTMLText),
PChar(Html), Length(Html)); OleCheck(CreateStreamOnHGlobal
(hHTMLText, True, Stream));
Try
OleCheck(WebBrowser.Document.
QueryInterface(IPersistStreamInit, psi));
Try
OleCheck(psi.InitNew);
OleCheck(psi.Load(Stream));
Finally
psi := Nil;
End;
Finally
Stream := Nil;
End;
End;
const
BufSize = $10000;
var
Size: Int64;
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
if not Assigned(WebBrowser.Document) then Exit;
OleCheck(WebBrowser.Document.QueryInterface (IPersistStreamInit, psi));
try
//OleCheck(psi.GetSizeMax(Size));
hHTMLText := GlobalAlloc(GPTR, BufSize);
if 0 = hHTMLText then RaiseLastWin32Error;
OleCheck(CreateStreamOnHGlobal(hHTMLText, True, Stream));
try
OleCheck(psi.Save(Stream, False));
Size := StrLen(PChar(hHTMLText));
SetLength(Result, Size);
CopyMemory(PChar(Result), Pointer(hHTMLText), Size);
finally
Stream := nil;
end;
finally
psi := nil;
end;
end;Procedure Tform1.SetHtml(Const WebBrowser:TWebBrowser; Const Html: String);
Var
Stream : IStream;
hHTMLText : HGLOBAL;
psi : IPersistStreamInit;
Begin
If Not Assigned(WebBrowser.Document) Then Exit; hHTMLText := GlobalAlloc(GPTR, Length(Html) + 1);
If 0 = hHTMLText Then RaiseLastWin32Error; CopyMemory(Pointer(hHTMLText),
PChar(Html), Length(Html)); OleCheck(CreateStreamOnHGlobal
(hHTMLText, True, Stream));
Try
OleCheck(WebBrowser.Document.
QueryInterface(IPersistStreamInit, psi));
Try
OleCheck(psi.InitNew);
OleCheck(psi.Load(Stream));
Finally
psi := Nil;
End;
Finally
Stream := Nil;
End;
End;
解决方案 »
- Wise InstallMaster 打包的问题,急、急、急、急、急、急、急、急、急、急、急、急、、、、、
- 求delphi入门书籍
- 字符串替换, 求一段代码, 写过的朋友请帮个忙...
- 寻物
- 怎么在控件中继承父类的事件,并在事件中加入自己的代码?
- 请教一个不难的问题 !!!!我想散分!!顶也有分的!!!
- 把我用了6年多14"显示器放一边了,换了17"液晶,爽啊!散分!
- (续)刚才想散分,不过不能给超过100分。想开多个贴,结果只开了一个,然后荣誉分只有81分了……(10分钟后结贴)
- 請問怎麼劃線?
- 关于数据库的查询
- 怎样实现一个特定程序启动的时候另外一个也启动?
- 我的delphi什么回事,老是不能保存项目,是怎么回事呢我的项目明天就交,请帮忙
如果在一个网页上放一个ActiveX控件,可以在ActiveX的代码中用HLinkNavigateString函数执行一个script函数,如果要在WebBrowser的外部用代码实现该怎样作呢?
BSTR code,
BSTR language,
VARIANT *pvarRet
);