网站大量收购闲置独家精品文档,联系QQ:2885784924

BHO插件开发入门.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BHO插件开发入门

目录 一,BHO开发概述 3 1.1 BHO的用途及实际应用 3 1.2 BHO的工作原理及技术环境 3 二,框架设计 4 2.1 构建BHO框架 4 2.2实现IObjectWithSite的接口方法 5 三,注销Session 7 3.1将BHO注册为浏览器的事件处理器 7 3.2监听浏览器关闭事件,并向Server发送跳转指令 8 3.3关闭BHO注销页面 9 3.4阻止文件浏览器加载BHO 9 3.5向注册表中注册BHO组件 10 四,打包发布 10 4.1 BHO打包和找到关联Dll文件 10 4.2编写自动安装脚本inf文件 11 4.3用cabarc工具打包。 12 一,BHO开发概述 1.1 BHO的用途及实际应用 BHO(Browser Help Objects),是实现了特定接口的COM组件。BHO只适用于Windows系统下的IE浏览器和文件浏览器。开发好的BHO插件在注册表特定的位置注册好后,每当微软的浏览器启动,BHO实例就会被创建。在浏览器工作的过程中,BHO会接收到很多事件,比如浏览器浏览新的地址、前进或后退、生成新的窗口、浏览器退出等等。BHO可以在这些事件的响应中实现与浏览器的交互。 本文档中我们将通过编写一个BHO实例来详细讲解BHO开发的一般流程。该实例的功能是:当用户成功登陆网站后,如果用户点击IE关闭按钮,BHO将捕获IE关闭事件,同时向Server发送一个注销当前用户Session的请求。Server注销后跳转到BHO注销页面,BHO捕获到BHO注销页面时,关闭该页面。 1.2 BHO的工作原理及技术环境 BHO是COM组件,而且一定实现了IObjectWithSite接口。这些组件除了在注册表中注册为COM Server外,还必须将它们的CLSID在HKEY_LOCAL_MACHINE\SOFTWARE\ Windows\ CurrentVersion\ Explorer\Browser Helper Objects下注册为子键。微软在设计浏览器的时候,已经给这些组件预留了空间。每当浏览器启动时,浏览器会首先在上述注册表位置查看是否有注册的 BHO CLSID;如果有则分别创建一个实例,并对BHO实例进行初始化,建立交互连接。(注:BHO实例只有在创建它的浏览器窗口销毁时才被释放。)图1.1演示了BHO的创建过程: 图1.1 表1.1 BHO支持的操作系统一览及IE一览 IE版本 操作系统版本 支持BHO 4.00 Windows 95 and Windows NT 4.0 仅IE4.0 5.00 Windows2000 IE和文件浏览器 6.00 WindowsXP IE和文件浏览器 7.00 Vista IE和文件浏览器 二,框架设计 2.1 构建BHO框架  开发环境: Microsoft Visual C++ 6.0  步骤1:建立一个工作区(WorkSpace)。  步骤2:在工作区中,建立一个 ATL 工程(Project)。示例程序叫TEST,并选择DLL方式,见图2.1。 图2.1  步骤3:增加ATL对象类。在菜单 Insert\New ATL Object...(或者用鼠标右键在 ClassView 卡片中弹出菜单)并选择Object 分类,选中 Internet Exploer 项目。见图2.2。 图2.2  步骤4:填写COM类的名称。只要输入Short Name,其它自动生成。见图2.3。 图2.3 2.2实现IObjectWithSite的接口方法  步骤1:先定义几个成员变量:CComQIPtrIWebBrowser2, IID_IWebBrowser2 mWebBrowser2,(需要加入#include ExDisp.h),用以保存浏览器组件的指针;DWORD mCookie,用以保存与浏览器的连接ID。见图2.4 图2.4(详见MyBho.h文件)  步骤2:IObjectWithSite有两个接口方法:SetSite和GetSite。我们只需重载 SetSite就行了。在ImyBho中增加函数声明SetSite函数。见图2.5 图2.5  步骤3: 实现IDispatch接口方法。事件处理也就在IDispatch::Invoke中实现(各个事件的ID在ExDispID.h中定义)。 BHO可能会接收到很多事件,但我们只需要响应我们感兴趣的那一部分。首先在ImyBho中增加该函数的声明。见图2.6 图2.6  步骤4: ImyBho添加RegisterEventHandler(BOOL inAdvise)方法声明,实现向IE注册和注销事件。详见附录代码。 通过上面的

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档