(57)【要約】  例示的なコンピュータ実装可能な方法は、グラフィカルユーザインターフェイスのコレクションを備えるホストコンピュータ上で実行されるアプリケーションからの呼び出しを受け取ることと、その呼び出しに応答して、アプリケーションを登録することとを含み、登録することは、そのアプリケーションに対する１つまたは複数のエントリポイントを設けることを含み、それぞれのエントリポイントは、そのグラフィカルユーザインターフェイスのコレクションに含まれる複数のグラフィカルユーザインターフェイスのうちの少なくとも１つに対応する。他のさまざまな例示的方法、デバイス、システムなども開示される。
2008538622.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装可能な方法であって、
ホストコンピュータ上で実行されるアプリケーションからの呼び出しを受け取るステップであって、前記ホストコンピュータは、グラフィカルユーザインターフェイスのコレクションを有するステップと、
前記呼び出しに応答して、前記アプリケーションを登録するステップであって、前記アプリケーションに対して１つまたは複数のエントリポイントを設けることを含むステップと
を含み、
それぞれのエントリポイントは、前記グラフィカルユーザインターフェイスのコレクションに含まれるグラフィカルユーザインターフェイスのうちの少なくとも１つに対応することを特徴とするコンピュータ実装可能な方法。
【請求項２】
前記アプリケーションは、ＨＴＭＬアプリケーションを含むことを特徴とする請求項１に記載の例示的な方法。
【請求項３】
前記アプリケーションは、アセンブリとしてビルドされたアプリケーションを含むことを特徴とする請求項１に記載の例示的な方法。
【請求項４】
前記グラフィカルユーザインターフェイスのコレクションに含まれるグラフィカルユーザインターフェイスのうちの１つは、ユーザが前記アプリケーションを登録解除することを可能にし、登録解除により、前記アプリケーションに対するすべてのエントリポイントが削除されることを特徴とする請求項１に記載の例示的な方法。
【請求項５】
それぞれのエントリポイントは、前記グラフィカルユーザインターフェイスのコレクションに含まれるグラフィカルユーザインターフェイスのグローバル一意識別子（ＧＵＩＤ）に対するパラメータに対応することを特徴とする請求項１に記載の例示的な方法。
【請求項６】
１つのエントリポイントは、コンテキストメニューのアイテムに対応することを特徴とする請求項１に記載の例示的な方法。
【請求項７】
前記アイテムの選択は、前記アプリケーションを起動することを特徴とする請求項６に記載の例示的な方法。
【請求項８】
１つのエントリポイントは、前記アプリケーションが新しい情報を提示できるようにする新情報グラフィカルユーザインターフェイスに対応することを特徴とする請求項１に記載の例示的な方法。
【請求項９】
請求項１に記載の登録するステップを実行するためのコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
【請求項１０】
コンピュータ実装可能な方法であって、
ホストコンピュータ上で実行されるアプリケーションからの呼び出しを受け取るステップであって、前記ホストコンピュータは、グラフィカルユーザインターフェイスのコレクションを有し、前記アプリケーションは、前記グラフィカルユーザインターフェイスのコレクションのうちの１つに関連付けられたエントリポイントを備えるステップと、
前記エントリポイントに対するパラメータ値を与えるステップと、
前記呼び出しに応答して、前記パラメータ値に少なくとも部分的に基づき、前記アプリケーションが前記ホストコンピュータのフォーカスを有するか、または前記アプリケーションが前記ホストコンピュータ上で再生中のメディアを呼び出したか否かを示すステップと
を含むことを特徴とするコンピュータ実装可能な方法。
【請求項１１】
前記示すステップは、前記アプリケーションが前記ホストコンピュータのフォーカスを有するか、または前記アプリケーションが前記ホストコンピュータ上で再生中のメディアを呼び出したか、またはいずれの条件も成立しないかを示す値を与えることを含むことを特徴とする請求項１０に記載のコンピュータ実装可能な方法。
【請求項１２】
前記アプリケーションが前記ホストコンピュータのフォーカスを有するか、または前記アプリケーションが前記ホストコンピュータ上で再生中のメディアを呼び出したことを前記示すステップが示す場合に、前記アプリケーションの動作を許可または制限するステップをさらに含むことを特徴とする請求項１０に記載のコンピュータ実装可能な方法。
【請求項１３】
前記アプリケーションによる呼び出しに応答して、前記アプリケーションが全画面モードで動作しているか、または全画面モードでのメディア再生を呼び出したか否かを示すステップをさらに含むことを特徴とする請求項１０に記載のコンピュータ実装可能な方法。
【請求項１４】
前記アプリケーションが全画面モードで動作しているか、または全画面モードでのメディア再生を呼び出したか否かを示すステップは、値を与えることを含み、さらに、前記アプリケーションが、前記値を使用して前記全画面モードでの前記メディア再生の完了後に前記ホストコンピュータのフォーカスを取り戻すことができるか否かを示すことを含むことを特徴とする請求項１３に記載のコンピュータ実装可能な方法。
【請求項１５】
請求項１０に記載の示すステップを実行するためのコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
【請求項１６】
コンピュータ実装可能な方法であって、
ホストコンピュータ上で実行されるアプリケーションからの呼び出しを受け取るステップであって、前記ホストコンピュータは、グラフィカルユーザインターフェイスのコレクションを備えるステップと、
前記呼び出しに応答して、問い合わせるペアレンタルコントロール設定の種類を選択するために使用可能なオブジェクトを取り出すステップと
を含むことを特徴とするコンピュータ実装可能な方法。
【請求項１７】
前記オブジェクトを使用することにより、ペアレンタルコントロールが前記ホストコンピュータにより有効にされているか否かを前記アプリケーションが判定することができることを特徴とする請求項１６に記載のコンピュータ実装可能な方法。
【請求項１８】
前記オブジェクトを使用することにより、前記ホストコンピュータにより有効にされた前記ペアレンタルコントロールに関係するデータのブロブを前記アプリケーションが返すことができることを特徴とする請求項１６に記載のコンピュータ実装可能な方法。
【請求項１９】
前記オブジェクトを使用することにより、ペアレンタルコントロールコードの入力を前記アプリケーションが要求することができることを特徴とする請求項１６に記載のコンピュータ実装可能な方法。
【請求項２０】
請求項１６に記載の取り出すステップを実行するためのコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、概して、アプリケーションを登録するための技術、及びそのようなアプリケーションのための相補的機能に関する。
【背景技術】
【０００２】
近年の技術革新は、家庭用コンピュータをマルチメディアセンターに変えつつある。例えば、ＷＩＮＤＯＷＳ（登録商標）ＸＰ（登録商標）ＭＥＤＩＡ  ＣＥＮＴＥＲ  ＥＤＩＴＩＯＮ  ２００５（商標）プラットフォームまたはオペレーティングシステム（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、ワシントン州レドモンド）を利用すると、ユーザは、使いやすい一式完備したインターネット対応手段によりパーソナルコンピュータ上で娯楽、個人生産性、および創造性を享受することができる。このオペレーティングシステムは、ユーザが、パーソナルコンピュータを使って写真、音楽、ビデオ、および録画されたＴＶを保存し、共有し、楽しむことを可能にする機能を備えている。要するに、このような機能は、いわゆるメディアセンターパーソナルコンピュータ（ＰＣ）を作り出す。メディアセンターＰＣは、さまざまな選択されたエンターテイメントの選択肢を１つにまとめるデジタルメディアハブへのＰＣの発展を示している。ＷＩＮＤＯＷＳ（登録商標）ＸＰ（登録商標）ＭＥＤＩＡ  ＣＥＮＴＥＲ  ＥＤＩＴＩＯＮ  ２００５（商標）オペレーティングシステムが搭載されたメディアセンターＰＣを、ただ１つのリモートコントロールでアクセスまたは制御することすら可能である。
【０００３】
入力にリモートコントロールを使用する場合のユーザ体験は、キーボードとマウスを介した入力に関連するユーザ体験と比較していろいろな点で異なる。したがって、２’コンテキストに典型的には関連付けられているユーザインターフェイスおよび関連する入力方法は、「１０’コンテキスト」で実装された場合、つまり、入力がリモートコントロールを介して行われる場合、ユーザにとって使い勝手はあまりよくない。実際、２’コンテキスト用に開発されたＵＩおよび関連する方法は、１０’コンテキストで使用された場合、使用を妨げる場合がある。
【０００４】
一般的に、１０’コンテキストにおけるユーザの視覚体験は、多くの点で、２’コンテキストよりも重要な意味を持つ。２’コンテキストは、本（つまり、「通常」のテキストとイメージの表示）を読み、テキストまたはイメージを指差すことができるということに似ているが、１０’コンテキストは、ＴＶを見ることに似ており、リモートコントロールはデバイスに向けられ、ユーザの視聴習慣はきわめて異なっており、視聴者はテキスト行ではなくイメージ、単語、または短いフレーズを見ることに慣れている。間違いなく、１０’コンテキストの出現により、このようなコンテキストで使用するユーザインターフェイスとアプリケーションの開発に新たな課題が生じた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本明細書で説明される様々な例示的な方法、デバイス、システムなどは、２’コンテキストの外の、またはユーザが複数のグラフィカルユーザインターフェイスをナビゲートしなければならないインスタンス内のユーザ体験を改善することを目的とする。本明細書で説明される様々な例示的な方法、デバイス、システムなどは、アプリケーションと１０’コンテキストで使用するのに適しているホストシステムとの間の関係を確立または管理することに関係する。
【課題を解決するための手段】
【０００６】
例示的なコンピュータ実装可能方法は、グラフィカルユーザインターフェイスのコレクションを備えるホストコンピュータ上で実行されるアプリケーションからの呼び出しを受け取るステップと、前記呼び出しに応答して、前記アプリケーションを登録するステップとを含み、前記登録するステップは、前記アプリケーション用の１つまたは複数のエントリポイントであって、各エントリポイントは、前記グラフィカルユーザインターフェイスのコレクションのうちの少なくとも１つに対応する１つまたは複数のエントリポイントを与えるステップを含む。他のさまざまな例示的方法、デバイス、システムなども開示される。
【発明を実施するための最良の形態】
【０００７】
図面を参照して、非限定的かつ非網羅的な実施例を説明する。別段の指定がない限り、類似の参照番号は一般にさまざまな図面全体を通して類似の部分を指す。
【０００８】
以下の説明では、さまざまな例示的方法、デバイス、システムなどが提示される。これらの例は、一般に、アプリケーション及びそのようなアプリケーションの相補的機能の登録に関係する。さまざまな例において、ホストにアプリケーションが登録される。登録または相補的機能に関係するさまざまな機能は、アプリケーションがホストまたはホストのユーザに関する情報を取得することを制限するなどのセキュリティを実現することができる。このようなセキュリティ機能は、ネットワークを介してホストと通信するアプリケーションに適用することができる。本明細書で提示されている例示的な技術は、１０’コンテキストのユーザインターフェイスに依存するアプリケーションに対し特に有用であるが、そのような例示的な技術は、他のコンテキストにも使用することができる。
【０００９】
図１は、コンテキスト境界１０２（例えば、１０’または他の距離）を有する例示的なコンテキスト１００を示す。コンテキスト境界１０２は、典型的には、ユーザとユーザインターフェイス（ＵＩ）との間の１つまたは複数の距離により定義される。例示的なコンテキスト１００は、ＴＶの視聴に典型的に見られる距離に類似している。例示的なコンテキスト１００では、ディスプレイ１１０は、ＵＩ  １１２を表示し、リモートコントロール１２０は、典型的には無線通信ポート（例えば、赤外線など）である通信ポート１１４を介してディスプレイのコントローラと通信する。ディスプレイ１１０用のコントローラは、ディスプレイ１１０の近くに配置された、またはディスプレイ１１０から離れた場所に配置されたコンピュータとすることができる。ＵＩを形成するためにコンピュータから表示情報を供給できるようにするさまざまな通信技術が存在する。
【００１０】
約１０フィート（３．０５ｍ）の距離のところできちんと動作するユーザインターフェイスでは、典型的なリモートコントロール（例えば、リモートコントロール１２０）は、従来のキーボードとマウスに比べて小型で、使いやすいが、一般的には、ユーザ入力形態はより限られたものとなっている（例えば、キーもしくはボタンの数が少ないため）という事実を考慮しなければならない。また、見える距離を長くするとより快適な体験が得られるが、明瞭さ、一貫性、および可読性を保証する視覚的デザインスタイルを実現する機能が必要になる可能性がある。
【００１１】
２’コンテキストと１０’コンテキストの両方において、ユーザインターフェイス（例えば、ＵＩ  １１２）を構築する際にユーザの期待、機動性、癖などが考慮されなければならない。期待に関しては、１０’体験は、コンピュータを使用する状況よりもテレビを視聴する状況によく似ている。その結果、ユーザは、動的なアニメーション化された体験を期待する。ユーザは、この入力デバイスによりユーザの体験がより単純になるが、複雑になることはないことを期待する。ユーザはさらに、アプリケーションが、キーボードまたはマウスにより制御されるアプリケーションよりも、便利で、学習しやすく、使いやすいものとなることを期待する。一般にＵＩとは、例えば、画面、モニタ上にプロジェクタ等により表示されるようなグラフィカルユーザインターフェイスのことである。
【００１２】
ＷＩＮＤＯＷＳ（登録商標）ＭＥＤＩＡ  ＣＥＮＴＥＲ  ＥＤＩＴＩＯＮ（商標）オペレーティングシステムまたはプラットフォーム（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、ワシントン州レドモンド）がアプリケーションのホストとして使用される一例を考える。このアプリケーションは、ホストされたアプリケーションと呼ばれる場合がある。この例では、ビデオまたはＴＶの再生中にユーザがホストされたアプリケーションを開くと、ホストプラットフォームに関連付けられた例示的ＵＩフレームワーク機能は、ビデオまたはＴＶの再生を共有ビューポートと呼ばれる画面の左下の小さなウィンドウ内に移動する。共有ビューポートは、表示可能になっている場合、ホストされたアプリケーションのＵＩ（つまり、表示されているページ）の左下隅にあるコンテンツを覆う。例えば、ビューポートは、解像度１０２４×７６８の画面の場合に、幅２７４ピクセル、高さ１９２ピクセルを有する場合がある。このようにして、例示的なＵＩフレームワークは、別のアプリケーション（例えば、ホストプラットフォームに関連付けられたメディアプレゼンテーションアプリケーションまたは機能）と同時に実行するアプリケーションの実行を管理する。もちろん、ユーザは、このようなＵＩの挙動または同時動作可能な別のアプリケーションの挙動に関する情報を得てＵＩを開発することができる。あるいは、ビューポートに関して、共有ビューポートを閉じるスクリプトは、ホストされたアプリケーションの代わりにそのようなスクリプトを実行することをホストが許可すると仮定すれば、使用されることも可能である。
【００１３】
前記の例では、プラットフォームは、親子関係と呼ぶことができる関係においてアプリケーションに対するホストとして使用された。プラットフォームとアプリケーションとの間の関係は、親子関係、子親関係、または対等関係とすることができる。本明細書で説明されるとき、プラットフォームは、典型的には、ホストとして使用され、アプリケーションは、典型的には、プラットフォームとの関係を確立することを求め、これにより、プラットフォームは、１つまたは複数の機能をアプリケーションに（例えば、１つまたは複数のＡＰＩを通じて）公開することができる。プラットフォームは、さらに、アプリケーションを管理することもできる。以下に提示される様々な例示的方法は、アプリケーションに機能を公開する方法およびアプリケーションを管理する方法を示す。
【００１４】
本明細書で説明されるプラットフォームとは、一般に、他の機能を含みうるメディアプラットフォームのことである。例えば、メディアプラットフォームは、アプライアンス、プロパティセキュリティコントロールなどの制御を行うことができる。メディアプラットフォームは、メディアの表示のため、また様々な家庭電化製品（例えば、台所、気象、セキュリティ、クリーニングなど）を制御するために、家庭で使用するのに適している可能性がある。したがって、ホストは、適宜さまざまなデバイスと通信することができる。
【００１５】
プラットフォームは、一般に、動作に関してコンピュータに依存する。ホストプラットフォームは、ホストコンピュータまたはホストシステム上で実行することができる。例えば、ホストコンピュータは、メディアの表示、編成、取得などのためのソフトウェアを備えることができる。このようなホストコンピュータは、一般に、グラフィカルユーザインターフェイスの表示機能を備える。さらに、このようなホストコンピュータは、リモートコントロールを介して発行されたコマンドを直接的にまたは間接的に受け取ることができる。さまざまな例示的な方法、モジュール、アプリケーションなどは、ホストシステムに関するものであるが、ホストプラットフォームまたはホストコンピュータを適宜置き換えることができる。例示的なコンピューティング環境が、さまざまな関連する機能とともに図６に示されているが、ホストは、数は少ない場合も多い場合もあるが同じ機能を備えることができる。
【００１６】
さまざまなアプリケーションのいずれも、プラットフォームと何らかの関係を結ぼうとすることができる。例えば、ＨＴＭＬアプリケーションは、メディアコンテンツ（例えば、楽曲、映画、本など）をユーザがブラウズできるようにするさまざまＵＩコンポーネントを表示するためにプラットフォームと何らかの関係を確立しようとすることがある。このようなＨＴＭＬアプリケーションは、スクリプトまたは他のコード化された機能を含むことができる（例えば、ダイナミックＨＴＭＬなどを考える。）。前述の１０’コンテキストに関して、ＨＴＭＬアプリケーションのＵＩコンポーネントは、一般に、離れたところで適切な視聴を行え、リモートコントロールを使用して発行されるコマンドを介してナビゲーションを行えるようなものでなければならない。
【００１７】
別の例として、連携するように組み込まれ、機能の論理ユニットを形成する型とリソースのコレクションである、．ＮＥＴ（登録商標）フレームワークアセンブリとして構築された．ＮＥＴ（登録商標）フレームワークアプリケーション（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、ワシントン州レドモンド）を考える。このようなアセンブリまたは他のコード（例えば、マネージド（ｍａｎａｇｅｄ）、コンパイル済み、ＤＬＬなど）は、例示的なプラットフォームの「アドイン」（例えば、Ｍｅｄｉａ  Ｃｅｎｔｅｒ  Ｅｄｉｔｉｏｎ（商標）プラットフォームのアドイン）と呼ぶことができる。アドインアプリケーションとプラットフォームとの関係の種類は、さまざまな要因に依存する可能性があり、適宜、プラットフォームは、ホストと考えられ、アドインアプリケーションは、ホストされたアプリケーションと考えられる。アドインアプリケーションは、典型的には、ターゲットプラットフォームの機能を拡張するものである。アドインは、バックグランドアドインまたはオンデマンド・アドインとすることができ、前者は、典型的には、ホストにより起動され、後者は、典型的には、適宜ユーザまたは他のアプリケーションにより呼び出される。
【００１８】
さまざまな理由（例えば、ロジスティック、運営、セキュリティなど）により、例示的なプラットフォームは、すべてのアプリケーション（例えば、ＨＴＭＬアプリケーションおよびアドインアプリケーション）を登録することが必要になることがある。一般に、アプリケーションの登録プロセスは、アプリケーションに関する情報をプラットフォームまたはシステムのレジストリに加える。プラットフォームは、アプリケーションを管理するため、またはプラットフォームに関連付けられているＵＩのコレクションへの１つまたは複数のエントリポイントを使用可能にするため、または他の目的のために、このような情報を使用することができる。
【００１９】
本明細書で説明されるとき、登録プロセスは、プラットフォームに関連付けられている例示的な登録アプリケーションまたは方法に依存する。そのため、例示的なプラットフォームは、１つまたは複数のアプリケーションの登録を可能にする例示的な登録アプリケーションを含むことができる。ここでもまた、登録できる又は登録を必要とするアプリケーションの種類は、一般に、さまざまな要因に依存する。さまざまな例示的登録アプリケーションが登録に関係しているが、例示的な登録アプリケーションまたは方法は、１つのアプリケーションまたはアプリケーションのグループの登録解除を可能にすることができる。
【００２０】
図２は、アプリケーションを登録する例示的な方法２０４およびアプリケーションの登録を解除する例示的な方法２０８を含む例示的スキーム２００を示している。例示的な方法２０４、２０８は、登録アプリケーション２１０に依存する。この例では、登録アプリケーション２１０は、「ページ」とときには呼ばれる（例えば、典型的なＷｅｂ「ページ」を考える。）、グラフィカルユーザインターフェイス２３０を備えるプラットフォーム２２０に関してアプリケーション２５０の登録または登録解除を実行することができる。すでに述べたように、登録または登録解除では、プラットフォーム２２０へのエントリポイントについても考慮する場合がある。
【００２１】
ＨＴＭＬアプリケーションなどに関しては、エントリポイントは、一般に、識別子、ＵＲＬ、タイトル、説明、またはイメージを含むことができるＨＴＭＬアプリケーション内の特定のページへのリンクである。ＵＩが「Ｍｙ  Ｍｕｓｉｃ」、「Ｍｙ  ＴＶ」、「Ｍｙ  Ｐｉｃｔｕｒｅｓ」などのカテゴリ用のＵＩを含む図２の例では、エントリポイントは、エントリポイントが置かれるグラフィカルユーザインターフェイス２３０内の（複数の）場所を決定できるカテゴリに関連付けることができる。「Ｍｙ  Ｍｕｓｉｃ」などのカテゴリは、そのカテゴリのためのページの階層を形成するメインページとさまざまな他のページを持つことができる。場合によっては、このようなページは、異なるカテゴリに関連付けられたページから直接アクセスすることができる。
【００２２】
アドインアプリケーションなどのエントリポイントに関しては、別々の同期タスクを実行するためにユーザにより呼び出されるオンデマンド・アドインアプリケーションを考える。ユーザは、プラットフォーム２２０のグラフィカルユーザインターフェイス２３０のエントリポイントを通じてオンデマンド・アドインを呼び出すことができる。このようなアドインのエントリポイントは、複数のＵＩコンポーネント、イメージ（例えば、ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）形式のイメージなど）、タイトル文字列、およびエントリポイントの目的を説明する記述的文字列を含むことができる。オンデマンド・アドインアプリケーションのエントリポイントは、さらに、エントリポイントが出現するグラフィカルユーザインターフェイス２３０内の（複数の）場所を決定することができる関連付けられたカテゴリを有することもできる。アドインは、プラットフォーム２２０内のさまざまな場所に複数のエントリポイントを置くことができる。例示的なプラットフォームでは、アドインアプリケーションがＵＩコンポーネントを提示する機能を制限することができる。場合によっては、アドインアプリケーションは、Ｗｅｂサイト、ＨＴＭＬアプリケーション、または特定のユーザ体験またはユーザ入力に対応できるようにプラットフォームの外部で提示されるＵＩコンポーネントに関連付けることができる。
【００２３】
すでに述べたように、登録プロセスでは、情報をレジストリに加えることができる。アドインアプリケーションに関して、例示的な登録プロセス２０４は、アドインアプリケーションおよびそのエントリポイントに関する情報をレジストリに追加し、これにより、プラットフォーム２２０は、アドインアプリケーションを見つけて、ロードし、実行することができ、またグラフィカルユーザインターフェイス２３０のコレクションにおいてそのエントリポイントを表示することができる。
【００２４】
図２を再び参照すると、登録のプロセス２０４で、アプリケーション２５０に対する登録情報２１４を生成する。特に、情報２１４を使用することで、一般に、プラットフォーム２２０に関してアプリケーション２５０を適切に動作させることができる。「適切な動作」という用語は、典型的には、プラットフォーム２２０またはユーザの観点からのものであり、プラットフォーム２２０またはユーザは、セキュリティ、プライバシ、個人的選択などに基づいてアプリケーション２５０の動作を制約することができる。
【００２５】
すでに説明したように、アプリケーション２５０は、典型的には、１つまたは複数のグラフィカルユーザインターフェイス２３０を通じてユーザがアクセスできる新しい機能（例えば、新しいサービスまたはメディア体験）を追加することによりプラットフォーム２２０の機能を拡張するソフトウェアコンポーネントである。アプリケーション２５０がＨＴＭＬアプリケーションである場合、ＸＭＬ、スクリプティング、ＡｃｔｉｖｅＸコントロール、または他のよく知られたクライアントサイドインターネット技術を使用する１つまたは複数のＨＴＭＬページで構成することもできる。そのようなものとして、ＨＴＭＬアプリケーションは、典型的には、ＵＩコンポーネントを表示しようとするものである。
【００２６】
例示的な登録プロセス２０４および例示的な登録アプリケーション２１０は、マークアップ言語を用いて要素の形式で指定された情報に頼ることができる。例えば、例示的なアプリケーション要素、例示的なカテゴリ要素、および例示的なエントリポイント要素の構文例を以下に示す。これらの例示的な要素は、適宜、ＨＴＭＬアプリケーション、アドインアプリケーション、または他の種類のアプリケーションに関係する特定の情報を含みうる。
【００２７】
例示的なアプリケーション要素の構文例
【００２８】
【表１】
2008538622.tif 000003
【００２９】
この構文例は、ｔｉｔｌｅ、ｉｄ、ｕｒｌ、ｂｇＣｏｌｏｒ、ｎａｍｅ、ＣｏｍｐａｎｙＮａｍｅ、ｓｔａｒｔＩｍａｇｅ、ｔｈｕｍｂｎａｉｌＩｍａｇｅ、ｓｈａｒｅｄＶｉｅｗｐｏｒｔ、およびＮｏｗＰｌａｙｉｎｇＤｉｒｅｃｔｉｖｅを含むさまざまな属性を取りあげている。ｔｉｔｌｅ属性は、アプリケーションのタイトルを指定する文字列である。ｉｄ属性は、アプリケーションのグローバル一意識別子（ＧＵＩＤ）を指定する文字列である。ｕｒｌ属性は、アプリケーションへのパスを指定する文字列である。ｂｇＣｏｌｏｒ属性を使用するか、またはＢＧＣｏｌｏｒプロパティを使用して、ＨＴＭＬアプリケーションの１つまたは複数のページの背景色を設定することができる。ｎａｍｅ属性は、例えば、グラフィカルユーザインターフェイス２３０のＳｔａｒｔメニュー内のアプリケーションのボタンのラベルとして現れる名前を指定する文字列である。この属性は、さらに、さらに多くのプログラム（つまり、プラットフォームの一部であろうと、登録されていようとさらに多くのアプリケーション）の一覧を表示するグラフィカルユーザインターフェイスのサムネイルショートカット上に表示される名前を指定することもできる。ＣｏｍｐａｎｙＮａｍｅ属性は、アプリケーションを作成した会社の名前を指定する文字列である。例示的な登録アプリケーション２１０は、適宜、ダイアログボックス内でこの名前を使用して、指定された会社の新しいアプリケーションアイテムをユーザが追加したいかどうかについてユーザに問い合わせる。この特定のアクションは、登録プロセス実行時にユーザに対しある程度のセキュリティを保証する。
【００３０】
ｓｔａｒｔＩｍａｇｅ属性は、例えば、アプリケーションのｓｔａｒｔメニューボタンが選択された（例えば、図１の例示的なコンテキスト１００に関して説明されているようにフォーカスが置かれた）場合に表示されるイメージ（例えば、ＰＮＧ形式などの）へのパスを指定する文字列である。ｔｈｕｍｂｎａｉｌＩｍａｇｅ属性は、例えば、プラットフォーム２２０の「Ｍｏｒｅ  Ｐｒｏｇｒａｍｓ」ページ内のサムネイルアイコン上に表示されるイメージ（例えば、ＰＮＧ形式などの）へのパスを指定する文字列である。ｓｈａｒｅｄＶｉｅｗｐｏｒｔ属性は、共有ビューポートの状態を指示する文字列である。
【００３１】
ｓｈａｒｅｄＶｉｅｗｐｏｒｔ属性は、いわゆるＭｅｄｉａ  Ｃｅｎｔｅｒ  Ｌｉｎｋ（ＭＣＬ）ファイルとともに使用することができるが、このファイルは、典型的には、拡張子．ｍｃｌを持ち、例えば、プラットフォーム２２０によりホストされるアプリケーションの属性および要求条件を定義するＸＭＬコードを含むファイルである。場合によっては、ＭＣＬファイル内の情報は、ＨＴＭＬアプリケーションを追加または登録するために使用することができる。
【００３２】
すでに述べたように、例示的な登録アプリケーション２１０では、アプリケーション２５０のエントリポイントを考慮することができる。「ｅｎｔｒｙｐｏｉｎｔ」要素は、プラットフォーム２２０内にそれぞれのエントリポイントを定義するために使用することができる。具体的な一例では、エントリポイント要素は、以下の構文例を含む。
【００３３】
例示的なエントリポイント要素の構文例
【００３４】
【表２】
2008538622.tif 000004
【００３５】
この要素例は、さまざまな属性を含んでいる。ｉｄ属性は、特定のエントリポイントを一意に識別するＧＵＩＤ（つまり、グローバル一意識別子）を含む文字列である。ｕｒｌ属性は、アプリケーション２５０内のエントリポイントページへのパスを指定する文字列である。ｒｕｎ属性は、例えば、オペレーティングシステム２２０を使用するローカルマシン上の実行可能ファイルへのフルパスまたは相対パスを指定する文字列である。ａｄｄｉｎ属性は、アドインアプリケーションの属性を定義するカンマ区切り文字列である。ｔｉｔｌｅ属性は、エントリポイントを識別する文字列であり、エントリポイントが選択されたときにページの一番上に表示できる。ｄｅｓｃｒｉｐｔｉｏｎ属性は、エントリポイントの目的を説明する文字列である。ｉｍａｇｅＵｒｌ属性は、エントリポイントを表すイメージ（例えば、ＰＮＧ形式イメージなど）へのパスを指定する文字列である。ｃｏｎｔｅｘｔ属性は、アプリケーション２５０のための任意の一組のパラメータとすることができる、エントリポイントが選択されたときにプラットフォーム２２０がアプリケーション２５０に与えるアプリケーション定義済み文字列である。ここでもまた、このような属性は、プラットフォームまたはそのユーザ用のセキュリティシステムの一部とすることができる。
【００３６】
例示的なエントリポイント要素は、登録アプリケーション「ＲｅｇｉｓｔｅｒＡｐｐｌｉｃａｔｉｏｎ」２１０により使用されうる。上述のｕｒｌおよびｒｕｎ属性に関して、アプリケーションのエントリポイント要素は、ＨＴＭＬアプリケーションの場合にはｕｒｌを、プラットフォームの環境の外部で実行されるアプリケーションの場合にはｒｕｎ属性を含まなければならない。アプリケーションがアドインアプリケーションの場合、エントリポイント要素は、ａｄｄｉｎ属性を含んでいなければならない。ａｄｄｉｎ属性要素は、「ｃｌａｓｓＮａｍｅ，ａｓｓｅｍｂｌｙＮａｍｅ，Ｖｅｒｓｉｏｎ＝ｖｅｒｓｉｏｎ，ＰｕｂｌｉｃＫｅｙＴｏｋｅｎ＝ｐｕｂｌｉｃＫｅｙ，Ｃｕｌｔｕｒｅ＝ｃｕｌｔｕｒｅ」の形式の文字列とすることができ、ただし、ｃｌａｓｓＮａｍｅは、ＩＡｄｄＩｎＭｏｄｕｌｅインターフェイスから継承されるクラスのアドインアプリケーションのインプリメンテーションのフルネーム（アセンブリおよびクラス）であり、ａｓｓｅｍｂｌｙＮａｍｅは、アドインアプリケーションのアセンブリの名前であり、ｖｅｒｓｉｏｎは、アドインアプリケーションのバージョン番号であり、ｐｕｂｌｉｃＫｅｙは、アドインアプリケーションに署名するために使用される暗号鍵の公開部分であり、ｃｕｌｔｕｒｅは、アドインアプリケーションの文化指定である。ｖｅｒｓｉｏｎ、ｐｕｂｌｉｃＫｅｙ、およびｃｕｌｔｕｒｅ値は、アドインアプリケーションのアセンブリに格納されている厳密な名前情報（ｓｔｒｏｎｇ−ｎａｍｅ  ｉｎｆｏｒｍａｔｉｏｎ）と正確に一致している必要がある場合がある。
【００３７】
例示的な登録アプリケーション２１０は、さらに、アプリケーション２５０をプラットフォーム２２０の機能、メディアなどの１つまたは複数のカテゴリに関連付けることもできる。例えば、プラットフォーム２２０は、カテゴリ「Ｍｙ  Ｍｕｓｉｃ」、「Ｍｙ  ＴＶ」、および「Ｍｙ  Ｐｉｃｔｕｒｅｓ」に対するさまざまなグラフィカルユーザインターフェイス２３０を示す。アプリケーション２５０と１つまたは複数のカテゴリとの関連付けを与えるために、カテゴリ要素が使用できる。例えば、例示的なカテゴリ要素は、アプリケーションの（複数の）エントリポイントのそれぞれについて１つまたは複数のカテゴリを指定することができる。
【００３８】
例示的なカテゴリ要素の構文例
【００３９】
【表３】
2008538622.tif 000005
【００４０】
この例示的な要素は、ホストされたアプリケーションの特定のエントリポイントに対するホストシステムのカテゴリを識別する文字列であるｃａｔｅｇｏｒｙ属性を含む。バックグラウンド・アドインについては、この属性は、「Ｂａｃｋｇｒｏｕｎｄ」とすることができる。オンデマンド・アドインアプリケーションまたはＨＴＭＬアプリケーションの場合、この属性は、これらに限定はしないが、Ｉｎｔｅｒｎｅｔ  Ｒａｄｉｏ、Ｍｏｒｅ  Ｐｒｏｇｒａｍｓ、Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ＼Ａｕｄｉｏ＼Ａｌｂｕｍ、Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ＼Ａｕｄｉｏ＼Ａｒｔｉｓｔ、Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ＼Ａｕｄｉｏ＼Ｐｌａｙｌｉｓｔ、Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ＼Ａｕｄｉｏ＼Ｓｏｎｇ、Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ＼Ａｕｄｉｏ＼Ｇｅｎｒｅ、Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ＼ＤＶＤ、Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ＼Ｐｉｃｔｕｒｅ、Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ＼  Ｖｉｄｅｏ、Ｎｅｗ  Ｆｏｒ  Ｍｅ  Ｓｅｒｖｉｃｅｓ＼Ａｕｄｉｏ、Ｓｅｒｖｉｃｅｓ＼Ｍｏｖｉｅｓ、Ｓｅｒｖｉｃｅｓ＼Ｐｉｃｔｕｒｅｓ、Ｓｅｒｖｉｃｅｓ＼Ｒａｄｉｏ、およびＳｅｒｖｉｃｅｓ＼ＴＶなどのさまざまなカテゴリから選択することができる。メディアのプレゼンテーション、編成、取得などに適した例示的なホストでは、このようなカテゴリまたは他のカテゴリを使用することができる。
【００４１】
他の例示的な要素は、アプリケーション２５０で必要とする機能を指定することができる。例えば、アプリケーション２５０は、マシン上に実装されているようなプラットフォーム２２０の特定の機能を必要とする場合がある（例えば、図６の例示的なコンピューティング環境６００などにおけるコンピュータ）。例示的な要素の構文例は以下のとおりである。
【００４２】
例示的な機能要素の構文例
【００４３】
【表４】
2008538622.tif 000006
【００４４】
例示的な機能要素の構文例は、さまざまな属性を含む。例えば、ｄｉｒｅｃｔＸは、アプリケーションがＤｉｒｅｃｔＸサポートを必要とするかどうかを示す文字列である。ａｕｄｉｏ属性は、アプリケーションがオーディオサポートを必要とするかどうかを示す文字列である。ｖｉｄｅｏ属性は、アプリケーションがビデオサポートを必要とするかどうかを示す文字列である。ｉｎｔｅｎｓｉｖｅＲｅｎｄｅｒｉｎｇ属性は、アプリケーションがハイエンドのレンダリング機能を必要とするグラフィックスを含むかどうかを示す文字列である。ｃｏｎｓｏｌｅ属性は、リモートセッションからではなく、コンピュータのコンソールからのみ利用可能なまたは意味のあるリソースを必要とするかどうかを示す文字列である。例えば、ＣＯＭポートを通じてプロジェクタをオン、オフするＬＣＤプロジェクタアプリケーションである。
【００４５】
前述の例示的な要素は、適宜、１つまたは複数のエントリポイントを指定することを含むことができる登録プロセスまたは登録解除プロセス（例えば、２０４、２０８）で使用される。これらの例示的な要素は、マークアップ言語コード（例えば、ＸＭＬコード）を例示的な登録アプリケーション２１０に渡すことができる。それぞれの例示的な要素について一覧にされたさまざまな属性はオプションであるか、または他の属性を含めることもできる。このような例示的なシナリオにおいて、アプリケーション要素は、アプリケーション２５０へのパスを指定し、さまざまなアプリケーション属性を設定することができ、エントリポイント要素は、プラットフォーム２２０内へのエントリポイントを指定することができ、カテゴリ要素は、エントリポイントに対するカテゴリを指定することができ、例示的な機能要素は、アプリケーション２５０を正常に実行するために必要な、またはアプリケーションに最高の動作をさせるのに他の何らかの形で望ましい機能を指定することができる。ユーザは、適宜、例えば、設定に応じてアプリケーションを動作の面で制限できるホストの設定を選択することにより、アプリケーションから利用可能なリソースを制限することができる。
【００４６】
さまざまな例示的な要素を説明したが、例示的な登録アプリケーション２１０は、構文例としてＲｅｇｉｓｔｅｒＡｐｐｌｉｃａｔｉｏｎ（ｓＸＭＬＡｐｐＩｎｆｏ，ｆＵｎＲｅｇｉｓｔｅｒ，ｆＡｌｌＵｓｅｒｓ）を使用する例示的な方法とすることができる。この特定の例示的な方法のパラメータに関して、ｓＸＭＬＡｐｐＩｎｆｏパラメータは、アプリケーション要素、エントリポイント要素、およびカテゴリ要素（例えば、ＸＭＬ要素として）を含む文字列である。ここでもまた、これらの要素は、アプリケーション、その（複数の）エントリポイント、および（複数の）エントリポイントが出現する１つまたは複数のカテゴリを識別する。それとは別に、このパラメータは、このアプリケーションに対するアプリケーション要素、エントリポイント要素、およびカテゴリ要素を格納したマークアップ言語ファイル（例えば、ＸＭＬファイル）へのパスを指定することができる。ｆＵｎＲｅｇｉｓｔｅｒパラメータは、アプリケーションを登録解除するかどうかを示すブール値である。ｆＡｌｌＵｓｅｒｓパラメータは、すべてのユーザの、または現在ユーザだけの、アプリケーションを登録するのか、または登録解除するのかを示すブール値である。このパラメータは、戻り値、例えば、例示的な方法が成功した場合にはゼロ、失敗した場合には非ゼロである数（ｌｏｎｇ型）を取りうる。
【００４７】
例示的方法「ＲｅｇｉｓｔｅｒＡｐｐｌｉｃａｔｉｏｎ」は、アプリケーションおよびそのサポートされているエントリポイントをホストに登録する。すでに述べたように、エントリポイントは、ＨＴＭＬアプリケーション内の特定のページへのリンクとすることができ、識別子、ＵＲＬ、タイトル、説明、またはイメージを含むことができる。一般に、それぞれのエントリポイントは、ホストに関連付けられている少なくとも１つのカテゴリに関連付けられ、（複数の）エントリポイントが置かれる複数のホストユーザインターフェイス内の１つまたは複数の場所を決定することができる。
【００４８】
具体的な一例では、ｘｍｌＡｐｐＩｎｆｏパラメータで指定されたＸＭＬコードは、１つまたは複数の入れ子になったエントリポイント要素とともに単一のアプリケーション要素を含む。それぞれのエントリポイント要素は、典型的には、少なくとも１つの入れ子になったカテゴリ要素を有し、複数の入れ子になったカテゴリ要素を持つことができる。アプリケーションがこのような例示的な方法を呼び出すシナリオでは、ホスト側で、登録プロセスをユーザに確認またはキャンセルさせるダイアログボックスを表示することができる。例えば、ユーザ側で、ＨＴＭＬアプリケーションの使用を要求することができるか、またはエンティティ側で、ホストシステムがメディアの消費、サービスの使用などのためＨＴＭＬアプリケーションを使用する必要があるようにできる。アプリケーションのそのようなコンポーネントは、使用される又は「ホストされる」のに先立って、ホストシステムへの登録を必要とすることがあるため、アプリケーションは例示的な方法を呼び出すことがある。それとは別に、サロゲートまたはヘルパーアプリケーションは、例示的な方法を呼び出し、これにより、アプリケーションの登録を行うことができる。
【００４９】
例示的な方法は、呼び出された後、例外を投げることができ、例えば、「Ｔｈｅ  ｓｐｅｃｉｆｉｅｄ  ａｐｐｌｉｃａｔｉｏｎ  ｉｓ  ａｌｒｅａｄｙ  ｒｅｇｉｓｔｅｒｅｄ」、「Ｔｈｅ  ｓｐｅｃｉｆｉｅｄ  ａｐｐｌｉｃａｔｉｏｎ  ｉｓ  ｎｏｔ  ｒｅｇｉｓｔｅｒｅｄ」、および「Ｔｈｅ  ｓｐｅｃｉｆｉｅｄ  ａｐｐｌｉｃａｔｉｏｎ  ｃａｎ  ｎｏｔ  ｂｅ  ｒｅｇｉｓｔｅｒｅｄ，ａｃｃｅｓｓ  ｄｅｎｉｅｄ」という例外を投げることができる。もちろん、他の例外も必要に応じて投げることができる。
【００５０】
１つのエントリポイントにアプリケーションを登録するコードの例示的なセグメントが、ＪＳｃｒｉｐｔを使って以下のように示されている。
【００５１】
アプリケーションを登録するための例示的なコードセグメント
【００５２】
【表５】
2008538622.tif 000007
【００５３】
この例示的なセグメントは、例示的な方法ＲｅｇｉｓｔｅｒＡｐｐｌｉｃａｔｉｏｎの呼び出しを含み、これらに限定はしないが、エントリポイントＵＲＬ、カテゴリ、およびさまざまなｉｄ（例えば、ＧＵＩＤ）などの、すでに説明されているようなさまざまな情報を指定する。この例示的なセグメントは、単一のエントリポイントに対する情報を含むが、追加のエントリポイントも指定することができ、したがって、かなり小さなコードセグメントにおいて、アプリケーションの複数のエントリポイントをホストシステムに登録することができる。
【００５４】
図２に関して説明されているように、アプリケーションの登録または登録解除は、例示的な登録アプリケーションもしくは方法または例示的な登録解除アプリケーションもしくは方法を使用することにより実行することができる。アプリケーションの登録は、プラットフォームの機能または情報へアクセス権を与えるため、またはプラットフォームの機能を拡張するための前提条件とすることができる。
【００５５】
図３は、プラットフォーム３２０（例えば、プラットフォーム２２０を考える）上に常駐する例示的な登録アプリケーション３１０（例えば、ＲｅｇｉｓｔｅｒＡｐｐｌｉｃａｔｉｏｎ  ２１０を考える）を使用する２つの例示的なシナリオ３００のブロック図を示している。例示的なシナリオの１つは、ネットワークを介してプラットフォーム３２０にアクセスすることができるリモートコンピュータ３６０上に常駐するアプリケーション３５０を伴うが、他の例示的なシナリオでは、アプリケーション３５０は、プラットフォーム３２０上に常駐し、まだ登録解除されていない。ネットワーク３０２は、限定はしないが、有線または無線などの好適なネットワークとすることができる（例えば、８０２．１１、衛星など）。前者のシナリオは、リモートシステムが登録アプリケーション３１０へのリモートコールを介してアプリケーションをプラットフォームに登録しようとする一例に関係するが、後者のシナリオは、メモリ内に格納されているアプリケーションが登録アプリケーション３１０へのローカルコールを介して登録しようとする一例に関係する。このような例示的な登録アプリケーションがアプリケーションの登録または登録解除を行うことができる他のシナリオも可能であると思われる。これらのシナリオにおいて、サロゲートまたはヘルパーアプリケーションは、ヘルパーアプリケーションがローカルまたはリモートで実行している場合にアプリケーション３５０の代わりに動作しうる。
【００５６】
これらの例示的なシナリオの両方において、例示的な登録プロセスは、登録アプリケーション３１０を呼び出してアプリケーション３５０を登録することを含む。この例では、登録アプリケーション３１０は、プラットフォーム３２０の要求を行うためにアプリケーション３５０が依存するプラットフォーム３２０のアプリケーションプログラムインターフェイス（ＡＰＩ、アプリケーションプログラミングインターフェイスとも呼ばれる）またはプラットフォーム３２０上に常駐する適宜他のアプリケーションである。
【００５７】
登録アプリケーション３１０は、ＡＰＩとして、例えばアプリケーション３５０とプラットフォーム３２０との間で情報交換を行う一組のプロシージャを含む。情報交換のためのこの一組のプロシージャは、上で説明され、図３に示されているような要素（または、マークアップ言語では「タグ」）とみなすことができる。この例では、登録アプリケーション３１０は、４つの要素、アプリケーション３５０に関する情報を交換するためのアプリケーション要素３１２、プラットフォーム３２０に関してアプリケーション３５０の１つまたは複数のエントリポイントに関する情報を交換するためのエントリポイント要素３１４、アプリケーション３５０をプラットフォーム３２０の１つまたは複数の機能またはメディア関係カテゴリに関連付けることに関する情報を交換するためのカテゴリ要素３１６、およびアプリケーション３５０により必要とされる機能に関する情報またはプラットフォーム３２０上で利用可能な機能に関する情報を交換するための機能要素３１８を備える。プラットフォーム３２０は、それぞれの登録されたアプリケーション（例えば、設定ページ）の一覧を表示するページ（例えば、グラフィカルユーザインターフェイス）を備えることができる。このようなページを使用すると、さらに、登録されたアプリケーションをユーザ側で制約することができる。
【００５８】
したがって、図２および３に関して説明されているように、アプリケーションは、アプリケーションを登録し、適宜そのアプリケーションに対し１つまたは複数のエントリポイントを指定する少なくとも１つの登録プロセスを必要とするプラットフォームによりホストすることができる。他の特徴は、能力、カテゴリ、セキュリティ、関連付けなどに関係しうる。
【００５９】
例示的コンピュータ実装可能方法は、グラフィカルユーザインターフェイス（例えば、グラフィカルユーザインターフェイス２３０）のコレクションを有するホストコンピュータ（またはホストプラットフォームまたはホストシステム）上で実行されるアプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）からの呼び出しを受け取ることと、その呼び出しに応答して、アプリケーションを登録することとを含み、登録することは、そのアプリケーションに対して１つまたは複数のエントリポイントを設け、それぞれのエントリポイントは、そのグラフィカルユーザインターフェイスのコレクションに含まれる複数のグラフィカルユーザインターフェイスのうちの少なくとも１つに対応する。このような例示的方法により、アプリケーションは、スタンドアロンの実行可能コードであってよい（例えば、ホスト上で実行されるスタンドアロンの実行可能コードアプリケーション）。このような例示的な方法により、実行は、例えば、ホストコンピュータに関連付けられているブラウザ（例えば、内蔵ブラウザ）においてウェブページまたはスクリプトとして行うことができる。それとは別に、サロゲートまたはヘルパーアプリケーションが、ヘルパーアプリケーションがローカルまたはリモートで実行している場合にアプリケーションの代わりに呼び出しを発行しうる。
【００６０】
このような例示的な方法では、アプリケーションは、ＨＴＭＬアプリケーション、アセンブリとしてビルドされたアプリケーションなどとすることができる。ホストコンピュータのグラフィカルユーザインターフェイスに関しては、ユーザによるアプリケーションの登録解除を許可することができ、登録解除により、アプリケーションのすべてのエントリポイントが削除される。エントリポイントに関して、それぞれのエントリポイントは、グラフィカルユーザインターフェイスのコレクションのうちの１つのグラフィカルユーザインターフェイスのグローバル一意識別子（ＧＵＩＤ）に対するパラメータに対応しうる。この例示的な方法では、エントリポイントは、選択するとアプリケーションが起動する、コンテキストメニューの１つのアイテムに対応しうるか、またはエントリポイントは、新しい情報をアプリケーションから提示できるようにする新情報グラフィカルユーザインターフェイスに対応しうる（例えば、以下の「Ｎｅｗ  ｆｏｒ  Ｍｅ」を参照。）。このような例示的方法は、少なくとも一部は、コンピュータ可読媒体上に、例えばアプリケーションの登録を実行するコンピュータ実行可能命令として具現化することができる。
【００６１】
図１の例示的なコンテキスト１００に関して、ホストされたアプリケーション（例えば、アプリケーション２５０またはアプリケーション３５０）は、一定の距離のところで視聴するのに適しており、リモートコントロールを使用してナビゲートできる１つまたは複数のグラフィカルユーザインターフェイス（全画面または部分画面）を備えることができる。オーディオユーザインターフェイスも備えることができるが、一般的には、ホストされたアプリケーションは、１つまたは複数のグラフィカルコンポーネントを備える。さまざまな機能について以下で説明する。
【００６２】
図４は、例示的な登録アプリケーション４１０と双方向にやり取りすることができる機能モジュールを備える例示的な機能の構成４００を示している。機能モジュールは、「Ｕｓｅｄ  ｆｏｒ  Ｓｅｒｖｉｃｅｓ」モジュール４８２（例えば、メディアハンドラなどの）、「Ｎｅｗ  Ｆｏｒ  Ｍｅ」モジュール４８６（例えば、「鮮度（ｆｒｅｓｈｎｅｓｓ）」などの通知用の）、および「Ｍｏｒｅ  ｗｉｔｈ  Ｔｈｉｓ」モジュール４８８（例えば、コンテキスト・リンクなど）を含む。もちろん、他の名前も、後述のようにそれぞれのモジュールに関連付けられている例示的な機能を付与されたモジュールに適している場合がある。例えば、「Ｎｅｗ  Ｆｏｒ  Ｍｅ」モジュール４８６は、「Ｎｅｗ  Ｉｎｆｏｒｍａｔｉｏｎ」モジュールと呼ばれる場合があり、これにより、アプリケーション（例えば、アプリケーション２５０またはアプリケーション３５０）は、新しいコンテンツまたは新しい機能などの新しい情報を取得する。
【００６３】
「Ｕｓｅｄ  ｆｏｒ  Ｓｅｒｖｉｃｅ」モジュール４８２は、１つのアプリケーションを機能の１つまたは複数のカテゴリに関連付ける動作をする。「Ｎｅｗ  ｆｏｒ  Ｍｅ」モジュール４８６は、１つまたは複数の拡張性アプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）によって提供される新しいコンテンツまたは新しい機能を見つけるためにユーザ側でアクセスすることができる特定のページなどの機能を備える。ユーザは、「Ｓｔａｒｔ」ページ、「Ｍｏｒｅ  Ｐｒｏｇｒａｍｓ」ページなどからそのようなページにアクセスすることができる。モジュール４８６は、アイテムが「Ｎｅｗ  Ｆｏｒ  Ｍｅ」または他の好適なページから利用できる場合のみ、ユーザから見えるか、または利用可能になるとしてよい。
【００６４】
メディアコンテンツが登録済みアプリケーションに関連して利用可能になった場合、「Ｎｅｗ  Ｆｏｒ  Ｍｅ」アイテムは、新しいコンテンツのタイトルおよび新しいコンテンツの簡単な説明を含むことができる。概して、それぞれのアイテムは、アイテムを選択するとコンテンツ（例えば、購入、ダウンロード、ストリームなど）が消費される可能性のある指定された宛先へのナビゲーションが行われるリンクを含むか、またはリンクとして動作する。
【００６５】
すでに述べたように、構成４００のさまざまなモジュールは、登録アプリケーション４１０と双方向にやり取りすることができる。例えば、アプリケーションは、登録アプリケーション４１０を呼び出すことによりそのような「Ｎｅｗ  Ｆｏｒ  Ｍｅ」アイテムを登録することができる。登録はそのアプリケーションのアイテム登録能力に適用され、例えば、それぞれの登録済みアプリケーションＧＵＩＤに対し１つの「Ｎｅｗ  Ｆｏｒ  Ｍｅ」アイテムという制限を課すことができる。さらに、「Ｎｅｗ  Ｆｏｒ  Ｍｅ」エントリは、ローカルアプリケーションによる登録に制限することもできる、つまり、リモートアプリケーションが「Ｎｅｗ  Ｆｏｒ  Ｍｅ」アイテムを登録するのを禁止することができる。例示的な「Ｎｅｗ  Ｆｏｒ  Ｍｅ」モジュールを４８６は、例えば、リストの先頭にある一番最近のアイテムでタイムスタンプを作成することによりアイテムを並べ替えることができる。すでに述べたように、プラットフォームは、設定ページを含むことができる。このようなページまたは他の機能を使って、ユーザは、登録済みアプリケーションが「Ｎｅｗ  Ｆｏｒ  Ｍｅ」アイテムを追加するのを防ぐことができる。このような機能は、アプリケーションを登録するために使用される登録アプリケーション（例えば、登録アプリケーション４１０）の一コンポーネントとしてよい。
【００６６】
一例として、ホストシステムのユーザに情報を提供するために、登録済みアプリケーションに依存する映画配信サービスを考える。このようなサービスでは、新しいメディアコンテンツがサービスを通じて利用可能になったときに「Ｎｅｗ  Ｆｏｒ  Ｍｅ」アイテムを追加することと望む場合がある。サービスの登録済みアプリケーションは、そのようなアイテムを「登録」するために登録アプリケーションを呼び出すことができる。
【００６７】
「Ｎｅｗ  Ｆｏｒ  Ｍｅ」モジュール４８６は、「Ｎｅｗ  Ｆｏｒ  Ｍｅ」アイテムを追加または更新することができる方法を備えることができる。例えば、以下の方法例を考える。
【００６８】
「Ｎｅｗ  Ｆｏｒ  Ｍｅ」の例示的方法のコード例
【００６９】
【表６】
2008538622.tif 000008
【００７０】
この方法は、例えば、更新されたタイトルを含む文字列であるｔｉｔｌｅパラメータと、更新された説明を含む文字列であるｄｅｓｃｒｉｐｔｉｏｎパラメータとを含む。この例示的な方法は、そのアイテムに対し更新または登録が発生したかどうかを示す値（例えば、ブール値）を返すことができる。
【００７１】
例示的な「Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ」モジュール４８８は、１つのアイテムまたはさまざまな複数のアイテム（例えば、イメージファイル、サウンドファイルなど）のコンテキストメニューを備える。例えば、図４は、コンテキストメニュー４８９を有する例示的なユーザインターフェイス４８７を示している。コンテキストメニュー４８９は、＜ｏｔｈｅｒ  ａｐｐ．＞アイテムを含み、これは、登録アプリケーション４１０により登録されたアプリケーションに対するエントリポイントとして使用されうる。そこで、「Ｍｏｒｅ  Ｗｉｔｈ  Ｔｈｉｓ」モジュール４８８は、コンテキストメニュー（例えば、コンテキストメニュー４８９）内にエントリポイントを設けるために登録アプリケーション４１０と相互にやり取りする。
【００７２】
図５は、例示的登録アプリケーション５１０および登録アプリケーション５１０と双方向にやり取りすることができるさまざまな例示的なモジュール５００を示している。例示的なプラットフォーム、コンピュータ、またはシステムは、さまざまなモジュールまたは他のモジュールのどれかを含むことができる。概して、このような例示的なモジュールは、ホストに関するアプリケーションの動作に関係する。これらの例示的なモジュールについて以下で説明する。それぞれの例示的なモジュールは、適宜、１つまたは複数のコンピュータ可読媒体上にコンピュータ実行可能命令として、例えば、ホストプラットフォームの一部として、またホストコンピュータにより実行可能なコンピュータ実行可能命令として具現化することができる。
【００７３】
モジュール５７１：フォアグラウンド 
ＩｓＦｏｒｅｇｒｏｕｎｄＡｐｐｌｉｃａｔｉｏｎモジュール５７１は、登録済みアプリケーションに呼び出されたときに、登録済みアプリケーションが現在のフォアグラウンドアプリケーションであるか、またはホストシステム内で現在再生中のメディアを呼び出したかどうかを示すことができる方法を備える。モジュール５７１は、１つまたは複数のパラメータを備えることができる。例えば、ｅｎｔｒｙＰｏｉｎｔＩｄパラメータは、そのアプリケーションのエントリポイントを一意に識別するＧＵＩＤを含む文字列とすることができる。モジュール５７１は、呼び出し側アプリケーションがフォアグラウンドアプリケーションであるかどうかを示すブール値を返すことができる。
【００７４】
このようなモジュールは、アプリケーション又はこのようなアプリケーションと接続されたサービスにより実行されるアクションを制限することができる。例えば、アプリケーションがホストシステム内で現在のフォアグラウンドアプリケーションでない場合、現在のグラフィカルユーザインターフェイスに変更を加え内容に制限することができる。そこで、アプリケーションがポップアップ、オーディオ、フォアグラウンドグラフィックを表示させることを制限することができ、ユーザはＨＴＭＬアプリケーションなどに戻る。場合によっては、通知グラフィックが利用可能であり、これにより、フォアグラウンドアプリケーションではないアプリケーションも、ユーザ向けの情報があることを示すことができる（例えば、小さなアイコン、周囲が小さなテキストウィンドウなど）。しかし、概して、このような通知メカニズムは、ユーザの制御下にあり、適宜活動を停止させることができる。
【００７５】
このようなモジュールは、さらに、グラフィックス、オーディオのプレゼンテーション、またはユーザがアプリケーションを呼び出した場合の他のアクションを行わせるアプリケーション許可を付与することもできる。例えば、ビューポート（例えば、グラフィカルユーザインターフェイスの一領域）に流せる映画予告編を考える。このビューポートは、ユーザがアプリケーションを呼び出したためフォアグラウンドアプリケーションと考えることはできないが、予告編が終了すると、アプリケーションは、さまざまな情報の表示、映画サービスページへのユーザのナビゲーション、割引きクーポン、映画のチケットの配信などを実行させることができるとよい。
【００７６】
モジュール５７２：全画面 
ＩｓＭｅｄｉａＦｕｌｌＳｃｒｅｅｎモジュール５７２は、ホストシステムが全画面モードになっているかどうかを示すプロパティ値（例えば、ブール値または他の値）を含むプロパティである。登録済みアプリケーションは、このプロパティを使用して、ＲｅｔｕｒｎＴｏＡｐｐｌｉｃａｔｉｏｎ関数への呼び出しが適切かどうかを判定することができる（例えば、ＲｅｔｕｒｎＴｏＡｐｐｌｉｃａｔｉｏｎモジュール５７３を参照。）。
【００７７】
このような全画面モジュールを使用することで、アプリケーションはその後のアクションを実行する許可があるかどうかを判定することができる。例えば、アプリケーションが映画予告編を全画面で表示させる場合（例えば、前述のビューポート例とは反対に）、アプリケーションは、予告編完了後にもう１つの予告編を提示させることができるか、またはユーザを特定のページまたはグラフィカルユーザインターフェイスへとナビゲートすることができる。場合によっては、メディアファイルがファイルの終わりに達したときに画面が現れるようにできる（例えば、完了表示）。アプリケーション作成者は、ユーザを再生を呼び出したページに自動的に戻すことを望んでいる場合があり、そこで例示的な全画面モジュールにより、映画または他のメディアアプリケーションが青色画面またはブランク画面の表示を回避するようにできる。
【００７８】
特定の一例では、ユーザは、アプリケーションを使用して、ＯＳＣＡＲ（Ｓ）（登録商標）ＡＣＡＤＥＭＹ  ＡＷＡＲＤ（Ｓ）（登録商標）ウェブページ（Ａｃａｄｅｍｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ａｒｔｓ  ａｎｄ  Ｓｃｉｅｎｃｅｓ）にナビゲートし、俳優Ｘとの「映画制作舞台裏」ビデオインタビューを選択する。ビデオが全画面ビデオとして、または実質的に全画面で表示される場合（例えば、通知用の境界または小さなオーバーレイなど）、アプリケーション側で、例えば、俳優Ｙ、俳優Ｚなどとのビデオインタビューのプレイリストを別々に管理することができる可能性がある。しかし、アプリケーションが全画面を表示していない場合、ホストシステムのユーザインターフェイスに対しそのような制御を行えない。いくつかのシナリオでは、アプリケーションはＡＳＸファイルに依存しうる。ＡＳＸファイルは、メディアファイルのストリーミングを管理するテキストコマンドファイルである。ＡＳＸファイルは、通常、命令しか格納されないため、一般に、サイズが小さい（例えば、１Ｋ程度）。ブラウザアプリケーションは、ＡＳＸファイルをキャッシュディレクトリにダウンロードし、メディアプレーヤーを起動して、命令に従ってストリーミングメディアを開始することができる。しかし、ＡＳＸファイルは、再生が開始する前にプレイリストの内容が指定されていなければならないという点で制限がある。コンテンツが全画面であっても再生状態を検出し、管理することにより、アプリケーションは、再生時にユーザまたはアプリケーションにより生成もしくは修正されたプレイリストであっても、プレイリスト機能を実行することができる。
【００７９】
例示的なフォアグラウンドモジュール５７１および例示的な全画面モジュール５７２に関して説明したように、アプリケーションは、ホストシステム上のステータスに関して問い合わせを行って、特定のアクションが許可されるかどうかを決定することができる。一般に、アプリケーションがユーザの体験を低下させる可能性のある予想外の方法で動作することを回避しなければならない。
【００８０】
モジュール５７３：アプリケーションへの復帰 
ＲｅｔｕｒｎＴｏＡｐｐｌｉｃａｔｉｏｎモジュール５７３は、ホストシステムが、ある程度の優先または制御を呼び出し側登録済みアプリケーションに返すようにできる方法を備える。特に、モジュール５７３は、ユーザを、メディア再生を呼び出したアプリケーションに、またはメディア再生を呼び出したアプリケーションの特定のページに戻すことができる。モジュール５７３は、パラメータなし、および戻り値なしの「ＲｅｔｕｒｎＴｏＡｐｐｌｉｃａｔｉｏｎ（）」などの構文を持つことができる。ビデオを全画面モードで再生する登録済みアプリケーションを考える。このようなアプリケーションは、この方法を呼び出して、全画面再生が完了した後にフォーカスを取り戻すことができる。登録済みアプリケーションは、ＲｅｔｕｒｎＴｏＡｐｐｌｉｃａｔｉｏｎモジュール５７３を呼び出す前に、ＩｓＡｐｐｌｉｃａｔｉｏｎＡｃｔｉｖｅモジュール（図５には示されていない）を呼び出して、登録済みアプリケーションが表示されているかどうかを判定することができる。また、ＩｓＭｅｄｉａＦｕｌｌＳｃｒｅｅｎモジュール５７２を呼び出して、現在のメディアが全画面モードかどうかを判定することもできる。
【００８１】
モジュール５７１、５７２、５７３に関して、これらにより、メディアまたはＵＩの表示の制御を個別に又はまとめて支援することができるのでユーザのメディア体験を向上させることができる。例示的なコンピュータ実装可能方法は、グラフィカルユーザインターフェイス（例えば、グラフィカルユーザインターフェイス２３０）のコレクションを備え、アプリケーションがグラフィカルユーザインターフェイスのコレクションの中の１つのグラフィカルユーザインターフェイスに関連付けられているエントリポイントを備える、ホストコンピュータ（またはホストプラットフォームまたはホストシステム）上で実行されるアプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）からの呼び出しを受け取ることと、エントリポイントに対するパラメータ値を与えることと、その呼び出しに応答して、少なくとも一部はパラメータ値に基づき、アプリケーションがホストコンピュータのフォーカスを持つか、またはアプリケーションがホストコンピュータ上で再生中のメディアを呼び出したか否かを示すこととを含む。このような例示的な方法により、実行は、例えば、ホストコンピュータに関連付けられているブラウザ（例えば、内蔵ブラウザ）においてウェブページまたはスクリプトとして行うことができる。このような例示的な方法により、アプリケーションは、スタンドアロンの実行可能コードであってよい（例えば、ホスト上で実行されるスタンドアロンの実行可能コードアプリケーション）。それとは別に、サロゲートまたはヘルパーアプリケーションは、ヘルパーアプリケーションがローカルまたはリモートで実行している場合にアプリケーションの代わりに呼び出しを発行しうる。一般に、フォアグラウンドアプリケーションは、ホストコンピュータのフォーカスを持つ。ここでもまた、図１の例示的なコンテキスト１００を参照すると、フォーカスを使用することで、メディア中心システムのナビゲーションおよび制御が容易になる。
【００８２】
前述の例示的な方法は、アプリケーションがホストコンピュータのフォーカスを持つか、またはアプリケーションがホストコンピュータ上で再生中のメディアを呼び出したか、またはいずれの条件も成立しないかを示す値を与える（ｐｒｏｖｉｄｅ）ことができる。このような例示的方法は、さらに、アプリケーションがホストコンピュータのフォーカスを持つか、またはアプリケーションがホストコンピュータ上で再生中のメディアを呼び出したことをこの指示が示す場合に、アプリケーションの動作を許可または制限することを含むことができる。
【００８３】
モジュール５７２に関して、例示的な方法は、アプリケーションによる呼び出しに応答して、アプリケーションが全画面モードで動作しているか、または全画面モードでのメディア再生を呼び出したかを示すことができる。モジュール５７２は、アプリケーションが全画面モードで動作しているか、または全画面モードでのメディア再生を呼び出したかどうかを示す値を与えることができ、モジュール５７３は、このような値を使用して、アプリケーションが全画面モードでのメディアの再生が完了した後にホストコンピュータのフォーカスを取り戻すことができるかどうかを示すことができる。一般に、本明細書で説明されているさまざまなモジュールまたは方法のいずれも、少なくとも部分的に、コンピュータ可読媒体上にコンピュータ実行可能命令として具現化することができる。
【００８４】
モジュール５７４：ＭＣＬが存在する 
ＤｏｅｓＭＣＬＥｘｉｓｔモジュール５７４は、ＭＣＬファイルが登録済みアプリケーションの特定のカテゴリに関してすでに存在しているかどうかを示すことができる方法を備える。モジュールは、ｃａｔｅｇｏｒｙパラメータおよびＵＲＬパラメータなどの１つまたは複数のパラメータを含みうる。このようなｃａｔｅｇｏｒｙパラメータは、登録済みアプリケーションのカテゴリを示す数値とすることができる（例えば、「０」はＭｏｒｅ  Ｐｒｏｇｒａｍｓ、「１」はＲａｄｉｏ、「３」はＧａｍｅｓ、「４」はＴｅｍｐｏｒａｒｙ  ｐｌａｃｅｈｏｌｄｅｒなど）。ＵＲＬパラメータは、ＨＴＭＬ  Ｗｅｂアプリケーションへのパス（例えば、「ｈｔｔｐ：／／」を含む）を指定する文字列とすることができる。このモジュールは、ＭＣＬファイルが存在するかどうかを示すブール値を返すことができる。このモジュールは、ＵＲＬおよび呼び出し側の完全に記述したドメイン名が異なる場合に例外を投げることができる。このようなプロセスを使用することで、セキュリティを高めることができる。
【００８５】
セキュリティに関して、ユーザがさらに他のサービスも使用するかどうかを問い合わせたいサービスの１つをユーザが使用するというシナリオがある。例えば、競合サービス「Ｓｐｏｒｔｓ  ２」がある、スポーツサービス「Ｓｐｏｒｔｓ  １」を使用するユーザを考える。セキュリティを目的として、Ｓｐｏｒｔ  １サービスに関連付けられた登録アプリケーションは、自身に関してのみ問い合わせることができる、つまり、ユーザがＳｐｏｒｔｓ  ２サービスに関連付けられたアプリケーションも使用するかどうかを問い合わせることはできない。このようなセキュリティメカニズムは、例えば、情報の呼び出し側と権限のあるドメイン名とが異なる場合に、そのような情報に対するアクセスが拒絶される（例えば、例外が投げられるか、またはアクセスが拒絶されたことを示す指標が呼び出し側に伝達される。）ＵＲＬパラメータに依存している。
【００８６】
前述の例では、チェックする「ドメイン」レベルについて言及しているが、ＧＵＩＤレベルのセキュリティメカニズムをドメインレベルのセキュリティメカニズムに加えて、またはその代わりに使用することができる。例えば、呼び出し側アプリケーションのＧＵＩＤが現在実行中のアプリケーションのＧＵＩＤと一致しない場合、情報に対するアクセスは拒絶されうる（例えば、アクセスが拒絶されたことを示す情報のみを伝達できる。）。情報に対するアクセスについて言及されているが、ナビゲーションコントロールに対するアクセスについて拒絶されうる。例えば、ドメインレベルまたはＧＵＩＤレベルで不一致が生じた場合、呼び出し側アプリケーションは、制限されたナビゲーションコントロールまたは他のコントロール（例えば、グラフィック、オーディオ、その他のアクション）を有する可能性がある。
【００８７】
モジュール５７５：エントリポイント登録 
ＩｓＥｎｔｒｙＰｏｉｎｔＲｅｇｉｓｔｅｒｅｄモジュール５７５は、呼び出し側アプリケーション（登録または登録解除された）がすでに、ホストシステムに登録されている特定のエントリポイントを有するかどうかを示すことができる方法を含む。このような方法は、ＩｓＥｎｔｒｙＰｏｉｎｔＲｅｇｉｓｔｅｒｅｄ（ｅｎｔｒｙＰｏｉｎｔＩｄ）という構文を含むことができ、ここでパラメータｅｎｔｒｙＰｏｉｎｔＩｄは、アプリケーションエントリポイントを一意に識別するＧＵＩＤを含む文字列である。この方法は、エントリポイントがすでに登録されている場合に真であり、そうでない場合に偽であるブール値を返すことができる。一般に、このような方法では、特定のアプリケーションが登録されたかどうかを確認せず、呼び出し側アプリケーションについて特定のエントリポイントが登録されているかどうかのみを確認する。
【００８８】
モジュール５７６：ホスト制御レベル 
ＭｅｄｉａＣｅｎｔｅｒＣｏｎｔｒｏｌＬｅｖｅｌモジュール５７６は、プロパティ値を含むプロパティである。モジュール名に「ＭｅｄｉａＣｅｎｔｅｒ」が含まれるが、このようなモジュールは、ホスト制御レベルモジュールと呼ぶことができる。このプロパティは、ホストシステムに関してアプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）が有している制御のレベルを決定する現在の設定を取り出す。プロパティ値は、制御レベルを示す読み取り専用の数値とすることができる。これは、アプリケーションがホストシステムを制御することも問い合わせることもできないことを示す「０」、アプリケーションが、ホストシステムを制御し、通知を表示することができることを示す「１」、アプリケーションが、ホストシステムの現在の状態を示す設定を取り出すことができることを示す「２」、アプリケーションが、ホストシステムまたはホストシステムの（複数の）ユーザに関連付けられているメタデータ、例えばユーザの郵便番号を取り出すことができることを示す「４」。
【００８９】
すでに説明されているように、ホストシステムは、セキュリティおよびプライバシを目的として、ユーザ側でアプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）に対し制約を課すことができるようにする設定を含むことができる。このような設定により、このようなアプリケーションがホストシステムを制御するか、またはその設定を取り出すことを許可されるかどうかを決定することができる。
【００９０】
例えば、ホストシステムを使用し、録音するためのメディアサービスにナビゲートしたユーザを考える。ユーザは、メディアサービスに関連付けられている登録済みアプリケーションに、特定の録音を再生させることができる。それに応答して、アプリケーションは、例示的なホスト制御レベルモジュールを呼び出して、ホスト制御レベルプロパティ設定を取り出すか、または決定することができる。いったん知られれば、アプリケーションは、これに限定はしないが、「ｉｆ  ｙｏｕ  ｌｉｋｅ  ｔｈｅ  ｃｕｒｒｅｎｔ  ｓｏｎｇ，ｔｈｅｎ  ｔｒｙ  ｔｈｉｓ  ｓｏｎｇ」をユーザに通知することなどの適切なその後のアクションを引き起こすことができる。
【００９１】
別の例として、現在再生されている楽曲が前述のメディアサービスに関連付けられていないが、それでも、メディアサービスの登録済みアプリケーションが現在再生されている楽曲のメタデータを呼び出してアクセスすることができるシナリオを考える。さらに、このようなメタデータを取り出して、分析することに対し、登録済みアプリケーションは、ユーザに「ｉｆ  ｙｏｕ  ｌｉｋｅ  ｔｈｅ  ｃｕｒｒｅｎｔ  ｓｏｎｇ，ｔｈｅｎ  ｔｒｙ  ｔｈｉｓ  ｓｏｎｇ」を通知することができる。この後者の例は、前者よりも侵略的であるが、このような制御は、ホスト制御レベルプロパティ設定に従って与えることができる。
【００９２】
さらに別の例では、ユーザは、メディアに関する情報に関して、メディアを消費するときに一貫した体験を望むことが考えられる。そのため、特定の登録済みアプリケーションを、メディアのソースまたはサービスプロバイダに関係なく、メディアに関する情報の提示のために使用することができる。例えば、特定の登録済みアプリケーションに、メディア関係情報をユーザインターフェイスの特定の情報領域内に提示させる。そのために、特定のフォント、ティッカアニメーションなどを使用することができる。一貫した体験を得るために、ユーザは、このソースまたはサービスプロバイダに関係なく、メディア情報の提示にこのアプリケーションを使用することを望むと思われる。
【００９３】
ユーザが複数のメディアサービスを使用する場合、複数のサービスがメディアを、適宜特定の価格で推奨するシナリオが実行されうる。次いで、ユーザは、このような情報に基づいて使用するサービスを決定することができる（例えば、サービスが異なる価格で同じ楽曲を推奨するとき等）。考えられるシナリオは、サービスに、販売の申し出またはメディアに関係する情報（例えば、ディスコグラフィ、経歴、演奏スケジュール、ショータイム、会場など）のみを提示させることができる登録済みアプリケーションを含む。
【００９４】
別の例では、メディアサービスの登録済みアプリケーションは、メディアサービスにより提供されるメディアの検索、ブラウズ、または消費に関する情報へのアクセスを拒絶されることがある。例えば、ユーザが楽曲Ｘを聴き、これによってサービスプロバイダは、楽曲Ｘを現在再生されている楽曲として識別するメタデータを拒絶される、つまり、サービスプロバイダは、モジュールを呼び出した登録済みアプリケーションを使用することで、単純に、ユーザが楽曲を聴いていることを発見することができる。
【００９５】
例示的なホスト制御レベルモジュールでは、１つまたは複数のレベルのアクセスに対応できる。例えば、第１のレベルは、アクセスのメタデータレベルとし、第２のレベルは、ホストシステム全体にわたる制御の相対的に無制限のレベルとすることができる。アプリケーションが無許可レベルで制御を行おうとする場合、モジュールは、アプリケーションにスクリプトエラーを発生させることができる。レベルまたはアクセスに関する情報へのアクセスは、適宜、ユーザにより制御可能である（例えば、設定毎の選択）。
【００９６】
モジュール５７７：ページへのナビゲート 
ＮａｖｉｇａｔｅＴｏＰａｇｅモジュール５７７は、ホストシステムのグラフィカルユーザインターフェイス（例えば、図２のホストシステム２２０のグラフィカルユーザインターフェイス２３０）内の指定ページにナビゲートし、必要ならばそのページのコンテンツを指定するようにホストシステムに指令することができる方法を含む。このような方法の構文例は、ＮａｖｉｇａｔｅＴｏＰａｇｅ（ｐａｇｅＩｄ，ｐａｒａｍｓ）である。ｐａｇｅＩｄパラメータは、ホストシステム（例えば、グラフィカルユーザインターフェイス２３０などのグラフィカルユーザインターフェイスの階層またはコレクション内の特定のグラフィカルユーザインターフェイス）のページの識別子（ＧＵＩＤ）を含む文字列である。ｐａｒａｍｓパラメータは、追加のパラメータを含む文字列である。呼び出された後、方法が成功すると、０を返し、成功しなければ、エラー値として、目的ページがＳＰＡＤ（Ｓｅｔ  Ｐｒｏｇｒａｍ  Ａｃｃｅｓｓ  ａｎｄ  Ｄｅｆａｕｌｔｓ）ツールにより削除されたことを示すＥＲＲ＿ＣＯＭＭＡＮＤ＿ＲＥＭＯＶＥＤ＿ＷＩＴＨ＿ＳＰＡＤ、または方法が失敗したことを示すＥＲＲ＿ＮＡＶＩＧＡＴＩＯＮ＿ＦＡＩＬＥＤのうちの１つを返す。
【００９７】
具体的な一例では、ｐａｇｅＩｄパラメータの値により、以下の表に示されているように、ｐａｒａｍｓパラメータの値が決定される。
【００９８】
【表７】
2008538622.tif 000009
【００９９】
【表８】
2008538622.tif 000010
【０１００】
【表９】
2008538622.tif 000011
【０１０１】
ｐａｇｅＩｄパラメータがＥｘｔｅｎｓｉｂｉｌｉｔｙＥｎｔｒｙＰｏｉｎｔであり、ａｐｐｌｉｃａｔｉｏｎＧｕｉｄパラメータが指定されていない場合、ホストシステムは、呼び出し側アプリケーションのアプリケーションＧＵＩＤを使用することができる。ｐａｇｅＩＤパラメータが「Ｖｉｓｕａｌｉｚａｔｉｏｎｓ」である場合、ｐａｒａｍｓパラメータは、（例えば、レジストリからの）視覚化名およびプリセットがコロンで区切られた形で含まれる文字列である。例えば、「Ａｍｂｉｅｎｃｅ：Ｓｗｉｒｌ」となる。視覚化名が指定されているが、プリセットは指定されていない場合、ホストシステムは、既定の視覚化またはすでに選択されているプリセットを使用することができる。同様に、プリセットが指定されているが、視覚化名は指定されていない場合、ホストシステムは、既定の視覚化またはすでに選択されている視覚化を使用することができる。
【０１０２】
一般に、例示的なｎａｖｉｇａｔｅ  ｔｏ  ｐａｇｅモジュールを使用すると、アプリケーションは、例えば、ホストシステムのページのコレクションまたは階層に関連付けられている特定のページにナビゲートすることができる。
【０１０３】
例えば、ユーザを視覚化ページにナビゲートし、ユーザがメディアサービスを介して消費されたメディアについて視覚化を選択するようにできるメディアサービスに関連付けられている登録済みアプリケーションを考える。場合によっては、標準の視覚化または一組の視覚化が、ホストシステム上に常駐すると予想できる場合、登録済みアプリケーションにおいて、そのような視覚化の１つまたは複数をメディア再生時に呼び出すことができる。
【０１０４】
別の例として、写真イメージサービスプロバイダに関連付けられた登録済みアプリケーションを考える。このようなアプリケーションは、ユーザをホストシステムの「Ｍｙ  Ｐｉｃｔｕｒｅｓ」ページにナビゲートする例示的なナビゲーションモジュールにアクセスすることができる。それに応答して、アプリケーションは、「Ｍｙ  Ｐｉｃｔｕｒｅｓ」ページまたはその中のカテゴリとリンクされているイメージファイルのスライドショーまたは他の表示もしくは編成を行うことができる。この例では、アプリケーションは、ホストシステムのスライドショーアプリケーションまたは他のアプリケーションに適宜依存しうる。アプリケーションは、ファイルパス情報、例えば、イメージファイルへのパスにアクセスすることができる。
【０１０５】
さらに別の例では、ユーザは、映画サービスに関連付けられている登録済みアプリケーションを使用することができる。ページは、映画サービスからダウンロードされた、購入された、またはレンタルされたすべての映画のアイコンをユーザ側で表示できるようにするボタンを備えることができる。次いで、アプリケーションは、ユーザが次のステップに入るのを手助けすることができる（例えば、販売、廃棄、視聴、再度レンタルなど）。
【０１０６】
モジュール５７８：サスペンド後の再開 
ｏｎＡＰＭＲｅｓｕｍｅモジュール５７８は、省電力、雑音熱低減を補助するため、または他の理由によりホストシステムがサスペンドされた後に動作を再開するときに生じるイベントとして動作する。アプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）は、ホストシステムがサスペンドされた後に再開すると、このイベントを使用してデータをリフレッシュすることができる。
【０１０７】
ホストシステムは、一定期間、不活動状態であると、例えば、１つまたは複数の入力チャネルを除いて、実質的にすべての動作をサスペンドすることができる。ユーザは、さらに、コマンドを入力することでサスペンドを引き起こすこともできる。いずれの場合も、サスペンド時に、新しいサービスに関連付けられている登録済みアプリケーションは、フォアグラウンドアプリケーションとなっているか、または類似の優先度を割り当てられている。再開動作が行われると、このようなアプリケーションは、新しい情報へのアクセスを取得し、新しい情報を同じ優先度で（例えば、フォアグラウンドアプリケーション）または異なる優先度で（例えば、バックグラウンドアプリケーション、または以前にフォアグラウンドでない場合には、フォアグラウンドで）表示することができる。表示は、部分画面でも全画面でも可能である。ニュース中心でない、または他の何らかの形で情報の瞬時性に依存しないアプリケーションは、例示的な再開モジュールが備えるような機能へのアクセスを拒絶されうる。
【０１０８】
モジュール５７９：ペアレンタルコントロール 
ＰａｒｅｎｔａｌＣｏｎｔｒｏｌモジュール５７９は、問い合わせるペアレンタルコントロール設定の種類を選択するために使用されるオブジェクト（例えば、ＰａｒｅｎｔａｌＣｏｎｔｒｏｌＳｅｌｅｃｔｏｒオブジェクト）を取り出すプロパティである。このプロパティは、読み取り専用オブジェクトであるプロパティ値を含む。このプロパティおよび（そのプロパティから取り出された）オブジェクトは、アプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）の問い合わせるペアレンタルコントロール設定の種類を選択する手段となる。したがって、このようなアプリケーションは、例えば、映画またはＴＶ視聴に関する現在のペアレンタルコントロール設定を問い合わせることができる。
【０１０９】
例示的なペアレンタルコントロール機能は、特定の種類のコンテンツにアクセスするためにＰＩＮの入力に依存しうる。ユーザは、リモートコントロールまたは他の入力メカニズムを介してそのようなＰＩＮを入力することを求められるようにできる。正しいＰＩＮが入力されない場合、コンテンツへのアクセスは、一般に拒絶される。登録済みアプリケーションは、ユーザが特定の１つまたは複数の種類のコンテンツにアクセスしようと試みたときにＰＩＮの入力を要求することができる。このようなアプリケーションでは、例示的なペアレンタルコントロールモジュール５７９を呼び出すことができる（例えば、ＡＰＩ呼び出し）。このような呼び出しに応答して、アプリケーションは、正しいＰＩＮが入力されたこと、または不正なＰＩＮが入力されたことを示す指標または単に続ける、もしくは続けないことを示す指標などの限られた情報を与えられるようにできる。
【０１１０】
ホストシステムは、単一のペアレンタルコントロール設定（例えば、オン／オフ）を備えるか、または、何らかのコントロール設定論理（ｌｏｇｉｃ）に従って適時動作するさまざまな設定を含むことができる。例えば、ＣＳ１カートゥーン風のバイオレンス「ＯＫ」、ＣＳ２、グラフィックＮＯＫ、ＣＳ３芸術的裸体ＯＫなどを考える。論理は、呼び出し側アプリケーション側で予測できるデータのブロブとして設定を表すことができる。
【０１１１】
インターネットコンテンツプロバイダにより提供されるホームコメディを視聴するアプリケーションを使用するユーザを考える。このアプリケーションは、例示的なペアレンタルコントロールモジュール５７９を呼び出して、ホストシステムの設定が、ホームコメディの視聴を許可するようになっているかどうかを判定することができる。第１の場合、アプリケーションは、ペアレンタルコントロールがホストシステムによって有効にされているかどうかを判定することができる。この場合、ホストシステムは、コントロール「オン」を示すブール値を返すことができる。第２の場合、アプリケーションは、有効にされたペアレンタルコントロールの設定またはレベルの性質に関する情報を要求することができる。それに応答して、モジュールは、アプリケーションを呼び出すことにより予想され、ある程度分析可能なデータのブロブ（ｂｌｏｂ）を返すことができる。呼び出し側アプリケーションは、ブロブ中の情報を使用して、特定の種類のメディアの今後の要求を回避するか、またはメディアのアクセス、広告などを他の何らかの方法で手直しすることができる。第３の場合、アプリケーションは、上述のように、ＰＩＮの入力を要求することができる。
【０１１２】
こうして、本明細書で説明されているように、例示的なペアレンタルコントロールモジュールは、複数の呼び出しレベルを備えることができ、これらの呼び出しの一部は、ユーザ入力なしで情報を返すことができ、他の呼び出しは、ユーザの入力を必要とすることがあり、入力に実質的に無関係の情報を返すことがある（例えば、ＰＩＮの入力が要求された場合の戻り値は、ＰＩＮに関する情報を含まない。）。例示的なモジュールは、その特定の呼び出しに応じて、ブール値またはデータのブロブを返すことができる。
【０１１３】
ユーザは、適宜、特定の情報（例えば、メタデータ）の公開または例示的なペアレンタルコントロールモジュールの他の手直し（ｔａｉｌｏｒｉｎｇ）を許可することができる。例えば、呼び出しからそのようなモジュールに戻った場合、再生はＯＫであるが、メタデータの取得はＯＫでないことを示しうる。一般に、ペアレンタルコントロールに関するユーザ設定は、ユーザの体験を向上させ、セキュリティを高めることを目的としている。ブール値を基本呼び出し（例えば、有効にされているホストシステムコントロール）への可能な戻り値として含めることで、アプリケーションがはっきりしない形で失敗することを防ぐことができる。
【０１１４】
例示的なコンピュータ実装可能方法は、グラフィカルユーザインターフェイス（例えば、グラフィカルユーザインターフェイス２３０）のコレクションを備えるホストコンピュータ（またはホストプラットフォームまたはホストシステム）上で実行されるアプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）からの呼び出しを受け取ることと、その呼び出しに応答して、問い合わせるペアレンタルコントロール設定の種類を選択するために使用可能なオブジェクトを取り出すこととを含む。このような例示的方法により、実行は、例えば、ホストコンピュータに関連付けられているブラウザ（例えば、ホストの内蔵ブラウザ上で実行されるアプリケーション）においてウェブページまたはスクリプトとして行うことができる。このような例示的な方法により、アプリケーションは、スタンドアロンの実行可能コードであってよい（例えば、ホスト上で実行されるスタンドアロンの実行可能コードアプリケーション）。それとは別に、サロゲートまたはヘルパーアプリケーションは、ヘルパーアプリケーションがローカルまたはリモートで実行している場合にアプリケーションの代わりに呼び出しを発行しうる。
【０１１５】
このような例示的な方法により、このオブジェクトを使用することにより、アプリケーションは、ペアレンタルコントロールがホストコンピュータにより有効にされているかどうかを判定することができるか、またはこのオブジェクトを使用することにより、アプリケーションは、ホストコンピュータにより有効にされたペアレンタルコントロールに関係するデータのブロブを返すことができる。後者の場合、このオブジェクトを使用することにより、アプリケーション側で、ペアレンタルコントロールコード（例えば、ＰＩＮ）の入力を要求することができる。
【０１１６】
モジュール５８０：ユーザの場所、課金、またはその他のＩＤ 
ＰｏｓｔａｌＣｏｄｅモジュール５８０は、ホストシステムユーザの郵便番号（例えば、ＺＩＰコード）を、利用可能であれば、プロパティ値として取り出すプロパティである。一般に、ＴＶ視聴を行えるメディアプラットフォーム（例えば、前述のＷＩＮＤＯＷＳ（登録商標）  ＭＥＤＩＡ  ＣＥＮＴＥＲ（登録商標）プラットフォーム）は、ユーザのＺＩＰコードに基づくガイドリスティングを備え、これは、登録することができるアプリケーションを含む、プラットフォームの他の機能を使用するのに先立って、ユーザによって頻繁に指定される情報である。プロパティ値は、郵便番号を含む読み取り専用文字列である。ユーザに郵便番号が与えられなかった場合、プロパティ値はＮＵＬＬである。ユーザのプライバシ設定で、郵便番号へのアクセスがブロックされる場合、このプロパティを読み取ろうとすると例外が投げられる。
【０１１７】
ほとんどのサービスプロバイダ（例えば、メディア、アクセスなど）は、郵便番号（例えば、ＺＩＰコード）などのユーザからの場所情報を必要とする。例示的なモデルは、登録済みアプリケーションにより呼び出された場合、このコードを（例えば、メタデータとして）返すことができる。場所情報を使用することにより、アプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）は、ユーザの場所に応じてカスタマイズすることができる。例えば、ニュースプロバイダは、郵便番号を使用して、どのようなローカルニュース、スポーツ、および天気情報を提供するかを決定することができる。ケーブルテレビ会社は、このような情報を使用して、適切なチャネル情報を決定することができる（例えば、ローカルチャネルおよび専門地域チャネル）。
【０１１８】
モジュール５８１：スクリーンセーバ 
ＳｃｒｅｅｎＳａｖｅｒＥｎａｂｌｅｄＨｉｎｔモジュール５８１は、アプリケーション（例えば、アプリケーション２５０、アプリケーション３５０）の現在ページが、例えばユーザのメディア体験をスクリーンセーバが中断することを許可するかどうかを示す値を取り出すか、または設定することができるプロパティである。このプロパティ値は、現在のアプリケーションページがスクリーンセーバによる中断を許可する場合に真、そうでない場合に偽である読み書きブール値である。
【０１１９】
さまざまな論理（ｌｏｇｉｃ）または基準を使用して、スクリーンセーバをブロックするかどうかを決定することができる。例えば、スクリーンセーバは、現在のメディア体験が次のすべての基準を満たすときにブロックすることができる。コンテンツがホストされたＨＴＭＬアプリケーションからのものである、現在のＨＴＭＬページでＳｃｒｅｅｎＳａｖｅｒＥｎａｂｌｅｄＨｉｎｔプロパティを偽に設定している、現在のＨＴＭＬページがカスタムビューポートを備えている、カスタムビューポートがＴＶ、Ｍｙ  Ｖｉｄｅｏｓ、ＤＶＤ、または視覚化からのビデオを含んでいる、ビデオが再生中である（停止または一時停止していない）、およびホストシステムは全画面モードである（つまり、ホストシステムのシェルが最大化されている）。このプロパティは複数のページにわたって永続しないため、プロパティを偽に設定するページを残すと、プロパティは真に戻される。偽の状態を維持するには、アプリケーション（例えば、アプリケーション２５０、アプリケーション３５０など）は、すべての該当するページ（例えば、ＨＴＭＬページなど）上でこのプロパティを明示的に設定しなければならない。
【０１２０】
テレビ番組が登録済みアプリケーションを使用することによりユーザインターフェイス上に表示することができる雑学問題（ｔｒｉｖｉａ  ｑｕｅｓｔｉｏｎ）を含む一例を考える。この例では、テレビ番組は、ビューポート内にあり、雑学問題は、他のビューポートまたは番組ビューポート内のオーバーレイとして表示することができる。例示的なスクリーンセーブヒントモジュールを呼び出すことにより、アプリケーションは、雑学問題グラフィックが表示されている間にスクリーンセーバが起動されることを防ぐことができる。呼び出し側アプリケーションに関係する論理を備えていない場合、アプリケーションは、ユーザの体験を損ねてまでスクリーンセーバを起動しようとする可能性がある。一般に、論理により、音楽またはオーディオ単独でスクリーンセーバの起動を妨げることを防ぐことができる。例示的なスクリーンセーバヒントモジュール５８１は、アプリケーションからの前回の１つまたは複数の呼び出しを忘れることがあり、このためアプリケーション側でホストシステムのスクリーンセーバの挙動を変えたくなる毎に呼び出す必要がある。
【０１２１】
モジュール５９０：スケジュール記録 
スケジュール記録モジュールは、メディアサービスによって提供されるようにビデオまたはオーディオを記録する要求をホストシステムに発行する方法である。例えば、メディアサービスは、テレビ番組、ラジオ番組などを提供することができる。この例では、モジュールは、ＸＭＬなどのマークアップ言語で設定されたパラメータに依存する。このマークアップ言語は、一般に、メディア（例えば、ビデオ、オーディオなど）の記録に関係する定義済み要素を含むマークアップ言語スキーマに従う。
【０１２２】
スケジュール記録に使用される例示的なマークアップ言語スキーマは、ルート要素として＜ｃｌｉｃｋＴｏＲｅｃｏｒｄ＞要素、＜ｂｏｄｙ＞要素、オプションの電子署名要素、＜ｍｅｔａｄａｔａ＞要素、１つまたは複数の＜ｐｒｏｇｒａｍＲｅｃｏｒｄ＞要素などのさまざまなタグまたは要素を含むことができる。
【０１２３】
例示的なコンピューティング環境
さまざまな例を、異なるコンピュータ環境に実装することができる。図６のコンピュータ環境は、コンピュータ環境の一例に過ぎず、使用するのに適したコンピュータおよびネットワークアーキテクチャの使用または機能の範囲に関して制限を示唆することを意図されていない。コンピュータ環境は、例示的な作環境例に示されている１つのコンポーネントまたはその組合せに関係する何らかの依存関係または要求条件がその環境にあるものと解釈すべきでない。
【０１２４】
図６は、さまざまな例示的な方法を実装できる好適なコンピューティングシステム環境６００の一例を示している。さまざまな例示的なデバイスまたはシステムは、例示的な環境６００の機能のどれかを備えることができる。コンピューティングシステム環境６００は、好適なコンピューティング環境の一例に過ぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティング環境６００は、典型的な動作環境６００に例示されている１つのコンポーネントまたはその組合せに関係する何らかの依存関係または要求条件がその環境にあるものと解釈すべきでない。
【０１２５】
さまざまな例示的な方法は、他の数多くの汎用または専用コンピューティングシステム環境または構成で動作する。実装または使用に適していると思われるよく知られているコンピューティングシステム、環境、および／または構成の例として、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスを含む分散コンピューティング環境などがある。例えば、図１の例示的なシステム１００は、リモートコンピュータを使用して、ＵＩの表示用の情報を生成することができ、表示されたＵＩは、リモートコントロールまたは他の入力デバイスと連携して動作する。
【０１２６】
さまざまな例示的な方法、アプリケーションなどは、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的背景状況において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さまざまな例示的な方法は、通信ネットワークまたは他の通信（例えば、赤外線など）を通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体に配置できる。
【０１２７】
図６を参照すると、さまざまな例示的な方法を実装する例示的なシステムは、コンピュータ６１０の形態の汎用コンピューティングデバイスを備える。コンピュータ６１０が備えるコンポーネントとしては、限定はしないが、演算処理装置６２０、システムメモリ６３０、およびシステムメモリ６３０を備えるさまざまなシステムコンポーネントを演算処理装置６２０に結合するシステムバス６２１などがある。システムバス６２１は、メモリバスまたはメモリコントローラ、周辺機器バス、およびさまざまなバスアーキテクチャを使用するローカルバスを含む数種類のバス構造のうちのいずれでもよい。例えば、限定はしないが、このようなアーキテクチャとしては、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとも呼ばれるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスがある。
【０１２８】
コンピュータ６１０は、典型的には、さまざまなコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ６１０によってアクセスされることができる媒体であればどのような媒体でも使用可能であり、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体を含む。例えば、限定はしないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能媒体を含む。コンピュータ記憶媒体としては、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多目的ディスク（ＤＶＤ）またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、しかもコンピュータ６１０によりアクセスできるその他の媒体がある。通信媒体は、通常、コンピュータ可読命令、データ構造体、プログラムモジュール、または搬送波もしくはその他のトランスポートメカニズムなどの変調データ信号によるその他のデータを具現するものであり、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号内に情報を符号化するような方法で特性のうちの１つまたは複数が設定または変更された信号を意味する。例えば、限定はしないが、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、および、音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体がある。上記のいずれの組合せもコンピュータ可読媒体の範囲に収まらなければならない。
【０１２９】
システムメモリ６３０は、読み取り専用メモリ（ＲＯＭ）６３１およびランダムアクセスメモリ（ＲＡＭ）６３２などの揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ６１０内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム６３３（ＢＩＯＳ）は、通常、ＲＯＭ  ６３１に格納される。通常、ＲＡＭ  ６３２は、演算処理装置６２０に直接アクセス可能な、および／または演算処理装置６２０によって現在操作されているデータおよび／またはプログラムモジュールを格納する。例えば、限定はしないが、図６は、オペレーティングシステム６３４、アプリケーションプログラム６３５、その他のプログラムモジュール６３６、およびプログラムデータ６３７を例示している。
【０１３０】
コンピュータ６１０はさらに、その他の取り外し可能／取り外し不可能な揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。例に過ぎないが、図６は、取り外し不可能な不揮発性磁気媒体の読み書きを行うハードディスクドライブ６４１、取り外し可能な不揮発性磁気ディスク６５２の読み書きを行う磁気ディスクドライブ６５１、およびＣＤＲＯＭまたはその他の光媒体（例えば、ＤＶＤなど）などの取り外し可能な不揮発性光ディスク６５６の読み書きを行う光ディスクドライブ６５５を例示している。例示的な動作環境において使用できる他の取り外し可能／取り外し不可能な揮発性／不揮発性コンピュータ記憶媒体としては、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多目的ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがある。ハードディスクドライブ６４１は、典型的には、インターフェイス６４０などのデータメディアインターフェイスを介してシステムバス６２１に接続され、磁気ディスクドライブ６５１および光ディスクドライブ６５５は、典型的には、適宜取り外し可能メモリインターフェイスであるデータメディアインターフェイスによりシステムバス６２１に接続される。特定の例の説明のために、磁気ディスクドライブ６５１および光ディスクドライブでは、データメディアインターフェイス６４０を使用する。
【０１３１】
図６に例示されている上記のドライブおよび関連コンピュータ記憶媒体は、コンピュータ６１０用のコンピュータ可読命令、データ構造体、プログラムモジュール、およびその他のデータを格納する機能を備える。例えば、図６では、ハードディスクドライブ６４１は、オペレーティングシステム６４４、アプリケーションプログラム６４５、その他のプログラムモジュール６４６、およびプログラムデータ６４７を格納するものとして例示されている。これらのコンポーネントは、オペレーティングシステム６３４、アプリケーションプログラム６３５、その他のプログラムモジュール６３６、およびプログラムデータ６３７と同じである場合もあれば異なる場合もあることに留意されたい。オペレーティングシステム６４４、アプリケーションプログラム６４５、その他のプログラムモジュール６４６、およびプログラムデータ６４７に対しては、ここで、異なる番号を割り当てて、最低でも、それらが異なるコピーであることを示している。ユーザは、キーボード６６２、およびマウス、トラックボール、またはタッチパッドと一般に呼ばれるポインティングデバイス６６１などの入力デバイスを介してコンピュータ６１０にコマンドおよび情報を入力できる。他の入力デバイス（図に示されていない）としては、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスおよびその他の入力デバイスは、システムバス６２１に結合されているユーザ入力インターフェイス６６０を通じて演算処理装置６２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェイスおよびバス構造により接続されることも可能である。モニタ６９１またはその他の種類の表示デバイスも、ビデオインターフェイス６９０などのインターフェイスを介してシステムバス６２１に接続される。モニタ６９１のほかに、コンピュータはさらにスピーカおよびプリンタなどの他の周辺出力デバイスも備えることができ、これらは出力周辺機器インターフェイス６９５を介して接続することができる。
【０１３２】
コンピュータ６１０は、リモートコンピュータ６８０などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することができる。リモートコンピュータ６８０は、パーソナルコンピュータ、サーバー、ルーター、ネットワークＰＣ、ピアデバイス、またはその他の共通ネットワークノードとすることができ、典型的には、コンピュータ６１０に関して上で説明されている機能の多くまたはすべてを含む。図６に示されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）６７１およびワイドエリアネットワーク（ＷＡＮ）６７３を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【０１３３】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ６１０は、ネットワークインターフェイスまたはアダプタ６７０を介してＬＡＮ  ６７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ６１０は、典型的には、インターネットなどのＷＡＮ  ６７３上で通信を確立するためモデム６７２またはその他の手段を備える。モデム６７２は、内蔵でも外付けでもよいが、ユーザ入力インターフェイス６６０またはその他の適切なメカニズムを介してシステムバス６２１に接続されうる。ネットワーク接続環境では、コンピュータ６１０またはその一部に関して示されているプログラムモジュールは、リモートメモリ記憶デバイスに格納されうる。例えば、限定はしないが、図６はリモートアプリケーションプログラム６８５を、リモートコンピュータ６８０上（例えば、リモートコンピュータ６８０のメモリ内に）に常駐するものとして例示している。図に示されているネットワーク接続は例示的であり、コンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。
【０１３４】
さまざまな例示的な方法、デバイス、システムなどは、構造的機能および／または方法論的活動に固有の言語で説明されているが、付属の請求項で定められている主題は、説明した特定の機能または活動に必ずしも限られないことは理解されるであろう。むしろ、特定の機能および活動は請求されている主題を実施するための複数の実施形態の例として開示されている。
【図面の簡単な説明】
【０１３５】
【図１】ユーザインターフェイスを表示するためのディスプレイならびに入力およびユーザインターフェイスとの双方向のやり取りのためのリモートコントロールを備える例示的なコンテキストの図である。
【図２】アプリケーションの例示的な登録方法および例示的な登録解除方法の図である。
【図３】ローカルまたはリモートでアプリケーションを登録または登録解除する例示的な登録アプリケーションの図である。
【図４】登録アプリケーションが適宜アプリケーションの登録を可能にし、ついでユーザインターフェイスと関連付けられたさまざまな機能にアクセスできるようにする例示的な構成の図である。
【図５】登録アプリケーションまたは登録済みアプリケーションと双方向にやり取りすることができる例示的な登録アプリケーションおよびさまざまなモジュールの図である。
【図６】本明細書で説明されているさまざまな例示的技術を実装するために使用することができる例示的なコンピューティング環境の図である。
【図１】
2008538622.tif 000012
【図２】
2008538622.tif 000013
【図３】
2008538622.tif 000014
【図４】
2008538622.tif 000015
【図５】
2008538622.tif 000016
【図６】
2008538622.tif 000017