二,框架设计.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二,框架设计

目录 一,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插件在注册表特定的位置注册好后,每当微软的浏览器启动,BHO实例就会被创建。在浏览器工作的中,BHO会接收到很多事件,比如浏览器浏览新的地址、前进或后退、生成新的窗口、浏览器退出等等BHO可以在这些事件的响应中实现与浏览器的交互。 BHO是COM组件,而且一定实现了IObjectWithSite接口。这些组件除了在注册表中注册为COM Server外,还必须将它们的CLSID在HKEY_LOCAL_MACHINESOFTWARE\ Windows\ CurrentVersion\ Explorer\Browser Helper Objects下注册为子键。微软在设计浏览器的时候,已经给这些组件预留了空间。每当浏览器启动时,浏览器会首先在上述注册表位置查看是否有注册的 BHO CLSID;如果有则分别创建一个实例,并对BHO实例进行初始化,建立交互连接。(注:BHO实例只有在创建它的浏览器窗口销毁时才被释放。)演示了BHO的创建过程: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)。在工作区中,建立一个 ATL 工程(Project)。示例程序叫,并选择DLL方式,见图。菜单 Insert\New ATL Object...(或者用鼠标右键在 ClassView 卡片中弹出菜单)并选择Object 分类,选中 项目先定义几个成员变量:CComQIPtrIWebBrowser2, IID_IWebBrowser2 mWebBrowser2,(需要加入#include ExDisp.h),用以保存浏览器组件的指针;DWORD mCookie用以保存与浏览器的连接ID。IObjectWithSite有两个接口方法:SetSite和GetSite。我们只需重载 SetSite就行了。在myBho中增加函数声明SetSite实现IDispatch接口方法。事件处理也就在IDispatch::Invoke中实现(各个事件的ID在ExDispID.h中定义)。 BHO可能会接收到很多事件,但我们只需要响应我们感兴趣的那一部分。首先在myBho中增加该函数的声明myBho添加RegisterEventHandler(BOOL inAdvise)方法声明,实现向IE注册和注销事件。详见附录代码。 通过上面的步骤,一个基本的BHO对象框架已经建立起来了。下一节来我们将根据具体要实现的功能(向Server发送注销Session命令)对代码主要功能作说明。 三,注销Session 3.1将BHO注册为浏览器的事件处理器 注册BHO的事件的工作主要在SetSite函数中来完成。首先保存浏览器指针到mWebBrowser2成员变量中去。然后调用RegisterEventHandler函数向浏览器注册为事件处理器。见图3.1 图3.1(详见MyBho.cpp文件) 3.2监听浏览器关闭事件,并向Server发送跳转指令 监听浏览器事件,全部在Invoke函数中来完成。当捕获了浏览器退出事件(DISPID_ONQUIT)时,首先取得页面的窗口名,判读是不是成功登陆页面。如果是,向Server 的LogOffAction发送一组数据,通知Server是BHO注销事件。然后退出IE。见图3.2 图3.2(详见MyBho.cpp文

文档评论(0)

busuanzi + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档