Navigation:  Internet Development > WebBrowser Control > Interfaces > DWebBrowserEvents2 >

NewWindow3

Previous pageReturn to chapter overviewNext page

描述

 

在创建新窗口时提起。扩展NewWindow2关于新窗口的其他信息。

 

C++ 语法

 

void NewWindow3(     

   IDispatch **&ppDisp,

   VARIANT_BOOL *&bCancel,

   DWORD dwFlags,

   BSTR bstrUrlContext,

   BSTR bstrUrl

);

 

PowerBASIC 语法

 

METHOD NewWindow3 ( _

   BYREF ppDisp AS IDispatch, _

   BYREF bCancel AS INTEGER, _

   BYVAL dwFlags AS DWORD, _

   BYVAL bstrUrlContext AS DWORD, _

   BYVAL bstrUrl AS DWORD _

)

 

参数

 

ppDisp

[in, out]接口指针的地址,可选地,接收新的WebBrowserInternetExplorer对象的IDispatch接口指针。

bCancel

[in, out]布尔确定当前导航是否应取消的值。

VARIANT_TRUE

取消导航。

VARIANT_FALSE

不要取消导航。

dwFlags

[in]与新窗口相关的NWMF枚举中的标志。

bstrUrlContext

[in]打开新窗口的页面的URL。

bstrUrl

[in]URL正在新窗口中打开。

 

OBRESULT

 

无返回值。

 

事件DISPID

 

DISPID_NEWWINDOW3

 

此事件的DISPID在exdispid.inc中定义。在实现IDispatch接口的调用方法时,使用此值来标识事件处理程序。

 

备注

 

NewWindow3NewWindow2之前提出。

 

在Microsoft Internet Explorer中,当用户从“文件”菜单上的“新建”命令中选择“窗口”时,不会引发NewWindow3事件。在WebBrowser之前创建一个新窗口之前的事件。例如,NewWindow2是为了响应定位到新窗口的导航或从使用IHTMLWindow2.open方法的脚本引起的。

 

当一个窗口即将被创建时,NewWindow3事件会引发,例如在以下操作过程中。

 

·用户在按SHIFT键的同时单击链接。
·用户右键单击链接并选择“在新窗口中打开”。
·用户从文件菜单中选择新窗口。
·目标导航到尚不存在的框架名称。

 

您的浏览器应用程序也可以通过使用navOpenInNewWindow标志调用导航Navigate2方法来触发此事件。WebBrowser控件有机会处理新的窗口创建本身。如果没有,则将顶级Internet Explorer窗口创建为单独(非主机)进程。

 

处理此通知的应用程序可以通过三种方式之一进行响应。

 

·创建ppDispco中返回的新的,隐藏的,不受欢迎的WebBrowserInternetExplorer对象。从此事件返回后,引发此事件的对象将会将新对象配置和导航(包括BeforeNavigate2事件)到目标位置。

 

·将取消设置为VARIANT_TRUE取消导航。

 

·不做任何事情,不要将ppDispco设置为任何值。这将导致引发事件的对象创建一个新的InternetExplorer对象来处理导航。