Windows CE (.NET) とか IoTとか

組込みWindows と IoTの話を扱います

Compact Framework v2.0

Windows Mobile 5.0 Developer Evaluation Kit」をインストールすると、否応なくVisual Studio .NET 2005のベータ版をインストールさせられます。同様に、SDKに含まれているサンプルプログラムにも .NET Compact Framework 2.0でのみ使用可能なサンプルが含まれています。

たとえば Pocket Outlook Sample

これはCompact Framework v2.0の Microsoft.WindowsMobile.PocketOutlook ネームスペースを利用してPocket Outlookを使用するC#サンプルになります。

また、.NET Compact Framework 2.0ではCOM Interopが使用可能になります。これを利用して、Managed Codeから直接COMにアクセスすることができます。以前のActiveXコントロールと異なるのは、アクセスするCOMは必ずしもDispatchインターフェースでなくてもよい、ということです。

実際に.NET Compact Framework v.2からPOOM(Pocket Outlook Object Model) COMへアクセスしている例が Steven Pratschner's .Net CF WebLog にあります。

現在では .NET Compact Framework v2.0ではPocketOutlook ネームスペースが用意されているので直接COM Interopを使うこともないのですが、上の記事では以下の手順でCOM Interopを使用してPOOM経由でアクセスする方法を紹介しています。

1. midlツールを使って、.idlファイルから .tlbファイル(タイプライブラリ)を生成

2. tlbimpツールを使って、.tlbファイルから.NETのアセンブリ pocketoutlook.dll を生成します

3. pocketoutlook.dll を参照して普通に.NET CFのプログラムを作る

現在では多少状況が変わっているようですが、サンプルファイルにpocketoutlook.dllが含まれているのはこういうわけだったのですね。