在为NewWindow3处理打开另一个嵌入式IWebBrowser2时,会话在嵌入式IWebBrowser2中到期

时间:2013-01-17 15:13:45

标签: session popup iwebbrowser2

我正在开发一个基于WTL的多线程应用程序,它打开多个浏览器窗口,每个窗口都有自己的嵌入式IWebBrowser2实例用于浏览,每个窗口都在一个单独的UI线程中。

为响应NewWindow3,我打开一个新的浏览器窗口,并返回新窗口的IWebBrowser2->get_Application(),返回IDispatchPtr

当弹出窗口打开所需的网站时,原始窗口中打开此弹出窗口的会话,EXPIRES - 原始窗口中的任何进一步导航都会返回到登录页面!

我认为有些人可能对任何人帮助我都很重要 -

  1. 只有当NewWindow3被触发时才会发生这种情况,非空bstrUrlContext(第3个参数包含原始网址)
  2. 作为NewWindow3处理的一部分,完成以下操作 -
    • 创建新的IWebBrowser2嵌入窗口,Create()'ed zWindowName设置为bstrUrlContext参数的值
    • IDispatch
    • 检索返回的IWebBrowser2->get_Application()指针

1 个答案:

答案 0 :(得分:0)

此问题已得到解决。

我必须使用空字符串(_T(“”))WindowName创建IWebBrowser2嵌入窗口。 并且必须通过在窗口的OnCreate()处理程序中调用CAxWindow :: CreateControl()来确保创建IWebBrowser2控件(对于WM_CREATE)

由于