はじめに
Windows 7が全国の販売店に出回るようになった今、この新しいオペレーティングシステムが家庭でも企業でも主流になるのは時間の問題です。特に、新しいコンピュータへの買い換えが進めばその流れにはずみが付くでしょう。
開発者の観点からすると、Windows 7はさまざまな可能性をもたらします。すぐに気が付く目立った新機能の1つが、進化したタスクバーです。タスクバーからはアプリケーションの起動だけでなく、管理もできるようになっています。本稿では、ジャンプリストと呼ばれる機能に焦点を当てます。ジャンプリストは、タスクバーのアイコンを右クリックすると表示されるミニ[スタート]メニューと考えることができます(図1)。
ジャンプリストは、タスクバーのアイコンを右クリックしたときだけでなく、[スタート]メニューの初期画面でアプリケーションアイコンをポイントしたときにも表示されます(図2)。つまり、ジャンプリストを表示する方法は2種類あります。ただし、メニューに表示される項目が異なります。[スタート]メニューのジャンプリストには、最近使ったドキュメントが表示されます。一方、タスクバーから開いたジャンプリストには、アプリケーションとそのウィンドウを管理するためのオプションも表示されます。
この2種類のジャンプリストは、1つの実装で実現できます。Windowsシェルの他の多くの機能と同様に、ジャンプリストも舞台裏でCOMベースのAPIを使用しています。これらのCOMインターフェースにアプリケーションから直接アクセスすることも可能ですが、もっと簡単な方法があります。それは、Microsoftが.NET開発者向けに提供しているWindows API Code Pack(図3)という無料パッケージを利用することです。このパッケージには、Windows 7のジャンプリストなど、Windowsの機能にアクセスするための既製のクラスが数多く含まれています。
以降では、WinFormsサンプルアプリケーション(図4)を例に、Visual Studio 2008とC#を使って独自の.NETアプリケーションでカスタムジャンプリストを有効にする方法を見ていきます。Visual Studio 2010 Beta 2でも同様の方法を使うことができます。ただし、Visual Studio 2010では、WPF 4.0のWindows 7シェル統合の新しいサポートを使うこともできます。それらのクラスは本稿で扱う内容の対象外ですが、近いうちに別の記事で取り上げる予定です。