如何捕获从新的弹出式 IE 窗口触发的事件

发布于 2024-07-21 02:21:25 字数 590 浏览 11 评论 0原文

问候!

情况:

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

问题:

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

我已经尝试过的:

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

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

谢谢!

Greetings!

Situation:

My ActiveX DLL contains a customized webbrowser. The webbrowser displays a web page. When user clicks the link within the displayed page, a new IE window pop up and navigate to the clicked link URL.

Question:

How can I capture the DocumenComplete and NavigateComplete events fired from the NEW pop up IE window?

What I already tried:

I tried to capture the
*NewWindow2(IDispatch **ppDisp,
VARIANT_BOOL Cancel)
event fired from customized webbrowser (not new IE window), and obtained the pointer ppDisp which points to the new IE windown. I tried to use this pointer as event source to advise or connect to the event handler (IDispatch::Invoke) for event capture. However it does not work. Maybe the failure is because the document in new IE window has not been loaded yet. I am not sure.

Can you please give me an suggestion what I should do?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

∝单色的世界 2024-07-28 02:21:25

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

You don't obtain the new web browser in ppDisp. You create one, sink events, and return its application property in ppDisp to the event.

月下伊人醉 2024-07-28 02:21:25
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();

}

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();

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文