【MMC】Microsoft 管理コンソール ~プログラム作成 / シンプル画面[1] ~

 * 環境設定やDLLの追加などは以下を参照。ここでは、プログラムの実装だけを記入する
http://blogs.yahoo.co.jp/dk521123/31319482.html
http://blogs.yahoo.co.jp/dk521123/31598064.html
http://blogs.yahoo.co.jp/dk521123/31586051.html

追加するファイル

 [1] クラスライブラリ : スナップイン
   ⇒今回は、ファイル名「SampleSnapIn.cs」とする
 [2] クラスライブラリ : MMCのロジカルなView
   ⇒今回は、ファイル名「SampleFormView.cs」とする
 [3] ユーザコントロール : WinFormのコントロールView
   ⇒今回は、ファイル名「SampleControl.cs」とする

 ※デザインは、以下の通り。
  + ListView x 1


サンプル

SampleSnapIn.cs

using System.ComponentModel;
using Microsoft.ManagementConsole;

[SnapInSettings("{87C9C5E7-D6CC-4dba-BA7F-CBA7875B8574}",
DisplayName = "Sample Using Form",
Vendor = "Sample Company",
Description = "This is a sample in MMC.")]
public class SampleSnapIn : SnapIn
{
 public SampleSnapIn()
 {
   this.RootNode = new ScopeNode();
   this.RootNode.DisplayName = "Selection (FormView) Sample";
   FormViewDescription fvd = new FormViewDescription();
   fvd.DisplayName = "Users (FormView)";
   fvd.ViewType = typeof(SampleFormView);
   fvd.ControlType = typeof(SampleControl);
   this.RootNode.ViewDescriptions.Add(fvd);
   this.RootNode.ViewDescriptions.DefaultIndex = 0;
  }
}

[RunInstaller(true)]
public class InstallUtilSupport : SnapInInstaller
{
}

SampleFormView.cs

using Microsoft.ManagementConsole;

public class SampleFormView : FormView
{
 private SampleControl selectionControl = null;

 protected override void OnInitialize(AsyncStatus status)
 {
   base.OnInitialize(status);
   this.selectionControl = (SampleControl)this.Control;
   this.Refresh();
 }
 protected void Refresh()
 {
   string[][] users = {
                        new string[] {"Karen", "Feb 4th"},
                        new string[] {"Sue", "May 5th"},
                        new string[] {"Tina", "Apr 5th"},
                      };

   this.selectionControl.RefreshData(users);
 }
 protected override void OnSelectionAction(Action action, AsyncStatus status)
 {
   switch ((string)action.Tag)
   {
     case "ShowSelection":
       this.selectionControl.ShowSelection();
       break;
   }
 }
}

WinFormのコントロールView「SampleControl.cs」については書ききれないので、下記の記事に記述する
http://blogs.yahoo.co.jp/dk521123/31611779.html