およそ十年ごとに、私たちは Windows でアプレットと呼ばれるものの更新について大きな決定を行います。なお、アプレットについて説明するときに、アプレットをアプリケーション、プログラム、またはツールとも呼びますのでご注意ください。アプレットは、長い歴史を持つ Calc (電卓) ペイント (MS ペイント、またはペイント ブラシ)、ワードパッド (Write)、さらに Windows 7 での新しい付箋などです。古くから知る者として、これらのツールについて考えるときはいつも、これらの歴史のすべてとこれらがどのように登場してきたのか考えます。多くの人々が、弊社の現在のCEOによる、今では「古典」となった video をご覧になっていることと思います。このビデオは、営業担当者たちの注意を Windows に引き付けました (このビデオの最後の言葉は、このビデオが Microsoft 内で実現したことの手掛かりとなります)。Windows 7 は、これらのツールを更新する絶好の機会と思われます。このリリースでアプレットを更新する理由は、アプレットに固有の機能を追加するちょうど 10 年ごとの時期だからということではなく、開発者の皆様が皆様のアプリケーションを Windows 7 デスクトップ エクスペリエンスと統合する新たな機会だからです。多くの人々はアプレットを基本ツールとして使用します。アプレットはすべての人向けに「即座に利用可能な」価値を提供していますが、私たちは全体的なプラットフォーム エクスペリエンスを示し、Windows 7 上で統合し構築する方法について開発者へガイダンスを提供するとき、アプレットをより価値あるものと考えます。私たちは主に Windows で何が新しいかを示すことに焦点を当てています。多くのフル機能のツールが同様の機能を無料で提供しているので、これらのツールへますます多くの機能を追加しなければいけないという実際的な「緊張」状態にはありません。より高精度のビットマップ エディット機能や高度な科学計算用電卓機能への希望でコメントがいっぱいにならないよう願っています :-)。

この投稿で取り上げられたすべての APIは、 Windows 7 developer guide でご覧いだけるWindows 7用に更新された開発者向け領域の MSDN で説明されています。また、取り上げられた各領域は PDCWinHEC のサイト上の各セッションでサポートされます。

この投稿は、リーダーの Riyaz Pishori (グループ プログラム マネージャー) とアプリケーションおよびガジェット チームの複数の人々によって作成されました。 --Steven


この投稿では、Windows 7プラットフォームのイノベーションのいくつかと、Windows 7 アプリケーションがそれらのイノベーションをどのように採用し公開したかについて説明します。開発者とパートナーが Windows 7 で期待できるプラットフォーム機能のいくつかと、Windows 7 プログラムがそれらのイノベーションをどのように公開したかについて詳述します。この投稿ではさらに、主な Windows の設計原則およびプラットフォームのイノベーションに焦点を当てながら、ユーザー エクスペリエンスおよび機能の点でアプリケーションがどのように革新されたかを説明します。この投稿は、いくつかの新しいWindows プラットフォームのイノベーションに慣れるため、アプリケーション開発者とソフトウェア メーカー向けの指針あるいはガイドにもなります。皆様のソフトウェアの開発にこれらの APIを活用する方法を知っていただきたいと思います。

以下の記述は、サブシステムごと、そして Windows アプレットがその特定のサブシステムを使用する方法ごとに整理されています。

Windows リボン

Windows リボン ユーザー インターフェイスは、リッチで新しい Windows 開発用ユーザー インターフェイスです。Windows リボンは、現在使い慣れている Office 2007 リボン ユーザー インターフェイスを Windows 7にもたらし、アプリケーション開発者とソフトウ��ア メーカーが利用できるようにしました。

Windows リボンユーザー インターフェイスを採用すると、いくつかの利点があります。それらの多くは、Office 2007 blogs で述べられています。リボンは、さまざまな機能やコマンドを異なるメニューやツール バーの下に公開することなく、すべてのコマンドのリッチなグラフィカル ユーザー インターフェイスを一つの場所で提供します。リボン UI は、直接的で説明を要せず、論理的に関連するコマンドが名付けられグループ化されています。リボン UI プラットフォーム上に構築されるアプリケーションを使用する際、ユーザーは特定の機能がどこにあり、どこでアクセスできるかについて気を配る必要はなく、必要なのはワークフローとタスクに集中することだけです。また、リボン UI によりレイアウトが調整されるので、サイズ、場所およびコンテンツをユーザーがカスタマイズできるツール バーと比較すると、一貫性が保たれます。さらに、リボン UI には向上した組み込みキーボード ユーザー補助があり、リボンを使用することによって、アプリケーション DPI とテーマがより容易に実現されます。最後になりましたが、リボン ユーザー インターフェイス用の XML マークアップに基づいたプログラミング モデルにより、ユーザー インターフェイスの開発および変更は非常に迅速に行えます。

