0

问候!

情况:

我的 ActiveX DLL 包含一个定制的网络浏览器。网络浏览器显示网页。当用户单击显示页面中的链接时,会弹出一个新的 IE 窗口并导航到单击的链接 URL。

问题:

如何捕获从新弹出 IE 窗口触发的DocumenComplete和 NavigateComplete 事件?

我已经尝试过的:

我试图捕获从自定义浏览器(不是新的 IE 窗口)触发的 *NewWindow2(IDispatch **ppDisp, VARIANT_BOOL Cancel) 事件,并获得指向新 IE 窗口的指针 ppDisp。我尝试将此指针用作事件源来建议或连接到事件处理程序 (IDispatch::Invoke) 以进行事件捕获。但是它不起作用。可能是因为新的 IE 窗口中的文档还没有加载。我不知道。

你能给我一个建议我应该怎么做吗?

谢谢!

4

2 回答 2

1

您没有在 ppDisp 中获得新的 Web 浏览器。您创建一个接收事件,并将其在 ppDisp 中的应用程序属性返回给事件。

于 2009-05-20T13:15:49.370 回答
1
void CYourDlg::OnNewWindow2(LPDISPATCH FAR* ppDisp, BOOL FAR* Cancel)
{
  CDlgNewWB* dlgNewWB = new CYourDlg;
  this.listDialogWeb.Add(dlgNewWB);
  dlgNewWB ->Create(IDD_WBDLG_DIALOG);

  dlgNewWB ->m_webBrowser.SetRegisterAsBrowser(TRUE);

  *ppDisp = dlgNewWB ->m_webBrowser.GetApplication();

}

于 2009-05-22T14:31:13.583 回答