IE 4.0 : Browser Bar Extension Mechanism

This document describes one of new features of IE 4.0, which is called "BrowserBar Extension", which allows programmers to "add" a UI component to either the explorer/communication bar of each browser window or one of DeskBars of the desktop.

In order to add a pane to one of toolbars in the browser, you need to register a CLSID of the pane which supports an appropriate component category (CATID_InfoBand for a pane in communication bar, CATID_CommBand for one in the communication bar ir CATUD_DeskBand for one in DeskBars).

When the browser window is created, it enumerates all the CLSIDs in each component category and add them to the menu (in View->ExplorerBar submenu for the browser and Toolbar submenu for the desktop). The creation of the instance is delayed until the user select it (or programmatically opened). The instances of those CLSIDs are called band objects.

Each band object must implement IDeskBand (for layout negotiation) and IInPutObject (for input/focus management) which are essential to become a pane in a browser window. Optionally, it may support IPersistStream (for persistence) and IOleCommandTarget (to handle Edit menu).

To help non-progammers (or web-programmers) to add HTML-based pane, IE 4 has an implementation of a band object, a browser band, which hosts arbitrary web-pages specified by an URL. To add such a band, you need to (1) generate a unique CLSID and (2) register that CLSID with following registry keys:

HKEY_CLASSES
    CLSID
        {generated clsid}
            Implemented Categories
                (default) = "{CATID_CommBand}"
            InProcServer32 
                (default) = "shdocvw.dll"
            Instance
                CLSID = "{CLSID_BrowserBand}"
                PropertyBag
                    (URL) = "initializing url"

Go back to IE 4.0 : Browser Extension Mechanism.