国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

IE編程簡述之“兩”個WebBrowser

2019-11-17 04:48:32
字體:
來源:轉載
供稿:網友

  一般的機器上總是存在著“兩”個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幾乎相同的參數:

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中過濾廣告窗口功能的基礎。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高州市| 教育| 仁寿县| 西贡区| 东城区| 东港市| 昆明市| 乌拉特中旗| 阿拉尔市| 轮台县| 大足县| 阳江市| 遂宁市| 天祝| 湄潭县| 合川市| 云梦县| 高密市| 平陆县| 迁西县| 绵阳市| 乌拉特中旗| 交城县| 军事| 政和县| 临沂市| 伊吾县| 抚顺县| 汶上县| 浪卡子县| 湟中县| 丘北县| 安西县| 定日县| 堆龙德庆县| 黄大仙区| 罗甸县| 商都县| 门头沟区| 广东省| 湘潭市|