ペイントとワードパッドは、Windows リボン UI プラットフォームを利用した最初の 2 つです。Windows 7 では、両方のアプリケーションが一連の新機能によって拡張されており、これらのアプリケーションのユーザー インターフェイスは、Windows 7 エクスペリエンスにふさわしい標準に達する必要がありました。Windows リボン UI は、これらのアプリケーションが各ユーザー エクスペリエンスを改造して一貫性を持たせ、リッチで楽しく容易に使用できるようにするにはうってつけです。また、これらのアプリケーションのタスクおよびコマンドでは、リボン UI フレームワークを容易に適用できました。これにより、人気のあるネイティブ Windows アプリケーションが、開発者とソフトウェア メーカーと同様コンシューマーに、Windows リボン UI プラットフォームを公開する好機になりました。多くの人々に、リボンを使用する Windows Explorer と IE について尋ねられますが、私たちは Windows 7 では計画しませんでした。Windows 7 で重点が置かれているのはプラットフォームで、ペイントとワードパッドのようなドキュメント中心のアプリケーション用プラットフォームを示すことです。

両方のアプリケーションは、Windows UI リボンの複数の要素を公開します。ペイントとワードパッドの両方のアプリケーション メニューでは、アプリケーションの [ファイル] メニューによって通常参照できるアプリケーションに関連したコマンドを表示します。両方のアプリケーションには、アプリケーションのほとんどのコマンドを表示する [ホーム]、およびアプリケーションのオプションを表示するイメージまたはドキュメントを表示する [ビュー] とからなるコア タブのセットがあります。両方のタブの各コマンドは、関連する機能のグループ内に論理的にレイアウトされます。

クイック アクセス ツール バー (QAT) は、ペイントおよびワードパッドの両方で提供されます。これは、アプリケーションにとって重要な [保存]、[元に戻す]、または [繰り返し] のような特定の初期設定を備えています。ユーザーは、QAT ドロップ ダウンを使用して QAT をカスタマイズしたり、リボンで任意のコマンドやグループを右クリックしてそれを QAT に追加したりできます。

コマンド ボタン、分割ボタン、ギャラリー、ドロップダウン、チェック ボックス、トグル ボタンなどの複数のリボン コマンドが、両方のアプリケーションで使用されます。

image_2[1]

image_4[1]


さらに、両方のアプリケーションは、コンテキスト中のイメージやドキュメントの印刷プレビューを示す [印刷プレビュー] モードを提供します。モード内では、コア タブはすべて削除され、ユーザーが対話的に操作するためにそのモードだけが表示されます。モードを終了すると、ユーザーは即座にコア タブに戻れます。

ペイントは、さらにテキスト ツール用の操作別タブを表示します。テキスト ツールは、テキスト コントロールがキャンバスにある場合に限り表示されます。操作別タブは、テキスト ツールにフォーカスが当たっているときにコア タブ セットの横に示され、テキストがキャンバスのイメージに適用されると削除されます。操作別タブ セットは、テキスト ツールのみに固有の関連ツールを含みます。

両方のアプリケーションは、リボン ギャラリーによってライブ プレビューを提供します。リボン ギャラリーは、ワードパッドでテキストをフォーマットする際のフォント サイズおよびフォント名、ワードパッドでの行頭文字や行、ペイントでの色の選択、輪郭線サイズ選択、および図形用の枠線と塗りつぶしのスタイルなどです。ライブ プレビューによって、ユーザーはマウスの移動がもたらす変更を瞬時に理解し、選択対象にそれらの変更を適用することを可能にします。これらのプレビューはリボン UI の重要な要素の 1 つで、リボン UI が新しい対話スタイルで、なぜ「大きなツール バー」以上のものであるかということを表しています。
リボン ユーザー インターフェイスの採用によって、両方のアプリケーションは、リボン KeyTipを使用する組み込みキーボード ユーザー補助サポートを継承し、すべてのコマンドはヒントを持ち、DPI と Windows のテーマ用サポートを備えています。

