本节解释Microsoft Internet Explorer 4.0及更高版本的体系结构并提供使用它的组件时用到的信息,包括以下内容:* 体系结构概览;* 选择正确的组件;* 提供附加控制;* 控制上下文相关菜单;* 扩展动态 HTML 对象模型;* 控制下载;* 安全管理。
体系结构概览
Internet Explorer 使用 Microsoft ActiveX 控件和 Active Document 接口来连接各个组件。下图提供了一个高层的概览:
IExplore.exe 在最上层;它是一个在 Internet Explorer 加载时被实例化的一个小应用程序。这个可执行的应用程序使用 Internet Explorer 来完成浏览、历史维护、收藏夹维护、HTML 语法分析和翻译等,同时它为独立的浏览器提供工具栏和框架。IExplorer.exe 直接引用 Shdocvw.dll 组件。
然后 Shdocvw.dll 引用 Mshtml.dll 组件,当用户浏览到特定的类型的文档时,他还可以引用其它可以加载到浏览其中的 Active Document 组件 (如 Microsoft Office 应用程序)。Shdocvw.dll 提供与浏览、内置连接、收藏家和历史管理以及图形支持相关的功能。这个DLL 也向它的宿主提供接口以便可以像一个 ActiveX 控件一样被单独引用。Shdocvw.dll 组件更经常作为 WebBrowser 控件被引用。内置连接是指点击已加载文档中的 HTML 链接,然后在 WebBrowser 控件的同一实例中加载一个新的 HTML 文档的能力。如果只引用了 Mshtml.dll,点击链接导致新的浏览器实例产生。
Mshtml.dll 是在 Internet Explorer 4.0 或更高版本中进行 HTML 语法分析和翻译的组件,同时通过动态 HTML对象模型提供 HTML 文档。这个组件引用脚本引擎、Microsoft 虚拟机、ActiveX 控件、插件以及它加载的 HTML 文档可能引用的其它对象。Mshtml.dll 实现 Active Document 服务器接口,这样,就能通过标准 COM 接口引用它。
引用 WebBrowser 控件时有一个常见的要求,就是能够替代或添加在浏览器窗口中点击右键时显示的上下文相关菜单。那些使用 WebBrowser 控键查看丰富内容而不希望用户知道他们在查看 HTML 的应用程序特别需要这种能力。同时,这种能力对不希望用户能看到内容的 HTML 源代码的应用程序很有用处。