Platform SDK: Active Directory, ADSI, and Directory Services

MMC Node Types

All node types that can be extended have their own subkey in the HKEY_LOCAL_MACHINE\Software\Microsoft\MMC\NodeTypes key. A node type key contains an Extensions subkey. The Extensions key contains subkeys that represent the types of extensions (such as NameSpace for namespace extensions, and so on). Each extension type subkey contains values that represent the CLSIDs of the snap-ins that extend that node type with that type of extension. For example, you would add the CLSID of a snap-in that extended the namespace of the node type in the MMC\NodeTypes\{nodeguid}\Extensions\NameSpace subkey.

MMC uses the NodeTypes key to determine the extension snap-ins that can extend the node types for each snap-in. An extension snap-in must register itself for each node type that it extends as well as register what type of extensions it provides.

A snap-in with node types that can be extended must add those node types as node type keys in the HKEY_LOCAL_MACHINE\Software\Microsoft\MMC\NodeTypes key. A node type key is represented as a key whose name is the GUID of the node type. The node type must also be added as a value in the snap-in's HKEY_LOCAL_MACHINE\Software\Microsoft\MMC\SnapIns\{snapinCLSID}\NodeTypes key.

An extension snap-in must add its CLSID as a value to the extension type key for each type of extension it provides for a particular node type.

The NodeTypes key has the following form:

HKEY_LOCAL_MACHINE\Software\Microsoft\MMC\NodeTypes\
    {nodetypeGUID}
        Extensions
            NameSpace
                {extensionsnapinCLSID}
            ContextMenu
                {extensionsnapinCLSID}
            ToolBar
                {extensionsnapinCLSID}
            PropertySheet
                {extensionsnapinCLSID}
            Task
                {extensionsnapinCLSID}
        Dynamic Extensions
            {extensionsnapinCLSID}