ペイントとワードパッドは、リボン UI が MFC アプリケーションでいかに容易に使用できるかを示す例です。Windows リボンは、開発者とソフトウェア メーカーがリボン ユーザー インターフェイスを使用してアプリケーションを開発する新たな機会およびオプションを提示します。Windows Scenic Ribbon プログラミング モデルおよびアーキテクチャは、開発者が UI のプレゼンテーションとカスタマイズを基になるアプリケーション コードから切り離すのを支援するために、マークアップ ファイルとC++ コード ファイルの分離を強調しています。このプラットフォームは、設計者は UI のプレゼンテーションとレイアウトに集中し、開発者はアプリケーション ロジックに集中することができる開発者 - 設計者ワークフローを促進します。私たちはリボン UI には大きな投資を行っています。PDC でScott Guthrie によって示されたように .NET Framework での実装を含め、さらに Microsoft のプロダクト全体にわたりリボン UI が引き続き使用されることをご期待ください。さらに、将来のWindows 7 ではネイティブでサポート構築される予定です。

マルチタッチ プラットフォーム

Windows 7 は、マルチタッチ入力データのサポート、およびWindows メッセージによる Win32 でのマルチタッチのサポートを提供します。マルチタッチ プラットフォームへの投資先には、アプリケーションにタッチ API を公開する開発プラットフォームが含まれています。これは、Windows 7 でコア ユーザー インターフェイスを拡張してタッチ エクスペリエンス用に最適化し、アプリケーションが実行するマルチタッチ ジェスチャを提供します。Windows 7 での開発者は、これらの API 上に構築し、ソフトウェアで提供するタッチ サポートの適切なレベルについて決定できます。

ワードパッドは、マルチタッチ プラットフォームの使用、およびズーム ジェスチャとパン ジェスチャの使用により、ドキュメント読み取りエクスペリエンスを拡張します。ズームする、ゆっくり動く、または慣性に任せるなどにより、ユーザーは直感的な方法で特定のコンテンツに非常に迅速に到着できます。ズーム ジェスチャの使用によって、ユーザーは、ワードパッドのステータス バーの右側でズーム スライダーを使用したように、ドキュメントにズーム インまたはズーム アウトすることができます。マルチタッチが可能なハードウェアでは、ユーザーはフィンガーをドキュメント ウィンドウ内の任意の場所に置いて、ズーム ジェスチャを実行することにより、ドキュメントにズーム インまたはズーム アウトできます。ワードパッドは、ワードパッドで開いているドキュメントのページでパンするためのパン ジェスチャもサポートしています。パン ジェスチャの実行によって、ユーザーは、ワードパッド アプリケーションのスクロール バーを使用しているように、ドキュメントをスクロール ダウンまたはスクロール アップできます。

ペイントで、マルチタッチ データは、ユーザーが複数のフィンガーで描画することを可能にするために使用されます。これは、ジェスチャを使用せずにマルチタッチ入力を可能にするアプリケーションの例です。ペイントの機能の場合、複数のフィンガー ペイント能力の提供は、編集モードではなく読み取り専用モードで画像に対して実行するズーム、パン、回転、あるいは他のジェスチャを、可能にするという以上に、より魅力的でよりリッチなものにします。ペイントでの新しいブラシは、マルチタッチ対応で、複数のフィンガーによるタッチ入力を処理します。ユーザーは同時にフィンガーをドラッグさせてキャンバス上に複数のストロークを描けます。これらのブラシには感圧性もあるので、画面に対する圧力に基づいてストロークの幅が変わり、タッチによる現実的なエクスペリエンスが提供されます。マルチタッチ プラットフォームを採用してペイントのエンド ユーザー エクスペリエンスを拡張するにあたり、カラー ピッカー、拡大、テキスト ツールなどのマルチタッチ シナリオが適用されない機能用にシングル タッチ エクスペリエンスを保持するために、設計に関して意識的な決定がなされました。
マルチタッチ API を使用して構築することにより、ペイントとワードパッドは、タッチ対応ハードウェア上でより自然により直感的なインターフェイスを作成し、ソフトウェアで開発者がどれだけ異なる機能を公開できるかを「即座に」示します。

タスク バー

