到底什麼是瀏覽器幫助程序對象 (BHO)

到底什麼是瀏覽器幫助程序對象 (BHO)?簡言之,BHO 是將自定義功能添加到 Internet Explorer 的輕型 DLL 擴展。BHO 還可以將功能添加到 Windows 資源管理器外殼程序(儘管這並不常見,也不是本文重點)。

BHO 通常並不提供其自身的任何用戶界面 (UI)。它們而是通過在後臺響應瀏覽器事件和用戶輸入數據來發揮作用。例如,BHO 可以攔截彈出窗口、自動填充窗體或爲鼠標手勢添加支持。有一種常見誤解認爲工具欄擴展項需要 BHO;但如果將 BHO 與工具欄配合使用,則可以實現更豐富的用戶體驗。

注意 BHO 對於最終用戶和開發人員同樣都是便捷的工具;但由於 BHO 被賦予了對瀏覽器和 Web 內容的相當大的控制能力,並且它們通常都處於未檢測的狀態,因此用戶應十分謹慎地從可靠來源獲取和安裝 BHO。

BHO 的生命週期與它所交互的瀏覽器實例的生命週期相等。在 Internet Explorer 6 和早期版本中,這意味着爲每個新的頂層窗口都創建(和銷燬)一個新 BHO。另一方面,Internet Explorer 7 會爲每個選項卡都創建和銷燬一個新 BHO。BHO 不是由承載 WebBrowser 控件的其他應用程序加載,也不是由 HTML 對話框之類的窗口加載。

BHO 的主要要求是實現 IObjectWithSite 接口。此接口提供了一個方法(即 SetSite),此方法方便了與 Internet Explorer 的初始通信,並會在其將要釋放時通知 BHO。我們實現此接口,然後將 BHO 的 CLSID 添加到註冊表中,由此創建一個簡單的瀏覽器擴展。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章