(57)【要約】  コンピューターシステムは、動的入力装置上に画像を動的に表示するための１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーションを含む。１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーションは、現在アクティブなデスクトップの中で実行される。コンピューターシステムは、さらに、現在アクティブなデスクトップの中で実行するように構成された支配的アプリケーションを含む。支配的アプリケーションは、支配的アプリケーションの現在のコンテキストに対応する入力装置ユーザーインターフェース・ランタイムアプリケーションを指定するように構成されている。指定された入力装置ユーザーインターフェース・ランタイムアプリケーションは、動的入力装置上に仮想制御を動的に表示するように構成されている。また、指定された入力装置ユーザーインターフェース・ランタイムアプリケーションは、仮想制御の起動を支配的アプリケーションに伝えるように構成されている。
2013532334.tif 000002
【特許請求の範囲】
【請求項１】
現在アクティブなデスクトップの中で実行するように構成されたウィンドウのないランタイム環境内で実行するように構成された、動的入力装置上に画像を動的に表示するための１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーションと、
前記現在アクティブなデスクトップの中の前記ウィンドウのないランタイム環境の外部で実行し、現在のコンテキストに対応する入力装置ユーザーインターフェース・ランタイムアプリケーションを指定するように構成された支配的アプリケーションであって、前記指定された入力装置ユーザーインターフェース・ランタイムアプリケーションが、前記動的入力装置上に仮想制御を動的に表示するように、かつ前記仮想制御の起動を当該支配的アプリケーションに伝えるように構成された、支配的アプリケーションと
を含む、コンピューターシステム。
【請求項２】
前記ウィンドウのないランタイム環境が、２つ以上のさまざまな支配的アプリケーションによって指定された入力装置ユーザーインターフェース・ランタイムアプリケーションを実行するように構成された、共有のウィンドウのないランタイム環境である、請求項１に記載のコンピューターシステム。
【請求項３】
前記ウィンドウのないランタイム環境が、前記支配的アプリケーションによって提供され、前記支配的アプリケーションによって指定された入力装置ユーザーインターフェース・ランタイムアプリケーションを実行するように構成された、ローカルのウィンドウのないランタイム環境である、請求項１に記載のコンピューターシステム。
【請求項４】
前記ウィンドウのないランタイム環境が、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＡｃｔｉｖｅＸ（登録商標）制御である、請求項１に記載のコンピューターシステム。
【請求項５】
前記Ｍｉｃｒｏｓｏｆｔ（登録商標）ＡｃｔｉｖｅＸ（登録商標）制御が、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｓｉｌｖｅｒｌｉｇｈｔ（商標）プラグインである、請求項４に記載のコンピューターシステム。
【請求項６】
前記Ｍｉｃｒｏｓｏｆｔ（登録商標）ＡｃｔｉｖｅＸ（登録商標）制御が、Ａｄｏｂｅ（登録商標）Ｆｌａｓｈ（登録商標）プラグインである、請求項４に記載のコンピューターシステム。
【請求項７】
前記１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーションが、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｓｉｌｖｅｒｌｉｇｈｔ（商標）アプリケーションである、請求項１に記載のコンピューターシステム。
【請求項８】
前記１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーションが、１つまたは複数のＭｉｃｒｏｓｏｆｔ（登録商標）Ｓｉｌｖｅｒｌｉｇｈｔ（商標）のＸＡＰファイルとしてカプセル化された、請求項１に記載のコンピューターシステム。
【請求項９】
前記支配的アプリケーションが、前記入力装置ユーザーインターフェース・ランタイムアプリケーションを指定するための第１のコールと、前記指定された入力装置ユーザーインターフェース・ランタイムアプリケーションが前記仮想制御の起動を前記支配的アプリケーションに伝えるための第２のコールとを含むアプリケーションプログラミングインターフェースをさらに含む、請求項１に記載のコンピューターシステム。
【請求項１０】
前記動的入力装置上に動的に表示された前記仮想制御が前記支配的アプリケーションの前記現在のコンテキストに対応するように、前記支配的アプリケーションの現在のコンテキストが変化すると、前記支配的アプリケーションが、前記ウィンドウのないランタイム環境内で実行された前記１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーションを変更することが可能になるように、前記アプリケーションプログラミングインターフェースが構成された、請求項９に記載のコンピューターシステム。
【請求項１１】
支配的アプリケーションが入力装置ユーザーインターフェースを動的入力装置において実施するための方法であって、
前記支配的アプリケーションの第１のコンテキストを判定するステップと、
前記支配的アプリケーションによって実行され、かつ前記支配的アプリケーションの前記第１のコンテキストに対応するデスクトップユーザーインターフェースとは別個の第１の入力装置ユーザーインターフェースを指定するステップであって、前記第１の入力装置ユーザーインターフェースが、前記動的入力装置上に仮想制御の第１の組を動的に表示するように、かつ仮想制御の前記第１の組の起動を前記支配的アプリケーションに伝えるように構成された、ステップと、
前記支配的アプリケーションの前記第１のコンテキストとは異なる、前記支配的アプリケーションの第２のコンテキストを判定するステップと、
前記支配的アプリケーションとは別個であり、前記第１の入力装置ユーザーインターフェースとは異なる第２の入力装置ユーザーインターフェースを指定するステップであって、前記第２の入力装置ユーザーインターフェースが、前記支配的アプリケーションの前記第２のコンテキストに対応し、前記動的入力装置上に仮想制御の第２の組を動的に表示するように、かつ仮想制御の前記第２の組の起動を前記支配的アプリケーションに伝えるように構成された、ステップと
を含む方法。
【請求項１２】
前記第１の入力装置ユーザーインターフェースを指定するステップが、２つ以上のさまざまな支配的アプリケーションによって指定された入力装置ユーザーインターフェースを実行するように構成された、共有のウィンドウのないランタイム環境に、前記第１の入力装置ユーザーインターフェースを配信するステップを含む、請求項１１に記載の方法。
【請求項１３】
前記第１の入力装置ユーザーインターフェースを指定するステップが、前記支配的アプリケーションによって提供され、前記支配的アプリケーションによって指定された入力装置ユーザーインターフェースを実行するように構成された、ローカルのウィンドウのないランタイム環境に、前記第１の入力装置ユーザーインターフェースを配信するステップを含む、請求項１１に記載の方法。
【請求項１４】
前記第１の入力装置ユーザーインターフェースが、アプリケーションプログラミングインターフェースを介してウィンドウのないランタイム環境に配信される、請求項１１に記載の方法。
【請求項１５】
前記第１の入力装置ユーザーインターフェースが前記ウィンドウのないランタイム環境内で実行されると、前記アプリケーションプログラミングインターフェースが、前記支配的アプリケーションと前記第１の入力装置ユーザーインターフェースとの間の通信チャネルを提供する、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的入力装置のコンテキスト制御に関する。
【背景技術】
【０００２】
[0001]多くのコンピューターシステムは、システム全体のアクティブフォーカスをもつ単一のアプリケーションで動作する。そのようなシステムでは、入力は、現在システム全体のアクティブフォーカスをもつアプリケーションに自動的に送られる。例えば、文書処理アプリケーションがシステム全体のアクティブフォーカスをもつ場合、キーボード入力は、例えばドキュメントに文を書くための文書処理アプリケーションに自動的に送られる。システム全体のアクティブフォーカスは、１つのアプリケーションから別のアプリケーションに変更することができるが、２つの互いに異なるアプリケーションが同時にシステム全体のアクティブフォーカスをもつことはない。例えば、システム全体のアクティブフォーカスは、文書処理アプリケーションからブラウザーアプリケーションに変更することができる。そのような変更の後、キーボード入力は、例えばアドレスバーにＵＲＬを書くためのブラウザーアプリケーションに自動的に送られる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0002]システム全体のアクティブフォーカスを実施する多くのシステムでは、キーボード入力および他のタイプの入力を、システム全体のアクティブフォーカスをもつアプリケーション以外のアプリケーションに転じるためのメカニズムは存在しない。
【課題を解決するための手段】
【０００４】
[0003]本開示の一態様によるコンピューターシステムは、動的入力装置上に画像を動的に表示するための１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーションを含む。１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーションは、現在アクティブなデスクトップの中で実行される。コンピューターシステムは、さらに、現在アクティブなデスクトップの中で実行するように構成された支配的アプリケーションを含む。支配的アプリケーションは、支配的アプリケーションの現在のコンテキストに対応する入力装置ユーザーインターフェース・ランタイムアプリケーションを指定するように構成されている。指定された入力装置ユーザーインターフェース・ランタイムアプリケーションは、動的入力装置上に仮想制御を動的に表示するように構成されている。また、指定された入力装置ユーザーインターフェース・ランタイムアプリケーションは、仮想制御の起動を支配的アプリケーションに伝えるように構成されている。
【０００５】
[0004]この「発明の概要」は、「発明を実施するための形態」において下記でさらに説明する概念の選択された項目を簡略化された形で紹介するために提供される。この「発明の概要」は、特許請求された主題の主要な特徴または本質的な特徴を識別するものでも、特許請求された主題の範囲を限定するために使用されるものでもない。さらに、特許請求された主題は、本開示の任意の箇所で指摘される一部または全部の不都合を解決する実装形態に限定されない。
【図面の簡単な説明】
【０００６】
【図１】[0005]キーボードアセンブリーのキーに関連して可視出力を表示する能力を提供する動的入力装置を含む、例示的なコンピューターシステムを示す図である。
【図２】[0006]図１に示した動的入力装置の分解図であり、動的入力装置のキーボードアセンブリーの下にあるディスプレイ装置によって提供される、可視表示出力を示す図である。
【図３】[0007]本開示の実施形態によるコンピューターシステムの例を示す図である。
【図４】[0008]図３のコンピューターシステムを実装するためのアーキテクチャーの例を示す図である。
【図５】[0009]図３のコンピューターシステムを実装するためのアーキテクチャーの別の例を示す図である。
【図６】[0010]本開示の実施形態によるユーザー入力と動的入力装置の出力とのシーケンスを示す図である。
【図７】[0011]ウィンドウのないランタイム環境を使用して動的入力装置からの入力を管理する方法の例を示す図である。
【図８】[0012]支配的アプリケーションが動的入力装置を用いて補助体験を実施する方法の例を示す図である。
【発明を実施するための形態】
【０００７】
[0013]キーボードおよび他のタイプの入力を、システム全体のアクティブフォーカスをもつアプリケーション以外のアプリケーションに配信するためのシステムおよび方法が開示される。下記で説明するように、動的入力装置からのタッチ入力および他のタイプの入力は、ウィンドウのないランタイム環境を提供するコンテナモジュールによって処理することができ、ウィンドウのないランタイム環境内では、入力装置ユーザーインターフェース・ランタイムアプリケーション（ＵＩランタイムアプリケーション）の形態の補助体験を提供することができる。下記でより詳細に説明するように、動的入力装置は、さまざまなキーまたは他の入力位置にさまざまな画像を表示するように構成可能である。ＵＩランタイムアプリケーションは、さまざまなキーまたは他の入力位置に何の画像を表示するかを制御することができる。ユーザーが入力位置に表示された仮想ボタンを押すと、仮想ボタンから生じた入力メッセージは、システム全体のアクティブフォーカスを現在もっているアプリケーションとは別に処理するための、本明細書に開示したコンテナモジュールに送ることができる。いくつかの実施形態では、物理的なキー押下から生じた入力メッセージは、本明細書に開示したコンテナモジュールに任意選択で送ることができる。このようにして、補助体験すなわちＵＩランタイムアプリケーションは、システム全体のアクティブフォーカスをもつデスクトップアプリケーションと協働して、ユーザーに豊富なユーザー体験を提供することができる。
【０００８】
[0014]図１は、ディスプレイモニター２２、（例えば、プロセッサー、ハードドライブなどを含む）コンポーネント筐体２４、および動的入力装置２６を含む、例示的なコンピューターシステム２０を示す。また、動的入力装置２６は、さまざまな画像を表示することにより動的に適応することができるので、適応入力装置と呼ぶことができる。図２は、動的入力装置２６およびその構造の中で使用することができる例示的なコンポーネントの補足図を提供する。さまざまな例で説明するように、動的入力装置２６は、キーボードタイプの入力機能に加えて表示可能出力を提供するように実装可能である。とりわけ、コンピューター周辺装置は、キーの上に、および／またはキーを通して画像を見せることを容易にするキーを含むことができる。他の実施形態では、動的入力装置はキーを含まず、むしろタッチ起動を認識できる１つまたは複数の表示領域を含む場合がある。
【０００９】
[0015]キー２８（図１および図２）上の「Ｑ」、「Ｗ」、「Ｅ」、「Ｒ」、「Ｔ」、「Ｙ」などによって示されたように、動的入力装置２６が従来の英数字入力機能を提供するように構成されていることはしばしば望ましい。説明を簡単にするために、図１および図２の多くのキーは証印なしで示されるが、ラベルまたは画像はしばしば各キーに表示されることが理解されよう。さらに、「ＱＷＥＲＴＹ」フォーミュレーションに加えて、またはその代わりに、キーボードのキー２８は、他の機能を提供するために動的に変更することができる。キーは、例えば、さまざまな言語用およびアルファベット用の機能を提供するように、および／またはコンピューターシステム２０を制御するための他の入力コマンドを起動するように割り付けることができる。いくつかの実装形態では、コンテキストに基づいて、例えば、コンピューターシステム２０で動作するソフトウェアのいくつかの変化する動作コンテキストに応答して、キー機能は変わる場合がある。例えば、「ＡＬＴ」キーを押下すると、普通は文字「Ｆ」を入力して使用されるそのキーは、代わりにソフトウェアアプリケーションの中の「ファイル」メニューの起動をもたらすことができる。一般に、本例におけるキーは選択的に押下されて、コンピューターを制御するための任意のタイプの入力信号を生成できることを理解すべきである。
【００１０】
[0016]動的入力装置２６は、多種多様の表示可能出力を提供してコンピューター体験を強化、およびその他の方法で増大させることができる。いくつかの例では、コンピューター周辺機器は、個別のキー２８の上または近くに可視出力を表示してキー機能を示す。これは図１および図２で見ることができ、キーキャップ表面にペイントまたはプリントされた文字をもつキーの代わりに、表示メカニズム（例えば、キーの下に位置する液晶表示（ＬＣＤ）装置）が使用されてキーの「Ｑ」、「Ｗ」などの機能を示す。この動的およびプログラム可能な表示機能は、さまざまな異なる方法で動的入力装置２６の潜在的な使用を容易にする。例えば、上述の英語ベースのキーボードは、従来の「ＱＷＥＲＴＹ」フォーミュレーションの代わりにアルファベット順に文字を提供するようにマップすることができ、次いで、各キーの表示は簡単に変更されて、異なるキー割り付けを反映することができる場合もある。
【００１１】
[0017]本明細書で考察された表示機能は、任意のタイプの可視出力をコンピューターシステム２０のユーザーに提供するために使用することができ、アルファベット、文字、数字、符号などに限定されない。上記の例の代替として、画像は、空間感覚で個別のキーと必ずしも関連しない方式で表示することができる。画像は、例えば、複数のキーをスパンするキーボードの領域内に提示することができる。提供された画像はキーボードの入力機能と関連付ける必要はない。画像は、例えば、芸術目的で、ユーザー体験を個人のものにするために、または他のタイプの出力を提供するために、提供されることもある。当然、本開示は任意の目的の表示出力を包含する。また、キー２８の上または近くに提供された表示に加えて、表示機能は他の領域の中に、例えば、キー２８の上方に位置する領域３２の中に提供することができる。さらに、領域３２または動的入力装置２６の他の部分には、キー２８によって提供されたキーボードタイプの入力に加えて、タッチまたはジェスチャーベースの対話機能を提供することができる。例えば、領域３２は、静電容量ベースの技術、抵抗ベースの技術、または他の適切な方法を介して、対話型のタッチスクリーンディスプレイとして実装することができる。さらに、いくつかの実施形態では、動的なコンピューター周辺機器は、押下可能なキーがないタッチ領域のみを含む場合がある。
【００１２】
[0018]図２は動的入力装置２６の限定的でない構成例を示す。提供された例は決して限定的ではなく、本開示は任意の動的入力装置と互換性があることが理解されよう。図示のように、動的入力装置２６は、ディスプレイ装置４０、およびディスプレイ装置の上に配置され、それと結合するキーボードアセンブリー４２を含むことができる。キーボードアセンブリー４２は、少なくとも部分的に透明であり、キーボードアセンブリーを通してユーザーがディスプレイ装置によって生成された画像を見ることが可能になる。一実施形態では、例えば、各キー２８は中央に透明な部分をもち、それにより、ユーザーがキーボードアセンブリー４２の下に位置するＬＣＤパネルまたは他のディスプレイ装置によって生成された画像を見ることが可能になる。場合によっては、実質的にキーのすべてが透明になる。他の例では、例えば、キーキャップの上方および下方への移動を容易にする構造を隠すために、キーの周辺部が不透明な場合がある。いくつかの実施形態では、キーキャップは、その上に画像を背面投影することができる、両凸のスクリーンまたは他の光を拡散するスクリーンを含むことができる。
【００１３】
[0019]さまざまなタイプのディスプレイ装置を採用してもよい。上記で簡単に示したように、適切なディスプレイ装置の１つのタイプはＬＣＤ装置である。しかしながら、キーボードアセンブリーは、投影ディスプレイおよびくさび投影ディスプレイを含むさまざまな他のディスプレイタイプと結合できることを理解すべきである。
【００１４】
[0020]上記で紹介したように、キーボードおよび他のコンピューター周辺機器からの入力は、通常、システム全体のアクティブフォーカスを現在もっているアプリケーションに自動的に送られる。次いで、システム全体のアクティブフォーカスを現在もっているアプリケーションは、こうして受信した入力を直接処理する。多くの場合、そのようなフレームワークは予測可能なコンピューター体験をユーザーに提供する。しかしながら、いくつかのシナリオでは、システム全体のアクティブフォーカスを現在もっているアプリケーション以外の何かが、キーボードおよび他のコンピューター周辺機器からの入力を処理することが望ましい場合がある。例えば、動的入力装置のコンテキストでは、ＵＩランタイムアプリケーションの形態の補助体験が動的入力装置からの入力を受信し、そのような入力の一部または全部を処理することが望ましい場合がある。そのようなパラダイムにより、ＵＩランタイムアプリケーションが、動的入力装置によって表示された画像を制御することが可能になる。また、そのようなパラダイムにより、ＵＩランタイムアプリケーションが、動的入力装置上のキーまたは他の入力領域を起動することの根本的な影響を制御することが可能になる。
【００１５】
[0021]ＵＩランタイムアプリケーションで入力と出力の制御を集中化することにより、デスクトップアプリケーションおよび他のプログラムが、すべての装置の入力および装置の表示出力を処理するように設計されなくても、動的入力装置を使用することが可能になる。言い換えれば、標準キーボードとともに使用するために書かれたデスクトップアプリケーションは、動的入力装置とともに使用することができ、ＵＩランタイムアプリケーションの形態の補助体験は、動的入力装置とデスクトップアプリケーションの間で機能的に動作するように使用することができる。ＵＩランタイムアプリケーションは、動的入力装置によって何の画像が表示されるか、およびどの画像が表示されるかに応じてユーザーの起動がどのように解釈されるかを制御することができる。このタイプの制御を可能にするために、ＵＩランタイムアプリケーションは、システム全体のアクティブフォーカスをもつアプリケーションの代わりに、少なくともいくつかの入力メッセージを処理することが許される。
【００１６】
[0022]そのような柔軟性を提供するために、ＵＩランタイムアプリケーションは、システム全体のアクティブフォーカスの規則に準拠する従来のデスクトップアプリケーションではあり得ない。下記でより詳細に説明するように、代わりにＵＩランタイムアプリケーションは、デスクトップアプリケーションに対する補助体験としてウィンドウのないランタイム環境内で動作することができる。
【００１７】
[0023]図３は、タッチ入力、キーボード入力、および／または他のタイプの入力を、システム全体のアクティブフォーカスをもつアプリケーション以外のアプリケーションに配信することができる、コンピューターシステム５０の実施形態の例を概略的に示す。具体的には、図３は、上記で紹介したように、入力メッセージをＵＩランタイムアプリケーションに配信する動的入力装置を含むコンピューターシステムを示す。
【００１８】
[0024]コンピューターシステム５０は、キーボードの形態の直接入力装置５２を任意選択で含むことができる。また、コンピューターシステム５０は、さまざまな画像を表示できる、複数のキー５６を含む適応キーボードの形態の動的入力装置５４を含む。また、動的入力装置５４はキーなしのタッチ領域５８を含む。タッチ領域は、ユーザーが起動できる１つまたは複数の仮想ボタンまたは他の仮想制御を表示するために使用することができる。この例では示されていないが、動的入力装置はキーとタッチ領域の異なる構成または組合せを含む場合があり、いくつかの動的入力装置は、タッチ領域なしのキー、またはキーなしのタッチ領域を含む場合がある。
【００１９】
[0025]動的入力装置は、複数の入力画像をユーザーに動的に表示し、複数の入力画像の任意の特定の１つに向けられたユーザー入力に応答するように構成可能である。一例として、さまざまな入力画像を複数のキー５６で表示することができ、動的入力装置５４は、特定のキーに向けられたユーザー入力に応答する特定のキーの指示を含む、動的入力メッセージを出力することができる。別の例として、さまざまな入力画像をタッチ領域５８のさまざまな位置に仮想制御として表示することができ、動的入力装置５４は、特定の仮想制御に向けられたユーザー入力に応答する特定の仮想制御の指示を含む、動的入力メッセージを出力することができる。
【００２０】
[0026]コンピューターシステム５０は、１つまたは複数のネイティブアプリケーションを実行するためのオペレーティングシステム６０を含むことができる。オペレーティングシステム６０は、実行されたアプリケーション間のリソースの共有および割当てを管理し調整することができる。また、オペレーティングシステム６０は、コンピューターシステム５０の少なくともいくつかのＩ／Ｏ機能を制御することができる。少なくともいくつかのフレームワークでは、オペレーティングシステム６０は、現在実行されている１つまたは複数のネイティブアプリケーションのうちのただ１つが、システム全体のアクティブフォーカスをもつことが可能になるように構成されている。そのようなフレームワークでは、オペレーティングシステム６０は、１つまたは複数の直接入力装置からのすべての直接入力メッセージを、システム全体のアクティブフォーカスをもつネイティブアプリケーションに向ける。オペレーティングシステムの限定的でない例には、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）、ＡＰＰＬＥ（登録商標）ＭＡＣ  ＯＳ（登録商標）、およびＬＩＮＵＸ（登録商標）が含まれる。
【００２１】
[0027]いくつかの実施形態では、オペレーティングシステムは、キーボードメッセージ（例えば、キーボードのキーが押された結果として生じたメッセージ）を、システム全体のアクティブフォーカスをもつアプリケーションに送ることができる。そのような場合、オペレーティングシステムのフックは、キーボードメッセージを垣間見るために使用することができる。また、これらのメッセージは、ＵＩランタイムアプリケーションに送信することができ、したがって、ＵＩランタイムアプリケーションが何のキーボードメッセージを見たかに基づいて応答することを可能にする。一方、タッチ入力メッセージ（例えば、タッチ領域５８へのユーザータッチの結果として生じたメッセージ）は、ランタイム環境に直接送られ、ＵＩランタイムアプリケーションが理解できるメッセージに変換することができる。タッチ入力メッセージは、システム全体のアクティブフォーカスをもつアプリケーションに送らずに、ランタイム環境に送ることができる。
【００２２】
[0028]動的入力装置は、オペレーティングシステムに、動的入力装置を列挙させず、動的入力装置を標準のディスプレイモニターおよび／またはキーボードとして扱わせない、インターフェースを含むことができる。しかしながら、いくつかの実施形態では、オペレーティングシステムは、動的入力装置のキーを標準キーボードとして列挙するが、動的入力装置上のタッチをメインディスプレイモニター上のタッチと解釈されるのを防ぐために、タッチ領域を標準デジタイザとして列挙しない場合がある。下記でより詳細に説明するように、コンテナモジュール６２、仮想ランタイム環境６４、およびＵＩランタイムアプリケーション６６は、他のソフトウェアが入力（例えば、タッチ入力、キー押下など）を動的入力装置から受信し、画像出力を動的入力装置に送信するためにコールできる関数を提供することができる。
【００２３】
[0029]コンピューターシステム５０はコンテナモジュール６２を含む。コンテナモジュールは、１つまたは複数の異なる制御が走ることができる環境を供給することができる。限定的でない例として、コンテナモジュール６２は、ＭＩＣＲＯＳＯＦＴ（登録商標）ＡＣＴＩＶＥＸ（登録商標）制御が走ることができる環境を供給するように構成された、ＭＩＣＲＯＳＯＦＴ（登録商標）ＡＣＴＩＶＥＸ（登録商標）コンテナであり得る。コンテナモジュール６２は、コンテナモジュールによって提供されたすべての制御へのサービスを操作、管理、および提供することができる。例えば、コンテナモジュール６２は、制御にイベントハンドラーを供給することができる。いくつかの実施形態では、コンテナモジュールは、デスクトップアプリケーションの一部として実装することができる。
【００２４】
[0030]コンテナモジュール６２は、現在アクティブなデスクトップのコンテキストで動作しているランタイム環境６４の形態の制御を提供するように構成可能である。本開示は任意の数のさまざまな適切なランタイム環境と互換性があるが、ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）ランタイム環境が、本明細書において限定的でない例として提供される。この例を使用して、ＭＩＣＲＯＳＯＦＴ（登録商標）ＡＣＴＩＶＥＸ（登録商標）コンテナの形態のコンテナモジュール６２は、ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）プラグインの形態のランタイム環境を提供することができる。しかしながら、他のコンテナモジュールおよび／またはランタイム環境は、本開示の範囲から逸脱することなく使用できることを理解されたい。限定的でない例として、ランタイム環境はＡｄｏｂｅ（登録商標）Ｆｌａｓｈ（登録商標）ランタイム環境として実装することができる。
【００２５】
[0031]いくつかの実施形態では、ランタイム環境６４は、現在アクティブなデスクトップのコンテキストで動作しているウィンドウのないランタイム環境であり得る。言い換えれば、ランタイム環境６４は、ほとんどのネイティブデスクトップアプリケーションおよび他のランタイム環境によって実行されるので、専用ＧＵＩレンダリングウィンドウをインスタンス化することはない。
【００２６】
[0032]いくつかの実施形態では、コンテナモジュールおよびウィンドウのないランタイム環境は、開発者が他の目的でアプリケーションを開発するために使用するのと同じフレームワークを利用することができる。一例として、ウィンドウのないランタイム環境はネイティブブラウザーアプリケーションと互換性があり得る。そのため、ネイティブブラウザーアプリケーションとの互換用に開発されたアプリケーションは、コンテナモジュールおよびウィンドウのないランタイム環境と互換性がある。言い換えれば、開発者がネイティブブラウザーアプリケーション用のアプリケーションを開発するために使用するところの同じツールおよび規約を使用して、開発者はウィンドウのないランタイム環境用のアプリケーションを開発することができる。そのため、ウィンドウのないランタイム環境向けの開発は比較的容易である。上記からの例を使用して、ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）アプリケーションの開発に精通しているいかなる開発者も、動的入力装置とともに使用するアプリケーションを開発することができる。異なる例として、ランタイム環境がＡｄｏｂｅ（登録商標）Ｆｌａｓｈ（登録商標）ランタイム環境として実装された場合、Ａｄｏｂｅ（登録商標）Ｆｌａｓｈ（登録商標）アプリケーションの開発に精通しているいかなる開発者も、動的入力装置とともに使用するアプリケーションを開発することができる。
【００２７】
[0033]コンピューターシステム５０は、さらに、ウィンドウのないランタイム環境内で実行される、１つまたは複数の入力装置ユーザーインターフェース・ランタイムアプリケーション（例えば、ＵＩランタイムアプリケーション６６）を含む。そのようなシナリオでは、コンテナモジュール６２の外部で実行される異なるアプリケーション（例えば、デスクトップアプリケーション６８）は、システム全体のアクティブフォーカスをもつことができる。そのため、デスクトップアプリケーション６８は、直接入力装置５２からの入力、および／または標準直接入力装置として列挙された動的入力装置の一部（例えば、いくつかの実施形態における動的キーボードのキー）からの入力などの、従来の入力を受信する。しかしながら、ＵＩランタイムアプリケーション６６は、動的入力装置５４から動的入力メッセージを受信するように構成可能である。端的に言えば、たとえ、デスクトップアプリケーション６８が１つまたは複数の直接入力装置からすべての直接入力メッセージを受信しても、ＵＩランタイムアプリケーションは、動的入力装置から少なくともいくつかの入力を受信する。
【００２８】
[0034]デスクトップアプリケーションまたは他の支配的アプリケーションは、動的入力装置上の表示可能出力を制御することができる１つもしくは複数の補助体験を、登録および／または指定することができる。そのような補助体験は、例えば、ウィンドウのないランタイム環境内で動作しているＵＩランタイムアプリケーションの形態を取ることができる。１つの限定的でない例として、補助体験は、１つまたは複数のＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）のＸＡＰファイルとしてカプセル化することができる。これらの補助体験は、クライアントアプリケーションプログラミングインターフェース（ＡＰＩ）を介して登録することができる。
【００２９】
[0035]１つまたは複数の体験は、支配的アプリケーション毎に登録することができ、支配的アプリケーションは、支配的アプリケーションの現在のコンテキストに基づいて登録された体験のどれがアクティブかを動的に指定することができる。各ＸＡＰファイルまたは補助体験の他の実装形態は、支配的アプリケーションの特定のコンテキストに関連付けることができる。いくつかの実装形態では、そのようなコンテキストは、支配的アプリケーションを介して実行できるさまざまなユーザータスク（例えば、新しいＥメールの作成、連絡先の検索、新しい会議のスケジューリング、仕事のレビューなど）に対応することができる。現在アクティブなコンテキストまたはタスクの実行においてユーザーを支援するように調整された、画像、仮想制御、および更新されたキーで動的入力装置を動的に更新することにより、各コンテキスト、またはタスクを容易にすることができる。特定のコンテキストに対応する補助体験は、動的入力装置上に仮想制御の第１の組を動的に表示し、仮想制御の第１の組の起動を支配的アプリケーションに伝えるように構成可能である。
【００３０】
[0036]クライアントＡＰＩは、支配的アプリケーションにチャネルを提供して、補助体験との間でメッセージを送受信するように構成可能である。限定的でない例として、アプリケーションプログラミングインターフェースは、支配的アプリケーションの現在のコンテキストに基づいて支配的アプリケーションが補助体験を指定するためのコール、および補助体験を介して表示された仮想制御の起動を指定された補助体験が支配的アプリケーションに返信するためのコールを含むことができる。
【００３１】
[0037]いくつかの実施形態では、オペレーティングシステムは、システム全体のアクティブフォーカスをもつアプリケーションに直接入力および動的入力を送るように構成可能である。例えば、オペレーティングシステムは、デスクトップアプリケーションに直接入力および動的入力を送ることができる。そのような実施形態では、デスクトップアプリケーションは、特定の入力が動的か直接かを判定するように構成されていてもよい。動的であると判定された入力は、処理するためにＵＩランタイムアプリケーション６６に送ることができる。そのような実施形態では、デスクトップアプリケーションとＵＩランタイムアプリケーションは、任意の適切なメッセージ伝達方法（例えば、メッセージ伝達ＡＰＩ）を介して協働し情報を共有するように構成されていてもよい。
【００３２】
[0038]他の実施形態では、オペレーティングシステムは、特定の入力が動的か直接かを判定するように構成可能である。そのような実施形態では、動的入力はＵＩランタイムアプリケーションに送られるが、オペレーティングシステムは、直接入力をシステム全体のアクティブフォーカスをもつアプリケーションに送るように構成されていてもよい。
【００３３】
[0039]アクセス制御層（ＡＣＬ）は、登録されたアプリケーションの中に挿入されたフックからの入力、ならびにオペレーティングシステムにアクセス可能なシステムからの入力を使用して、動的入力装置上で最終的にレンダリングされた体験が何になるべきかについて決定することができる。
【００３４】
[0040]一実装形態では、ＡＣＬはオペレーティングシステム内でのすべてのフォーカスの変化を見守り、その結果ＡＣＬはどのアプリケーションがフォーカスをもっているかを知っている。各フォーカスの変化について、ＡＣＬは、フォーカスを失ったアプリケーションに関連するいかなる補助体験も削除することができる。次に、ＡＣＬは、フォーカスを取得するアプリケーションが任意の登録された補助体験をもつかどうかを調査することができる。フォーカスを取得するアプリケーションが登録された補助体験をもつ場合、現在「アクティブな」補助体験がロードされ、初期化され、レンダリングの準備をされる。フォーカスを取得するアプリケーションが登録された補助体験をもたない場合、ＡＣＬはデフォルトの補助体験をロードし、初期化し、準備することができる。適正な補助体験は、識別され準備されると、システムによって提供された任意の「デフォルトの」体験（例えば、キーボードのキー上に表示された標準キーボードの画像）と任意選択で合成される。
【００３５】
[0041]上記で紹介したように、いくつかの実施形態では、レンダリングシステムは、個別に提供されたＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）制御であり得る。しかしながら、代替のランタイム環境は、本開示の範囲から逸脱することなく、レンダリングシステムを提供することができる。この例では、ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）制御の中のアクティブなコンテンツは、ＡＣＬおよび／またはサポートする制御モジュールによって管理することができる。ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）などのウィンドウのないランタイム制御は、動的入力装置用の唯一のレンダラとして使用することができる。この例を使用すると、ウィンドウのないランタイム制御は、独立したフォーカスシステムをもつ提供可能なＸＡＭＬレンダラである。独立したフォーカスシステムにより、オペレーティングシステムのフォーカス状態に影響することなく、適切な制御フィードバックが補助体験の中で示されることが可能になる。
【００３６】
[0042]マウスメッセージは、動的入力装置から受信された生のタッチデータに基づいて、ウィンドウのないランタイム制御に挿入可能であり、したがって動的入力装置からのタッチ入力が補助体験と直接相互作用することが可能になる。ＱＷＥＲＴＹマネージャーは、何のキーがキーボード上で押下されているかについての補助体験の通知を与えるために使用することができる。このＱＷＥＲＴＹマネージャーは、デフォルトのＱＷＥＲＴＹ  ＸＡＭＬレイアウトとともに、動的入力装置上のキートップ毎に動的で適切なレンダリングを提供する。このＱＷＥＲＴＹマネージャーは、オペレーティングシステムから独立して、すべてのキーストロークレポートを監視するメカニズムを提供する。さらに、ＱＷＥＲＴＹマネージャーは、ランタイム環境の中でデフォルトのサポートをもつことができないキー押下を含む、すべてのキー押下を伝えるように構成されている。
【００３７】
[0043]ＵＩランタイムアプリケーション６６は、装置メッセージから導出されたシステムメッセージをシステム全体のアクティブフォーカスをもつアプリケーションに出力するように構成可能である。これは、デスクトップアプリケーションとＵＩランタイムアプリケーションとの間の通信チャネルを介して達成することができる。システムメッセージにより、システム全体のアクティブフォーカスをもつアプリケーションが動的入力装置を介してユーザー入力に応答することが可能になる。ＵＩランタイムアプリケーション６６は、仮想の制御またはキーに表示された画像によって示され得る仮想の制御またはキーの変更可能な機能を考慮して、ユーザーが起動した仮想の制御またはキーに対応するシステムメッセージをシステム全体のアクティブフォーカスをもつアプリケーションに送信することができる。このようにして、動的入力装置５４は、システム全体のアクティブフォーカスをもつアプリケーションを制御するために使用することができる。さらに、任意の特定のキーまたは任意の特定の仮想制御の起動に関連する機能は動的に変更することができ、システム全体のアクティブフォーカスをもつアプリケーションは、特定のキーまたは仮想制御の現在の機能に従って、ＵＩランタイムアプリケーション６６を介して変換された入力を受信することができる。
【００３８】
[0044]上記に提供した例を使用して、ＭＩＣＲＯＳＯＦＴ（登録商標）ＡＣＴＩＶＥＸ（登録商標）コンテナが動的入力装置５４からタッチ入力情報を受信すると、ＭＩＣＲＯＳＯＦＴ（登録商標）ＡＣＴＩＶＥＸ（登録商標）コンテナは、この情報をＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）のマウスメッセージのような情報に変換し、ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）プラグイン、この場合ＩＯｌｅｌｎＰｌａｃｅＯｂｊｅｃｔＷｉｎｄｏｗｌｅｓｓ：：ＯｎＷｉｎｄｏｗＭｅｓｓａｇｅ（．．．）に入力を挿入するための方法をコールする。
【００３９】
[0045]上述したように、ＵＩランタイムアプリケーション６６は、さらに、表示出力メッセージを動的入力装置５４に出力するように構成可能である。表示出力メッセージは、動的入力装置によって表示される１つまたは複数の画像を指定するために使用することができる。そのような画像は、特定のキーまたは仮想制御と動的に関連付けられた機能をユーザーに知らせる仮想キューとして使用することができる。上述したように、ＵＩランタイムアプリケーション６６は、ユーザー入力が向けられ検出された位置（例えば、キーまたは仮想制御）に表示された画像に対応するシステムメッセージを出力することができる。
【００４０】
[0046]上記に提供した例を使用して、マウスメッセージの処理において、ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）プラグインは、動的入力装置の外観を変更することができる。プラグインは、例えば、ＩＯｌｅｌｎＰｌａｃｅＳｉｔｅＷｉｎｄｏｗｌｅｓｓ：：ＩｎｖａｌｉｄａｔｅＲｅｃｔ（．．．）を介して、汚れた矩形（すなわち、変更されたピクセルの集合）をコンテナモジュール６２に知らせることができる。
【００４１】
[0047]コンテナモジュール６２は、汚れた矩形を使用して、例えば、ＩＶｉｅｗＯｂｊｅｃｔ：：Ｄｒａｗ（．．．）を介して無効な領域をビットマップに描くようにプラグインに要求することができる。次いで、コンテナモジュール６２は、汚れた矩形およびビットマップからのビットを使用して、適切なコールを介して動的入力装置の無効な部分だけを新しい画像データで更新することができる。
【００４２】
[0048]ランタイム環境６４は、入力モジュール７０および／または出力モジュール７２を任意選択で含むことができる。含まれると、入力モジュール７０および出力モジュール７２は、動的入力装置５４とコンピューターシステム５０の間の通信を処理するために使用することができる。いくつかの実施形態では、ＵＩランタイムアプリケーション６６、コンテナモジュール６２、および／またはオペレーティングシステム６０は、動的入力装置５４とコンピューターシステム５０の間の通信を処理するために使用することができる。いくつかの実施形態では、システム全体のアクティブフォーカスをもつことができる、デスクトップアプリケーションおよび／または他のアプリケーションもしくはモジュールは、動的入力装置５４とコンピューターシステム５０の間の通信処理を支援するように構成可能である。本明細書で紹介したＡＰＩは、そのような通信を容易にするために使用することができる。
【００４３】
[0049]コンピューターシステム５０は、セキュリティ通信モジュール７４を任意選択で含むことができる。セキュリティ通信モジュールは、ＵＩランタイムアプリケーション６６、ランタイム環境６４、および／またはコンテナモジュール６２と他の態様のコンピューターシステムとの間のセキュアな通信を容易にするために使用することができる。１つの限定的でない例として、ＵＩランタイムアプリケーション６６、ランタイム環境６４、および／またはコンテナモジュール６２は、すべてのメッセージを検証するために使用できる署名入りデジタル証明書をもつことができ、その結果、他の態様のコンピューターシステムは証明書を検証して、メッセージが信頼されたソースから来たことを保証することができる。
【００４４】
[0050]また、コンピューターシステム５０は、さまざまなシステムコンポーネントがメッセージの通信を含むシステム機能にアクセスするために使用できる、１つまたは複数のシステムＡＰＩ７６を含むことができる。図３には示していないが、いくつかの実施形態では、動的入力装置はＡＰＩ７６を利用することができる。
【００４５】
[0051]図３に戻ると、いくつかの実施形態では、コンピューターシステム５０は論理サブシステム７８およびデータ保持サブシステム８０を含む。論理サブシステム７８は、１つまたは複数の命令を実行するように構成された、１つまたは複数の物理的装置を含むことができる。例えば、論理サブシステムは、１つまたは複数のプログラム、ルーチン、オブジェクト、コンポーネント、データ構造、または他の論理的構造物の一部である、１つまたは複数の命令を実行するように構成されていてもよい。そのような命令は、タスクを実行し、データタイプを実装し、１つまたは複数の装置の状態を変換し、またはその他の方法で所望の結果に到達するように構成可能である。論理サブシステムは、ソフトウェア命令を実行するように構成された、１つまたは複数のプロセッサーを含むことができる。さらに、または一方、論理サブシステムは、ハードウェアまたはファームウェアの命令を実行するように構成された、１つまたは複数のハードウェアまたはファームウェアの論理マシンを含むことができる。論理サブシステムは、いくつかの実施形態では離れて置くことができる、２つ以上の装置全体にわたって分散された個別のコンポーネントを任意選択で含むことができる。
【００４６】
[0052]データ保持サブシステム８０は、データ、および／または論理サブシステムによって実行可能な命令を保持し、本明細書に記載した方法および処理を実施するように構成された、１つまたは複数の物理的な持続性のある装置を含むことができる。限定的でない例として、データ保持サブシステム８０は、オペレーティングシステム６０、コンテナモジュール６２、ランタイム環境６４、ＵＩランタイムアプリケーション６６、およびデスクトップアプリケーション６８を実行するために使用される命令を保持するために使用することができる。そのような方法および処理が実施されると、データ保持サブシステム８０の状態は、（例えば、さまざまなデータを保持するように）変わることができる。データ保持サブシステム８０は、取り外し可能な媒体および／または内蔵の装置を含むことができる。データ保持サブシステム８０は、とりわけ、光学式メモリ装置、半導体メモリ装置、および／または磁気式メモリ装置を含むことができる。データ保持サブシステム８０は、以下の特性のうちの１つまたは複数をもつ装置を含むことができる。揮発性、不揮発性、動的、静的、リード／ライト、リードオンリー、ランダムアクセス、シーケンシャルアクセス、ロケーションアドレス指定可能、ファイルアドレス指定可能、およびコンテンツアドレス指定可能。いくつかの実施形態では、論理サブシステム７８とデータ保持サブシステム８０は、特定用途向け集積回路またはシステムオンチップなどの１つまたは複数の共通の装置に統合することができる。
【００４７】
[0053]用語「モジュール」および「エンジン」は、１つまたは複数の特定の機能を実行するために実装された、コンピューターシステム５０の一態様を説明するために使用することができる。場合によっては、そのようなモジュールまたはエンジンは、データ保持サブシステム８０によって保持された命令を実行する論理サブシステム７８を介してインスタンス化可能である。さまざまなモジュールおよび／またはエンジンが、同じアプリケーション、コードブロック、オブジェクト、ルーチン、および／または関数からインスタンス化可能であることを理解すべきである。同様に、場合によっては、同じモジュールおよび／またはエンジンが、さまざまなアプリケーション、コードブロック、オブジェクト、ルーチン、および／または関数によってインスタンス化される場合もある。
【００４８】
[0054]上述したように、デスクトップアプリケーションと補助体験（例えば、ＵＩランタイムアプリケーション）は、協働して豊富で双方向の入力体験をユーザーに提供することができる。さまざまな異なるアーキテクチャーおよびプロトコルは、図３を参照して説明したパラダイムを実装するために使用することができる。図４および図５は、アーキテクチャーの２つの異なる例を示す。
【００４９】
[0055]図４および図５のアーキテクチャーの例では、動的入力装置はラスター化装置として処理される。したがって、ソフトウェアスタックは動的入力装置の中の精巧なＧＰＵをサポートする必要がなく、むしろすべての精巧な合成およびレンダリングはホストコンピューター装置において完成することができる。そのため、ラスター画像（ビットマップ）だけが動的入力装置に渡される。動的入力装置が単純なラスター化装置ではなく、むしろより強力なＣＰＵおよび／またはＧＰＵをもつ装置である実施形態では、アーキテクチャーは、ランタイム環境が動的入力装置自体に提供されるように拡張することができる。
【００５０】
[0056]装置の抽象化は、動的入力装置のすべての適応可能な特徴を列挙する（例えば、動的入力装置がキーボードを含むか、動的入力装置がタッチセンサーを含むか、タッチセンサーのサイズはいくつか、など）ために使用することができる。また、装置の抽象化は、動的入力装置においてレンダリングされたものを制御するために使用することができる。また、装置の抽象化インターフェースを使用して、ウィンドウのないランタイム制御から完全にレンダリングされたビットマップを取得し、完全にレンダリングされたビットマップを動的入力装置に送ることで表示することができる。また、装置の抽象化インターフェースは、タッチデータならびに動的入力装置との任意の他のユーザー相互作用を伝える便宜を動的入力装置に与える。このタッチデータおよび他の情報を、ウィンドウのないランタイム制御で現在動作している可視ツリーの中で表現するために送り返すことができる。抽象化はバス（例えば、ＵＳＢ、イーサネット（登録商標）など）不可知論的である。
【００５１】
[0057]図４は、２つ以上のさまざまな支配的アプリケーションによって指定された入力装置ユーザーインターフェース・ランタイムアプリケーションを実行するように構成された、共有のウィンドウのないランタイム環境９２を使用するアーキテクチャー９０の例を示す。特に、アーキテクチャーの例は、アクセス制御層（ＡＣＬ）９４をもつ単一のＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）制御を使用し、アクセス制御層（ＡＣＬ）９４は、その単一のＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）制御をもつすべてのアプリケーションから登録されたすべてのコンテンツを管理するように構成されている。上述したように、異なるランタイム環境は本開示の範囲から逸脱することなく使用することができる。このアーキテクチャーは単一の制御を使用し、したがってデータが横切るプロセス境界のインスタンスを少ししか使用しない。しかしながら、任意の登録された補助体験の中の任意の誤ったコードは、すべての他の体験に影響する可能性がある。
【００５２】
[0058]図５は、支配的アプリケーション１００によって提供され、その支配的アプリケーションのみによって指定された入力装置ユーザーインターフェース・ランタイムアプリケーションを実行するように構成された、ローカルのウィンドウのないランタイム９８環境を使用するアーキテクチャー９６の例を示す。具体的には、ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）制御は、補助体験を登録／起動する各支配的アプリケーションのプロセス内部に作成される。別のＭＩＣＲＯＳＯＦＴ（登録商標）ＳＩＬＶＥＲＬＩＧＨＴ（商標）制御１０２は、アクセス制御層１０４の規則によって制御された最終合成に使用される別のランタイムの中で作成される。フォーカス変更の追跡に加えて、ＡＣＬは、各関連するアプリケーション／体験からの現在のビットマップを追跡するように強化される。このアーキテクチャーはすべてのアプリケーション体験を別々に保持し、所与の体験の中の不良コードのみが、不良コードを供給するアプリケーションに影響する。さらに、任意のセキュリティ問題もアプリケーション自体の中に含まれる。また、このアーキテクチャーにより、支配的アプリケーションと関連する提供された体験との間のより高い忠実度の通信チャネルが可能になり得え、それは、支配的アプリケーションと体験はどちらも同じプロセスの中にあるからである。このアーキテクチャーは、プロセス横断のデータ共有のためにより高い帯域幅を使用することができる。
【００５３】
[0059]図４および図５に示し、上述したアーキテクチャーの例は限定的なものではない。本開示の範囲から逸脱することなく、他のアーキテクチャーを使用することができる。
[0060]図６は、動的入力装置１１２を介してユーザー入力が実行されるシーケンス１１０をいくらか概略的に示し、動的入力装置１１２は、ディスプレイ１１４を使用するコンピューター装置（例えば、図３のコンピューターシステム５０、図示せず）に対する周辺機器として働く。図示された例では、Ｅメールアプリケーション１１６が現在コンピューター装置のシステム全体のアクティブフォーカスをもち、Ｅメールアプリケーションは、ＵＩランタイムアプリケーションの形態の補助体験と協働している。シーケンス１１０は、コンピューター装置が動的入力装置１１２とディスプレイ１１４のどちらにもグラフィックスを提示することが可能になる、上述のシステムおよび方法の実装形態の例を実証する。図示されたシーケンス１１０は、時刻ｔ１から時刻ｔ４まで経時的に進行するタイムラインによって描写される。
【００５４】
[0061]ｔ１で、動的入力装置１１２上でキー入力を実行するユーザーにより、入力シーケンスが開始される。図示された例では、キー入力は、ユーザーがｔキーを押下し、次いでｒキーを押下する、キーダウン入力である。動的入力装置１１２は、各キーに画像（例えば、ｔキーに「ｔ」の画像、ｒキーに「ｒ」の画像）を表示できることに留意されたい。しかしながら、理解を簡単にするために、図６は、この例に関連したそれらのキーの上のキー画像のみを示す。
【００５５】
[0062]動的入力装置の中に含まれた入力検知サブシステムは、上述したように、キー入力を検出し、キー入力信号をコンピューター装置に送信する。任意の適切なタイプのメッセージおよび／または符号化は、キー入力を伝えるために使用することができる。コンピューター装置は、上述したように入力信号を処理することができる。
【００５６】
[0063]次いで、ディスプレイはコンピューター装置から信号を受信し、ディスプレイ上に提示されたアクティブなコンテンツを変更することができる。この例では、対応するキーが起動されると、キーに対応する文字がテキストボックス１１８の中に表示される。また、Ｅメールアプリケーションは、入力を分析し、ユーザーがＥメールしようと試みているコンテンツを予測することができる。
【００５７】
[0064]ｔ２で、動的入力装置はコンピューター装置から信号を受信し、複数の仮想ボタン（すなわち、連絡先制御ボタン１２０ａ、連絡先制御ボタン１２０ｂ、連絡先制御ボタン１２０ｃ）を動的入力装置のタッチディスプレイ１２１上に提示する。Ｅメールアプリケーションが判定した連絡先に対応する仮想ボタンは、Ｅメールの最も有望な受信者である。仮想ボタンは、ユーザーがタッチして起動できるタッチスクリーンに対する制御として機能し得ることが理解されよう。仮想ボタンは、Ｅメールアプリケーションに補助体験を提供しているＵＩランタイムアプリケーションを介して動的入力装置に供給することができる。上述したように、ＵＩランタイムアプリケーションはウィンドウのない制御であり得る。
【００５８】
[0065]ｔ３で、ユーザーは、動的入力装置によって表示された仮想ボタンのうちの１つ（すなわち、連絡先制御ボタン１２０ａ）に向けてタッチ入力を実行する。検知サブシステムはタッチ入力を検出し、コンピューター装置にメッセージを送信する。上述したように、たとえ、Ｅメールアプリケーションがシステム全体のアクティブフォーカスをもっていても、このメッセージはＵＩランタイムアプリケーションによって処理することができる。メッセージを受信すると、ＵＩランタイムアプリケーションは、Ｅメールアプリケーションと通信することができ、ユーザーが連絡先制御ボタン１２０ａに対応する連絡先を選択したことを示す。
【００５９】
[0066]ｔ４で、タッチ入力に応答して、かつＵＩランタイムアプリケーションから通信を受信すると、Ｅメールアプリケーションは、連絡先制御ボタン１２０ａに対応する連絡先のＥメールアドレス１２２を自動的に書き込んで表示する。
【００６０】
[0067]上記の例によって理解できるように、本明細書に記載したシステムおよび方法により、動的入力装置が、ユーザーが起動することができる仮想制御および／または動的キーの形態で、情報をユーザーに表示することが可能になる。さらに、本明細書に記載したシステムおよび方法により、仮想制御、およびいくつかの実施形態では動的キーの起動が、システム全体のアクティブフォーカスの通常の制約なしに機能することが可能になる。
【００６１】
[0068]図７は、ウィンドウのないランタイム環境を使用して動的入力装置からの入力を管理する方法１３０の例を示す。１３２で、方法１３０は、ウィンドウのないランタイム環境を含む１つまたは複数のランタイム環境を、提供することを含む。１３４で、方法１３０は、ウィンドウのないランタイム環境の外部で実行される別のアプリケーションがシステム全体のアクティブフォーカスをもつが、動的入力装置から動的入力メッセージを受信することを含む。
【００６２】
[0069]図８は、支配的アプリケーションが動的入力装置を用いて補助体験を実施するための方法１４０の例を示す。１４２で、方法１４０は、支配的アプリケーションの第１のコンテキストを判定することを含む。例えば、支配的アプリケーションは、支配的アプリケーションが特定のコンテキスト（例えば、新しいＥメールの作成、連絡先の検索、新しい会議のスケジューリング、仕事のレビューなど）にいることを自己判定することができる。アプリケーションはさまざまな異なるコンテキストをもつことができ、それらの各々は異なる補助体験に対応することができる。
【００６３】
[0070]１４４で、方法１４０は第１の補助体験を指定することを含む。指定された補助体験は支配的アプリケーションとは別個であり、支配的アプリケーションの第１のコンテキストに対応する。上述したように、指定された補助体験は、動的入力装置上に仮想制御の第１の組を動的に表示するように、かつ仮想制御の第１の組の起動を支配的アプリケーションに伝えるように構成可能である。
【００６４】
[0071]１４６で、方法１４０は、支配的アプリケーションの第１のコンテキストとは異なる、支配的アプリケーションの第２のコンテキストを判定することを含む。例えば、支配的アプリケーションは、支配的アプリケーションが第１のコンテキストから第２のコンテキストに変化した（例えば、Ｅメールを作成するコンテキストから予定をスケジュールするコンテキストに変化した）ことを自己判定することができる。さまざまなコンテキストは、動的入力装置を介して表示されるべきさまざまな補助体験に対応することができる。
【００６５】
[0072]１４８で、方法１４０は、支配的アプリケーションとは別個の、かつ第１の補助体験とは異なる、第２の補助体験を指定することを含む。第２の補助体験は支配的アプリケーションの第２のコンテキストに対応し、動的入力装置上に仮想制御の第２の組を動的に表示するように、かつ仮想制御の第２の組の起動を支配的アプリケーションに伝えるように構成可能である。
【００６６】
[0073]本明細書に記載した構成および／または手法が、性質上、例示的であること、および、多数の変形形態が実現可能であるので、これらの特定の実施形態または例が限定的な意味で考察されるものではないことを理解されたい。本明細書に記載した特定のルーチンまたは方法は、任意の数の処理戦略のうちの１つまたは複数を表すことができる。そのため、図示されたさまざまな動作は、図示された順序で、他の順序で、並行して実行することもでき、または場合によっては省略することもできる。同様に、上記の処理の順序は変更することができる。
【００６７】
[0074]本開示の主題は、本明細書において開示した、さまざまな処理、システムおよび構成、ならびに他の特徴、機能、動作、および／または性状のうちの、すべての新規で明白でない組合せおよび部分的組合せ、ならびにありとあらゆるそれらの均等物を含む。
【図１】
2013532334.tif 000003
【図２】
2013532334.tif 000004
【図３】
2013532334.tif 000005
【図４】
2013532334.tif 000006
【図５】
2013532334.tif 000007
【図６】
2013532334.tif 000008
【図７】
2013532334.tif 000009
【図８】
2013532334.tif 000010
【国際調査報告】
2013532334.tif 000011
2013532334.tif 000012