IE编程简述之“两”个WebBrowser
发布时间:2006-04-29 20:11:32 来源:blog 网友评论 0 条 一般的机器上总是存在着“两”个WebBrowser,一个叫WebBrowser,另一个叫WebBrowser_V1,其CLASSID如下:
CLASS_WebBrowser: TGUID = '{8856F961-340A-11D0-A96B-00C04FD705A2}';
CLASS_WebBrowser_V1: TGUID = '{EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}';
它们分别对应的接口是IWebBrowser2和IWebBrowser。问题是我们该用哪一个呢?
按照微软的推荐,应该尽量使用前者,因为后者是为兼容Internet Explorer 3.x而保留的(尽管它能够响应来自Internet Explorer 3.x、4.x、5.x、6.x的事件),相应的IWebBrowser和IWebBrowserApp接口也应抛弃。
由于Internet Explorer 3.x年代久远,导致WebBrowser_V1提供的事件少得可怜,但值得一提的是它提供的两个事件OnNewWindow和OnFrameBeforeNavigate有着与OnBeforeNavigate几乎相同的参数:
所以使用WebBrowser_V1使得我们的浏览器在有新窗口打开时能够轻易捕捉到其URL及相关的数据,如果将Processed设置为TRUE,则可取消新窗口的弹出。同样,处理Frame也比在WebBrowser中来得容易。
但WebBrowser_V1的致命弱点是它不支持高级接口,如IDocHostUIHandler,即便我们实现了IDocHostUIHandler接口,也不会被WebBrowser_V1调用。所以希望在自己的浏览器中实现XP的界面主题、扩展IE的DOM(Document Object Model)等高级控制的话,就肯定不能选择WebBrowser_V1了。
处理新窗口实在是很麻烦的一件事,不知道微软为什么在新版本的OnNewWindow2事件中去掉了URL这样的参数,而且OnNewWindow2事件不能完全捕捉到所有的新窗口打开。但如果安装了Windows XP SP2的话,好处又回来了。
Windows XP SP2对Internet Explorer 6作了升级,并且提供了一个新的事件OnNewWindow3,它在OnNewWindow2事件之前发生,也包含了让我们能够加以过滤处理的新窗口的URL等参数,再加上INewWindowManager接口,就是实现Windows XP SP2中过滤广告窗口功能的基础。
CLASS_WebBrowser: TGUID = '{8856F961-340A-11D0-A96B-00C04FD705A2}';
CLASS_WebBrowser_V1: TGUID = '{EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}';
它们分别对应的接口是IWebBrowser2和IWebBrowser。问题是我们该用哪一个呢?
按照微软的推荐,应该尽量使用前者,因为后者是为兼容Internet Explorer 3.x而保留的(尽管它能够响应来自Internet Explorer 3.x、4.x、5.x、6.x的事件),相应的IWebBrowser和IWebBrowserApp接口也应抛弃。
由于Internet Explorer 3.x年代久远,导致WebBrowser_V1提供的事件少得可怜,但值得一提的是它提供的两个事件OnNewWindow和OnFrameBeforeNavigate有着与OnBeforeNavigate几乎相同的参数:
| OnBeforeNavigate(BSTR URL,long Flags,BSTR TargetFrameName,VARIANT* PostData,BSTR Headers,BOOL FAR* Cancel) OnNewWindow(BSTR URL,long Flags,BSTR TargetFrameName,VARIANT* PostData, BSTR Headers,BOOL FAR* Processed) OnFrameBeforeNavigate(BSTR URL,long Flags,BSTR TargetFrameName,VARIANT* PostData,BSTR Headers,BOOL FAR* Cancel) |
所以使用WebBrowser_V1使得我们的浏览器在有新窗口打开时能够轻易捕捉到其URL及相关的数据,如果将Processed设置为TRUE,则可取消新窗口的弹出。同样,处理Frame也比在WebBrowser中来得容易。
但WebBrowser_V1的致命弱点是它不支持高级接口,如IDocHostUIHandler,即便我们实现了IDocHostUIHandler接口,也不会被WebBrowser_V1调用。所以希望在自己的浏览器中实现XP的界面主题、扩展IE的DOM(Document Object Model)等高级控制的话,就肯定不能选择WebBrowser_V1了。
处理新窗口实在是很麻烦的一件事,不知道微软为什么在新版本的OnNewWindow2事件中去掉了URL这样的参数,而且OnNewWindow2事件不能完全捕捉到所有的新窗口打开。但如果安装了Windows XP SP2的话,好处又回来了。
Windows XP SP2对Internet Explorer 6作了升级,并且提供了一个新的事件OnNewWindow3,它在OnNewWindow2事件之前发生,也包含了让我们能够加以过滤处理的新窗口的URL等参数,再加上INewWindowManager接口,就是实现Windows XP SP2中过滤广告窗口功能的基础。
- 推荐阅讯
- 傲游(Maxthon) 1.5.3 新版火热出炉
- 六大法则:交换机及路由器如何更加安全
- 给Maxthon(傲游)配把猎枪赶走广告
- Opera 9内置插件将整合Widget和BT
- IE 7.0 正式版 for XP 汉化版
- Quidway 路由器配置接口配置命令
- 让老版Maxthon焕发青春:More Options
- Cisco路由器口令的恢复(7000)
- IE7如何进行缓冲设置?
- 3C8832路由器中DDN中的应用设置
- 阅读排行
- 1.IE不显示FLASH动画
- 2.华为路由器简单配置详解
- 3.路由器的配置与调试
- 4.Ipcop软路由制作教程
- 5.下载:IE 7 免验证简体中文特别版
- 6.家用SOHO路由器配置指南
- 7.强势出击,IE7.0正式版全面体验
- 8.历史上最强的浏览器:Firefox简体中文版下载
- 9.如何用GOOGLE Picasa偷窥国外美女隐私
- 10.ARP欺骗原理以及路由器的先天免疫
- 专题教程
- Windows Server-Windows Server文档-Windows Server新闻-Windows Ser PostgreSQL-PostgreSQL文档-PostgreSQL新闻-PostgreSQL专家
- WebLogic-WebLogic文档-WebLogic新闻-WebLogic专家 FreeBSD-FreeBSD文档-FreeBSD新闻-FreeBSD专家
- Linux-内核 GUI KDE Gnome DNS FTP 安全 安装-Linux专区 Windows-AD IIS ServerCore 虚拟化 安全 HPC-Windows专区
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
