(57)【特許請求の範囲】
【請求項１】
コンピュータ・システムであって：
互いに動作可能に接続されたプロセッサ及びメモリを具備するコンピュータと；
前記プロセッサにおいて動作するオペレーティング・システムであって、アウトオブメモリ（Out of Memory）・コンポーネントを実行する前記オペレーティング・システムを具備し、
前記オペレーティング・システムは：
アウトオブメモリ・ウィンドウを表示すべきか否かを決定し、
前記アウトオブメモリ・ウィンドウが表示された場合にユーザが選択した閉じられるべきウィンドウを指定するための情報を前記アウトオブメモリ・コンポーネントに供給し、
前記アウトオブメモリ・コンポーネントに、前記情報に基づき、前記閉じられるべきウィンドウを閉じるように試行させ、
前記試行が成功した場合に前記閉じられるべきウィンドウを閉じるためのメッセージを前記アウトオブメモリ・ウィンドウに送信するとともに、失敗した場合に前記閉じられるべきウィンドウを閉じるためのメッセージを前記アウトオブメモリ・ウィンドウに送信しない、
ことを特徴とするコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にコンピュータ・オペレーティング・システムに関し、及びより特定的には、リソースが制限されたオペレーティング・システムに対するアプリケーション・プログラム・インターフェースに関する。
【背景技術】
【０００２】
パーソナル・コンピュータ技術の急速な発展は、先行品よりも小さく、安く、及び速いパーソナル・コンピュータ（ＰＣ）を製造し続けている。かつてコンピュータは部屋全体を占めていたが、今ではそれらはユーザの手のひらに収まるくらいに小さいので、その名前を「パームサイズＰＣ（Palm-size PC）」という。さらに、ＰＣは、今では自動車等、家や会社の外の環境に置くことができるくらいに小さい。さらに、新しいＰＣは、様々な民生用機器及び専用産業用コントローラに埋め込まれてもよい。本出願の目的のために、上述のすべてのＰＣは、集合的に「埋め込み型システム」と称される。
【０００３】
小型化された埋め込み型システムは、一定の犠牲が払われる必要があることを意味する。例えば、通常の埋め込み型システムは、ハード・ディスク、フロッピ・ディスク、ＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭドライブ等の固定又は取り外し可能ディスク・ドライブを有しておらず、通常の埋め込み型システムの持続性記憶装置は、バッテリ・リフレッシュ（batter refresh）を伴うフラッシュ・メモリ（flash memory）又は揮発性メモリを具備する。さらに、前記通常の埋め込み型システムにおけるＲＡＭの量も制限される。
【０００４】
さらに、デスクトップ（desktop）ＰＣに典型的な出力リソースは、埋め込み型システムにおいては見られないか又は大変制限されるかもしれない。例えば、通常の埋め込み型システムのためのディスプレイ（display）は、制限された解像度で、及びグレイスケール（grayscale）又は制限された数の色しか表示することができない小さなＬＣＤ画面を具備するかもしれない。自動車等の一定の環境においては、前記ディスプレイは、制限された数の固定アイコン及びテキスト領域を有するＬＣＤ画面であるかもしれない。前記ディスプレイは、コンピュータ化されたスピーチ機能で増強されるかもしれない。
【０００５】
同様に、入力リソースは、埋め込み型システムにおける使用のために制限され又は適応されるかもしれない。例えば、多くの埋め込み型システムは、マウス（mouse）又は他の位置決め装置を有しない。さらに、いくつかのハンド・ヘルド（hand-held）装置は、物理的キーボードを有しない。そのような埋め込み型装置は、その画面上に配置された仮想キーボードと関連するタッチ画面を使用してもよい。さらに、埋め込み型装置は、入力のためのスピーチ認識を採用してもよい。
【０００６】
上述の結果、前記埋め込み型システムの、リソースが制限された環境においてランすることができる専用オペレーティング・システムが開発された。そのようなオペレーティング・システムの一例は、マイクロソフト・コーポレーションのウィンドウズＣＥTMオペレーティング・システムである。
【０００７】
前記埋め込み型システム上でランするアプリケーションはまた、上述の、リソースが制限された環境においてもランすることができなければならない。パームサイズＰＣを具備する埋め込み型システムにおいて、これらのアプリケーションは通常、カレンダ・プログラム、個人情報管理プログラム、計算機、辞書等の、パームサイズＰＣのより大きな同胞上で使用可能なアプリケーションの専用バージョンである。
【０００８】
他の環境においては、前記埋め込み型システム上でランする前記アプリケーションは、より専門化しているかもしれない。例えばＡｕｔｏＰＣにおいては、前記アプリケーションは、音声システムと接続するアプリケーション、位置及び案内情報を報告し及び使用するアプリケーション、及び自動車に存在する様々な他のシステムの状況及び状態を監視するアプリケーションを具備してもよい。
【０００９】
多くの異なるアプリケーションの必要性に応えるために、オペレーティング・システムは通常、ＡＰＩｓ（Application Programming Interfaces）を、多くの異なるアプリケーションに共通である幅広い機能に供給する。いずれか一つのアプリケーションは通常、前記利用可能なＡＰＩの一つの小さなサブセットのみを使用する。幅広いＡＰＩを供給することによって、アプリケーション開発者を、各アプリケーションにおいて潜在的に複製される必要があるコードを書く必要性から解放する。しかしながら、前記埋め込み型システムの、前記リソースが限られた環境においては、通常は、よりずっと制限された利用可能なＡＰＩの組がある。これは、多くの異なるＡＰＩをサポートするのに利用可能な持続性及び非持続性メモリが、通常不十分だからである。このように、埋め込み型システムのためのアプリケーションを書く開発者は、デスクトップ又は他のより大きなコンピュータのオペレーティング・システムにおいて、前記オペレーティング・システムによって普通は供給されるであろうコートを開発しなければならないことがわかるかもしれない。
【００１０】
上述の結果、当業界においては、前記リソースが限られた環境の埋め込み型システムにおいてランすることができるオペレーティング・システムの必要性がある。そのようなオペレーティング・システムは、カスタマイズ（customized）され、及び、開発者は、特定の環境に必要なそれらのコンポーネント及びモジュールのみを含むだけを含むことを許可して、システム設計者が、埋め込み型システムを配置することを選択してもよい多岐にわたる環境に適応可能であるべきである。さらに前記オペレーティング・システムは、アプリケーション設計者が、共通に必要とされるコードを複製する必要がないようにするために、コンポーネントを供給されたオペレーティング・システムに、ＡＰＩを含むべきである。最後に、前記オペレーティング・システムは、埋め込み型システムの独自の入力及び出力の必要性に適合するＡＰＩを、コンポーネント及びモジュールに供給すべきである。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許第５，７２４，５０６号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上述の短所、不都合、及び問題は、本発明によって検討され、それは、以下の明細書を読み及び研究することによって理解されるであろう。
リソースが制限された環境のための多くのソフトウェア・モジュール及びコンポーネントのために、一組のアプリケーション・プログラム・インターフェース（Application Program Interfaces）（ＡＰＩ）を含むシステムが提示される。
リソースが制限された環境の一例は、埋め込み型システムであり、それは、ハンドヘルドまたはパームサイズのパーソナル・コンピュータとともに、様々な民生用機器及び専用産業用コントローラを具備する。
【課題を解決するための手段】
【００１３】
本システムの一つの特徴は、リソースが制限された環境のためのオペレーティング・システムに含まれるコンポーネントとモジュールの組み合わせは、カスタマイズでき、及び柔軟であるということである。これによって、埋め込み型システムの設計者は、特定の環境に必要なそれらのコンポーネント及びモジュールのみを含むことができる。その結果、ほとんどのメモリは、不要なコンポーネントによっては消費されず、より多くのメモリが、前記埋め込み型システムで必要とされるアプリケーション及び他のモジュール並びにコンポーネントに充てられることができる。
【００１４】
本システムの他の特徴は、前記通常の埋め込み型システムの、独自の入力及び出力の必要性に適合するＡＰＩが供給されることである。例えば、多くの埋め込み型システムは、入力のためのキーボード又はマウスを供給されていない。前記システムは、ＡＰＩを、入力を供給する代替的メカニズムを供給するコンポーネント及びモジュールに供給する。これらの代替的メカニズムは、タッチ画面上のストロークを「読み取る」手書き認識エンジンに、ＡＰＩを含み、及びユーザが、話されたコマンドを前記システムに発行できるようにする音声入力コンポーネントにＡＰＩを含む。さらに、前記システムは、ＡＰＩを、表示モニタが実行不可能なそれらの環境に対して、可聴スピーチを出力するコンポーネントに供給する。
【００１５】
前記システムの他の特徴は、「メモリ外」状態の処理は、埋め込み型システムの設計者によってカスタマイズされることができることである。メモリ外状態は発生しやすいので、制限されたリソースを有するシステムにとって、これは重要である。
【００１６】
前記システムのさらなる特徴は、位置及び案内コンポーネントにＡＰＩが供給されることである。自動車、トラック及びボート等、移動性の埋め込み型システム環境にとって、これは有用である。
【００１７】
上記に要約されたＡＰＩ及び様々な他のＡＰＩは、以下の節で詳細に説明されるであろう。本発明は、様々な視野で、システム、クライアント、サーバ、方法及びコンピュータ読み取り可能媒体を説明する。この要約で説明された本発明の特徴及び効果に加えて、本発明のさらなる特徴及び効果が、図面を参照し及び以下の詳細な説明を読むことで、明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態が実行され得るハードウェア及び動作環境のダイアグラムを示す。
【図２】リソースが制限された環境のためのオペレーティング・システムの典型的実施形態のシステム‐レベルの概観を示すダイアグラムである。
【図３】本発明の実施形態に従って、モジュールと、コンポーネントと及びＡＰＩとの関係をさらに示すダイアグラムである。
【発明を実施するための形態】
【００１９】
本発明の典型的実施形態の以下の詳細な説明において、本出願の一部を形成する添付の図面が参照され、及び本発明が実行されるかもしれない特定の典型的実施形態が、図示によってそこで示される。これらの実施形態は、当業者が、本発明を実行できる程度に、十分に詳しく説明されており、他の実施形態が利用され、及び本発明の精神と範囲から逸脱することなく、論理的、機械的、電気的な及び他の変更がなされてもよいことが理解されるべきである。それゆえに、以下の詳細な説明は、限定的な意味で取られるべきではなく、本発明の範囲は、特許請求の範囲によってのみ定義される。
【００２０】
詳細な説明は、４つの節に分けられる。第１の節では、本発明の実施形態が実行されるかもしれないハードウェア及び動作環境が説明される。第２の節では、本発明のシステム・レベルの概観が示される。第３の節においては、アプリケーションが、オペレーティング・システムの様々なモジュール及びコンポーネントと接続できるようにする様々なＡＰＩが示される。最後に、第４の節においては、詳細な説明の結論が示される。
【００２１】
ハードウェア及び動作環境
図１は、本発明の実施形態が実行されるかもしれないハードウェア及び動作環境のダイアグラムである。図１の説明は、本発明が実行されるかもしれない適切なコンピュータ・ハードウェア及び適切な演算環境の簡潔で、一般的な説明を供給する目的である。必ずしも必要ではないが、本発明は、パーソナル・コンピュータ、ハンドヘルド又はパームサイズ・コンピュータ、又は民生用機器あるいは専用産業用コントローラにおけるコンピュータ等の埋め込み型システム等のコンピュータによって実行される、プログラム・モジュール等の、コンピュータ実行可能命令の通常のコンテクストで説明される。通常、プログラム・モジュールは、特定のタスクを実行し、又は特定の抽象データ・タイプを実行する、ルーチン（routine）、プログラム、オブジェクト、コンポーネント、データ構造等を含む。
【００２２】
さらに、当業者は、本発明がハンドヘルド装置、マルチプロセッサ・システム（multiprocessor system）、マイクロプロセッサ‐ベースあるいはプログラム可能民生用電子機器、ネットワークＰＣＳ、ミニコンピュータ、メインフレーム・コンピュータ等を含む、他のコンピュータ・システム構成で実行されてもよいことを評価するであろう。本発明はまた、通信ネットワークを通してリンクされる遠隔処理装置によってタスクが実行される分散型演算環境において実行されてもよい。分散型演算環境においては、プログラム・モジュールは、ローカル及び遠隔の両方の記憶装置に配置されてもよい。
【００２３】
本発明を実行するための、図１に記載の典型的ハードウェア及び動作環境は、処理装置２１、システム・メモリ２２、及び前記システム・メモリを含む様々なシステム・コンポーネントを、前記処理装置２１に操作上接続するシステム・バス（system bus）２３を含むコンピュータ２０という形態の、汎用演算装置を含む。前記コンピュータ２０のプロセッサが、単一の中央処理装置（central-processing unit）（ＣＰＵ）又は、一般的に並行処理環境と称される、複数の処理装置を具備するように、一つだけの、又は一つ以上の処理装置２１があるかもしれない。前記コンピュータ２０は、従来のコンピュータ、分散型コンピュータ、又はあらゆる他の種類のコンピュータでよい；本発明はそれほど限定されない。
【００２４】
システム・バス２３は、メモリ・バス又はメモリ・コントローラ、周辺バス、及び様々なバス・アーキテクチャのいずれかを使用するローカル・バスを含む、数種類のバス構造のいずれでもよい。前記システム・メモリはまた、単にメモリと称されてもよく、及び読み取り専用メモリ（read only memory）（ＲＯＭ）２４及びランダム・アクセス・メモリ（random access memory）（ＲＡＭ）２５を含む。前記コンピュータ２０の中のエレメント間で情報を転送するのを助ける基本的なルーチンを含む、基本入力／出力システム（basic input/output system）（ＢＩＯＳ）２６が、起動の間等に、ＲＯＭ２４に記憶される。本発明の一つの実施形態において、前記コンピュータ２０はさらに、図示されていないが、ハード・ディスクから読み取り及びそこに書き込むためのハード・ディスク・ドライブ２７、取り外し可能な磁気ディスク２９から読み取り又はそこに書き込むための磁気ディスク・ドライブ２８、及びＣＤＲＯＭ又は他の光学媒体等の取り外し可能な光学ディスク３１から読み取り又はそこに書き込むための光学ディスク・ドライブ３０を含む。本発明の代替的実施形態においては、前記ハード・ディスク・ドライブ２７、磁気ディスク２９、及び光学ディスク・ドライブ３０によって供給される機能は、節電をし及び前記システムのサイズを小さくするために、揮発性又は非揮発性ＲＡＭを使用して、エミュレートされる（emulated）。
【００２５】
これらの代替的実施形態において、前記ＲＡＭは、前記コンピュータ・システムに固定されてもよいし、又はコンパクト・フラッシュ・メモリ・カード（Compact Flash memory card）等の、取り外し可能なＲＡＭ装置でもよい。
【００２６】
本発明の一つの実施形態において、前記ハードディスク・ドライブ２７、磁気ディスク・ドライブ２８、及び光学ディスク・ドライブ３０は、それぞれハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、及び光学ディスク・ドライブ・インターフェース３４によって、前記システム・バス３２に接続される。前記ドライブ及びそれらの関連するコンピュータ読み取り可能媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール及び他のデータの非揮発性記憶装置を、前記コンピュータ２０に供給する。磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク（digital video disks）、ベルヌーイ・カートリッジ（Bernoulli cartridges）、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）等、コンピュータによってアクセス可能であるデータを記録することができるあらゆる種類のコンピュータ読み取り可能媒体が、典型的動作環境において使用されてもよいことは、当業者によって評価されるべきである。
【００２７】
多くのプログラム・モジュールが、前記ハード・ディスク、磁気ディスク２９、光学ディスク３１、ＲＯＭ２４、又はオペレーティング・システム３５、一つ以上のアプリケーション・プログラム３６、他のプログラム・モジュール３７、及びプログラム・データ３８を含むＲＡＭ２５に記憶されてもよい。ユーザは、キーボード４０及び位置決め装置４２等の入力装置を通して、前記パーソナル・コンピュータ２０に、コマンド及び情報を入力してもよい。他の入力装置（図示されていない）は、マイク、ジョイスティック（joystick）、ゲーム・パッド（game pad）、衛星パラボラアンテナ（satellite dish）、スキャナ、タッチ・パッド（touch sensitive pad）等を含んでもよい。これら及び他の入力装置はしばしば、前記システム・バスに接続されるシリアル・ポート・インターフェース（serial port interface）４６を通して、前記処理装置２１に接続されるが、しかし平行ポート、ゲーム・ポート、又はユニバーサル・シリアル・バス（universal serial bus）（ＵＳＢ）等の他のインターフェースによって接続されてもよい。さらに、前記システムへの入力は、音声入力を受け取るために、マイクによって供給されてもよい。
【００２８】
モニタ４７又は他の種類の表示装置も、ビデオ・アダプタ（video adapter）４８等、インターフェースを介して前記システム・バス２３に接続される。本発明の一つの実施形態において、前記モニタは、液晶画面（Liquid Crystal Display）（ＬＣＤ）を具備する。前記モニタに加え、コンピュータは通常、スピーカ及びプリンタ等、他の周辺出力装置（図示されていない）を含む。
【００２９】
前記コンピュータ２０は、遠隔コンピュータ４９等、一つ以上の遠隔コンピュータへの論理接続を使用してネットワーク化された環境において動作してよい。
これらの論理接続は、前記コンピュータ２０又はその一部に接続された通信装置によって達成される；本発明は、特定の種類の通信装置に限定されない。前記遠隔コンピュータ４９は、他のコンピュータ、サーバ、ルータ（router）、ネットワークＰＣ、クライアント、ピア装置（peer device）又は他の共通ネットワーク・ノード（common network node）でもよく、及び一つの記憶装置５０のみが図１に記載されているが、前記コンピュータ２０と比較して、通常は上述のエレメントの多く又はすべてを含む。図１に示された前記論理接続は、ローカル・エリア・ネットワーク（local-area network）（ＬＡＮ）５１及びワイド・エリア・ネットワーク（wide-area network）（ＷＡＮ）５２を含む。そのようなネットワーク環境は、会社、企業内コンピュータ・ネットワーク、イントラネット及びインターネットにおいて普及している。
【００３０】
ＬＡＮネットワーク環境において使用される時、前記コンピュータ２０は、通信装置の一種である、ネットワーク・インターフェース又はアダプタ５３を通して前記ローカル・ネットワーク５１に接続される。ＷＡＮネットワーク環境において使用される時、前記コンピュータ２０は通常、通信装置の一種であるモデム（modem）５４、又はインターネット等の、ワイド・エリア・ネットワーク５２に対して通信を確立するためのあらゆる他の種類の通信装置を含む。前記モデム５４は、内部でも外部でもよく、前記シリアル・ポート・インターフェース４６を介して、前記システム・バス２３に接続される。ネットワーク化環境において、前記パーソナル・コンピュータ２０又はその部分と比較して示されたプログラム・モジュールは、遠隔記憶装置に記憶されてもよい。図示された前記ネットワーク接続は例示的であり、前記コンピュータ間の通信リンクを確立するための他の手段及び通信装置が使用されてもよいことが理解される。
【００３１】
本発明の実施形態が実行されるかもしれないハードウェア及び動作環境が説明されてきた。本発明の実施形態が実行されるかもしれないコンピュータは、従来のコンピュータ、ハンドヘルド又はパームサイズ・コンピュータ、埋め込み型システムにおけるコンピュータ、分散型コンピュータ、又はあらゆる他の種類のコンピュータでもよい；本発明は、それほど制限されていない。そのようなコンピュータは通常、そのプロセッサのように一つ以上の処理装置、及びメモリ等のコンピュータ読み取り可能媒体を含む。前記コンピュータはまた、他のコンピュータと通信上接続できるように、ネットワーク・アダプタ又はモデム等の通信装置も含んでよい。
【００３２】
システム・レベル概観
本発明の典型的実施形態の動作のシステム・レベルの概観は、図２及び３を参照して説明される。本発明の概念は、図１に記載のコンピュータ２０等のコンピュータ上で、多重処理、多重スレッドの動作環境において動作することである、と説明される。前記典型的動作環境は、当業界でオペレーティング・システムとして知られているものを具備する。この環境において、アプリケーション２２６等の一つ以上のアプリケーションは、前記オペレーティング・システムの様々なモジュール及びコンポーネントと接続する。さらに、前記オペレーティング・システムの様々なモジュール及びコンポーネントは、互いに接続する。最後に前記モジュール、コンポーネント及びアプリケーションは、当業界ではデバイス・ドライバ・モジュール（device driver module）として知られているものを通して、及び相手先商標製造会社（Original Equipment Manufacturer）（ＯＥＭ）適応層２０８を通して、前記コンピュータ上に存在するハードウェア２０２と接続する。本発明の一つの実施形態において、２種類のデバイス・ドライバ、組み込みドライバ２０６及びインストール可能ドライバ２０４がある。様々なモジュールが、さらに詳細に説明されるであろう。
【００３３】
コア・システム・インターフェース（core system interface）２２０は、それを通してアプリケーションが前記オペレーティング・システムにアクセスすることができるモジュールである。前記コア・システム・インターフェース２２０は、ＡＰＩ呼び出しを、適切なオペレーティング・システム・サーバ処理に転送する機能を含む。
【００３４】
選択されたＡＰＩを含み又はエクスポートする（exporting）することに加え、前記コア・システム・インターフェース２２０は、以下のものをサポートするためのコンポーネントを含む：
・ローカライズ（localization）
・ローカル・ヒープ（local heap）及びメモリ割り当て
・シリアル・ポート・デバイス・ドライバ・サンク（thunks）
・テレフォニーＡＰＩ（Telephony API）（ＴＡＰＩ）
【００３５】
シェル・モジュール２２２は、前記ユーザ・インターフェースを管理し、及びソフトウェア・アプリケーションの起動等のタスクを扱う。本発明の一つの実施形態において、前記オペレーティング・システムは、埋め込み型システム設計者が、対象となるプラットフォームの要求を満足させるカスタマズされたシェル２２２を開発することができるようにするシェル・コンポーネントを供給する。以下のものがこれらのコンポーネントに含まれる：
【００３６】
・デスクトップ・ウィンドウスのユーザに馴染みのあるアプレットを有するコントロール・パネル。以下のアプレットが含まれる：通信；ディスプレイ；キーボード；ネットワーク；オーナ（owner）；パスワード；電力；地域設定；除去プログラム；位置決め装置設定（スタイラス（stylus））；音声及び音量。
【００３７】
・アプリケーションに、その名前及びエベントを前記システムに登録させる通知ＡＰＩ。前記イベントが発生する時、前記カーネルは自動的に前記名づけられたアプリケーションを起動させる。前記ＡＰＩはまた、アプリケーションに、前記アプリケーションが起動するべき特定の日付及び時間を登録させてもよい。
【００３８】
・共通制御及び共通ダイアロク。それらは、前記ユーザに、明確で、簡潔で及び意味のある情報、及び前記システム及びアプリケーションに必要な時に入力を与える手段を供給するように設計される。
【００３９】
・一組の標準入力及び出力ＡＰＩ呼び出しをサポートするコマンド・ライン・プロセッサ（command line processor）（すなわちコンソール・アプリケーション（console application）。
【００４０】
・開発ワークステーション（development workstation）と埋め込み型システム対象プラットフォームとの間の（例えば、遠隔アプリケーション・プログラミング呼び出しをサポートするための）接続コンポーネント。
【００４１】
デスクトップに関連して、前記シェル・モジュール２２２は、また、任意で含まれ又は取り替えられることができるデスクトップ及びタスク・マネージャ・コンポーネントも含む。前記タスク・マネージャ・コンポーネントは、以下の基本的機能を含む：
・すべての、現在ランしている、トップ・レベルのアプリケーションのアクティブ・タスク（Active Tasks）リスト。
・ユーザがソフトウェア・アプリケーションを起動できるようにするラン・ボタン（Run button）。
・ユーザが、前記アクティブ・タスク・リストボックスで選択されたアプリケーションに変換できるようにするスイッチ・ツゥ・ボタン（Switch To button）。
・ユーザが、前記アクティブ・タスク・リストボックスで選択されたアプリケーションを終了させることができるようにするエンド・タスク・ボタン（End Task button）。
・ユーザが、前記タスク・マネージャ・ウィンドウを閉じることができるようにする取り消しボタン（Cancel button）。
・（バッテリで動作する対象プラットフォームのための）主バッテリ及びバックアップ・バッテリの電力のレベルを監視し、及び適切な警告ダイアログ・ボックスを表示する。
・前記システムにおけるシステム・メモリ使用を監視し、使用可能なシステム・メモリが特定の閾値より下に下がる時には、すべてのトップ・レベル・ウィンドウにメッセージを送る。これによって、アプリケーションは、それらのメモリ使用を可能な限り低減させることによって、前記メッセージに応答することができる。
【００４２】
アドオン技術（Add-on Technologies）モジュール２２４によって、埋め込み型システム開発者は、アクティブＸ（Active-X）ベース・アプリケーション、アクティブ・デスクトップ・シェル及びインターネット・ブラウザ（Internet browser）の開発をサポートするＯＬＥ／ＣＯＭオートメーション（automation）等のコンポーネントを選択的に含むことができる。含まれることができる他のコンポーネントは、ＶｉｓｕａｌＢａｓｉｃラン・タイム、並びに、Ｊａｖａ（登録商標）スクリプト及びマイクロソフト・ファウンデーション・クラス（Microsoft Foundation Classes）（ＭＦＣ）のサブセットである。供給されることができるさらなる任意のコンポーネントは、関連ＡＰＩを有する手書き認識エンジンである。本発明の一つの実施形態において、手書きアプリケーションは、ソフトウェア・インターフェースをタッチ画面に供給するコンポーネントを通して、前記タッチ画面入力装置と接続する。
【００４３】
カーネル・モジュール２１４は、すべてのプラットフォームになければならない基礎オペレーティング・システム機能を表す。前記カーネル・モジュールは、メモリ管理、処理管理、例外扱い、及びマルチタスク並びにマルチスレッドのためのサポートを含む。
【００４４】
本発明の一つの実施形態において、前記カーネル２１４は、小さく、速い、埋め込み型装置のために特に設計される。この実施形態において、前記カーネルは、単一の４ギガバイトのアドレス空間（２ギガバイトの仮想アドレス及び２ギガバイトの物理的アドレス範囲）をサポートする。本発明のある実施形態において、この４ギガバイトのアドレス空間は、それぞれが３２メガバイトのサイズを有する３３の「スロット」に分割される。前記カーネルは、各処理を、メモリにおける独自の、開いたスロットに割り当てることによって、各処理を保護する。しかしながら本発明は、特定の物理的もしくは仮想アドレス空間、又はスロット・サイズに限定されず、及び当業者が認識するであろうとおりに、他のサイズが選択されてもよい。
【００４５】
前記カーネル２１４は、例外を作ることによって、それらの割り当てられたスロットの外側のメモリにアクセスすることから、アプリケーションを保護する。
アプリケーションは、トライを使用することによって、前記例外を調べ及び取り扱うことができ、及びウィンドウズＣＥ（登録商標）機能を除外することができる。本発明の一つの実施形態において、前記システムは３２の処理に限定されるが、一つの処理でランするスレッドの数は、使用可能なメモリ量によってのみ制限される。当業者は、処理の最大数に対して他の値が選択されてもよいことを評価するであろう。
【００４６】
ファイル・システム・モジュール２１８は、前記埋め込み型システム対象プラットフォーム上の持続性記憶装置をサポートする機能を含む。この記憶装置は、「オブジェクト記憶装置」と称され、ユーザ・データを記憶するための３つの異なる方法を含む：
【００４７】
・ファイル・システム。このファイル・システムは、通常、ファイル及びディレクトリを生成し、ファイルを読み取り並びにそこに書き込みをし、及びファイル及びディレクトリ情報を検索する機能等、共通ファイル操作機能をサポートする。
【００４８】
・レジストリ。このシステム・レジストリは、ウィンドウズ９５（登録商標）及びウィンドウズＮＴ（登録商標）オペレーティング・システムのレジストリに類似する。ＲＯＭに抱き合わされたアプリケーションを含む、すべてのアプリケーションに対するレジストリは、前記オブジェクト記憶装置に記憶される。
【００４９】
・データベースＡＰＩ。本発明の一つの実施形態において、前記オペレーティング・システムは、ユーザ及びファイル又はレジストリにおけるアプリケーション・データを露出することに対する代替を与えるために、自らの構造化された記憶装置を有する。例えば、データベースは、アプリケーションがエンド・ユーザに表示する前に処理するであろう生データを記憶するのに有用である。ハンドヘルドＰＣアプリケーションは通常、データベースにスケージュル及びコンタクト情報を記憶する。
【００５０】
本発明の一つの実施形態において、ファイル・システム・モジュール２１８によって管理されるファイル・システムは、データが電力損失等の重大な故障によってデータが失われる可能性を低減させるための、トランザクションされたシステムである。さらに本発明の一つの実施形態において、前記システム・モジュール２１８は、ファイル・システム動作（トランザクションはされていない）をミラリングし又は追跡するための「ミラリング（mirroring）」の（トランザクションされた）体系を実行する。この実行の目的は、重要な一連の動作が、そのボリュームで実行されている間に電力が損失される場合に、ファイル・システム・ボリュームを復元することができるようにすることである。
【００５１】
本発明の一つの実施形態において、前記動作環境は、Ｗｉｎ３２ユーザ及びＧＤＩ（Graphics Device Interface）ライブラリを、ＧＷＥＳ（Graphics, Windowing, and Events Subsystem）モジュール２１２へと結合する。前記イベント・マネージャ及びウィンドウ・マネージャは、Ｗｉｎ３２ユーザに類似しており、前記Ｗｉｎ３２ＧＤＩは、埋め込み型システムにより適した、より小さいＧＤＩと取り替えられる。前記ＧＷＥＳモジュール２１２は、色、及びグレイスケール表示、パレット管理、トゥルータイプ（TrueType）・フォント、ラスタ（Raster）・フォント、カーソル、及びプリンタ・デバイス・コンテクスト（device contexts）（ＤＣ）をサポートする、（関連するディスプレイ・ドライバをサポートする）マルチプラットフォーム（multiplatform）ＧＤＩコンポーネントを含む。
【００５２】
前記ＧＷＥＳモジュール２１２はまた、埋め込み型オペレーティング・システムに典型的である、より小さいディスプレイ・サイズに合わされたＡＰＩ機能を供給するウィンドウ管理コンポーネントもサポートする。
【００５３】
本発明の様々な実施形態の動作環境は、イベント主導である。ＧＷＥＳモジュールは、イベントを取り扱うコンポーネントを含み、それは本発明の一つの実施形態においてメッセージとして実行される。
【００５４】
通信モジュール２１６は、通信ハードウェアをサポートするための様々な通信コンポーネント選択肢を含む。これは、直列、並列及びネットワーク（ワイア及びワイアレス）通信を含む。通信モジュール２１６は、以下の選択可能な通信特性を含む
・シリアルＩ／Ｏサポート
・以下を含むネットワーク化サポート：
■ローカル・エリア・ネットワーク化のためのＮＤＩＳ４．０
■シリアル・リンク及びモデム・ネットワーク化のためのＰＰＰ及びＳＬＩＰ
■クライアント側の遠隔アクセス・サーバ（Remote Access Server）（ＲＡＳ）
■インターネット・プロトコル（Internet protocol）
■テレフォニーＡＰＩ（ＴＡＰＩ）
■ＰＣカード・サポート
■赤外線トランシーバ・サポート
【００５５】
本発明の一つの実施形態において、埋め込み型システムの設計者は、前記プラットフォームに特化したカーネル・モジュール２１４を生成するために、前記ＯＥＭ適応層２０８を開発しなければならない。前記ＯＥＭ適応層（OEM Adaptation Layer）（ＯＡＬ）モジュール２０８は、埋め込み型システム開発者が、前記カーネル・モジュール２１４と前記対象プラーットフォーム・ハードウェア２０２の間にある薄い層のコードを生成することによって、特定の対象プラットフォームに対して、前記オペレーティング・システムを適応させることができるようにする。前記ＯＡＬモジュール２０８は、特定のＣＰＵ及び対象プラットフォームに特化する。
【００５６】
前記ＯＡＬモジュール２０８は、以下のようなインターフェースを含む：
・デバイス・ドライバをサポートするための割り込みサービス・ルーチン（interrupt service routine）（ＩＳＲ）ハンドラ
・リアルタイム・クロック（real-time clock）（ＲＴＣ）
・（前記スケジューラ動作に使用される）インターバル・タイマ（interval timer）
【００５７】
本発明の一つの実施形態において、前記ＲＴＣ及びインターバル・タイマは、ＣＰＵ上に供給されるので、適応する必要はない。この場合、これらのインターフェースは、ＯＡＬ２０８においてよりもむしろ、カーネル・モジュール２０４において実行される。
【００５８】
タイミング及び電力等の機能を管理することに加えて、前記ＯＡＬの第１の目的は、前記対象プラットフォームのハードウェア２０２を、前記カーネル・モジュール２１４に露出することである。すなわち、各ハードウェア割り込み要求ライン（interrupt request line）（ＩＲＱ）は、一つの割り込みサービス・ルーチン（ＩＳＲ）と関連する。割り込みが可能で、及び割り込みが発生する時、前記カーネルは、その割り込みのために、登録されたＩＳＲを呼び出す。
【００５９】
組み込みドライバ２０６は、前記オペレーティング・システムを構築する時に、ＧＷＥＳモジュール２１２とリンクされるデバイス・ドライバである。前記ドライバの例は、前記通知ＬＥＤドライバ又は前記バッテリ・ドライバである。これらのドライバは、最終的に、同じ実行可能イメージ（executable image）を、前記オペレーティング・システムの残り部分として形成するので、「組み込みデバイス・ドライバ」と称される。組み込みデバイス・ドライバは各々が、前記オペレーティング・システムの残りへのカスタム・インターフェース（custom interface）を有する。
【００６０】
デバイス・マネージャ・モジュール２１０は、インストール可能なデバイス・ドライバを扱うモジュールである。本発明の一つの実施形態において、前記デバイス・マネージャ２１０は、以下のタスクを実行する：
【００６１】
・システム起動時又はそれがサード・パーティ（third-party）周辺機器が対象プラットフォームに接続されたという通知を受け取る時に、ドイバのロードを開始する。例えば、ＰＣカードが挿入される時、デバイス・マネージャ２１０は、そのＰＣカードに対して、デバイス・ドライバを配置し及びロードしようと試みるであろう。
【００６２】
・アプリケーションによって使用されるストリーム（stream）Ｉ／Ｏインターフェース機能を、インストール可能デバイス・ドライバにおけるそれらの機能の実行にマッピングする、特別なファイルシステム・エントリを、前記カーネルに登録する。
【００６３】
・プラグ（plug）及びプレイ（play）ＩＤを入手することによって、又は前記装置を扱うことができるドライバを見つけるための検出ルーチンを呼び出すことによって、適切なデバイス・ドライバを見つける。
【００６４】
・レジストリ値を読み取り及び書き込むことによって、ドライバをロードし、及び、追跡する。
【００６５】
・ドライバのデバイスがもはや必要でない時に、ドライバをアンロードする。
例えば、デバイス・マネージャ２１０は、前記カードが取り除かれる時に、ＰＣカード・デバイス・ドライバをアンロードするであろう。
【００６６】
本発明の一つの実施形態において、インストール可能デバイス・ドライバ２０４は、前記デバイス・マネージャ２１０によって管理される、独立型ＤＬＬ（Dynamic Link Library）として存在する。インストール可能デイバス・ドライバ２０４は、数種類のネイティブ・デバイス（native devices）、前記対象プラットフォームに接続されることができるあらゆる周辺装置、及び前記プラットフォームに追加されるあらゆる特殊装置をサポートする。これは、モデム、プリンタ、デジタル・カメラ、ＰＣカード（ＰＣＭＣＩＡカードとも称される）、その他の装置を網羅する。
【００６７】
本発明の一つの実施形態において、インストール可能デバイス・ドライバ２０４は、それらのサービスがアプリケーションに露出される共通インターフェースを使用する。このインターフェースが、前記ストリームＩ／Ｏインターフェースである。
【００６８】
コンポーネントと、モジュールと、アプリケーションに露出されるＡＰＩとの間の関係の説明は、図３を参照して示される。モジュール３０８は、図２に記載のオペレーティング・システム２００等の動作環境の主な機能的ブロックである。モジュール３０８は、ＡＰＩ３０２を、アプリケーションが前記モジュール３０８によって実行される手段又は機能を接続し及び呼び出すことができるようにする、図２に記載のアプリケーション２２６等のアプリケーションに露出する。
【００６９】
モジュールは、任意で一つ以上のコンポーネント３０６を含んでもよい。コンポーネント３０６は、モジュール３０８よりも小さいスケールで能力を供給する機能及びデータのグループである。
【００７０】
モジュール３０８と同様に、コンポーネント３０６はまた、他のアプリケーション、モジュール、及びコンポーネントが、前記コンポーネント３０６によって実行される手段又は機能を呼び出すために使用するかもしれないＡＰＩ３０４を露出する。
【００７１】
上述の説明からわかるように、本発明の様々な実施形態は、従来のシステムに対して長所を供給する。一つの利点は、前記オペレーティング・システムが、モジュール方式であることである。これによって、埋め込み型システム設計者は、それら独自のハードウェア開発プラットフォーム及びアプリケーションのために最適化された動作環境を生成することができる。前記開発者は、前記動作環境への包含のために、上述のモジュール及びコンポーネントの様々な組み合わせを選択することができる。例えば、開発者は、前記カーネル及び選択された一組の通信を含む埋め込み型オペレーティング・システムを構築することができるが、グラフィカル・ユーザ・インターフェース（graphical user interface）を供給しない。このように本発明は、モジュール及びコンポーネントの特定の組み合わせには限定されない。
【００７２】
前記本発明の様々な実施形態はまた、前記動作環境に必要であるＡＰＩを有するモジュール及びコンポーネントのみが含まれる必要があるので、典型的な埋め込み型システムの制限されたメモリ・リソースを保全するメカニズムを、開発者に供給する。
【００７３】
リソースが制限されたシステムにおけるＡＰＩ
前の節は、リソースが制限されたシステムのための典型的なオペレーティング・システムに含まれるモジュール及びコンポーネントのシステム・レベルの概観を示した。この節では、以下の下位節に沿って、上述のモジュール及びコンポーネントに関連した新しいＡＰＩ及びデータ構造を示す。以下に詳説されるＡＰＩは、Ｃ／Ｃ++プログラミング言語に見地から説明される。しかしながら、本発明はそれほど限定されず、及び前記ＡＰＩは、当業者が認識するように、あらゆるプログラミング言語で定義され、及び実行されてもよい。更に、前記ＡＰＩ機能及びパラメータに与えられた名前は、それらの機能を説明するものであるが、しかしながら、当業者には明らかとなるとおり、他の名前又は識別子が、前記機能及びパラメータと関連することができる。６組のＡＰＩ及びデータ構造が示される：手書き認識ＡＰＩ、位置及び案内ＡＰＩ、スピーチ関連ＡＰＩ、メモリ外ＡＰＩ、データベースＡＰＩ、及び、アクティブ・シンク・データ構造（Active Synch Data Structure）。
【００７４】
１．手書き認識ＡＰＩ
手書き認識コンポーネントは、アドオン技術モジュール２２４（図２）において使用可能である。前記手書き認識コンポーネントは、手書き認識エンジンを実行する。本発明の一つの実施形態において、前記エンジンは、タッチ画面上の複数のストロークという形式で、「インク」を受け取る。前記ストロークはそれから、アプリケーションから前記エンジンへ、様々なＡＰＩを使用して送られる。
前記エンジンは、ストロークを、英数字として解読するよう試みる。前記解読された文字がＡＰＩを介して前記アプリケーションに戻される。本発明の一つの実施形態において、前記文字は、英語の文字として解読される。本発明の他の実施形態において、前記文字は他の言語で解読される。
【００７５】
前記手書き認識コンポーネントは、タッチ画面を有するが、キーボードを有しない埋め込み型システムにおいて、特に有用である。英数字入力を要求するアプリケーションは、前記エンジンから受け取られた文字を、あたかもそれらがキーボードでタイプされたように使用することができる。
【００７６】
手書き認識エンジンと接続するアプリケーションによって使用されるＡＰＩに関するさらなる詳細は、「手書き認識ＡＰＩの詳細な記述」という下位節で示される。
【００７７】
２．位置及び案内ＡＰＩ及びデータ構造
位置及び案内コンポーネントは前記アドオン技術モジュールにおいて使用可能である。前記位置及び案内コンポーネントによって、アプリケーションは、アポロＧＰＳシステム等の位置決め装置（位置決め及び案内装置とも称される）と接続することができる。そのようなインターフェースは、前記埋め込み型システムが、自動車又はトラック等の可動物に配置される時に有用である。本発明の一つの実施形態において、前記埋め込み型システムは、ＡｕｔｏＰＣである。
【００７８】
前記位置及び案内モジュールのためのＡＰＩに関するさらなる詳細は、「位置及び案内ＡＰＩの詳細な記述」という下位節に記載される。また、前記位置及び案内モジュール及び関連ＡＰＩによって使用されるデータ構造に関するさらなる詳細は、「位置及び案内システムのためのデータ構造の詳細な記述」という下位節に記載される。
【００７９】
３．スピーチ関連ＡＰＩ
前記アドオン技術モジュールは、アプリケーション使用のためにＡＰＩを露出するいくつかのスピーチ関連コンポーネントを含む。これらのコンポーネントは、テキスト・ツゥ・スピーチ・コンポーネント、音声からテキストへのコンポーネント、及び音声コマンド・コンポーネントを含む。一般的に、これらのコンポーネントは、入力及び出力装置が制限され、及びユーザの前記埋め込み型システムへの相互作用がスピーチを介する環境のためのものである。そのような環境の一例は、ＡｕｔｏＰＣである。前記ドライバは、自動車の操作中に手を使わなければならないので、ＡｕｔｏＰＣとの相互作用は、スピーチ・インターフェースを介する一方で、入力コマンドは、ユーザによって話され、及び前記ＰＣからの出力は、テキストからスピーチに変換される。
【００８０】
テキスト・ツゥ・スピーチＡＰＩに関するさらなる詳細は、「スピーチ・ツゥ・テキストＡＰＩの詳細な記述」という下位節において示される。前記音声コマンド及びスピーチ・ツゥ・テキストＡＰＩに関する、さらなる詳細は、「音声コマンドＡＰＩの詳細な記述」、「音声コマンドＡＰＩのためのデータ構造の詳細な記述」及び「ＡｕｔｏＰＣのための音声コマンドＡＰＩの詳細な記述」という下位節において示される。
【００８１】
４．メモリ外ＡＰＩ
メモリ外ＡＰＩは、前記ＧＷＥＳモジュールのコンポーネントである。このコンポーネントによって、埋め込み型システムの開発者は、前記オペレーティング・システムが、前記システムはアプリケーションをランさせ又はデータを配置させるのに利用可能なメモリが不足している、ということを検出する時に起こるデフォルト動作を入れ替えることができる。
【００８２】
前記メモリ外コンポーネントは、前記状態は、デスクトップ・システムよりも埋め込み型システムにおいてより発生しやすいので、制限されたリソースの環境のためのオペレーティング・システムに重要である。前記露出されたＡＰＩは、埋め込み型システム開発者の特定の必要性に適合するカスタマイズされたソフトウェアを呼び出すために、標準化された方法を、前記オペレーティング・システムに供給する。
【００８３】
前記メモリ外ＡＰＩに関するさらなる詳細は、「メモリ外ＡＰＩの詳細な記述」という下位節において示される。
【００８４】
５．データベースＡＰＩ
図２を参照して上述されたとおり、前記ファイル・システム・モジュール２１８は、任意で、データベース・コンポーネントを含んでもよい。前記データベース・コンポーネントによって、アプリケーションは、データベースを、ファイル・システム・オブジェクトとして生成し及び保守することができる。アプリケーションは、前記データベースを保守する様々なＡＰＩ機能を呼び出す。これらの機能は、新しいデータベースを生成し、現存のデータベースを開き、データベースを削除し、データベースにおける特定の記録を探し、データベースから記録を読み取り、及びデータベースに記録を書き込む機能を含む。さらに、前記データベースＡＰＩは、一定の種類のデータベースのリストを通して案内する機能を含む。前記データベースＡＰＩに関するさらなる詳細は、「データベースＡＰＩの詳細な記述」という下位節において提示される。
【００８５】
６．アクティブシンク・データ構造
アクティブシンクは、アドオン技術モジュールにおいて使用可能なコンポーネントである。前記アクティブシンク・コンポーネントは、アプリケーションが、二つのオブジェクトを比較して、前記オブジェクトの一つが、前記オブジェクトが「同期される」、すなわち同じになるように、更新される必要があるかを決定することができるようにするサービスを供給する。通常は、前記オブジェクトは、アプリケーション・データを含むファイル・システム・オブジェクトである。
【００８６】
アクティブシンクは、ハンドヘルドＰＣに適用される時に特に有用である。これは、前記ユーザがハンドヘルドＰＣ上で、ファイル・システム・オブジェクトにおいて保守されたデータをしばしば更新し、及び前記二つのファイルが同じデータを含むように、デスクトップＰＣ上でファイルを更新する必要があるからである。例えば、ハンドヘルドＰＣは通常、電話番号を含む情報のデータベースを保守する個人情報マネージャ等のアプリケーションを供給する。ユーザが、ハンドヘルドＰＣとデスクトップＰＣの両方で、電話番号の類似のデータベースを保守する場合、二つの電話ディレクトリが、ハンドヘルドＰＣ又はデスクトップＰＣデータベースのいずれかになされる更新を反映することが望ましい。アクティブシンクによって、ユーザをこれを達成することができる。
【００８７】
本発明の一つの実施形態において、アクティブシンクが、更新を対応するオブジェクトと正しく比較し及び更新を実行することができるようにするいくつかのデータ構造が採用される。第１のデータ構造は、ＣＯＮＦＩＮＦＯデータ構造である。このデータ構造は、二つの潜在的に対立する項目についての情報を検索するために使用される。本発明の一つの実施形態において、前記ユーザが、前記対立を解決するための選択肢を選択できるようにするために、アクティブシンク・サーバは、前記ＣＯＮＦＩＮＦＯデータ構造における情報を、ダイアロク・ボックスを介してユーザに示す。前記ＣＯＮＦＩＮＦＯデータ構造に関するさらなる詳細は、「同期ＡＰＩのためのデータ構造の詳細な記述」という下位節において示される。
【００８８】
前記アクティブ・シンク・コンポーネントによって使用される第２のデータ構造は、ＯＢＪＮＯＴＩＦＹ構造である。前記ＯＢＪＮＯＴＩＦＹデータ構造は、前記アクティブシンク・サービス・プロバイダに、前記ファイル・システムにおけるオブジェクトが、変更され又は削除されたことを通知するために使用される。前記ＯＢＪＮＯＴＩＦＹデータ構造に関するさらなる詳細は、「同期ＡＰＩ用データ構造の詳細な記述」という以下の記述において示される。
【００８９】
【表１】
0005937533.tif 000002
【表２】
0005937533.tif 000003
【表３】
0005937533.tif 000004
【表４】
0005937533.tif 000005
【表５】
0005937533.tif 000006
【表６】
0005937533.tif 000007
【表７】
0005937533.tif 000008
【表８】
0005937533.tif 000009
【表９】
0005937533.tif 000010
【００９０】
【表１０】
0005937533.tif 000011
【表１１】
0005937533.tif 000012
【表１２】
0005937533.tif 000013
【表１３】
0005937533.tif 000014
【表１４】
0005937533.tif 000015
【表１５】
0005937533.tif 000016
【表１６】
0005937533.tif 000017
【表１７】
0005937533.tif 000018
【表１８】
0005937533.tif 000019
【表１９】
0005937533.tif 000020
【表２０】
0005937533.tif 000021
【表２１】
0005937533.tif 000022
【表２２】
0005937533.tif 000023
【表２３】
0005937533.tif 000024
【表２４】
0005937533.tif 000025
【表２５】
0005937533.tif 000026
【表２６】
0005937533.tif 000027
【表２７】
0005937533.tif 000028
【表２８】
0005937533.tif 000029
【表２９】
0005937533.tif 000030
【表３０】
0005937533.tif 000031
【表３１】
0005937533.tif 000032
【表３２】
0005937533.tif 000033
【表３３】
0005937533.tif 000034
【表３４】
0005937533.tif 000035
【表３５】
0005937533.tif 000036
【表３６】
0005937533.tif 000037
【表３７】
0005937533.tif 000038
【表３８】
0005937533.tif 000039
【表３９】
0005937533.tif 000040
【表４０】
0005937533.tif 000041
【表４１】
0005937533.tif 000042
【表４２】
0005937533.tif 000043
【表４３】
0005937533.tif 000044
【００９１】
【表４４】
0005937533.tif 000045
【表４５】
0005937533.tif 000046
【表４６】
0005937533.tif 000047
【表４７】
0005937533.tif 000048
【表４８】
0005937533.tif 000049
【表４９】
0005937533.tif 000050
【表５０】
0005937533.tif 000051
【表５１】
0005937533.tif 000052
【表５２】
0005937533.tif 000053
【表５３】
0005937533.tif 000054
【表５４】
0005937533.tif 000055
【表５５】
0005937533.tif 000056
【表５６】
0005937533.tif 000057
【表５７】
0005937533.tif 000058
【表５８】
0005937533.tif 000059
【００９２】
【表５９】
0005937533.tif 000060
【表６０】
0005937533.tif 000061
【表６１】
0005937533.tif 000062
【表６２】
0005937533.tif 000063
【表６３】
0005937533.tif 000064
【表６４】
0005937533.tif 000065
【００９３】
【表６５】
0005937533.tif 000066
【表６６】
0005937533.tif 000067
【表６７】
0005937533.tif 000068
【表６８】
0005937533.tif 000069
【表６９】
0005937533.tif 000070
【表７０】
0005937533.tif 000071
【表７１】
0005937533.tif 000072
【表７２】
0005937533.tif 000073
【表７３】
0005937533.tif 000074
【表７４】
0005937533.tif 000075
【表７５】
0005937533.tif 000076
【表７６】
0005937533.tif 000077
【表７７】
0005937533.tif 000078
【表７８】
0005937533.tif 000079
【表７９】
0005937533.tif 000080
【表８０】
0005937533.tif 000081
【表８１】
0005937533.tif 000082
【表８２】
0005937533.tif 000083
【００９４】
【表８３】
0005937533.tif 000084
【表８４】
0005937533.tif 000085
【表８５】
0005937533.tif 000086
【表８６】
0005937533.tif 000087
【表８７】
0005937533.tif 000088
【表８８】
0005937533.tif 000089
【表８９】
0005937533.tif 000090
【表９０】
0005937533.tif 000091
【表９１】
0005937533.tif 000092
【表９２】
0005937533.tif 000093
【表９３】
0005937533.tif 000094
【表９４】
0005937533.tif 000095
【表９５】
0005937533.tif 000096
【表９６】
0005937533.tif 000097
【表９７】
0005937533.tif 000098
【表９８】
0005937533.tif 000099
【表９９】
0005937533.tif 000100
【表１００】
0005937533.tif 000101
【表１０１】
0005937533.tif 000102
【表１０２】
0005937533.tif 000103
【表１０３】
0005937533.tif 000104
【表１０４】
0005937533.tif 000105
【表１０５】
0005937533.tif 000106
【表１０６】
0005937533.tif 000107
【表１０７】
0005937533.tif 000108
【表１０８】
0005937533.tif 000109
【表１０９】
0005937533.tif 000110
【００９５】
【表１１０】
0005937533.tif 000111
【表１１１】
0005937533.tif 000112
【表１１２】
0005937533.tif 000113
【表１１３】
0005937533.tif 000114
【表１１４】
0005937533.tif 000115
【表１１５】
0005937533.tif 000116
【表１１６】
0005937533.tif 000117
【表１１７】
0005937533.tif 000118
【表１１８】
0005937533.tif 000119
【表１１９】
0005937533.tif 000120
【表１２０】
0005937533.tif 000121
【表１２１】
0005937533.tif 000122
【表１２２】
0005937533.tif 000123
【００９６】
【表１２３】
0005937533.tif 000124
【表１２４】
0005937533.tif 000125
【表１２５】
0005937533.tif 000126
【表１２６】
0005937533.tif 000127
【表１２７】
0005937533.tif 000128
【表１２８】
0005937533.tif 000129
【表１２９】
0005937533.tif 000130
【表１３０】
0005937533.tif 000131
【表１３１】
0005937533.tif 000132
【表１３２】
0005937533.tif 000133
【表１３３】
0005937533.tif 000134
【００９７】
【表１３４】
0005937533.tif 000135
【表１３５】
0005937533.tif 000136
【表１３６】
0005937533.tif 000137
【表１３７】
0005937533.tif 000138
【表１３８】
0005937533.tif 000139
【表１３９】
0005937533.tif 000140
【表１４０】
0005937533.tif 000141
【表１４１】
0005937533.tif 000142
【表１４２】
0005937533.tif 000143
【表１４３】
0005937533.tif 000144
【表１４４】
0005937533.tif 000145
【表１４５】
0005937533.tif 000146
【表１４６】
0005937533.tif 000147
【表１４７】
0005937533.tif 000148
【表１４８】
0005937533.tif 000149
【表１４９】
0005937533.tif 000150
【表１５０】
0005937533.tif 000151
【表１５１】
0005937533.tif 000152
【表１５２】
0005937533.tif 000153
【表１５３】
0005937533.tif 000154
【表１５４】
0005937533.tif 000155
【表１５５】
0005937533.tif 000156
【表１５６】
0005937533.tif 000157
【表１５７】
0005937533.tif 000158
【表１５８】
0005937533.tif 000159
【表１５９】
0005937533.tif 000160
【表１６０】
0005937533.tif 000161
【表１６１】
0005937533.tif 000162
【表１６２】
0005937533.tif 000163
【表１６３】
0005937533.tif 000164
【表１６４】
0005937533.tif 000165
【表１６５】
0005937533.tif 000166
【表１６６】
0005937533.tif 000167
【表１６７】
0005937533.tif 000168
【表１６８】
0005937533.tif 000169
【表１６９】
0005937533.tif 000170
【表１７０】
0005937533.tif 000171
【表１７１】
0005937533.tif 000172
【表１７２】
0005937533.tif 000173
【表１７３】
0005937533.tif 000174
【表１７４】
0005937533.tif 000175
【表１７５】
0005937533.tif 000176
【００９８】
【表１７６】
0005937533.tif 000177
【表１７７】
0005937533.tif 000178
【表１７８】
0005937533.tif 000179
【表１７９】
0005937533.tif 000180
【表１８０】
0005937533.tif 000181
【表１８１】
0005937533.tif 000182
【００９９】
【表１８２】
0005937533.tif 000183
【表１８３】
0005937533.tif 000184
【表１８４】
0005937533.tif 000185
【表１８５】
0005937533.tif 000186
【表１８６】
0005937533.tif 000187
【表１８７】
0005937533.tif 000188
【表１８８】
0005937533.tif 000189
【０１００】
【表１８９】
0005937533.tif 000190
【表１９０】
0005937533.tif 000191
【表１９１】
0005937533.tif 000192
【表１９２】
0005937533.tif 000193
【表１９３】
0005937533.tif 000194
【表１９４】
0005937533.tif 000195
【０１０１】
結論
リソースが制限されたオペレーティング・システムのモジュール及びコンポーネントのためのＡＰＩｓが説明されてきた。前記ＡＰＩｓは、そのようなリソースが制限されたシステムにおいて望ましい専用ハードウェア及びソフトウェアへのアクセスを供給する。
【０１０２】
ここでは特定の実施形態が示され及び説明されてきたが、通常の当業者には、同じ目的を達成するように計算されたあらゆる配列が、示された特定の実施形態と入れ替わってもよいことが評価されるであろう。この出願は、本発明のあらゆる応用又は変形を網羅することを目的とする。
【０１０３】
例えば通常の当業者は、本発明の実施形態が、リソースが制限された環境において実行されるものとして説明されてきた一方で、本発明の本質は、他の環境にも適応可能であることを評価するであろう。例えば、前記音声コマンドＡＰＩｓは、システムに入力を供給するための従来のキーボードおよびマウスを使用することが困難であるユーザを支援するために、標準デスクトップ・オペレーティング・システムに適応されることができる。
【０１０４】
この出願において使用されている用語は、これらの環境のすべてを含むことを意味する。それゆえに、本発明は、以下の特許請求の範囲及びそれに相当するものによってのみ制限されることを目的とすることは明らかである。
【０１０５】
以下に、本発明に係る、いくつかの実施の態様について記述する。
実施の態様１
コンピュータ・システムであって、
互いに動作できるように接続されたプロセッサ及びメモリを具備するコンピュータと；
前記プロセッサにおいて動作するオペレーティング・システムであって、手書き認識コンポーネントを有する前記オペレーティング・システムと；
前記オペレーティング・システムの制御下でランする、アプリケーション・プログラムと；
前記手書き認識コンポーネントと関連するアプリケーション・プログラム・インターフェースであって、前記アプリケーションからデータを受信し及びデータを前記アプリケーションに送信するように動作する前記アプリケーション・プログラム・インターフェースと
を具備することを特徴とするコンピュータ・システム。
実施の態様２
上記の実施の態様１に記載のコンピュータ・システムにおいて、
前記アプリケーション・プログラム・インターフェースは：
ソース手書きコンテクスト・ハンドルをアプリケーションから受け取り、及び前記アプリケーションに前記ソース手書きコンテクスト・ハンドルに基づいた、対象となる手書きコンテクスト・ハンドルを戻す第１のインターフェースと；
第１の手書きコンテクスト・ハンドルをアプリケーションから受け取り、前記手書き認識コンポーネントが、前記第１の手書きコンテクスト・ハンドルを壊すようにさせる第２のインターフェースと；
アプリケーションから入力手書きコンテクスト・ハンドル及びマウス・ストローク（mouse stroke）を表示する点の配列を受け取り、及び前記手書き認識コンポーネントが、前記点の配列を、前記入力手書きコンテクスト・ハンドルによって表示されたデータ構造に加えるようにさせる第３のインターフェースと；
アプリケーションから前記入力手書きコンテクスト・ハンドルを受け取り、及び前記手書き認識コンポーネントが、点の配列を、前記入力手書きコンテクスト・ハンドルによって表示された前記データ構造に加えるのを停止するようにさせる第４のインターフェースと；
アプリケーションから前記入力手書きコンテクスト・ハンドルを受け取り、及び前記手書きコンポーネントが前記入力手書きコンテクスト・ハンドルによって表示された前記データ構造を解釈するようにさせる第５のインターフェースと；
前記入力手書きコンテクスト・ハンドルを前記アプリケーションから受け取り、及び前記アプリケーションに、前記手書き認識コンテクストにおける点の配列に基づいた少なくとも一つの文字を戻す第６のインターフェースと；
前記入力手書きコンテクスト・ハンドル及びコンテクスト文字をアプリケーションから受け取り、及び前記手書き認識コンポーネントが、前記コンテクスト文字に基づいた前記点の配列を解釈するようにさせる第７のインターフェースと
を具備することを特徴とするコンピュータ・システム。
実施の態様３
手書き認識コンポーネントと接続しているアプリケーションと関連して、コンピュータ上の実行のために、コンピュータ読み取り可能媒体において具現化される一組のアプリケーション・プログラム・インターフェースであって：
ソース手書きコンテクスト・ハンドルをアプリケーションから受け取り、及び前記アプリケーションに、前記ソース手書きコンテクスト・ハンドルに基づいた、対象となる手書きコンテクスト・ハンドルを戻す第１のインターフェースと；
第１の手書きコンテクスト・ハンドルをアプリケーションから受け取り、前記手書き認識コンポーネントが、前記第１の手書きコンテクスト・ハンドルを壊すようにさせる第２のインターフェースと；
アプリケーションから入力手書きコンテクスト・ハンドル及びマウス・ストローク（mouse stroke）を表示する点の配列を受け取り、及び前記手書き認識コンポーネントが、前記点の配列を、前記入力手書きコンテクスト・ハンドルによって表示されたデータ構造に加えるようにさせる第３のインターフェースと；
アプリケーションから前記入力手書きコンテクスト・ハンドルを受け取り、及び前記手書き認識コンポーネントが、点の配列を、前記入力手書きコンテクスト・ハンドルによって表示された前記データ構造に加えるのを停止するようにさせる第４のインターフェースと；
アプリケーションから前記入力手書きコンテクスト・ハンドルを受け取り、及び前記手書きコンポーネントが前記入力手書きコンテクスト・ハンドルによって表示された前記データ構造を解釈するようにさせる第５のインターフェースと；
前記入力手書きコンテクスト・ハンドルを前記アプリケーションから受け取り、及び前記アプリケーションに、前記手書き認識コンテクストにおける前記点の配列に基づいた少なくとも一つの文字を戻す第６のインターフェースと；
前記入力手書きコンテクスト・ハンドル及びコンテクスト文字をアプリケーションから受け取り、及び前記手書き認識コンポーネントが、前記コンテクスト文字に基づいた前記点の配列を解釈するようにさせる第７のインターフェースと
を具備することを特徴とするアプリケーション・プログラム・インターフェース。
実施の態様４
コンピュータ・システムであって、
互いに動作するように接続されたプロセッサ及びメモリを具備するコンピュータと；
前記プロセッサにおいて動作するオペレーティング・システムであって、位置決めコンポーネントを有する前記オペレーティング・システムと；
前記オペレーティング・システムの制御下でランするアプリケーション・プログラムと；
前記位置決めコンポーネントと関連するアプリケーション・プログラム・インターフェースであって、前記アプリケーション・プログラムによって、前記位置決めコンポーネントが、位置決め装置からデータを送信し及び受信するようにさせることができるようにするように機能する前記アプリケーション・プログラム・インターフェースと
を具備することを特徴とするコンピュータ・システム。
実施の態様５
上記の実施の態様４に記載のコンピュータシステムにおいて、
前記位置決め装置が、グローバル・ポジショニング・システム（ＧＰＳ）を具備することを特徴とするコンピュータ・システム。
実施の態様６
上記の実施の態様５に記載のコンピュータ・システムにおいて、
前記ＧＰＳがアポロＧＰＳ（Apollo GPS）を具備することを特徴とするコンピュータ・システム。
実施の態様７
上記の実施の態様４に記載のコンピュータ・システムにおいて、
前記アプリケーション・プログラム・インターフェースが：
前記位置決め装置を参照する第１の装置ハンドルをアプリケーションから受け取り、及び前記アプリケーションに、位置決め装置が完全に閉じられたか否かを示す状態値を戻す第１のインターフェースと；
位置決め装置のリストを前記アプリケーションに戻す第２のインターフェースと；
アプリケーションから位置決め装置プロファイル（positioning device profile）を受け取り、及び前記アプリケーションに、前記位置決め装置を表示する第２の装置ハンドルを戻す第３のインターフェースであって、前記位置決め装置は開けられた状態で配置される前記インターフェースと
を具備することを特徴とするコンピュータ・システム。
実施の態様８
上記の実施の態様４に記載のコンピュータ・システムにおいて、
前記アプリケーション・プログラム・インターフェースが、
前記位置決め装置への第１のハンドル及び第１のデータ・タイプをアプリケーションから受け取り、及びデータ値を、前記第１のデータ・タイプに基づいて前記アプリケーションに戻す第４のインターフェースと；
前記位置決め装置への第２のハンドル、前記位置決め装置に送られるデータを含むデータ・バッファ、及び前記アプリケーションから第２のデータ・タイプを受け取り、及び前記アプリケーションに、前記データ・バッファが前記位置決め装置にうまく送られたか否かを示す状態を戻す第５のインターフェースと
を具備することを特徴とするコンピュータ・システム。
実施の態様９
上記の実施の態様８に記載のコンピュータ・システムにおいて、
前記第１のデータ・タイプは、：位置、速度、装置状態、時間、精密ステーション（accuracy station）、装置プロファイル、構成（configuration）、設定、差動ＧＰＳ状態及び暦を含む前記グループから選択されることを特徴とするコンピュータ・システム。
実施の態様１０
上記の実施の態様８に記載のコンピュータ・システムにおいて、
前記第２のデータ・タイプは、：位置、速度、装置状態、時間、アキュラシー・ステーション、装置プロファイル、コンフィギュレーション、設定、差動ＧＰＳ状態及び暦を含む前記グループから選択されることを特徴とするコンピュータ・システム。
実施の態様１１
上記の実施の態様４に記載のコンピュータ・システムにおいて、
前記アプリケーション・プログラム・インターフェースは：
前記位置決め装置への装置ハンドル、データ・タイプ、及び時間帯を前記アプリケーションから受け取り、及び前記位置決めコンポーネントが、各時間帯毎に一回、前記位置決め装置からデータを引き出すようにする第６のインターフェースであって、前記引き出されたデータは前記データ・タイプに基づいている前記インターフェースと；
前記位置決め装置への第２の装置ハンドル及びデータ・タイプをアプリケーションから受け取り、及び前記位置決めコンポーネントに、前記データ・タイプで特定された種類のデータを引き出すのを停止するようにさせる第７のインターフェースと
を具備することを特徴とするコンピュータ・システム。
実施の態様１２
上記の実施の態様４に記載のコンピュータ・システムにおいて、
前記アプリケーション・プログラム・インターフェースは更に、アプリケーションに、前記位置決め装置によって供給されるサービスの質を戻す第８のインターフェースを具備することを特徴とするコンピュータ・システム。
実施の態様１３
位置決めデータを保守するアプリケーションと関連して、コンピュータ上の実行のために、コンピュータ読み取り可能媒体において具現化される一組のアプリケーション・プログラム・インターフェースであって：
前記位置決め装置を参照する第１の装置ハンドルをアプリケーションから受け取り、及び前記アプリケーションに、前記位置決め装置がうまく閉じられたか否かを示す状態値を戻す第１のインターフェースと；
位置決め装置のリストを前記アプリケーションに戻す第２のインターフェースと；
位置決め装置プロファイルをアプリケーションから受け取り、及び前記アプリケーションに、前記位置決め装置を表示する第２の装置ハンドルを戻す第３のインターフェースであって、前記位置決め装置は開かれた状態で配置される前記インターフェースと
を具備することを特徴とするアプリケーション・プログラム・インターフェース。
実施の態様１４
上記の実施の態様１３に記載のアプリケーション・プログラム・インタフェースにおいて、さらに、
前記位置決め装置への第１のハンドル及び第１のデータ・タイプをアプリケーションから受け取り、及びデータ値を、前記第１のデータ・タイプに基づいて前記アプリケーションに戻す第４のインターフェースと；
前記位置決め装置への第２のハンドル、前記位置決め装置に送られるデータを含むデータ・バッファ、及び第２のデータ・タイプを前記アプリケーションから受け取り、及び前記アプリケーションに、前記データ・バッファが、前記位置決め装置にうまく送られたか否かを示す状態を戻す第５のインターフェースと
を具備することを特徴とするアプリケーション・プログラム・インターフェース。
実施の態様１５
上記の実施の態様１４に記載のアプリケーション・プログラム・インタフェースにおいて、
前記第１のデータ・タイプは：位置、速度、装置状態、時間、アキュラシー・ステーション、装置プロファイル、コンフィギュレーション、設定、差動ＧＰＳ状態、及び暦を含む前記グループから選択されることを特徴とするアプリケーション・プログラム・インターフェース。
実施の態様１６
上記の実施の態様１４に記載のアプリケーション・プログラム・インタフェースにおいて、
前記第２のデータ・タイプは：位置、速度、装置状態、時間、アキュラシー・ステーション、装置プロファイル、コンフィギュレーション、設定、差動ＧＰＳ状態、及び暦を含む前記グループから選択されることを特徴とするアプリケーション・プログラム・インターフェース。
実施の態様１７
上記の実施の態様１３に記載のアプリケーション・プログラム・インタフェースにおいて、さらに、
前記位置決め装置への装置ハンドル、データ・タイプ及び時間帯を前記アプリケーションから受け取り、及び前記位置決めコンポーネントが、各時間帯毎に一回、前記位置決め装置からデータを引き出すようにさせる第６のインターフェースであって、前記引き出されたデータは、前記データ・タイプに基づいている前記インターフェースと；
前記位置決め装置への第２の装置ハンドル及びデータ・タイプをアプリケーションから受け取り、及び前記位置決めコンポーネントが、前記データ・タイプによって特定された種類のデータを引き出すのを停止するようにさせる第７のインターフェースと
を具備することを特徴とするアプリケーション・プログラム・インターフェース。
実施の態様１８
上記の実施の態様１３に記載のアプリケーション・プログラム・インタフェースにおいて、さらに、アプリケーションに、前記位置決め装置によって供給されるサービスの質を戻す第８のインターフェースを具備することを特徴とするアプリケーション・プログラム・インターフェース。
【符号の説明】
【０１０６】
２１：処理装置
２２：システム・メモリ
２３：システム・バス
２４：読み取り専用メモリ（ＲＯＭ）
２５：ランダム・アクセス・メモリ（ＲＡＭ）
２６：ＢＩＯＳ
２７：ハード・ディスク・ドライブ
２８：磁気ディスク・ドライブ
２９：取り外し可能な磁気ディスク
３０：光学ディスク・ドライブ
【図１】
0005937533.tif 000196
【図２】
0005937533.tif 000197
【図３】
0005937533.tif 000198