付箋 (メモ) は、Windows 7 で使用可能な TabletPC アプレットの拡張機能です。デスクトップ上のノート エクスペリエンスで重要なことの 1 つは、引き続き新しいノートを確実に容易に作成できる一方で、迅速にすべてのノートを取り去り、また戻すことができることです。私たちは、付箋アプリケーション用の単一のトップ レベル ウィンドウを持つことにより、これを達成しました。シングル クリックで、ノートをすべて最小化し、コマンド バー上でノートをプレビューで表示できます。重ねて表示されるプレビューは、新しい縮小表示プレビュー API を使用して実現されました。この APIは、アプリケーションが、実質的にトップレベルのアプリケーション ウィンドウのリダイレクトされたスナップショットである既定の各タスク バー プレビューをオーバーライドし、独自に提供できるようにします。これにより、アプリケーションは、トップレベルのアプリケーション ウィンドウからこのプレビューを切り離し、シナリオに基づいたより生産的なプレビューを提供できるようになります。これは、たとえば、最後にタッチされたノートを迅速に見ることにより生産的なワークフローが実現できる付箋シナリオにおいて非常に価値がありました。いったんプレビューがタスク バーに与えられれば、タスク バーはそのようにプレビュー縮小表示イメージをキャッシュします。アプリケーションはそれ維持する必要はありません。ただし、それが変化した場合は、アプリケーションは更新されたプレビューを送信する必要があります。

image_6[2]

 

タスク バーにおけるもう一つの有効なカスタマイズ エンド ポイントは、レプリケート先メニュー (別名 jumplist) です。このメニューは、ユーザーがタスク バーでこのアプリケーションを右クリックするか、[スタート] メニューでこのアプリケーション アイコンをポイントすると表示されます。付箋アプリケーションには、単一のメイン アプリケーション ウィンドウがありません。このため、アプリケーションは実に���く感じられ、Windows 7 のシンプルで強力なユーザー エクスペリエンスを作成するという哲学によく合っています。課題は、主要な場所あるいは潜在的には他のカスタム「タスク」から新しいノートを作成できるような機能を公開することでした。レプリケート先メニューは、シンプルであってもこれまでにないような方法でこれらのシナリオを公開するのに役立ちます。

image_8[1]

image_10[1]

 

新しいタスクバーの機能性と拡張性により、開発者はソフトウェアを Windows デスクトップと統合するとき、ユーザーが生産的で効率的な方法でアプリケーション/シナリオを実行するのをより簡単に実現できます。

検索

Windows での検索の長い歴史および Windows 7 での重要な拡張機能に基づき、各コンテンツを Windows 7 のデスクトップ検索ユーザー エクスペリエンスとより深く統合できる開発者が使用可能な API があります。これらの API の使用方法の一例を付箋で示します。

付箋アプリケーションは、[スタート] メニューの Windows インライン検索によってコンテンツを検索することにより、ユーザーがノートに戻ることを可能にします。これにより、アプリケーションが閉じられている場合にさえ、ユーザーは関連するノートに可能な限り迅速にアクセスできます。テキストとインク両方のコンテンツに対して検索を実行できたとしても、インクでは様々な手書きのスタイルがあるため成功率が低いので、テキストに制限されています。アプリケーションは、各ノートの URL を生成するプロトコル ハンドラーを登録します。付箋フィルター ハンドラーは、検索インフラストラクチャによってインデックスを付けられる各ノートに関連付けられたコンテンツ用に要求されます。これらのインデックスは、ユーザーが後ほど Windows シェルによって提供される検索インターフェイスを検索する場合に使用され、迅速な参照を実行します。ユーザーが結果上でクリックすると、検索は、プロトコル ハンドラーが生成した対応する URL で、関連付けられたアプリケーションを呼び出します。それは、フィルター ハンドラーが Search indexer に送信したコンテンツと関連付けたものです。
image_12[1]

索プラットフォームには、渡されたコンテンツの言語を指定し、言語を計算するのに使用する既定の検索ヒューリスティックをオーバーライドすることを可能にする機能もあります。これにより、検索の正確さが非常に高まり、全エコシステムの国際的サポートが拡張されます。

付箋がプロトコル ハンドラーをフィルター ハンドラーに加えて実装した理由は、それが Windows ファイル システムのトップに独自の統合ストレージ スキーマを実装しているからです。すべてのノートは単一の .snt ファイルによって表されます。プロトコル ハンドラーは個々のエンティティ (この場合はノート) の URL を生成します。フィルター ハンドラーはこれらの各 URL のコンテンツを選び、検索にインデックス作成用に提供します。
これは、アプリケーションが容易に Windows 7 で検索プラットフォームに接続でき、プラットフォームと同様にアプリケーションからも全体的なユーザー エクスペリエンスを拡張するできる検索ハンドラーを追加できることを示しています。

リアルタイム スタイラス

