Nintendo MessageStudio ヘルプ

プラグイン作成のチュートリアル

プラグイン作成の概要

Message Studioのプラグインは.NET Frameworkのクラスライブラリ(*.dll)として作成します。 そのため、.NETアセンブリを作成可能なプログラミング言語に関する知識が必須になります。 具体的には、Visual Basic.net、C#、Iron Pythonなどが利用可能です。

この章では、Microsoft Visual StudioとC#を用いてMessage Studioのプラグインを作成するための方法を紹介します。 もちろん、Visual Studio以外のソフトウエアを用いても作成は可能ですが、ここでは割愛させていただきます。 プラグイン作成に対応しているVisual Studioはバージョン2005以上です。 無料で入手可能なExpress Editionでも作業に問題はありません。

※画像と作業手順はVisual Studio 2008 Standard Editionを元に解説します。 エディションとバージョンによっては一部存在しないメニュー項目があるかもしれません。

プロジェクトの作成

まずはMicrosoft Visual Studioを起動して、プロジェクトを作成します。 Visual C# のクラスライブラリを選択します。.NET Frameworkは2.0を選択します(Visual Studio 2005では常に2.0になります)。 プロジェクト名としてプラグイン名を入力してください。

プロジェクトが作成できたら、次にMessage Studioのパッケージの中からbinディレクトリをコピーします。 コピーするときに、ディレクトリの名前を適当なものに変更しておいてください(たとえば「MessageStudioBin」など)。

次に、参照設定を追加します。 参照設定に追加すると、.NETアセンブリの中に登録されたpublic宣言のクラスやインターフェイスを利用することが可能になります。 Visual Studioのソリューションエクスプローラの中にある、参照設定を右クリックし、「参照の追加」を選びます。

タブの中から、「参照」を選び、先ほどコピーしたMessageStudio.exeを選択してOKを選んでください。 さらに、System.Windows.Forms.dllの参照設定も追加します。 これは.NET標準のライブラリなので、「参照」によってファイルを選ぶのではなく.NETコンポーネントの中から選択します。

これで、プラグインプロジェクトを作成するための準備が整いました。

単純なプラグインの作成

それでは実際にコーディング作業に入りましょう。 ここでは、最も単純な例として、Message Studioの本体に追加するメニューの追加をやってみます。

まず最初に、自動生成されたClass1クラスをMyMenuクラスにリネームします。 外部アセンブリからこのクラスにアクセスさせるため、クラスをpublic宣言にします。 続いて、MyMenuクラスがIAdditionalMenuItemPluginを実装するようにします。 このインターフェイスは、MessageStudio.exeの中に含まれています。 Visual Studioによって表示されるメニューによって、ソースコードに利用する名前空間を追加してください (標準設定では、ショートカットキーはShift+Alt+F10です)。 インターフェイスが実装しなければならないメソッドの宣言を追加します。 (これも、インターフェイスのところにカーソルをあわせてShift+Alt+F10を押すと行えます)。 ここまでを実行するとMyMenu.csファイルは以下のような内容になります。

using System;
using System.Collections.Generic;
using System.Text;
using Nintendo.MessageStudio.Core.Plugin;

namespace MyPlugin
{
	public class MyMenu : IAdditionalMenuItemPlugin
	{
		public System.Windows.Forms.ToolStripMenuItem CreateMenuItem()
		{
			throw new NotImplementedException();
		}

		public AdditionalMenuType MenuType
		{
			get { throw new NotImplementedException(); }
		}

		public void SetupPlugin( PluginInitArgs args )
		{
			throw new NotImplementedException();
		}

		public void TearDownPlugin()
		{
			throw new NotImplementedException();
		}
	}
}

まずはSetupPluginとTearDownPluginメソッドを実装していきましょう。 今回はこれらの中で特にやることはありません。 実際にはプラグインが初期化されたときと終了されるときの処理を実装することになります。 NotImplementedExceptionをスローしている箇所を削除してください。

CreateMenuItemメソッドの中ではMessage Studioに登録するためのメニューアイテムを作成して返します。 クリックされたときのイベントを登録し「Hello, Message Studio!」と表示するようにしてみます。 ここまでを追加して少し整理したものを例として以下に示します。

public void SetupPlugin( PluginInitArgs args )
{
}

public void TearDownPlugin()
{
}

public ToolStripMenuItem CreateMenuItem()
{
	ToolStripMenuItem menu = new ToolStripMenuItem();
	menu.Name = "MyMenuItem";
	menu.Text = "My First Plug-in menu";
	menu.Click += new EventHandler( menu_Click );
	return menu;
}

private void menu_Click( object sender, EventArgs e )
{
	MessageBox.Show( "Hello, Message Studio!" );
}

次に、メニューをどこに追加するかを指定するプロパティを実装します。 Message Studioの「プロジェクト」メニューの下にアイテムを追加するなら、以下のように記述します。

public AdditionalMenuType MenuType
{
	get { return AdditionalMenuType.ProjectMenu; }
}

これでプラグインの実装作業が完了しました。 それでは、プラグインのDLLを作成するために、「ビルド」を行います。 作成されたMyPlugin.dllをプラグインとして利用してください。 (プラグインの使用方法は、プラグインについての概要をご覧ください)

プロジェクトファイル(*.msproj)が指定したプラグインパスにMyPlugin.dllがコピーされた状態で Message Studioに開かれると、プラグインが利用され、メニューアイテムが追加されます。

メニューアイテムをクリックすれば、イベントハンドラが呼び出されます。

このようにしてプラグインを作成していきます。 どのようなプラグインが作成可能であるかは、プラグインの種類についてのページをご覧ください。 また、プラグインの実装方法についてのリファレンスマニュアルは、 パッケージのdocディレクトリの下にある、DeveloperGuide.chmというファイルです。 (このドキュメントは英語版は提供されません)。

サンプルについて

上記の操作を行って作成されたプロジェクトがサンプルとして提供されています。 以下のディレクトリに収められていますので、必要に応じてご覧ください。

samples\plugins\Tutorial\

ただし、このプロジェクトファイルはVisual Studio 2008 Standard Editionで作成されたものです。 また、MessageStudioBinというディレクトリは省略していますので、 コンパイルされるときはbinディレクトリをコピーしてから行ってください。