[This is preliminary documentation and subject to change.]
MMC is based on COM interfaces and it implements a variety of interfaces through which a snap-in can implement its own interfaces to communicate with the console and perform assigned tasks. Foremost among those interfaces the snap-in's interface to the console, IConsole.
The snap-in implements IComponentData and IComponent interfaces specifically to interact with IConsole. Looking at IComponentData first, any snap-in component that extends the namespace is an IConsole and IComponentData pair. The IComponent interface is closely associated with items displayed in the result view pane and is typically implemented at the view level. IComponent is required for any snap-in component that will enumerate items in the result pane.