Recently we decided that our tool should have management console that will have a management/configuration snap-in that will be hosted in MMC much like the ones we all see with IIS, SQL Server etc. So I was asked to look into all the possibilites of using and developing MMC snap-in. Following is a small narration of my findings for your information.
MMC an Introduction:
MMC stands for Microsoft Management Console. It provides simple, consistent, and integrated administration user interface for managing windows based applications. MMC also provides and SDK that can be used to develop tools calles "Snap-Ins".
Developing MMC Snap-Ins:
MMC snap-ins can be developed in any development environment that supports producing COM Components. MMC snap-in exposes certain interfaces,methods and events that are available to MMC console. Likewise MMC Console also exposes certain interfaces,methods and events that are available to the snap in so thats how a snap in talks to console and vice versa.
One can develop MMC snap in using VC++ or VB. I myself started out developing an MMC snap in using VC++6.0, I used ATL COM wizard and created a dll. And then I added an ATL object of type MMC snap in to my project. (MMC type object becomes available to your Visual Studio once you have installed MMC SDK.) I dint have much success in playing with that becuase its been good 3-4 years since I last did any serious development VC++ 6.
Yes, right, I am a .NET freak. So I needed some thing in .Net to write my snap in. And thats exactly when I bumped into this .NET Wrapper implementation for accessing MMC SDK. For more details on .NET based development of MMC please visit: http://sourceforge.net/projects/mmclibrary/
I have also read it on some blog that Microsoft is going to offer some native support for MMC development in .NET 2.0.
Following are some of the resources that can get any one started in MMC.
MSDN Home for MMC Snapin:
Download MMC 2.-0:
John Perkins Article:
A Book that talks about MMC and WMI :
MMC Snapin Designer for VB:
Dot Net Wrapper for MMC:
Sample Code for .NET Wrapper for MMC: