描述
在创建新窗口时提起。扩展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]接口指针的地址,可选地,接收新的WebBrowser或InternetExplorer对象的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接口的调用方法时,使用此值来标识事件处理程序。
备注
NewWindow3在NewWindow2之前提出。
在Microsoft Internet Explorer中,当用户从“文件”菜单上的“新建”命令中选择“窗口”时,不会引发NewWindow3事件。在WebBrowser之前创建一个新窗口之前的事件。例如,NewWindow2是为了响应定位到新窗口的导航或从使用IHTMLWindow2.open方法的脚本引起的。
当一个窗口即将被创建时,NewWindow3事件会引发,例如在以下操作过程中。
· | 用户在按SHIFT键的同时单击链接。 |
· | 用户右键单击链接并选择“在新窗口中打开”。 |
· | 用户从文件菜单中选择新窗口。 |
· | 目标导航到尚不存在的框架名称。 |
您的浏览器应用程序也可以通过使用navOpenInNewWindow标志调用导航或Navigate2方法来触发此事件。WebBrowser控件有机会处理新的窗口创建本身。如果没有,则将顶级Internet Explorer窗口创建为单独(非主机)进程。
处理此通知的应用程序可以通过三种方式之一进行响应。
· | 创建ppDispco中返回的新的,隐藏的,不受欢迎的WebBrowser或InternetExplorer对象。从此事件返回后,引发此事件的对象将会将新对象配置和导航(包括BeforeNavigate2事件)到目标位置。 |
· | 将取消设置为VARIANT_TRUE取消导航。 |
· | 不做任何事情,不要将ppDispco设置为任何值。这将导致引发事件的对象创建一个新的InternetExplorer对象来处理导航。 |