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.
A description of each of these six components follows:
1.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.
2.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.
3.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 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.
4.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.
5.Urlmon.dll offers functionality for MIME handling and code download.
6.WinInet.dll is the Windows Internet Protocol handler. It implements the HTTP and File Transfer Protocol (FTP) protocols along with cache management.