Nodes in the MMC NameSpace

[This is preliminary documentation and subject to change.]

The node manager is the COM in-process server that implements all the interfaces that the console and snap-ins use. It is the most important aspect of the console. It includes the code required for your snap-in to function within the console's environment. If you've looked at the list of MMC-related interfaces, you probably noticed that the node manager implements the majority of them. As a result, much of the functionality you are likely to want for your snap-in is already available to you.

The node manager creates instances of your in-process server as needed and calls the methods of the interfaces your server offers. In turn, your server can call the methods of the interfaces that the node manager offers, thereby incorporating features such as toolbars, context menus, and property sheets. If you don't extend the console in at least one way, your snap-in will never be loaded.

For any instance of a snap-in, one object exposing IComponentData is created using CoCreateInstance, a function fully explained in the Microsoft Platform SDK. For each view of the snap-in (that is, each MDI child window), MMC asks IComponentData::CreateComponent to create an instance of an object exposing IComponent. Most snap-ins internally create a new instance of the object for each request. This simplifies the internal memory model for the snap-in author. The snap-in can get added any number of times. For each time, however, another object exposing IComponentData is created.