大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> ASP专区 -> IE里的探索之定制浏览器好助手(上1)

IE里的探索之定制浏览器好助手(上1)

时间: 2021-07-31 作者:daque

ie里的探究之定制欣赏器好帮忙(作家:青苹果处事室编写翻译 2001年02月08日 14:00)  有些情景下你须要特制的、或多或罕见些变换的欣赏器。这种情景下,你有功夫会鉴于 webbrowser 控件开拓一个实足定制的模块,实行按钮、题目以及用户界面须要的其它货色。这时候,你不妨自在地在这个欣赏器中增添任何新的、非规范的功效。webbrowser 控件不过欣赏器的语法领会引擎。这即是说再有很多用户界面关系的工作必需由你实行:增添地方栏、东西条、汗青、状况栏、频段和保藏夹之类。以是,要创造定制的欣赏器,你必需编写两种代码:将 webbrowser 控件形成一致于 microsoft internet explorer 的全功效欣赏器的代码和扶助你的新功效的代码。即使有一种定制 internet explorer 的径直办法不是很好吗?欣赏器帮忙东西 (bho) 即是做这件事用的。 步调定制   汗青上,定制步调动作的第一种本领是子类。经过这种本领,你能变换步调中给定的窗口处置动静的办法以赢得各别的动作。这是一种原始的实行办法,但是由于被害者很少认识到,在很长一段功夫内这是独一的采用。   microsoft win32 api 出当前,不激动运用过程间的子类,并且它们的代码比拟难写。但是,即使你有一颗果敢的心,南针历来就吓不倒你;究竟,你生存在体例挂钩的情况里,你大概会创造它本来很大略。但不老是这种情景。尽管是如许聪慧的编制程序,有一个题目即是每一个 win32 过程运转在它本人的地方空间内,而偶尔冲破这种过程的边境是不精确的。另一上面,这诉求你倾尽鼎力实行这种编制程序。更为罕见的是,定制大概是指步调自己在安排时就决定的指定功效。   厥后,步调在妇孺皆知的、预先指定的磁盘空间探求附加模块,加载、初始化它们,而后让它们实行预先安排的处事。这即是 internet explorer 和它的帮忙东西的本质处事办法。 欣赏器帮忙东西(bho)是什么   从这个观点来看,internet explorer 就和任何其它运用本人外存空间的 win32 步调一律。你能运用欣赏器帮忙东西编写组件——过程内的组件东西模子 (com) 组件——internet explorer 在历次启用时加载那些组件。那些组件和欣赏器运转在沟通的外存左右文里而且能在可用的窗口和模块里实行任何操纵。比方,一个 bho 能检验和测定到欣赏器的典范事变,如 goback、goforward 和 documentcomplete;考察欣赏器的菜单和东西条并变换它们;创造窗口以表露暂时可视页面上的附加消息;安置挂钩以监督动静和操纵。大略地说,bho 就像咱们派出的潜入欣赏器的特务一律处事。   在咱们深刻到 bho 中心详细之前,有些情景我须要证明。开始,bho 贯穿在欣赏器的主窗口上。本质上,这表示着每创造一个欣赏器窗口,就创造了该东西的一个新范例。任何 bho 范例同欣赏器范例同声爆发、同声消失。其次,bho 只生存于 internet explorer 4.0 之上本子。   如你运转带有 active desktop shell update (shell 本子 4.71) 的 microsoft windows 98、windows 2000、windows 95 大概 windows nt 4.0 版操纵体例,windows explorer 也扶助 bho。此后在计划本能题目和实行收缩的 bho 时咱们谈判到关系实质。   最大略的情景下,bho 是一个在一定备案表项下备案的过程内 com 效劳器。启用时,internet explorer 搜索备案表并加载一切将其 clsid 生存在此处的东西。欣赏器初始化东西并诉求它供给一定接口。即使创造了如许的接口,internet explorer 运用所供给的本领将它的 iunknown 南针传播给帮忙东西。图1说领会这一进程。   图 1:internet explorer 怎样加载并初始化欣赏器帮忙东西。bho site 是创造通信所用的 com 接口。   欣赏器大概在备案内外创造一系列 clsid,并为每一个 clsid 创造一个过程内的范例。截止,那些东西被加载到欣赏器的左右文,而且不妨向内置元件一律运用。但是,因为欣赏器实质上是鉴于 com 的,加载到过程里面并不很要害。从其余一上面看,bho 真实能实行一系列潜伏的功效,比方说实行窗口的子类或安置线程局域挂钩,但 bho 的重要手段是摆脱欣赏器中心操纵。为了贯穿欣赏器事变,大概说,将事变机动化,帮忙东西须要创造一个有权力的而且是鉴于 com 的通信通道。以是,bho 应实行名为 iobjectwithsite 的接口。本质上, internet explorer 经过 iobjectwithsite 传播一个指向它本人的 iunknown 接口南针。随后,bho 就将这个南针生存起来,并经过它赢得其它所需的接口,如 iwebbrowser2、idispatch 和 iconnectionpointcontainer。   不妨从另一个上面,即 internet explorer 外壳扩充步调的观点来对于 bho。像你领会的那么,windows 外壳扩充步调是一个运转中的com,windows explorer承载后对文书档案举行一定操纵。比方,表露它的左右文关系菜单时,加载的过程 内的 com 效劳步调。经过编写实行几个 com 接口的 com 模块,你就能在左右文 关系菜单中增添菜单项并符合地处置它们。外壳扩充步调必需以 windows explorer 不妨找到的办法举行备案。欣赏器帮忙东西按照同样的形式 ;独一的变换是要实行的接口。引导 bho 被加载的触发前提是一个小分辨。但是,除去实行的各别除外,像下表所说的那么,外壳扩充和 bho 在实质上是一律的。   表 1. 外壳扩充步调和欣赏器帮忙东西怎样实行普遍功效   即使你对外壳扩充步调感爱好,请先参见 msdn 在线文书档案或 cd 文书档案。 帮忙东西的人命周期   像咱们前方提到的那么,惟有 internet explorer 扶助 bho。即使你运转了不低于本子 4.71 的外壳,你的 bho 也不妨被 windows explorer 载入。如许不妨经过一个简单的欣赏器并鉴于同样的用户体味同声欣赏 web 和当地磁盘。下表供给对暂时可用的百般外壳本子的一个面向产物的大概浏览。外壳的本子号在于于生存在 shell32.dll 中的本子消息。   表 2. 各别外壳本子对欣赏器帮忙东西的扶助   欣赏器帮忙东西在欣赏器的主窗口将要表露出来时加载,在窗口消失机卸载。你翻开的欣赏器窗口越多,创造的 bho 范例也就越多。纵然以吩咐行办法启用欣赏器它也被加载。普遍情景下,bho 范例的数量和运转的 explorer.exe 或 iexplorer.exe 的数量一律多。即使你在文献夹选项里树立了“在不同学口翻开各别文献夹”,历次你翻开一个新的文献夹时城市加载 bho。   图 2. 运用这一树立,每翻开一个文献夹就运转 explorer.exe 的一个独立范例 并加载备案了的 bho。   但是,须要提防的是,这种情景只是爆发在你从桌面上“我的电脑”图标发端翻开文献夹的功夫。在这种情景下,历次你变化到其余的文献夹时外壳都挪用 explorer.exe。你在两栏视图中发端欣赏时不会爆发这种情景。本质上,你变换文献夹时外壳并不是启用欣赏器的一个新范例,而是大略的创造嵌入视图东西的一个范例。更加是你在地方栏里输出一个新名字以变换文献夹时,不管 windows explorer 的视图是一栏仍旧两栏,欣赏都在同一窗口内举行。   对 internet explorer 来说情景就大略多了。惟有你屡次显式地运转 iexplorer.exe 才会爆发多个正片。当你从 internet explorer 中翻开新窗口时,每个窗口在一个新的线程中复制,而不是创造一个新的过程,如许就不会从新加载 bho。   更加,bho 最令人感爱好的特性即是它们是动静的。历次翻开 window explorer 或 internet explorer 的窗口时,它们从备案内外读取已安置的帮忙东西的 clsid,而后举行处置。即使你编纂翻开欣赏器的各别范例的备案表项,就能使欣赏器的各别正片加载各别的 bho。这表示着你有了一个特殊好的采用以代替编写新的欣赏器。你不妨在 microsoft visual basic 或 microsoft foundation classes (mfc) 的 frame window 中嵌入 webbrowser。同声,你有很好的时机安置扩充性很强的欣赏运用步调。你不妨依附internet explorer的十足功效并尽大概地增添想要的附加功效以满意你的须要。 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.