C#でCOMコンポーネント作成

ちょっと依頼されてOutlookメッセージ フォームに別アプリケーションから値を渡す方法を調査。
メッセージ フォームをカスタマイズしてフォームのコードでVBScriptのイベント ハンドラから外部のアプリケーションを呼び出すテストを行った。COMコンポーネントをCreateObjectしてメソッド呼び出すだけなんだけど、もう今のマシンにVB6は入っていない。今からインストールするのもやなので、C#でCOMコンポーネントを作成することに。

using System.Runtime.InteropServices;

[ClassInterface (ClassInterfaceType.AutoDispatch)]
[AutomationProxy(true)]
[ProgId("ComForm.NameSelector")]
[Guid("197287DC-F4F1-4977-BE69-BAA7D47255C0")]
public class HogeHoge
{
...........
}
っておまじない書いて簡単にできちゃう。便利だなー。
あと、公開してほしくないpubilcなクラスには、
[System.Runtime.InteropServices.ComVisible(false)] かな。

OLEVIEWERすっごい久しぶりに使った。(w