マイクロソフトの田中達彦です。
本日より、TechED 2010で実施したセッションである、「Windows API Code Packによるアプリケーション開発」について説明していきます。
TechEDでのセッションのビデオと使用したスライドは、以下のサイトにて公開していますので、時間のある方や、デモを動画で見たい方は下記サイトをご覧ください。
http://msdn.microsoft.com/ja-jp/events/ff973814.aspx


Windows API Code Packによるアプリ開発 [TechED2010 ポストセッション]
第1回 Windows API Code Packとは

最初に、Windows API Code Packについて説明します。
Windows 7やWindows Vistaには.NET Framework 3.5または3.0が搭載されており、.NET Frameworkを通じてWindowsの機能を使うことができます。
アプリケーションの開発時に、.NET Frameworkを使用した時とWin32 APIを使用した時では、開発にかかる時間が大きく違います。
.NET Frameworkのほうが、開発生産性がはるかに高いためです。
Windows 7やWindows Vistaは、ほとんどの機能を.NET Frameworkを通じて提供しています。しかし、中には.NET Frameworkでサポートされていないため、Win32 APIを直接使用する必要がある機能があります。
それらの機能を.NET Frameworkアプリから利用できるようにしたものがWindows API Code Packです。

Windows API Code Packには、ライブラリの部分とサンプルの部分が含まれています。
ライブラリの部分を使用することにより、既存の.NET FrameworkアプリからWin32 APIで提供されている一部の機能を利用することができるのです。
Windows API Code Packの最新バージョンは1.1(2010年10月4日現在)で、下記のサイトよりダウンロードできます。

[Windows API Code Packのダウンロード用サイト]
http://code.msdn.microsoft.com/WindowsAPICodePack

このページの右上にある、「Current Release」と書かれた部分のすぐ下にあるリンクをクリックすると、ダウンロードページに飛びます。
ちなみに、TechEd 2010でWindows API Code Packのセッションをしたときのバージョンは1.01でした。

Code Packは、.NET Frameworkでサポートされていない機能の一部を.NET Frameworkアプリから使用できると述べました。
それでは、どのような機能を.NET Frameworkアプリから使えるようになるのでしょうか?
Code Packでは、以下の機能をサポートしています。

TechEDのセッションでは、上記の中のアプリケーション サービスとタスクバーの部分を説明しています。

アプリケーションサービスには、以下のものが含まれます。
- アプリケーションの再起動と修復
- バッテリーの状態の取得
アプリケーションの再起動と修復とは、アプリケーションが予期せぬエラーで落ちてしまったとき、入力中だったデータを自動的に保存する機能を実装するためのものです。
例えば、あってはいけないことですが、Excelに何か入力している最中にExcelが落ちてしまったとします。Excelには、入力中のデータを自動的に復元する機能が実装されているため、落ちてしまってExcelが再起動したときにデータを復元します。その機能を、自分が作っているアプリケーションにも実装できるのです。


タスクバーには、以下のものが含まれます。これらは、Windows 7のタスクバーで拡張された機能です。
- プログレスバー
- オーバーレイ アイコン
- サムネイル
- サムネイル ツールバー
- ジャンプリスト
タスクバーの機能は、.NET Framework 4では実装されています。
.NET Framework 3.5以前をご使用の方は、Code Packを使用することにより、タスクバーのこれらの機能を簡単に使うことができるようになります。

Windows API Code Packのバージョン1.01では、ライブラリのソースコードのみ提供されていたので、リンク用のライブラリ(DLLファイル)を自分で作る必要がありました。
バージョン1.1では、最初からDLLファイルを提供していますので、そのDLLファイルを使用することができます。

Windows API Code Packには、豊富なサンプルも含まれています。
実装している過程で分からないことが出てきたとき、サンプルを読めば解決できることも多いです。
ただ、サンプルは実装している機能が多いため、ソースコードも長めになっています。
本ポストセッションでは、なるべくシンプルなソースコードで、必要最低限の部分を説明していきます。

次回は、アプリケーションの再起動と修復を説明します。

マイクロソフト
田中達彦