How Windows 98 Implemented Quick Launch Toolbars

This article explains how Microsoft Windows 98 introduced and implemented the Taskbar Quick Launch toolbar. It details the underlying architectural shift brought by the integration of the Internet Explorer shell, the file-system-driven design behind the toolbar, the Component Object Model (COM) interfaces that powered it, and the special system mechanics used to execute one-click shortcuts like "Show Desktop."

Integration with the Shell and Active Desktop

Although the Quick Launch toolbar first surfaced as an optional component in the Windows Desktop Update bundled with Internet Explorer 4.0 for Windows 95, Windows 98 was the first operating system to integrate this architecture natively into the core shell (explorer.exe).

The implementation relied on the updated Windows Explorer shell, which unified web technologies and local desktop management. By merging browser components with the desktop environment, the Windows 98 taskbar was modified from a static task-switching container into a dynamic host capable of docking customizable toolbars.

The Underlying File System Architecture

Quick Launch was not hardcoded into the registry as a static list of applications. Instead, it was implemented as a direct representation of a specific directory on the file system.

By default, the operating system pointed the toolbar to: C:\Windows\Application Data\Microsoft\Internet Explorer\Quick Launch

Any standard shortcut (.lnk file) placed into this folder automatically appeared as an icon on the Quick Launch bar. When a user created, renamed, or deleted a shortcut in this directory, file system change notifications (SHChangeNotify) alerted the taskbar to repaint and update the toolbar layout in real time.

DeskBands and COM Interfaces

Technically, the Quick Launch toolbar was implemented as a "DeskBand"—a specialized Shell band object built on Microsoft’s Component Object Model (COM).

The taskbar acted as a container host for these bands, allowing them to be docked, resized, or torn off into floating windows. To function within the taskbar, the Quick Launch band implemented several key Win32 and COM interfaces:

  • IDeskBand: Defined the object as a dockable band, allowing Windows Explorer to negotiate sizing constraints, minimum display dimensions, and docking states.
  • IObjectWithSite: Allowed the band object to communicate with its parent container (the taskbar) to request layout refreshes or query container states.
  • IPersistStream: Enabled the toolbar to save and restore its state across system reboots, such as its width and position on the taskbar.
  • IDropTarget: Provided native OLE drag-and-drop functionality, allowing users to drag files, programs, or URLs directly onto the toolbar to generate instant shortcuts.

Under the hood, the visual representation was rendered using standard Windows Common Controls (ToolbarWindow32). The icons were displayed using 16x16-pixel small icon variants retrieved from the system image list.

Execution and the "Show Desktop" Command

Clicking a standard icon on the Quick Launch toolbar triggered a call to the ShellExecute or ShellExecuteEx API, launching the targeted executable with normal user privileges.

However, non-standard functions like the "Show Desktop" icon could not rely on standard .lnk files because they required direct manipulation of open shell windows rather than launching an application. To achieve this, Windows 98 implemented Windows Shell Command files (.scf).

The "Show Desktop.scf" file contained a plain-text configuration:

[Shell]
Command=2
IconFile=explorer.exe,3

[Taskbar]
Command=ToggleDesktop

When clicked, the shell interpreted the ToggleDesktop instruction and signaled the window manager to minimize all active, non-topmost windows simultaneously, exposing the desktop workspace without terminating running processes.