Console Extensibility Mechanisms

Microsoft plans to define the following modes of extensibility for Snap-Ins. Every Snap-In must provide at least one of the following types of functionality.

Mechanism

Type

Description

Namespace Enumeration

Per Node

Partakes in the enumeration of the elements within a container. Multiple Snap-Ins can register to extend behavior in this way for a given node.
As with many of the mechanisms in this table, the Snap-In has the option of altering the enumeration based on the context information passed to it when it is opened.

Context Menu Extension

Per Node

Adds items to the context menu of a given node or object. Multiple Snap-Ins can register to extend behavior in this way for a given node.

CREATE NEW menu Extension

Per Node

Adds items to the CREATE NEW menu structure on the context menu of a given node or object. Multiple Snap-Ins can register to extend behavior in this way for a given node.

TASKS Menu Extension

Per Node

Adds items to the TASKS menu structure on the context menu of a given node or object. Multiple Snap-Ins can register to extend behavior in this way for a given node.

Generalized OLE2 Style Menu Merging

Per Result Pane

Based on the OLE2 offering. When a control or DocObject is present in the result pane it can negotiate for menus via the standard OLE2 menu merging interfaces.

Toolbar and Toolbar Buttons Extension

Per View

Adds an entire toolbar to the window hosting the node extended by the Snap-In. Multiple Snap-Ins can register to extend behavior in this way for a given node.

Property Page Extension

Per Node

Adds one or more property sheets to a Property page. Multiple Snap-Ins can register to extend behavior in this way for a given node. Note: Property sheets are of a fixed size

Wizard Chaining

Per Node

Adds one or more wizard pages to a Wizard frame. Multiple Snap-Ins can register to extend behavior in this way for a given node. Note: Wizard pages are of a fixed size

Help Extension

TBD

TBD


In all cases, the Snap-In has the option of altering the returned enumeration based on the context information passed to it at Open time. This permits Snap-Ins to register as an extension and offer conditional behavior. For example, the MyComputer context menu can choose to offer "Open Control Panel" only when it determines that it is being asked to open the control panel on a local machine (because the control panel is not remoteable).

Other than the CREATE NEW and TASKS menu extensions, all others are general user interface extension mechanisms. The CREATE NEW and TASKS menu extensions are used as a mechanism to group operations is a way to permit integrated, task-oriented command structures. Had the console offered only a generic menu extension interface, there would be little consistency in the usage model. In MMC each node will have a Create New menu and a Tasks menu. Through this extension registration mechanism, all of these menu items and corresponding functionality are collected into a single UI point of usage.