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

NewWindow2

Previous pageReturn to chapter overviewNext page

描述

 

要创建新窗口时触发。

 

C++ 语法

 

void NewWindow2(     

   IDispatch **&ppDisp,

   VARIANT_BOOL *&bCancel

);

 

PowerBASIC 语法

 

METHOD NewWindow2 ( _

   BYREF ppDisp AS IDispatch, _

   BYREF bCancel AS INTEGER _

)

 

参数

 

ppDisp

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

bCancel

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

VARIANT_TRUE

取消导航。

VARIANT_FALSE

不要取消导航。

 

OBRESULT

 

无返回值。

 

事件DISPID

 

DISPID_NEWWINDOW2

 

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

 

备注

 

在Microsoft Internet Explorer中,当用户从“文件”菜单上的“新建”命令中选择“窗口”时,不会触发NewWindow2事件。此事件在WebBrowser内创建新窗口之前。例如,NewWindow2响应导向到新窗口的导航或从使用IHTMLWindow2.open方法的脚本触发。

 

当一个窗口即将被创建时,NewWindow2事件触发,例如在以下操作期间:

 

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

 

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

 

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

 

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

 

·通过将bCancel设置为VARIANT_TRUE来取消导航。

 

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