본문 바로가기

IT-Consultant

Internet Explorer Architecture


Google에 있는 http://msdn.microsoft.com/en-us/library/aa741312(VS.85).aspx의 저장된 페이지입니다. 2009년 7월 12일 16:53:14 GMT에 표시된 페이지의 스냅샷입니다. 그동안 현재 페이지가 변경되었을 수 있습니다. 자세히 알아보기

다음 검색어가 강조표시되어 있습니다: com based architecture mshtml  
Internet Explorer Architecture

Windows Internet Explorer's modular architecture enables developers to reuse some of its components as well as extend and enhance the browser's functionality. Examples of extensions to Internet Explorer include custom shortcut menus, browser toolbars, Microsoft ActiveX controls, active documents, and binary behaviors. This topic provides a high-level overview of Internet Explorer's architecture, information on the reuse of its components, and a summary of some of the powerful methods of extensibility available to developers. It contains the following sections.

COM-Based Architecture

To choose the most appropriate reuse or extension mechanism for your needs, it is first important to understand Internet Explorer's architecture. Essential to the browser's architecture is the use of the Component Object Model (COM), which governs the interaction of all of its components and enables component reuse and extensibility. The following diagram illustrates Internet Explorer's major components.

Internet Explorer Architecture

A description of each of these six components follows:

  • IExplore.exe is at the top level, and is the Internet Explorer executable. It is a small application that relies on the other main components of Internet Explorer to do the work of rendering, navigation, protocol implementation, and so on.

  • Browsui.dll provides the user interface to Internet Explorer. Often referred to as the "chrome," this DLL includes the Internet Explorer address bar, status bar, menus, and so on.

  • Shdocvw.dll provides functionality such as navigation and history, and is commonly referred to as the WebBrowser control. This DLL exposes ActiveX Control interfaces, enabling you to easily host the DLL in a Microsoft Windows application using frameworks such as Microsoft Visual Basic, Microsoft Foundation Classes (MFC), Active Template Library (ATL), or Microsoft .NET Windows Forms. When your application hosts the WebBrowser control, it obtains all the functionality of Internet Explorer except for the user interface provided by Browseui.dll. This means that you will need to provide your own implementations of toolbars and menus.

  • Mshtml.dll is at the heart of Internet Explorer and takes care of its HTML and Cascading Style Sheets (CSS) parsing and rendering functionality. Mshtml.dll is sometimes referred to by its code name, "Trident". Mshtml.dll exposes interfaces that enable you to host it as an active document. Other applications such as Microsoft Word, Microsoft Excel, Microsoft Visio, and many non-Microsoft applications also expose active document interfaces so they can be hosted by shdocvw.dll. For example, when a user browses from an HTML page to a Word document, mshtml.dll is swapped out for the DLL provided by Word, which then renders that document type. Mshtml.dll may be called upon to host other components depending on the HTML document's content, such as scripting engines (for example, Microsoft JScript or Visual Basic Scripting Edition (VBScript)), ActiveX controls, XML data, and so on.

  • Urlmon.dll offers functionality for MIME handling and code download.

  • WinInet.dll is the Windows Internet Protocol handler. It implements the HTTP and File Transfer Protocol (FTP) protocols along with cache management.

Extending Internet Explorer

As Internet Explorer's component architecture is based on COM, there are many different ways to extend its capabilities. These can be broken down into three broad categories of extensions as follows:

  • Browser Extensions. This category of end-user extensions adds additional functionality to Internet Explorer content. It includes features such as shortcut menu extensions, custom toolbars, Explorer Bars, and Browser Helper Objects (BHOs).

  • Content Extensions. These extend the types of content that can be parsed and displayed; their use depends on the content being loaded into the browser. This category includes ActiveX Controls and active documents.

  • Hosting and Reuse. By hosting and reusing the Internet Explorer components as part of your own application, you can build your own browser or add rich rendering and Internet capabilities.

Browser Extensions

This class of extensibility adds to the user interface (UI) of the browser and is not directly related to the viewable content of Web pages. It includes add-on functionality that users might install to enhance their browsing experience.

Content Extensions

This category of extensions is invoked specifically by Internet Explorer content. It includes ActiveX controls, binary behaviors, and active documents.

  • Active Documents. Active documents are sometimes called Doc Objects. If you plan to replace HTML with your own rendering of specific content, an active document may be appropriate. For example, when a user navigates from an HTML page to a Word document, the mshtml.dll active document is swapped out for Word's active document viewer. Internet shdocvw.dll (the WebBrowser control) and mshtml.dll ("Trident").

In the majority of situations, it is better to directly host shdocvw.dll than mshtml.dll. This is because shdocvw.dll supports in-place navigation, history, and so on that is, the full capabilities of the browser. If you host mshtml.dll directly, you gain the use of an HTML and CSS parser and renderer, but you cannot take advantage of the browser's other capabilities.

An example of a situation in which you might want to host mshtml.dll directly is the scenario of an e-mail application and HTML-based e-mail. In this scenario, the e-mail is displayed within the application, but if a user clicks on a hyperlink within the e-mail, the user would expect a separate browser instance to open rather than the e-mail application navigating in place. This is how applications such as Microsoft Outlook and Outlook Express handle HTML-based e-mail.

For more information about hosting and reuse, see Hosting and Reuse.

Summary

The COM-based architecture of Internet Explorer supports a variety of extension mechanisms. It is important to understand the architecture and the available extension mechanisms to enure you use the one most appropriate for your application needs.



MSDN Library
Web Development
Internet Explorer Development
Internet Explorer Architecture
Tags: 
 
Community Content

'IT-Consultant' 카테고리의 다른 글

좁을수록 절제하라.  (0) 2009.07.17
웹 크롤러 구현 방법 정의  (0) 2009.07.16
The Java Browser Component  (0) 2009.07.16
취연 이수점 8.6 오픈  (0) 2009.07.10
개인이 본 엔터프라이즈 검색엔진 시장  (0) 2009.07.09