Developing with Internet Explorer

In addition to being the premiere Web browser, Microsoft Internet Explorer® is a complex and powerful platform for independent software development. Developers can interact with and extend Internet Explorer (IE) through a number of methods and technologies, including:

  • Spawned instances

  • Automated instances

  • Asynchronous pluggable protocols

  • Browser extensions

  • Browser Helper Objects

  • Component download

  • Remote application execution

  • Component reuse

Spawned Instances

Many applications spawn an instance of IE to view a known resource, for example, browse to a Web page or display a local HTML file. This can be accomplished by using the ShellExecute function to directly execute IExplore.exe, or by indirectly opening a data file that is associated with IE on the current machine, for example, an .html file. This latter option assumes that IE is the default browser. The same can be accomplished in a managed application using System.Diagnostics.Process.Start.

Automated Instances

A finer control over an instance of IE is made available through the InternetExplorer COM automation object.

Asynchronous Pluggable Protocols

A COM-based API enables the creation of customized, pluggable protocol handlers, MIME filters, and namespace handlers. In this way, Internet Explorer can be extended to understand new communication protocols and document formats.

Browser Extensions

Browser extensions enable developers to modify the user interface (UI) of IE by adding custom Explorer Bars, new context menu entries, Tool menu commands, and associated toolbar buttons.

Browser Helper Objects (HBOs)

Browser Helper Objects (HBOs) enable the extension of IE with custom, in-process COM components. HBOs load every time IE starts, and they can perform any action on the available IE windows and modules, including customizing the browser UI, handling events, and hooking messages, and interpret custom data formats.

Component Download

IE can be used to distribute components such as Microsoft ActiveX® controls (.ocx), dynamically linked libraries (.dll), executables, and Java class files or applets to client machines for on-demand usage or permanent installation scenarios. IE supports signed cabinet files (.cab) to package distribution sets, information files (.inf) to provide installation instructions, and an Open Software Description (OSD) file to describe software components and their relationships.

Remote Application Execution

Client-server technologies, such as Microsoft ASP.NET or Terminal Services Remote Desktop Web Connection ActiveX control, enable IE to host applications that run (at least partially) on a server.

Component Reuse

The modular architecture of Internet Explorer provides developers with a number of powerful, reusable ActiveX controls that can be used in independent applications. The most common of these are the WebBrowser control (Shdocvw.dll), which provides a mini-browser with navigation and history, and Mshtml.dll, the core engine that handles HTML display and parsing.

Many more features and associated services and tools are associated with IE, such as the MSHTML Editor, Microsoft XML Core Services (MSXML) parser, and the Hyperlink Architecture. For more information, see "Internet Explorer Development" in the Windows Software Development Kit (SDK) and visit Microsoft Internet Explorer Developer Center.

What Is New in Internet Explorer 7?

Many major changes have been made throughout the UI and functionality of IE 7. The changes appear especially in the areas of security and updated protocol, and standards support.

The following changes were made with software developers in mind:

  • New Web Feed support—IE 7 prominently supports RSS and ATOM feeds in its interface and through its integration with the Microsoft Web Feeds API. For more information, see "RSS in Windows Vista" in the MSDN Library.

  • Microsoft Phishing Filter—Internet Explorer 7 includes functionality to protect users against phishing attacks from hostile sites. A complete Phishing Filter, including the ability for system administrators to set group policy for the entire network, is available in Internet Explorer 7 for all platforms. Developers of well-behaved Web sites benefit greatly from the Phishing Filter because users will come to trust in the additional control they have over their environment.

  • Tabbed browser—this UI improvement for users also appears in changes to IE's Document Object Model (DOM) and associated APIs. For more information, see "Tabbed Browsing for Developers" in the Windows SDK.

  • Better support for existing standards—support for Internationalized Domain Name (IDN), HTML 4.0.1, cascading style sheets, and portable network graphics (PNG) have been improved.

  • Protected Mode—in Windows Vista®, Protected Mode reduces the severity of threats both to Internet Explorer and extensions running in Internet Explorer by eliminating the ability to silently install malicious code through software vulnerabilities. IE 7 uses the Windows Vista Integrity mechanism and User Interface Privilege Isolation (UIPI) to block interaction from Internet Explorer to system resources and applications with higher integrity. Although Windows Vista and IE contain features to support earlier versions of applications, all new and existing applications should be thoroughly tested on Windows Vista with IE 7.

  • Native XMLHTTP support—Internet Explorer 7 implements a version of XMLHTTP that is a native, scriptable object instead of an object. Users now can have ActiveX controls switched off yet still maintain a client-side connection with a server, so that dynamic transactions using XML data can continue to run in the background. This allows new, dynamically-retrieved data to be inserted into a current, otherwise static, HTML page.

  • Windowless Select control—although, this change enables z-order and zoom to work correctly, existing applications that rely on the HWND of this control must be rewritten to use DOM.

For more information, see "What's New in Internet Explorer 7" in the Windows SDK.

Community Additions