关于TWebBrowser,帮助我翻译成DELPHI语言?(200分)

  • 主题发起人 主题发起人 zuping
  • 开始时间 开始时间
Z

zuping

Unregistered / Unconfirmed
GUEST, unregistred user!
关于TWebBrowser,帮助我翻译成DELPHI语言?

遇到问题,搜索很久,发现这个解决方法,不懂语言翻译,需要懂行的朋友翻译成为DELPHI语言,谢谢了。

===============================

最近做一个小程序,需要用到WebBrowser控件,并且需要屏掉它的右键菜单 msgbox WebBrowser1.hwnd 但是一获取其hwnd属性就提示 对象 'HWND' 的方法 'IWebBrowser2' 失败
于是乎,搜索了一下,结果发现很多人都遇一这样的问题,最终还是在微软官方帮助中找到了点说明
原来WebBrowser本来就没有hwnd这个属性,一个虚的属性,其值为NULL,微软官方说法是:HWND 属性是不 WebBrowser 控件的有效属性。以下是微软官方帮助文档:

症状
承载 WebBrowser 控件在 VisualBasic 或 VisualC++ 应用程序并调用其 HWND 属性通常返回 E _ 下列 HRESULT 是 FAIL:
方法是 HWND IWebBrowser 2 失败。

原因
HWND 属性是不 WebBrowser 控件的有效属性。

解决方案

警告 : 这些技术可能不适用于框架窗口将来 InternetExplorer 版本 5.01 后。 建议遵循只保证能够对顶层 WebBrowser 控件。

VisualC++ 开发人员可使用 WebBrowser 控件的 IOleWindow 接口并调用其 GetWindow() 方法来检索 WebBrowser 是 HWND:

IOleWindow *pOWin;
HWND hBWnd;

HRESULT hRes = m_pBrowserApp->QueryInterface(IID_IOleWindow, (void **)&pOWin);
if (SUCCEEDED(hRes)) {
hRes = pOWin->GetWindow(&hBWnd);
if (SUCCEEDED(hRes)) {
// Place hBWnd-manipulating code here
}
}
 
等待2个小时

解决了

怎么算
 
var
pOWin: IOleWindow;
hbWnd: HWND;
if Succeded(m_pBrowserApp.QueryInterface(IOleWindow, pOWin)) and Succeded(pOWin.GetWindow(hbWnd) then
// Place hBWnd-manipulating code here
接分
 
后退
顶部