折腾了好几天了,也发现之前有人遇到过这个问题,但是却没有找到切实可行的解决方案!
下面是我找到的比较权威的一种办法:
在   CHtmlView::OnNewWindow2   里面创建一个新的   WebBrowser,并把新的   WebBrowser   的   IDispatch   接口指针传过去。可现在的问题是:怎么样获取要打开的新窗口的URL呢??
我快被折腾疯了,求大牛赶紧帮帮忙啊~~
十万火急啊!!!!多谢多谢!!

解决方案 »

  1.   

    新的webbrowser里根本没有跟弹出的新窗口建立联系,获取不到我所要的URL的~
      

  2.   

    用DISPID_NEWWINDOW3这个事件,里面会传递新窗口url给你
      

  3.   

    您说的这个有代码吗??可否用简单的CHtmlView代码给个示例?我找了一下,发现在实现BHO的时候才会涉及到Invoke函数,那么在CHtmlView中应该如何生成这个函数,从而处理DISPID_NEWWINDOW3事件呢??多谢啊!!
      

  4.   

    handle NewWindow2 to create a new window, and handle BeforeNavigate2 in the new window to get the URL
      

  5.   

    jiangsheng(蒋晟)老大,您的回复我在别的地方也看到了,但是这个方法具体怎么实施实在是不得而知啊!请老大给点更详细的指点啊!多谢
      

  6.   

    SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NEWWINDOW3,        &OnNewWindow3,        &NewWindow3Info)
    void WINAPI OnNewWindow3(IDispatch ** ppDisp, VARIANT_BOOL* Cancel, DWORD dwFlags, BSTR bstrUrlContext, BSTR bstrUrl)
    OnNewWindow3一定要设*Cancel = TRUE,否则就真弹窗了
    那个bstrUrl就是新窗口url
      

  7.   

    哦,,忘了我用的是atl
    反正你在Invoke里看到DISPID_NEWWINDOW3事件就处理就是了,具体看msdn
      

  8.   

    Sangel():能不能留个email??我的是[email protected],这里不能粘贴附件,我们mail交流吧
      

  9.   

    已经按照蒋晟大哥的方法搞定了!在同一个CHtmlView中处理NewWindow2函数,生成新的CHtmlView,并在OnBeforeNavigate2()实现新窗口URL的获取,并在原有的View中显示.多谢各位的帮助!:)