(57)【要約】  コントロール（１００）を使用してデータを操作するシステムおよび方法が開示される。データはメモリに格納され、入力に応答してコントロール（１００）によって操作される。コントロール（１００）は、コントロール（１００）を管理する動作環境内で動作することができる。コントロール（１００）は、コントロール（１００）と互換性のあるコントロールを列挙したサポートメンバストリング（１１２）を有する。コントロール（１００）は、サポートメンバストリング（１２２〜１３６）内に列挙されたコントロールに相関するポインタを含むポインタアレイも有する。コントロール（１００）は、動作環境に対してそれ自体を識別するタイプストリング（１１０）も有する。コントロール（１００）は、他のコントロールがサポートメンバストリング（１１２）に列挙されているか否かを判断することにより、別のコントロールにアクセスする。列挙されている場合、コントロール（１００）は、さらなる属性およびメソッドを求めて他のコントロールにアクセスする。
2005515537.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサに接続されたメモリに格納されているデータを操作するコントロールであって、
前記プロセッサはデータを受け取り、動作環境内で前記データを関連付け、
前記コントロールは、
前記動作環境内の互換性のあるコントロールを列挙するサポートメンバストリングと、
前記互換性のあるコントロールを示すポインタを有するポインタアレイと、
を含み、
前記ポインタは、前記コントロールが前記互換性のあるコントロールにアクセスするときに使用される、コントロール。
【請求項２】
前記動作環境に対して前記コントロールを識別するタイプストリングをさらに含む、請求項１記載のコントロール。
【請求項３】
前記コントロールを前記動作環境に登録するキーストリングをさらに含む、請求項１記載のコントロール。
【請求項４】
前記キーストリングは前記コントロールから前記動作環境に送られる、請求項３記載のコントロール。
【請求項５】
自己参照ポインタをさらに含む、請求項１記載のコントロール。
【請求項６】
マネージャポインタをさらに含む、請求項１記載のコントロール。
【請求項７】
前記ポインタアレイは、さらなるコントロールにアクセスするためのさらなるポインタを含む、請求項１記載のコントロール。
【請求項８】
前記コントロールのｔｗｉｐ幅をさらに含む、請求項１記載のコントロール。
【請求項９】
前記コントロールのｔｗｉｐ高さをさらに含む、請求項１記載のコントロール。
【請求項１０】
動作環境内のデータを操作するコントロールを有するシステムであって、
前記コントロールにおいて受け取られるコマンドと、
前記コマンドに応答してアクセスすべき別のコントロールを示す、前記コントロール内のポインタアレイと、
前記動作環境のディスプレイと、
を備え、前記コントロールは、前記コマンドに応答して、前記別のコントロールを使用してメソッドを実行し、前記ディスプレイ上でイベントをイネーブルする、システム。
【請求項１１】
前記コマンドは前記コントロールにおけるユーザ入力に対応する、請求項１０記載のシステム。
【請求項１２】
前記別のコントロールは、前記コントロールによりアクセス可能なさらなる属性を含む、請求項１０記載のシステム。
【請求項１３】
前記別のコントロールは、前記コントロールによりアクセス可能なさらなるメソッドを含む、請求項１０記載のシステム。
【請求項１４】
前記コントロールは属性から構成される、請求項１０記載のシステム。
【請求項１５】
前記コントロールは、前記別のコントロールを列挙するサポートメンバストリングを含む、請求項１０記載のシステム。
【請求項１６】
前記動作環境はコンピューティング装置に存在し、前記コンピューティング装置はプロセッサ、メモリ、および実行可能プログラムを含む、請求項１０記載のシステム。
【請求項１７】
前記コントロールを使用して前記データを操作する、実行可能命令のプログラムをさらに含む、請求項１０記載のシステム。
【請求項１８】
前記データはグラフィカルデータである、請求項１０記載のシステム。
【請求項１９】
前記データは、前記動作環境によりアクセス可能なメモリに格納される、請求項１０記載のシステム。
【請求項２０】
ソフトウェアプログラムを実行する動作環境を有するコンピューティング装置であって、前記コンピューティング装置は、前記ソフトウェアプログラムの命令を格納したメモリに接続されたプロセッサを備え、前記コンピューティング装置は、
第１のタイプストリングおよび第１のポインタアレイを有する第１のコントロールであって、前記第１のタイプストリングは前記動作環境に対して前記第１のコントロールを識別する、前記第１のコントロールと、
第２のタイプストリングを有する第２のコントロールであって、前記第２のタイプストリングは前記動作環境に対して前記第２のコントロールを識別する、前記第２のコントロールと、
前記第１のコントロールが前記第２のコントロールにアクセスするように、前記第１のコントロールに対して前記第２のコントロールを識別する、前記第１のポインタアレイ内の第１のポインタと、
を含む、コンピューティング装置。
【請求項２１】
前記第２のコントロールは、前記第２のコントロールが前記第１のコントロールにアクセスするように、前記第２のポインタアレイ内の第２のポインタを含む、請求項２０記載のコンピューティング装置。
【請求項２２】
前記第２のタイプストリングは、前記第１のコントロールのサポートメンバストリング内に列挙される、請求項２０記載のコンピューティング装置。
【請求項２３】
前記第１のコントロールは前記第２のコントロールからの属性にアクセスする、請求項２０記載のコンピューティング装置。
【請求項２４】
前記第１のコントロールは前記第２のコントロールからのメソッドにアクセスする、請求項２０記載のコンピューティング装置。
【請求項２５】
前記第１のコントロールは前記メモリに格納されているデータを操作する、請求項２０記載のコンピューティング装置。
【請求項２６】
動作環境内の第１のコントロールから第２のコントロールにアクセスする方法であって、前記動作環境は前記第１および第２のコントロールを利用するソフトウェアプログラムを含み、前記方法は、
前記第２のコントロールが前記第１のコントロールのサポートメンバストリング内に列挙されているか否かを判断することと、
前記サポートメンバストリングに従って、前記第１のコントロール中のポインタアレイ内のポインタを識別することと、
前記ポインタに従って前記第２のコントロールにアクセスすることと、
を含む、方法。
【請求項２７】
前記サポートメンバストリングから前記第２のコントロールのタイプストリングを検索することをさらに含む、請求項２６記載の方法。
【請求項２８】
前記第１のコントロールを前記第２のコントロールにアクセスさせるコマンドを、前記第１のコントロールにおいて受け取ることをさらに含む、請求項２６記載の方法。
【請求項２９】
前記第１のコントロールを使用して前記ソフトウェアプログラムのデータを検索することをさらに含む、請求項２６記載の方法。
【請求項３０】
前記検索することは、前記動作環境に接続されたメモリから前記データを検索することを含む、請求項２９記載の方法。
【請求項３１】
前記データをデータ記憶装置から前記メモリにダウンロードすることをさらに含む、
請求項３０記載の方法。
【請求項３２】
動作環境において実行中のソフトウェアプログラムのデータを操作するシステムであって、
前記動作環境により識別され、ユーザ入力に応答して前記データを操作するコントロールと、
前記コントロールによりアクセス可能な別のコントロールを識別する、前記コントロール内のポインタアレイと、
を含み、前記動作環境は前記ポインタアレイ内のポインタを、前記別のコントロールを識別するようにセットする、システム。
【請求項３３】
前記コントロールは、前記ポインタに相関する前記別のコントロールを列挙するサポートメンバストリングを含む、請求項３３記載のシステム。
【請求項３４】
複数のコントロールを有する動作環境に接続されたメモリ内に格納されているデータを操作する方法であって、
第１のコントロールが第２のコントロールと互換であるか否かを判断することと、
前記第２のコントロールに相関する、前記第１のコントロール内のポインタを識別することと、
前記第１のコントロールから前記第２のコントロールにアクセスすることと、
前記第１のコントロールに従って、前記メモリからデータを検索することと、
を含む方法。
【請求項３５】
前記動作環境を介して、前記第１のコントロールに対して前記第２のコントロールを識別することをさらに含む、請求項３４記載の方法。
【請求項３６】
前記検索することは、前記メモリから前記データをダウンロードすることを含む、請求項３４記載の方法。
【請求項３７】
キーストリングに従って前記第１のコントロールを許容することをさらに含む、請求項３４記載の方法。
【請求項３８】
前記第２のコントロールからの、アクセスされた属性に従って前記データを操作することをさらに含む、請求項３４記載の方法。
【請求項３９】
前記第２のコントロールからの、アクセスされたメソッドに従って前記データを操作することをさらに含む、請求項３４記載の方法。
【請求項４０】
前記第１のコントロールにおけるイベントを使用して前記データを操作するコマンドを、前記第１のコントロールにおいて受け取ることをさらに含む、請求項３４記載の方法。
【請求項４１】
動作環境内の別のコントロールにアクセスするようにコントロールを構築する方法であって、
前記動作環境から、前記別のコントロールの、変更されたタイプストリングを前記コントロールにおいて受け取ることと、
前記変更されたタイプストリングを前記コントロール内のサポートメンバストリング内に配置することと、
前記変更されたタイプストリングに従って、前記別のコントロールにアクセスするポインタを前記コントロール内に割り当てることと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の背景］
［発明の分野］
本発明は、電子対話式通信システムに関し、特に本発明は、ソフトウェア動作環境内のコントロール（control）を使用して、コントロール間の分散対話式通信を改良したシステムおよび方法に関する。
【０００２】
［関連出願の相互参照］
本願は、２００１年１２月２１日に出願され、参照により本明細書に援用される米国仮特許出願第６０／３４１，８６２号、名称「Electronic Interactive Communication System and the Method Therefor」の利益を主張するものである。
【０００３】
［関連分野の考察］
近年、コンピューティングプラットフォームの数は著しく増大した。手のひらサイズのコンピューティング装置および／または可搬式コンピューティング装置が一般的になった。さらに、特定のオペレーティングシステムをそれぞれ有する、バージョンの異なる特定のプラットフォームの数も同様に増大した。コンピューティングプラットフォーム上で実行する様々なソフトウェアプログラムも作成された。従来のコンピューティング装置は、情報およびプログラムコードをメモリに予め格納するか、またはそのプログラムを実行できるようにする情報を別の装置から受け取ることができる。複数のコンピューティングプラットフォームおよびオペレーティングシステムを使用する場合、プログラムおよび情報は、多くの動作環境で実行する能力を使用して理解する必要がある。
【０００４】
ソフトウェアコントロールは、異なるプラットフォーム上で動作している異なるプログラムを使用可能にすることができる。ソフトウェアコントロールは、プログラムの機能を高めるプログラムモジュールであることができる。コントロールは、ユーザがコンピューティングプラットフォームのメモリに格納されている情報を操作できるようにするユーザインタフェース機能としての役割を果たすことができる。コントロールは、統合され、プログラムの通常部分として見える既存の構成要素を呼び出すことにより機能を追加することが可能である。しかし一般に、これらコントロールは起動されるまで休止しており、受動的にコンピューティング環境内に存在していない場合がある。この欠点により、コントロールの有効性が低減し、ソフトウェア環境内で、また他のプログラムおよびコントロールと対話するコントロールの能力が制限される恐れがある。さらに、従来のコントロールは、他のコントロールの属性およびメソッドを、そのコントロールをアクティブにさせずにアクセスすることができないものがある。
【０００５】
［発明の概要］
したがって、本発明は、コントロールを使用して、コンピューティングプラットフォーム上でデータを操作するシステムおよび方法を対象とする。
【０００６】
本発明のさらなる特徴および利点は、以下の説明に示し、説明から明らかになる部分もあれば、本発明の実施により学ぶことができるものもある。本発明の目的および他の利点は、本明細書の書面での説明および特許請求の範囲、ならびに添付図面において特に指摘される構造によって認識し達成されるであろう。
【０００７】
これらおよび他の利点を達成するため、本発明の目的によれば、実施され広く説明されるように、プロセッサに接続されたメモリに格納されているデータを操作するコントロールについて開示される。プロセッサは、動作環境内のデータに関連付けられるデータを受け取ることができる。コントロールは、動作環境内の互換性のあるコントロールを列挙するサポートメンバストリングも含む。コントロールは、互換性のあるコントロールのポインタを有するポインタアレイも含む。ポインタは、コントロールが互換性のあるコントロールにアクセスするときに使用される。コントロールは、コントロールを動作環境に登録するキーストリングも含むことができる。
【０００８】
開示される実施形態によれば、動作環境内の第１のコントロールから第２のコントロールにアクセスする方法が開示される。動作環境は、第１および第２のコントロールを利用するソフトウェアプログラムを含む。方法は、第２のコントロールが第１のコントロールのサポートメンバストリング内に列挙されているか否かを判断することを含む。方法は、サポートメンバストリングに従って、第１のコントロール中のポインタアレイ内のポインタを識別することも含む。方法は、ポインタに従って第２のコントロールにアクセスすることも含む。
【０００９】
開示される実施形態によれば、動作環境内でデータを操作するコントロールを有するシステムが開示される。システムは、コントロールにおいて受け取るコマンドを含む。システムは、コマンドに応答してアクセスすべき別のコントロールを示す、コントロール内のポインタアレイも含む。システムは動作環境のディスプレイも備える。コントロールは、コマンドに応答して、別のコントロールを使用してメソッドを実行し、ディスプレイ上でイベントをイネーブルする。
【００１０】
開示される実施形態によれば、ソフトウェアプログラムを実行する動作環境を有するコンピューティング装置が開示される。コンピューティング装置は、ソフトウェアプログラムの命令を格納したメモリに接続されたプロセッサを備える。コンピューティング装置は、第１のタイプストリングおよび第１のポインタアレイを有する第１のコントロールを含む。第１のタイプストリングは、動作環境に対して第１のコントロールを識別する。コンピューティング装置は、第２のタイプストリングを有する第２のコントロールも含む。第２のタイプストリングは、動作環境に対して第２のコントロールを識別する。コンピューティング装置は、第１のコントロールが第２のコントロールにアクセスするように、第１のコントロールに対して第２のコントロールを識別する、第１のポインタアレイ内の第１のポインタも含む。
【００１１】
開示される実施形態によれば、動作環境において実行中のソフトウェアプログラムのデータを操作するシステムが開示される。システムは、動作環境により識別されるコントロールを含む。コントロールは、ユーザ入力に応答してデータを操作する。システムは、コントロールによりアクセス可能な別のコントロールを識別する、コントロール内のポインタアレイも含む。動作環境は、別のコントロールを識別するようにポインタアレイ内のポインタをセットする。
【００１２】
開示される実施形態によれば、複数のコントロールを有する動作環境に接続されたメモリ内に格納されているデータを操作する方法が開示される。方法は、第１のコントロールが第２のコントロールと互換性があるか否かを判断することを含む。方法は、第２のコントロールに相関する、第１のコントロール内のポインタを識別することも含む。方法は、第１のコントロールから第２のコントロールにアクセスすることも含む。方法は、第１のコントロールに従って、メモリからデータを検索することも含む。
【００１３】
開示される実施形態によれば、動作環境内の別のコントロールにアクセスするコントロールを構築する方法が開示される。方法は、動作環境から、別のコントロールの変更されたタイプストリングをコントロールにおいて受け取ることを含む。方法は、変更されたタイプストリングをコントロール内のサポートメンバストリングに配置することも含む。方法は、変更されたタイプストリングに従って、別のコントロールにアクセスするポインタをコントロール内に割り当てることも含む。
【００１４】
上記概説および以下の詳細な説明は両方とも例示的かつ説明的なものであり、特許請求される本発明のさらなる説明の提供を意図することを理解されたい。
【００１５】
本発明のさらなる理解を提供するために包含され、本明細書に組み込まれて本明細書の一部をなす添付図面は、本発明の実施形態を示すとともに、説明と併せて本発明の原理を説明する役割を果たす。
【００１６】
［好ましい実施形態の詳細な説明］
これより、本発明の好ましい実施形態を詳細に参照し、その例を添付図面に示す。
【００１７】
図１は、本発明の一実施形態によるソフトウェアコントロール１００のデータ構造のブロック図を示す。コントロール１００は、動作環境内に配置され、その環境において実行されるソフトウェアコードのブロックであることができる。コントロール１００は、コードストリングおよびメモリロケーションポインタで構成することができる。コントロール１００は、電子的再利用可能情報技術環境（e-Reusable Information Technology Environment）（「ｅＲＩＴＥ」）コントロールとして知られている場合もある。コントロール１００は、コンピューティングプラットフォーム上のメモリ内に格納することができる。代替として、コントロール１００は、コンピューティングプラットフォーム上のメモリにダウンロードすることにより、動作環境に「投下されて」もよい。動作環境中に放り込まれた場合、コントロール１００は動作環境内の他のコントロールと互換性があるべきである。
【００１８】
動作環境は、プロセッサ、メモリ、およびソフトウェアコード等、プラットフォームでの動作命令を実行する手段を含むいずれのコンピューティングプラットフォームにも存在することができる。コンピューティングプラットフォームは、デスクトップ、可搬式コンピュータ、ラップトップ、個人情報端末（「ＰＤＡ」）等、任意のコンピュータを含むユニットまたは装置として知られている場合もある。コンピューティングプラットフォームは、コンピュータのネットワークまたは他のデータ交換装置であってもよい。
【００１９】
コントロール１００は、動作環境内のプログラムを強化するために使用される多くの異なるタイプのコントロールの１つであることができる。たとえば、コントロールが装置上に地図を表示する機能を提供するものである場合、このコントロールは地図コントロール、コンパスコントロール等であることができる。コントロール１００は、装置のモードコントロールまたはデータコントロールであってもよい。コントロール１００は、情報コントロール、トラックデータコントロール、またはツリーコントロールであってもよい。コントロール１００は、ソフトウェアプログラムにより使用されるメモリ内に格納されたデータを操作するユーザインタフェースとしての役割を果たすことができる。たとえば、コントロール１００はユーザと対話して、ハンドヘルド装置に格納されている地図を操作することが可能である。異なるコントロールの弁別的な面は、それぞれの構造ではなく、それぞれの機能にあることができる。したがって、コントロール１００は、オペレーティングシステムまたはそこで実行されているプログラムに提供することができる機能に限定されない。
【００２０】
コントロール１００は、データ構造に具現されるがこれらに限定されない、様々な属性を有することが可能である。コントロール１００は、コントロール１００の全体的なタイプを表すタイプストリング１１０を含む。タイプストリング１１０により、動作環境は他のコントロールの中からコントロール１００を識別することができる。たとえば、コントロール１００は、タイプストリング１１０により地図コントロールまたはコンパスコントロールとして識別することができる。タイプストリング１１０は、入出力機能を有してもよい。
【００２１】
コントロール１００はサポートメンバストリング１１２も含む。サポートメンバストリング１１２は、コントロール１００がアクセス可能な他のコントロールを列挙する、カンマで区切られたストリングを含む。たとえば、コンパスコントロールを使用して地図コントロールを移動することができる。したがって、地図コントロールは、コンパスコントロールのサポートメンバストリング１１２に列挙される。サポートメンバストリング１１２内のコントロールは、互換性のあるコントロールとして知られている場合もある。さらに、列挙された互換性のあるコントロールは、動作環境により認識されているはずである。サポートメンバストリング１１２は、入出力機能も有してよい。コントロール１００は、他のコントロールから見た場合のような、コントロール１００それ自体へのポインタとしての役割を果たす自己参照ポインタ１１４も含むことができる。自己参照ポインタ１１４により、コントロール１００は、左、上、可視等、自己参照ポインタ１１４を使用しなければコントロール１００にアクセス不可能である属性のいくつかを操作することができる。自己参照ポインタ１１４は、入力機能も有してよい。
【００２２】
コントロール１００はマネージャポインタ１１６も含む。マネージャポインタ１１６はｅＲＩＴＥポインタとして知られている場合もある。マネージャポインタ１１６は、オペレーティングシステム内のマネージャコントロールを指すことができる。マネージャコントロールは、実行されたプログラムのプロジェクトマネージャであることもでき、または代替として、動作環境内で受動的に実行されて、コントロールを管理し、かつコントロールへの情報およびコントロールからの情報を管理することができる。マネージャポインタ１１６は、コントロール１００がプロジェクトマネージャの露出されている属性（property）またはメソッドのいずれかにアクセスしたい場合に使用することができる。マネージャポインタ１１６は入力機能を有してよい。
【００２３】
コントロール１００はコントロールポインタアレイ１２０も含む。コントロールポインタアレイ１２０は、コントロールが現在のプログラムまたはプロジェクトに存在する場合、サポートメンバストリング１１２に列挙されているコントロールへのポインタのアレイである。たとえば、コントロールポインタアレイは、ポインタ１２２、１２４、１２６、１２８、１３０、１３２、１３４、および１３６、最大でｎ番目のポインタまで含むことができる。ポインタ１２２〜１３６は、コントロール１００が列挙されているコントロールの露出した属性またはメソッドにアクセスしたいときに使用することができる。たとえば、地図のコントロール「パン」メソッドにアクセスすることができる。ポインタ１３０は、地図コントロールを示すものとして識別することができる。コントロールポインタアレイ１２０は入出力機能を有してよい。
【００２４】
キーストリング１４０は、コントロール１００の動作環境のセキュリティ方式の一部であることができる。管理コントロールは、コントロール１００を識別して、コントロール１００を登録するかまたはセキュリティチェックを行うときにキーストリング１４０を使用することができる。キーストリング１４０は特別な入出力機能を有してよい。ｔｗｉｐ幅１４２はコントロール１００の幅をｔｗｉｐ単位で示す。ｔｗｉｐ高さ１４４はコントロール１００の高さをｔｗｉｐ単位で示す。ｔｗｉｐ幅１４２およびｔｗｉｐ高さ１４４は出力機能を有することができ、また、コントロール１００が表示される場合に適用することが可能である。
【００２５】
図２は、本発明の一実施形態による動作環境内のコントロール２００を示す。コントロール２００は、コントロール２００に特定のメソッドまたはアクションを実行させるコマンドをユーザから受け取ることができる。アクションを実行するにあたり、コントロール２００は、コントロールポインタアレイ１２０等、コントロールポインタアレイを使用して、動作環境内の他のコントロールにアクセスすることができる。ポインタは、サポートメンバストリング１１２のようなサポートメンバストリングに列挙されているコントロール２００がアクセス可能なコントロールを示すはずである。
【００２６】
コントロール２００は、リフレッシュ２１０、再初期化２１２、およびシャットダウン２１４等のコマンドを受け取ることができる。リフレッシュ（ｒｅｆｒｅｓｈ）２１０は、コントロール２００上のいずれのグラフィカル表示もリペイントさせるリフレッシュメソッドを表す。リフレッシュメソッドは、ディスプレイが、移動しているターゲットまたはアイコンを示すなど現在のものに更新されるときに使用されるべきである。再初期化（ｒｅｉｎｉｔｉａｌｉｚｅ）２１２は、コントロール２００にそれ自体を「スタートアップ」状態にリセットさせる再初期化メソッドを表す。スタートアップ状態は、コントロール２００がデータ構造内に値を持たない、またはメモリから検索された事前設定値を有する状態であることができる。たとえば、すべてのカウンタをリセットすることができ、グラフィックスおよび属性がそれぞれの元の状態に戻る。代替として、スタートアップ状態は、共通デフォルトであるコントロール２００の任意の状態を示すこともできる。再初期化メソッドは、コントロール２００のユーザが変わる場合に使用されるべきである。
【００２７】
シャットダウン（ｓｈｕｔｄｏｗｎ）２１４は、動作環境において実行されているソフトウェアプログラム、またはプロジェクト全体をディセーブルするシャットダウンメソッドを表す。再開するには、プログラムを再スタートすべきである。シャットダウンメソッドは、タイマおよびパスワードダイアログと併せて使用されて、放置されているユニットが未許可の人物に使用されないようにすることができる。シャットダウン２１４は、確認および識別手段等、動作環境により採用される他のセキュリティ対策と異なる場合がある。
【００２８】
イベント２３０は、コントロール２００がとるべきアクションである。イベント２３０は、クリック、ダブルクリック、キーダウン、キープレス、キーアップ、マウスダウン、マウス移動、マウスアップ等を含むことができる。コントロール２００は、要求されたメソッドを実行するとき、装置に格納され、動作環境で実行されているソフトウェアプログラムによって使用されているデータを操作するイベントを実行することができる。
【００２９】
コントロール２００はさらなるコマンドを受け取ることができる。さらに、コントロール２００はさらなるメソッドを実行することができ、さらなるイベントを生じさせることができる。コントロール２００は、コントロール２００内のポインタアレイに従って、メソッドを完了するにあたり他のコントロールおよびそれぞれの属性にアクセスすることが可能である。
【００３０】
図３は、本発明の一実施形態による動作環境３１０内の複数のコントロール３２０、３２４、および３２８を示す。動作環境３１０はコンピューティング装置３００に存在することができる。上に明らかにしたように、コンピューティング装置３００はプロセッサ、プロセッサに接続されたメモリ、およびソフトウェアコード等、メモリに格納されている命令を実行する手段を備える。コンピューティング装置３００に格納されているソフトウェアプログラムは、動作環境３１０内で実行することができる。
【００３１】
コントロール３２０、３２４、および３２６は、装置３００に格納されているデータを操作するにあたり、動作環境３１０内で実行されているソフトウェアプログラムと協働することができる。好ましくは、コントロール３２０、３２４、および３２６はユーザコマンドに従ってグラフィカルデータを操作することができる。コントロール３２０、３２４、および３２６は、動作環境３１０内のユーザインタフェースとしての役割を果たして、機能をソフトウェアプログラムに提供することができる。
【００３２】
コントロール３２０はポインタアレイ３２２を含む。上に明らかにしたように、コントロールはコントロールポインタアレイを使用して、コントロールのサポートメンバストリング内に列挙された互換性のあるコントロールの属性およびメソッドにアクセスすることができる。したがって、ポインタアレイ３２２は、コントロール３２４および３２８内の属性およびメソッドにアクセスすることが可能である。コントロール３２４および３２８は、コントロール３２０のサポートメンバストリング内に列挙されているはずである。代替として、たとえば、コントロール３２８がコントロール３２０のサポートメンバストリング内に列挙されていない場合、ポインタアレイ３２２はコントロール３２８の属性およびメソッドにアクセスすることができない。コントロール３２４はポインタアレイ３２６を含み、コントロール３２８はポインタアレイ３３０を含む。
【００３３】
たとえば、コントロール３２２はコンパスコントロールであることができ、コントロール３２８は地図コントロールであることができる。コントロール３２８はコンパスコントロールを必要としなくてもよいが、コントロール３２２は、コンピューティング装置３００のいずれの使用にも地図コントロールを必要とし得る。ユーザが、コンピューティング装置３００に表示されているコンパスアイコン上の「北（Ｎｏｒｔｈ）」を示す場合、コントロール３２２は地図グラフィックを北に進めたい。したがって、コントロール３２２はサポートメンバストリングにコントロール３２８を列挙し、ポインタアレイ３２２中にコントロール３２８へのポインタを有する。
【００３４】
コントロール３２４は、動作環境３１０に配置されているマクロコントロールであることができる。コントロール３２４は、マクロコントロールとして、地図コントロールであるコントロール３２８に直接関係するものではないかもしれない。しかし、コントロール３２８は、コントロール３２４を動作環境３１０に配置されているものとして認識している。動作環境３１０は、コントロール内のストリングから初期情報を受け取り、コントロール３２０、３２４、および３２８が情報を互いに交換できることを保証することにより、これら関係に役立つ。したがって、動作環境３１０内にコントロール３２０、３２４、および３２８を配置する順序は要因ではない。したがって、コントロール３２０、３２４、および３２８は、動的かつ自動的に組み込むことが可能である。
【００３５】
動作環境３１０は、コントロール３２０、３２４、および３２８を確認することにより、マネージャとしての役割を果たすことができる。動作環境３１０は、各コントロールのキーストリングに関するセキュリティ手続きを実行することができる。動作環境３１０は、各コントロールから送られるキーストリングに添付されるランダムに生成された数を組み込むことができる。受け取ったストリングに特定のストリングを追加して、コントロール３２０、３２４、および３２８に返送することができる。変更されたストリングの状態に応じて、コントロール３２０、３２４、および３２８を動作環境３１０に登録することができる。
【００３６】
図４は、本発明の一実施形態によるコントロールにアクセスするフローチャートを示す。好ましくは、コントロールにアクセスして、そのコントロールをホストしているコンピューティング装置に格納されているデータを操作することができる。上に明らかにしたように、コントロールにおいてコマンドを受け取ることにより、ステップ４００が実行される。コマンドは、データを検索してコマンドを実行する前に、属性およびメソッドを求めてコントロールを他のコントロールにアクセスさせるものであることができる。たとえば、地図コントロールは、リフレッシュコマンドを受け取ることができ、メモリから地図データを検索する前に、属性またはメソッドのために他のコントロールにアクセスしたい。コマンドを受け取ったコントロールは受信コントロールとして知ることもできる。
【００３７】
他のコントロールにアクセスすべきか否かを判断することにより、ステップ４０２が実行される。アクセスすべき場合、受信コントロールにより承認され識別されているコントロールについて、受信コントロールのサポートメンバストリングをチェックすることにより、ステップ４０４が実行される。コントロールが動作環境に追加されるとき、受信コントロールにとって関心のあるコントロールをサポートメンバストリングに列挙することができる。動作環境は、コントロールの割り振りおよび識別を管理し、コントロールをサポートメンバストリングに列挙すべきであることを受信コントロールに示すことができる。
【００３８】
アクセスすべきコントロールがサポートメンバストリング内にあるか否かを判断することにより、ステップ４０６が実行される。ない場合、コントロールにアクセスしないことによりステップ４０８が実行される。動作環境にエラーを示すことができる。代替として、動作環境および／または受信コントロールは何もしなくてもよい。ある場合、サポートメンバストリングに列挙されたコントロールに関連するポインタを識別することにより、ステップ４１０が実行される。受信コントロールは、異なるアクセス可能なコントロールへのポインタを含むコントロールポインタアレイを有する。
【００３９】
ポインタによって示されたコントロールにアクセスすることにより、ステップ４１２が実行される。したがって、受信コントロールは、動作環境内の別のコントロールと、そのコントロールを「オン」にすることなく、リンクすることができる。さらに、受信コントロールは、他のコントロールの属性またはメソッドにアクセスまたは検索するためにシャットダウンする必要がないはずである。コントロールは、動作環境またはコントロールを使用しているソフトウェアのメモリ要件に過度に負担をかけることなく当たり障りのないように対話することができる。
【００４０】
コンピューティングプラットフォーム上のメモリまたは他のデータ記憶装置から、コマンドの実行に要求されるデータを検索することにより、ステップ４１６が実行される。ステップ４１６は、ステップ４０２がいいえであるか、またはステップ４０８後、受信コントロールが所望のコントロールにアクセスすることができない場合にも実行することができる。たとえば、地図コントロールの場合、ステップ４１６は、メモリから所望の地図グラフィカルデータを検索するか、または別のソースから情報をダウンロードすることができる。コントロールが受け取ったコマンドを実行することにより、ステップ４１８が実行される。
【００４１】
コントロールについて一般に開示したが、特定のタイプのコントロールを明らかにされた実施形態に適用することが可能である。こういったコントロールを使用して、コンピューティング装置上のグラフィカルデータを操作したり、または新しいデータを受け取ったときに、表示されているグラフィックを更新することができる。しかし、開示されたコントロールは例示のみを目的とし、開示された実施形態に適用することが可能なコントロールは、必ずしも後に開示したコントロールに対応するわけではない。
【００４２】
１つのコントロールは、ユーザが適切なデータを指示する、または自動リフレッシュを実施できるようにするデータコントロールであることができる。情報コントロールは、動作環境内にフィルタをセットアップして、冗長または誤った情報が交換されるのを防止することができる。フィルタは、コンピューティングプラットフォーム内のセキュリティ特徴の一部であってよく、コントロールを含め、異なるソフトウェア構成要素に異なる能力を与えることができる。
【００４３】
ディスプレイ上のボタンにより、地図、ロケーションデータ等、どの情報を検索するかをマネージャに通知できるようにするモードコントロールを実施してもよい。モードのタイプにより、情報をどのようにコンピューティング装置に表示するかが決まる。たとえば、異なる地図を異なるシナリオに使用することができる。ディスプレイ上のボタンをクリックすることで、地図を変更することができる。
【００４４】
動作環境がそれ自体を外部世界に向けて別様に表示または提示できるようにするアクティブトラックデータコントロールも実施することができる。ディスプレイ上のデータの各トラックは、地図等、表示されているグラフィックの上を浮動する別個のエンティティ（entity）であることができる。トラックは、マウスまたはカーソルの命令に応答することができる。トラックのデータは、好ましくはワイヤレス様式でコンピューティング装置において受信することができる。情報を受け取ると、トラックを、トラックがグラフィック表示の上を浮動するときに更新することができる。
【００４５】
本発明の精神または範囲から逸脱することなく、様々な変更および変形を本発明の中枢機構の組立に行うことが可能なことが当業者に明らかになろう。したがって、本発明は、本発明の変更および変形を、いずれかの特許請求項およびそれらの等価物の範囲内にある限りにおいて、保護範囲に含むことを意図する。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施形態によるソフトウェアコントロールのデータ構造のブロック図を示す。
【図２】本発明の一実施形態による動作環境内のコントロールを示す。
【図３】本発明の一実施形態による動作環境内の複数のコントロールを示す。
【図４】本発明の一実施形態によるコントロールにアクセスするフローチャートを示す。
【図１】
2005515537.tif 000003
【図２】
2005515537.tif 000004
【図３】
2005515537.tif 000005
【図４】
2005515537.tif 000006
【国際調査報告】
2005515537.tif 000007