リアルタイム スタイラス (RTS) は、ペンまたはタッチ デジタイザーからのスタイラス イベントへのアクセスを提供するインフラストラクチャです。これは、ストロークとポインに関する情報を提供し、インク関連のイベントへのアクセスを提供します。RTS を使用すると、アプリケーションは、スタイラス情報にアクセスでき、魅力的なエンド ユーザー シナリオおよびエクスペリエンスを開発できます。
付箋では、手描き入力ハードウェアの可用性によって、ユーザーはノート上でインクとタイプを使用できます。ユーザーはキーボード入力を使用してノートにタイプでき、スタイラスを使用してノートにインクできます。このエクスペリエンスは、ユーザーが特定のノートでインクまたはテキストのどちらかを使用することを念頭において設計されましたが、同じノートにインクとタイプの両方が可能です。ただし、これらの面は互いに不可知に維持されます。さらに、付箋は、ノートにインク中にノートを自動で広げ、インクされたコンテンツに合うようノートのサイズを調整するリアルタイム エクスペリエンスを提供します。

リアルタイム スタイラス (RTS) は、付箋で提供される手描き入力機能用に使用されます。また、手描き入力ジェスチャがアプリケーションで使用可能で、インクを消すジェスチャがコンテンツを削除するために付箋に実装されました。

image_14[1]

image_18[1]

さらに、ペイントは RTS を使用して、キャンバスでストロークを描くために使用されるマウス、スタイラス、あるいはタッチから位置入力を得ます。ペイントはさらに、入力がデジタイザーから使用可能な場合、圧力やタッチ面積など他の入力変数をキャプチャします。そして、キャンバスでペイント ストロークを生成するために使用されるストローク アルゴリズムへこれらの入力をマップします。ユーザーはこのアルゴリズムを使用して、キャンバス上の圧力やタッチ面責基づくストロークの幅や他のパラメーターを調整できます。

image_20[1]

RTS の使用は、手描き入力プラットフォーム上に構築するアプリケーションおよびソフトウェアの開発を可能にし、マウスやキーボードを越えるアプリケーションとの対話方法を提供します。スタイラス、手描き入力、およびジェスチャを使用すると、開発者はエンド ユーザー用に対話型エクスペリエンスを作成できます。

再起動と復旧

Windows エラー報告 (WER) インフラストラクチャは、Windows 7および他の以前のバージョンの Windows クライアントおよびサーバーに組み込まれる一連のフィードバック テクノロジーです。WERは、アプリケーションがアプリケーション エラー用に登録し、それを報告することを同意したエンド ユーザーのため、データをキャプチャすることを可能にします。このデータは、開発者がアクセスして分析し、エラー傾向およびダウンロード デバッグ情報を監視するために使用できます。また、開発者やソフトウェア メーカーがアプリケーション エラーの根本的原因を判定するのに役立ちます。

WERは、開発中やエンド ユーザーから初期のフィードバックを得られるベータ テスト中や、重要な修正プログラムを分析し優先度をつけられる製品リリース後に、そして製品のライフサイクルの最期など、ソフトウェア開発のさまざまな段階で非常に有益です。

アプリケーションが実行されている時に、Windows パッチによってリスタートがかかってしまった場合や、コンピューターが再起動された場合、レポートを上げるためにアプリケーションはWERを使うことができます。アプリケーションのクラッシュやハングあるいは応答しない状態を引き起こす障害への対応や、オプションで紛失データの復旧用にも利用することができ、復旧用に独自の機構を開発できます。
複数の Windows アプリケーションは、データを収集して分析するために WER インフラストラクチャを採用しています。電卓、ペイント、およびワードパッドは再起動用に、動作していたアプリケーションのセッションの現在のデータを回復します。付箋は再起動と復旧のため、デスクトップ上で開いている一連のノートへユーザーを返します。WER を使用すると、エンド ユーザーは、Windows によって問題データをキャプチャして収集することができ、そのため、前と同じ状態でアプリケーションに戻れます。

すでにお分かりのように、私たちが Windows 7 のアプレットで主に取り組んだのは、開発者が使用できる新しいプラットフォーム API とイノベーションのいくつかを公開することです。これらのアプリケーションを使っていただけば、いくつか一般的に要求をいただいた機能も追加されたことをがおわかりいただけると思います。その一部は次のとおりです。電卓での確認と修正、各計算モード、およびテンプレート、ペイントでの新しいブラシ、図形、およびマルチタッチ サポート、ワードパッドでのオープン スタンダード サポート、付箋でのインクとテキスト、タスク バー、および検索統合。私たちは 10年を待たずに再びこれらを更新する予定です :-)

--Riyaz Pishori とチーム