説明

リソースの互換性を動的に検証するコンピュータ・システムおよび方法並びに記録媒体

【課題】ユーザ・インターフェース、リソース・ローダおよびレジストリ・リソース・データベースを有するコンピュータ・オペレーティング・システムにおいて、リソース・モジュールのリソース・コンテンツがオペレーティング・システムの最新バージョンと互換性があるか否か動的に検証する方法およびシステムを提供する。
【解決手段】リソースの要求を取得すると、リソース・ローダは、代替リソース・モジュールからリソースをロードする前に、リソース・モジュールがオペレーティング・システムとの互換性を保っていることを検証する。本発明の一実施形態によれば、オペレーティング・システムは、多言語ユーザ・インターフェースを有し、言語固有のリソース・モジュールを利用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して言えば、コンピュータのソフトウエアに関し、特にオペレーティング・システム内部のリソース・モジュールの互換性を動的に検証するシステムおよび方法に関する。
【背景技術】
【0002】
世界的な市場にソフトウエアを流通させるには、種々のユーザにアクセス可能なユーザ・インターフェースが必要となる。通常、インターフェースとは、2つのエレメント間で接続を行い、これらが互いに作用し合い、情報を交換することができるようにするポイントのことである。コンピュータ・ソフトウエアの目的では、インターフェースとは、通例、プログラムがユーザ、オペレーティング・システムを含むその他のプログラム、およびコンピュータのハードウエアと共に動作することを可能にするソフトウエアである。プログラムがユーザと動作することを可能にするインターフェースのことをユーザ・インターフェースと呼び、コマンド・ライン・インターフェース、メニュー・ドリブン(menu-driven)、またはグラフィカル・ユーザ・インターフェースが可能である。
【0003】
例えば、異なる国/領域において共通のユーザ・インターフェースの使用を促進するために、ユーザ・インターフェースは多数の言語に対応しなければならない。最も単純な形態では、ソフトウエア・プロバイダは、手作業でユーザ・インターフェース・ソフトウエア・コードをカスタム化し、対応する各言語の具体的な言語の要件を満たすことによって、多言語ユーザ・インターフェースを設けることができる。しかしながら、この手法は、ソフトウエア・プロバイダが対応する言語の各々に別個のソフトウエア・コード・ベースを維持しなければならないという点で、概して非効率的である。したがって、ソフトウエア・プロバイダは、技術的支援を与えること、更新を行なうこと、および/またはパッチ(patch)を与えること等、各別個のソフトウエア・コード・ベースに個別に対応しなけれ
ばならない。
【0004】
異なる国/領域において共通ユーザ・インターフェースの使用を促進する別の手法では、種々の言語固有リソース・ライブラリと関連付けて、共通ユーザ・インターフェース・ソフトウエア・コード・ベースをオペレーティング・システムに設けている。このようなシステムの1つが、Microsoft Corporation(マイクロソフト社)の多言語ユーザ・インターフェース(「MUI:multilingual user interface」)である。MUI手法の下では、オペレーティング・システムは、共通のユーザ・インターフェース・コード・ベース、デフォルトの言語リソース・モジュール、およびそれぞれの言語でユーザ・インターフェース・オブジェクトの一部または全部を表示するための多数の代替言語固有リソース・モジュール(alternate language-specific resource module)を維持する。例えば、ユーザがスペイン語を所望の言語として選択すると、オペレーティング・システムは、スペイン語特定のリソース・モジュールからシステム・リソースをロードする。
【0005】
コンピュータのオペレーティング・システムは、通例では、種々のリソース・ライブラリ・ファイルを引用することにより、オペレーティング・システム内で走るソフトウエア・アプリエーションに種々の機能を与える。オペレーティング・システムは、多くの場合、多数のリソース・モジュールを維持しており、各リソース・モジュールは、複数のリソースから成り、オペレーティング・システムがこれらを用いて特定のタスクを実行する。概して言えば、リソースは、多数のプログラムまたは1つのプログラム内の1つよりも多い場所で共有するデータまたはコードの一種であり、ダイアログ・ボックス、サウンド・エフェクト、またはウィンドウ環境におけるフォント等がある。プログラムにおける多くの特徴(feature)は、リソースの追加または置換を行なえば、プログラムのソース・コードを修正することなく、変更することができる。リソース・データは、通常、データ構造、テンプレート、定義手順、管理ルーチン、アイコン・マップ等で構成され、メニュー、ウィンドウ、またはダイアログ・ボックスのような特定のリソースと連動する。
【0006】
MUIを用いたオペレーティング・システムの特定的な実施態様では、オペレーティング・システムは、リソース・ローダを含む。リソース・ローダは、所望の言語固有リソース・モジュールからリソースを得て、ロードする。リソース・ローダは、通例では英語でエンコードされているデフォルト・リソース・モジュール、または指定の言語固有代替リソース・モジュールのどちらかからリソースをロードすることを選択する。通例では、所望の代替リソース・モジュールが利用できない場合、リソース・ローダはデフォルト・リソース・モジュールを選択する。
【0007】
オペレーティング・システムのリソース・モジュールは、周期的に更新するとよいことは、当業者には認められよう。通例では、オペレーティング・システムの更新は、バージョン番号によって特定され、これによってどの更新が適用されているか判断することができる。例えば、元のオペレーティング・システムのリソース・モジュールは、「バージョン5.0」というようなバージョン番号によって特定することができる。オペレーティング・システムのリソース・モジュールを更新すると、(リソース情報を含む)更新後のリソース・モジュールは「バージョン5.2」と呼ばれる。しかしながら、リソース・モジュールの更新は必ずしもリソース内に含まれるリソースを変更する訳ではないことを、当業者は認めよう。加えて、オペレーティング・システムは大多数のリソース・モジュールを利用する場合もあるので、殆どのオペレーティング・システムの更新は、代替リソース・モジュールの各々ではなく、デフォルト・リソース・モジュールのバージョンのみを更新することに、少なくとも最初は制限される。
【発明の開示】
【発明が解決しようとする課題】
【0008】
MUIを用いた、リソース・ローダを有するオペレーティング・システムの前述の例では、一般に、リソース・ローダは代替リソース・モジュールからロードするリソースが、オペレーティング・システムの最新バージョンと互換性があるか否か検証しなければならない。従来のMUIを用いたオペレーティング・システムでは、これを行なう際に、代替リソース・モジュールのバージョン情報を、オペレーティング・システムの現バージョンと比較する。例えば、リソース・ローダが、「3.0」というバージョン・ラベルを有する代替リソース・モジュールからリソースをロードする要求を受け、一方デフォルトのオペレーティング・システムのリソース・モジュールが「3.3」というバージョン・ラベルに更新されている場合、リソース・ローダは、代替リソース・モジュールからリソースをロードしない。何故なら、代替リソース・モジュールはオペレーティング・システムの現バージョンとは互換性がないと見なすからである。したがって、リソース・ローダは、更新したデフォルトのリソース・モジュールからリソースをロードすることを実行しない。その結果、代替リソース・モジュールのリソースがなおも有効であっても、オペレーティング・システムは更新後デフォルト言語に戻るので、MUIの機能性が低下する。
【0009】
したがって、オペレーティング・システムの更新を実施する場合に、リソース・モジュールの互換性を動的に検証し、MUI機能性の継続を図るシステムおよび方法が求められている。
【課題を解決するための手段】
【0010】
ユーザ・インターフェース、リソース・ローダ、およびレジストリ・リソース・データベースを有するコンピュータ・オペレーティング・システムにおいて、リソース・モジュールのリソース・コンテンツがオペレーティング・システムの現バージョンと互換性があるか否かについて、動的に検証する方法を提供する。リソースの要求を取得すると、代替リソース・モジュールからリソースをロードする前に、リソース・ローダは、リソース・モジュールが、オペレーティング・システムと互換性を保っていることを検証する。本発明の一実施形態によれば、オペレーティング・システムは、多言語ユーザ・インターフェースを有し、言語固有のリソース・モジュールを利用する。
【0011】
本発明によれば、リソースのオペレーティング・システムとの互換性を動的に検証する方法を提供する。この方法によれば、リソース・ローダは、代替リソース・モジュールからリソースをロードする要求を取得する。この場合、代替リソース・モジュールは特定のインターフェースに対応する。リソース・ローダは、代替リソース・モジュールを自身からローカライズ(localize)した、デフォルト・リソース・モジュールのリソース・コンテンツを取得する。リソース・ローダは、現デフォルト・リソース・モジュールのリソース・コンテンツを取得する。リソース・ローダは、代替リソース・モジュールを自身からローカライズした、デフォルト・リソース・モジュールのリソース・コンテンツを、現デフォルト・リソース・モジュールのリソース・コンテンツと比較する。代替リソース・モジュールを自身からローカライズした、デフォルト・リソース・モジュールのリソース・コンテンツが、現デフォルト・リソース・モジュールのリソース・コンテンツと同一である場合、リソース・ローダは、代替リソース・モジュールをロードする。
【0012】
本発明の別の態様によれば、リソース・モジュールがオペレーティング・システムの現バージョンと互換性があることを検証するコンピュータ・システムを提供する。コンピュータ・システムは、リソース・モジュールからリソースをロードするリソース・ローダと、少なくとも1つのリソースを含むデフォルト・リソース・モジュールと、デフォルト・リソース・モジュールからローカライズされた1つ以上のリソースを含む代替リソース・モジュールと、代替リソース・モジュールを自身からローカライズした、デフォルト・リソース・モジュールのリソース・コンテンツを表わす一意の番号とを含む。この一意の番号は、チェックサムを含むことができる。代替リソース・モジュールを自身からローカライズした、リソース・コンテンツが、現デフォルト・リソース・モジュールのリソース・コンテンツと同一である場合、リソース・ローダは代替リソース・モジュールからリソースをロードする。本発明の付加的な態様によれば、リソースがオペレーティング・システムの現バーションと互換性があることを動的に検証するコンピュータ実行可能モジュールを有するコンピュータ読み取り可能媒体を提供する。
【0013】
このように、本発明は、リソースのオペレーティング・システムとの互換性を動的に検証するシステムおよび方法を提供する。好適な実施形態によれば、オペレーティング・システムは多言語ユーザ・インターフェースを有し、リソース・モジュールは言語固有である。
【0014】
本発明の前述の態様および付随する利点の多くは、添付図面と関連付けて以下の詳細な説明を参照することによって、一層用意に認められよう。
【発明の効果】
【0015】
本発明によれば、オペレーティング・システムの更新を実施する場合に、リソース・モジュールの互換性を動的に検証し、MUI機能性の継続を図るシステムおよび方法を提供できる。
【発明を実施するための最良の形態】
【0016】
以下、図面を参照して本発明の実施形態を詳細に説明する。
図5は、本発明を実現可能とするのに相応しい計算システム環境の一例である。計算システム環境は、相応しい計算環境の一例に過ぎず、本発明の使用または機能の範囲に関していかなる限定をも示唆しようとするのではない。更に、計算環境は、例示の計算環境に示すコンポーネントのいずれの1つまたはその組み合わせに関しても、依存性も要件も有するものとして解釈してはならない。
【0017】
本発明は、多数のその他の汎用または特殊目的計算システム環境またはコンフィギュレーションと共に動作する。公知の計算システム、環境および/またはコンフィギュレーションで、本発明との使用に相応しい例は、限定としてではなく、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサ系システム、セット・トップ・ボックス、プログラマブル消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ、電話システム、上述のシステムまたはデバイスのいずれをも含む分散計算環境等を含む。
【0018】
本発明の説明は、コンピュータが実行するプログラム・モジュールのようなコンピュータ実行可能命令の一般的なコンテキストで行うこととする。一般に、プログラム・モジュールは、特定のタスクを実行したり、あるいは特定の抽象的データ・タイプを使用する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。また、本発明は、分散型計算機環境において、通信ネットワークを通じてリンクしたリモート処理デバイスによってタスクを実行するという実施も可能である。ある分散型計算機環境においては、プログラム・モジュールは、メモリ記憶素子を含むローカルおよびリモート双方のコンピュータ記憶媒体に配することができる。
【0019】
図5を参照すると、本発明を実施するための例示のシステムは、コンピュータ20の形態とした汎用計算デバイスを含む。コンピュータ20のコンポーネントは、処理ユニット22、システム・メモリ24、およびシステム・メモリからプロセッサまでを含む種々のシステム・コンポーネントを結合するシステム・バス26を含むことができるが、これらに限定される訳ではない。システム・バスは、種々のバス・アーキテクチャのいずれかを用いたメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含む、数種類のバス構造のいずれでもよい。限定ではなく一例として、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、改良ISA(EISA)バス、ビデオ電子規格協会(VESA)ローカル・バス、およびMezzanineバスとしても知られている周辺素子相互接続(PCI)バスを含む。
【0020】
コンピュータ20は、通例では、種々のコンピュータ読み取り可能媒体を含む。コンピュータ読み取り可能媒体は、コンピュータ20がアクセス可能であれば、入手可能な媒体のいずれでも可能であり、揮発性および不揮発性双方の媒体、リムーバブルおよび非リムーバブル媒体を含む。一例として、そして限定ではなく、コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリまたはその他のメモリ技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)、またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、またはその他の磁気ストレージ・デバイス、あるいは所望の情報を格納するために使用可能であり、コンピュータ20によってアクセス可能なその他のいずれの媒体でも含まれる。
【0021】
通信媒体は、通例では、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、またはその他データを、キャリア波またはその他のトランスポート機構のような変調データ信号におけるその他のデータを具体化し、あらゆる情報配信媒体を含む。「変調データ信号」という用語は、信号内に情報をエンコードするように、その1つ以上の特性を設定または変更した信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体、ならびに音響、RF、赤外線およびその他のワイヤレス媒体のようなワイヤレス媒体を含む。前述のいずれの組み合わせでも、コンピュータ読み取り可能媒体の範囲内に当然含まれるものとする。
【0022】
システム・メモリ24は、リード・オンリ・メモリ(ROM)28およびランダム・アクセス・メモリ(RAM)30のような揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。基本入出力システム32(BIOS)は、起動中のように、コンピュータ20内のエレメント間におけるデータ転送を補助する基本的なルーチンを含み、通例ではROM28内に格納されている。RAM30は、通例では、処理ユニット22が直ちにアクセス可能であるデータおよび/またはプログラム・モジュール、または現在処理ユニット22によって処理されているデータおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図5は、オペレーティング・システム46、アプリケーション・プログラム48、その他のプログラム・モジュール50、およびプログラム・データ52を示す。
【0023】
また、コンピュータ20は、その他のリムーバブル/非リムーバブル揮発性/不揮発性コンピュータ記憶媒体も含むことができる。一例としてのみ、図5は、非リムーバブル不揮発性磁気媒体34からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ36、リムーバブル不揮発性磁気ディスク40からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ38、ならびにCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク44からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ42を示す。動作環境の一例において使用可能なその他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリ・カード、DVD、ディジタル・ビデオテープ、ベルヌーイ・キャップ・カートリッジ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれる。ハード・ディスク・ドライブ36、磁気ディスク・ドライブ38、および光ディスク・ドライブ42は、それぞれ、ハード・ディスク・ドライブ・インターフェース54、磁気ディスク・ドライブ・インターフェース56、および光ディスク・ドライブ・インターフェース60によって、システム・バス26に接続することができる。あるいは、ハード・ディスク・ドライブ36、磁気ディスク・ドライブ38、および光ディスク・ドライブ42は、通例では、小型コンピュータ・システム・インターフェース(SCSI)によって、システム・バス26に接続する。
【0024】
先に論じ図5に示すドライブおよびそれらと連動するコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、およびコンピュータ20のその他のデータを格納する。図5では、例えば、ハード・ディスク・ドライブ36は、オペレーティング・システム、アプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データを格納する。尚、これらのコンポーネントは、オペレーティング・システム46、その他のプログラム・モジュール50、およびプログラム・データ52と同じでも異なっていても可能であることを注記しておく。ユーザは、キーボード60、およびマウス、トラックボールまたはタッチ・パッドと一般に呼ばれているポインティング・デバイス62によって、コマンドおよび情報をコンピュータ20に入力することができる。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザ入力インターフェース64を介して、処理ユニット22に接続されており、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス(USB)のようなその他のインターフェースおよびバス構造によって接続することも可能である。
【0025】
コンピュータ20は、1つ以上のリモート・コンピュータへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピュータ65は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例では、コンピュータ20に関して先に説明したエレメントの多くまたは全てを含むが、図5にはメモリ・ストレージ・デバイスのみを示している。図5に示す論理接続は、ローカル・エリア・ネットワーク(LAN)66およびワイド・エリア・ネットワーク(WAN)67を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットにおいては一般的である。コンピュータ20は、少なくとも1つのネットワーク接続を非連続とするように構成してもよいことを、当業者は認めよう。したがって、コンピュータ20は、ネットワーク接続がディスエーブルされている時間期間にわたって、リモート・コンピュータ65と接続することはできない。このような構成を一般に「オフライン」構成と呼ぶ。
【0026】
LANネットワーク環境で用いる場合、コンピュータ20は、ネットワーク・インターフェースまたはアダプタ68を介してLAN66に接続する。WANネットワーク環境で用いる場合、コンピュータは、通例では、モデム、またはインターネットのようなWAN67を通じて通信を確立するその他の手段を含む。モデムは、内蔵でも外付けでもよく、シリアル・ポート・インターフェースまたはその他の適切な機構を介してシステム・バス26に接続することができる。ネットワーク環境では、コンピュータ20に関して図示したプログラム・モジュール、またはその一部は、リモート・メモリ・ストレージ・デバイスに格納することもできる。一例として、そして限定ではなく、図5は、リモート・アプリケーション・プログラム48がメモリ素子24上に常駐するものとして示している。尚、図示のネットワーク接続は一例であり、コンピュータ間で通信リンクを確立する他の手段も使用可能であることは認められよう。コンピュータ20の他の多くの内部コンポーネントは示されていないが、このようなコンポーネントおよびその相互接続は周知であることを当業者は認めよう。したがって、コンピュータ20の内部構造に関するこれ以上の詳細は、本発明に関連つけて開示する必要はない。
【0027】
オペレーティング・システム46、アプリケーション・プログラム48、およびデータ52のようなプログラム・モジュールは、そのメモリ・ストレージ・デバイスの1つを介してコンピュータ20に供給される。メモリ・ストレージ・デバイスは、ROM28、RAM30、ハード・ディスク・ドライブ36、磁気ディスク・ドライブ38、または光ディスク・デバイス42を含むことができる。ハード・ディスク・ドライブ36は、データ52、ならびにオペレーティング・システム46およびアプリケーション・プログラム48を含む、プログラムを格納するために用いられる。
【0028】
コンピュータ20をオンにするかまたはリセットすると、ROM28に格納してあるBIOS32が、処理ユニット22に、ハード・ディスク・ドライブ36からRAM30にオペレーティング・システムをロードするように命令する。一旦オペレーティング・システム46がRAM30にロードされると、処理ユニットはオペレーティング・システム・コードを実行し、オペレーティング・システムのユーザ・インターフェースと連動するビジュアル・エレメントをモニタ上に表示させる。ユーザがアプリケーション・プログラム48を開くと、プログラム・コードおよび関連するデータがハード・ディスク・ドライブから読み出され、RAM30に格納される。
【0029】
本願は、リソース・モジュールのオペレーティング・システムとの互換性を動的に検証することができるリソース・ローダを実装する方法およびシステムを対象とする。即ち、本発明は、リソース・モジュールとも呼ばれる、言語固有MUIリソースのファイル・セットをロードするシステムおよび方法に関して説明する。当業者には容易に理解されようが、本発明は、その動的MUIリソース・モジュール・ローダへの応用のみに限定される訳ではない。したがって、開示する実施形態は、単なる一例に過ぎず、限定的に解釈すべきでないことは理解して当然である。
【0030】
図1は、本発明にしたがって、リソース・モジュールからロードしたリソースの互換性を動的に検証することができるリソース・ローディング・システム70を示すブロック図である。図1に示すように、システム70は一般にリソース・ローダ72を含み、これは、通常オペレーティング・システム46の一部として含まれる。リソース・ローダ72は、レジストリ・リソース・バージョン・データベース74にアクセスし、使用可能な種々のオペレーティング・システム・リソースのバージョンおよびロケーションを追跡することができる。本発明の一実施形態では、レジストリ・リソース・バージョン・データベース74は、デフォルト・リソース・モジュールおよび1つ以上の代替リソース・モジュールのバージョン情報を追跡する。また、レジストリ・リソース・バージョン・データベース74は、代替リソース・モジュールと共に動作するデフォルト・リソース・モジュールのバージョン情報も追跡する。リソース・モジュールにおけるバージョン情報は、どのリソース・モジュールをロードすべきか判定を行なう際に用いられる。
【0031】
本発明の一実施形態は、レジストリ・リソース・バージョン・データベース74を用いてリソースの互換性を追跡し判定するが、本発明の範囲から逸脱することなく、リソースの互換性を追跡する多くの異なる方法も利用可能であることを当業者は認めよう。この点についても、本発明は、リソースの互換性を追跡するいずれの特定のやり方にも限定されることはない。例えば、階層状データベースまたはリレーショナル・データベースのような異なるタイプのデータベースを利用したり、データベース・レコードに異なるフォーマットを利用して、リソースの互換性を追跡することによって、本発明を実施することも可能である。加えて、本発明は、データベースを用いないように、互換性情報をリソース・モジュール自体に格納する等で、リソースの互換性を追跡することによって実施することも可能である。
【0032】
本発明の一実施形態によれば、レジストリ・リソース・バージョン・データベース74は、アプリケーション名フィールド、代替リソース・モジュール・バージョン・フィールド、デフォルト・リソース・モジュール・バージョン・フィールド、およびリソース互換性フィールドを収容するレコードを含む。キー・フィールド上のインデックスを利用して、これらのフィールドを探索することができる。本発明の別の実施形態では、レジストリ・リソース・バージョン・データベース74内のレコードに、異なるフォーマットを利用する場合もある。例えば、本発明は、異なるフィールド数を有し、各フィールドに異なるタイプのデータを格納し、フィールドに異なる名称を有するレコードを用いて実施することも可能である。
【0033】
図1に示すように、リソース・ローダ72はデフォルト・リソース・モジュール76とも交信する。本発明の一実施形態では、デフォルト・リソース・モジュール76は、概して、デフォルト・リソース・コンテンツ・コード、およびメニュー、ウィンドウ、またはダイアログ・ボックスのように、特定のリソースと連動するデータ構造、テンプレート、定義手順、管理ルーチン、アイコン・マップ等を含む種々のリソースを含み、通例では英語である。あるいは、デフォルト・リソース・モジュールのリソース・コンテンツは、データのみまたはコードのみで構成することも可能である。また、デフォルト・リソース・モジュール76は、デフォルト・リソース・モジュール76と互換性のあるオペレーティング・システム・バージョンのバージョン情報78を含む識別子も含む。加えて、本発明の一実施形態では、デフォルト・リソース・モジュール76は、デフォルト・リソース・モジュール76内に収容されているリソース・コンテンツを表わしかつ識別する一意の番号を含む。例えば、一実施形態では、一意の数値識別子は、モジュール内部のリソース・コンテンツのチェックサム80である。本発明の一実施形態によれば、チェックサムは、リソース・モジュールのリソース・コンテンツのみに基づく。チェックサム生成の間、コードおよびバージョン情報は生成プロセスにおいて除外される。何故なら、リソース・モジュールは、リソース・コンテンツには全く変更を加えることなく、そのコードまたはバージョン番号の変更によって更新することができるからである。
【0034】
図示する本発明の実施形態では、ハッシング・ルーチンを利用して、リソース・ファイルのコンテンツに一意の数値識別子を与える。ハッシングとは、ハッシング関数として知られている変換によって、情報を数値にマップするプロセスのことである。何らかの方法で処理または操作されるデータ(必ずしも数値データではない)から取った番号の集合の和から得られるエラー・チェック値として、ハッシュ合計(hash total)を用いることができる。処理の後、ハッシュ合計を再度計算し、元の合計と比較する。双方が一致しない場合、元のデータが何らかの方法で変更されていることになる。ハッシング・ルーチンから戻された値は、通常、チェックサムとして記述される。
【0035】
本発明の一実施形態では、MD5−メッセージ・ダイジェスト・ハッシング・アルゴリズムを利用して、チェックサムを生成する。MD5−メッセージ・ダイジェスト・アルゴリズムは、入力として任意長のメッセージを取り込み、出力として128ビットのフィンガプリント(fingerprint)即ち入力のメッセージ・ダイジェストを生成する。MD5−メッセージ・ダイジェスト・ハッシング・アルゴリズムは、当業者には周知であり、これ以上詳しくはここに記載しない。異なるリソースを表わし比較する種々のハッシング・ルーチンのいずれでも、本発明と共に実用可能であることは、当業者であれば容易に理解されよう。また、異なるリソースを表わし比較する別の方法も、本発明と共に実用可能であることも当業者には理解されよう。
【0036】
引き続き図1を参照すると、リソース・ローダ72は、更に、1つ以上の代替リソース・モジュール82とも交信する。代替リソース・モジュールは、デフォルト・リソース・モジュール76からローカライズしたリソース・コンテンツを含む。概して言えば、ローカライゼーション(localization)とは、プログラムを変更し、それが用いられるエリアに対してそれが適切となるようにするプロセスである。多言語ローカライゼーションに関しては、プログラムの開発者は、異なる国または言語毎にプログラムをローカライズしなければならない。何故なら、ある言語でのキャラクタが他の言語では正しくないという場合もあり得るからである。
【0037】
また、代替リソース・モジュール82は、バージョン番号84、および代替リソース・モジュール82を自身からローカライズした、デフォルト・リソース・モジュール76のリソース・コンテンツを表わす情報も含む。本発明の一実施形態では、代替リソース・モジュール82は、二進実行可能コードを収容せず、ローカライズしたリソース情報、バージョン情報84、およびこれらを自身からローカライズした、デフォルト・リソース・モジュールのリソース・コンテンツのみを収容する。当業者には容易に理解されようが、本発明の範囲内において、代わりのシステム構成も考えられる。
【0038】
概して言えば、MUIを用いるオペレーティング・システムでは、指定のユーザ・インターフェース言語を特定し、リソース・ローダは、対応する代替リソース・モジュール82からリソースの一部または全部をロードしようとする。本発明によれば、リソース・ローダ72はリソースに対するコールを取得する。リソースをロードする前に、リソース・ローダ72は、代替リソース・モジュール内のリソースがオペレーティング・システム46と互換性があることを検証する。デフォルト言語固有リソース・モジュール76のバージョン情報78が、代替言語固有リソース・モジュール82のバージョン情報84と一致した場合、リソース・ローダ72は、代替言語固有モジュール82からリソースをロードする。しかしながら、バージョン情報が一致しない場合、リソース・ローダは、所望の代替リソース・モジュールを自身からローカライズした、デフォルト・リソース・コンテンツが、最新のデフォルト・リソース・コンテンツと同一が否か、動的に判定を行なう。具体的には、リソース・ローダ72は、現デフォルト・リソース・モジュールのリソース・コンテンツのチェックサムを、代替リソース・モジュールを自身からローカライズした、デフォルト・リソース・モジュールのチェックサムと比較する。
【0039】
図2、図3および図4は、本発明による動的リソース互換性検証およびローディング・ルーチン200のフロー図である。本発明の一実施形態では、ルーチン200は、2つの方法でリソースの互換性を検証する。図4を参照すると、デフォルト・リソース・モジュール76および代替リソース・モジュール82の双方は、各モジュール内に収容されているリソースのコンテンツを定量化するチェックサム情報を含む。代替リソース・モジュール82の場合、チェックサム86は、これらを自身からローカライズした、デフォルト・リソース・モジュールのリソース・コンテンツを定量化する。デフォルト・リソース・モジュールがチェックサム情報を含まない場合、追加の処理をブロック225で行なわなければならない。
【0040】
図2を参照すると、ブロック202において、リソース・ローダ72は、代替リソースの要求を取得する。本発明の一実施形態によれば、代替リソースはユーザが選択したインターフェース言語に対応し、代替リソースは言語固有である。ブロック204におおいて、リソース・ローダ72は、デフォルト・リソース・モジュール76からバージョン情報78を取得する。ブロック206において、リソース・ローダは、対応する代替リソース・モジュール82からバージョン情報84を取得する。判断ブロック208において、検査を実施し、デフォルト・リソース・モジュールのバージョン情報が代替リソース・モジュールのバージョン情報と一致するか否か判定をオ行なう。バージョン情報が一致した場合、代替リソース・モジュールに含まれるリソースは、現オペレーティング・システムのユーザ・インターフェースと互換性があると考えられる。この時点で、リソース・ローダ72は、ブロック210において要求された代替リソース・モジュールをロードし、ブロック212においてルーチン200は終了する。デフォルトおよび代替リソース・モジュールのバージョン番号に変更が見られなかったので、更新は適用されなかったのであり、リソースに互換性があることを検証するためにこれ以上の処理は必要でない。
【0041】
判断ブロック208において、バージョン情報が一致しないと判定された場合、ルーチン200は判断ブロック213(図3)に進む。これについて、以下に説明する。従来のリソース・ローディング・ルーチンは、単にこの時点でデフォルト・リソース・モジュールからリソースをロードするだけであったことを認めよう。図3は、本発明の一実施形態を示し、リソース・ローダ72は、リソースのバージョン情報が一致しなかった場合、レジストリ・リソース・データベース74を利用して、リソースの互換性を動的に検証する。図3を参照すると、判断ブロック213において、ルーチン200を最後に完了して以来、代替リソース・モジュール82が更新されているか否か判定を行なう。更に本発明の一実施形態によれば、代替リソース・モジュール82の更新を検出するには、レジストリ・リソース・バージョン・データベース74が、代替リソース・モジュール82のバージョンのレコードを収容しているか否か判定を行なう。探索を促進するために、リソース・ローダ72は、代替リソース・モジュールのバージョン番号がキー・フィールドになっている、レジストリ・リソース・バージョン・データベース74上のインデックスを用いることができる。レジストリ・リソース・バージョン・データベース74が代替リソース・モジュール82のバージョンの記録を収容している場合、ルーチン200が最後に完了して以来更新は行われていない。それ以外の場合、レジストリ・リソース・バージョン・データベース74が代替リソース・モジュール82のバージョンのレコードを収容していない場合、ルーチン200を最後に完了して以来代替リソース・モジュール82が更新されていることになる。ブロック213において、レジストリ・リソース・バージョン・テータベース74において、代替リソース・モジュール82のバージョンのレコードが見つからなかった場合、ブロック214において、レジストリ・リソース・バージョン・データベース74に新たなレコードを作成し、代替リソース・モジュール82のバージョンおよびデフォルト・リソース・モジュール76のバージョンの互換性を追跡し、ルーチン200は図4に進み、互換性情報を取得する。一方、ブロック213において、レジストリ・リソース・バージョン・データベース74内に代替リソース・モジュール82のバージョンのレコードが見つかった場合、ルーチン200はブロック215に進む。
【0042】
判断ブロック215において、ルーチン200を最後に完了して以来、デフォルト・リソース・モジュール76が更新されているか否か判定を行なう。本発明の一実施形態によれば、リソース・ローダ72は、デフォルト・リソース・モジュールの更新を検出する際、レジストリ・リソース・バージョン・データベース74がデフォルト・リソース・モジュール76のバージョンのレコードを収容しているか否か判定を行なう。探索を促進するために、リソース・ローダ72は、デフォルト・リソース・モジュールのバージョンがキー・フィールドになっているレジストリ・リソース・バージョン・データベース74上のインデックスを用いることができる。レジストリ・リソース・バージョン・データベース74がデフォルト・リソース・モジュール76のバージョンのレコードを収容している場合、デフォルト・リソース・モジュールは、ルーチン200が最後に更新されて以来、更新されていないことになる。それ以外の場合、レジストリ・リソース・バージョン・データベース74がデフォルト・リソース・モジュール76のバージョンのレコードを収容していない場合、ルーチン200はブロック214に進み、レジストリ・リソース・バージョン・データベース74内に、代替リソース・モジュール82のバージョンおよびデフォルト・リソース・モジュール76のバージョンのために新たなレコードを作成する。
【0043】
図3に示すブロック213および215において、レジストリ・リソース・バージョン・データベース74が代替リソース・モジュール82および現デフォルト・リソース・モジュール76のバージョンに対する互換性情報を含んでいると判定した場合、リソースは更新されておらず、ルーチン200は判断ブロック216に進む。判断ブロック216において、リソース・ローダ72は、レジストリ・リソース・バージョン・データベース内に格納されている互換性情報を用いて、代替リソース・モジュール82のバージョンが、デフォルト・リソース・モジュール76のバージョンと互換性があるか否か判定を行なう。本発明の一実施形態によれば、レジストリ・リソース・バージョン・データベース74内のリソース互換性情報フィールドは、真値および偽値を格納可能なブール・データ・タイプである。互換性情報フィールドは、現デフォルト・リソース・モジュールのリソース・コンテンツが、代替リソース・モジュールをローカライズしたデフォルト・リソース・モジュールのリソース・コンテンツと互換性がある場合に真値を格納するように用いられる。同様に、互換性情報フィールドは、現デフォルト・リソース・モジュールのリソース・コンテンツが、代替リソース・モジュールをローカライズしたデフォルト・リソース・モジュールのリソース・コンテンツと互換性がない場合には偽値を格納するように用いられる。リソースの互換性を判定するために、リソース・ローダ72は、レジストリ・リソース・バージョン・データベース74内に真値または偽値として格納されている互換性情報を検索し代替リソース・モジュール82のバージョンおよびデフォルト・リソース・モジュール76のバージョンを求める。
【0044】
図3に示す判断ブロック216において、レジストリ・リソース・バージョン・データベース74から検索した互換性情報が真と評価された場合、現デフォルト・リソース・モジュールは代替リソース・モジュール82のバージョンと互換性がある。このようにリソースに互換性ある場合、ルーチン200はブロック218に進み、リソース・ローダ72は代替リソース・モジュール82からリソースをロードする。判断ブロック216において、レジストリ・リソース・バージョン・データベース74から検索した互換性情報が偽と評価された場合、現デフォルト・リソース・モジュールは代替リソース・モジュール82のバージョンとは互換性がないことになる。このようにリソースに互換性がない場合、ルーチン200はブロック220に進み、リソース・ローダ72はデフォルト・リソース・モジュール76からリソースをロードする。適切なリソース・モジュールからリソースをロードした後、ルーチン200はブロック222において終了する。
【0045】
図3の判断ブロック215において、レジストリ・リソース・バージョン・データベース74が代替リソース・モジュール82のバージョンおよび現デフォルト・リソース・モジュール76について互換性情報を収容していなかったと判定することによって、リソースに対する更新が検出された場合、ルーチン200は図4に進む。図4は、本発明の一実施形態にしたがってリソースの互換性を検証する2つの方法を示す。ブロック226に示すプロセスを実行するのは、コンテンツ検証情報が現デフォルト・リソース・モジュール内に収容されている場合である。具体的には、本発明の一実施形態では、コンテンツ検証情報はチェックサム80の情報である。
【0046】
ここで図4を参照する。判断ブロック224において、検査を行い、デフォルト・リソース・モジュール76にコンテンツ検証情報が格納されているか否か判定を行なう。デフォルト・リソース・ファイル内にチェックサム情報が格納されていない場合、ルーチン200はブロック225に進む。ブロック225は、本発明の一実施形態にしたがってリソースの互換性を検証する2つの方法の内、2番目の方法を示す。ブロック225に示すプロセスを実行するのは、現デフォルト・リソース・モジュール内にコンテンツ検証情報が収容されていない場合である。この場合、動的なリソース互換性の検証に用いる、現デフォルト・リソース・モジュール76のリソース・コンテンツを判断するためには、追加の処理を実行しなければならない。本発明の実際の実施形態によれば、リソース・ローダ72は最新のデフォルト・リソース・モジュール76のリソース・コンテンツのチェックサムを計算する。
【0047】
チェックサム80の情報をデフォルト・リソース・モジュール76に格納すると、ルーチン200はブロック226に進み、リソース・ローダ72はデフォルト・リソース・モジュール・チェックサム情報80を取得する。ブロック228において、リソース・ローダは代替リソース・モジュール・チェックサム86の情報を取得する。判断ブロック230において、検査を行い、チェックサムが一致するか否か判定する。チェックサムが一致した場合、ルーチン200はブロック232に進み、レジストリ・リソース・バージョン・データベース74を更新し、現デフォルト・リソース・モジュールのリソース・コンテンツは、代替リソース・モジュール82をローカライズしたデフォルト・リソース・モジュールのリソース・コンテンツと互換性があることを示す。本発明の一実施形態によれば、代替リソース・モジュール82のバージョンおよびデフォルト・リソース・モジュール76のバージョンについての互換性情報は、レジストリ・リソース・バージョン・データベース74内に真値として格納する。こうして、ルーチン200は、デフォルト・リソース・モジュール76および代替リソース・モジュール82の同じバージョンがその後ロードされたときにはいつでも、レジストリ・リソース・バージョン・データベース74内に格納されている代替リソース・モジュール82のバージョンおよびデフォルト・リソース・モジュール76のバージョンについての互換性情報を用いることができる。ブロック232においてレジストリ・リソース・データベース74内の互換性情報を更新した後、ルーチン200はブロック233に進み、リソース・ローダ72は代替リソース・モジュール82からリソースをロードする。
【0048】
判断ブロック230において、チェックサムが一致しなかったと判定した場合、ルーチン200はブロック234に進む。チェックサム値が一致しなかったので、デフォルト・リソース・モジュール76においてリソースは変更されていないことになる。したがって、代替リソース・モジュール82はもはやオペレーティング・システム46と互換性はない。ブロック234において、レジストリ・リソース・バージョン・データベース74を更新し、代替リソース・モジュール82のバージョンは、デフォルト・リソース・モジュール76のバージョンとは互換性がないことを示す。本発明の一実施形態では、代替リソース・モジュール82のバージョンおよびデフォルト・リソース・モジュール76のバージョンについての互換性情報は、レジストリ・リソース・バージョン・データベース74内に偽値として格納する。こうして、ルーチン200は、デフォルト・リソース・モジュール76および代替リソース・モジュール82の同じバージョンがその後にロードされたときにはいつでも、レジストリ・リソース・データベース74に格納されている互換性情報を用いて、リソースの互換性を判定することができる。ブロック234においてレジストリ・リソース・バージョン・データベース74内の互換性情報を更新した後、ルーチン200はブロック235に進み、リソース・ローダ72はデフォルト・リソース・モジュール76からリソースをロードする。この時点で、ルーチン200はブロック236において終了する。
【0049】
再度図3を参照すると、更新が行われるまで、リソース・ローダ72はレジストリ・リソース・バージョン・データベース74内の互換性情報を利用して、代替リソース・モジュール82の現デフォルト・リソース・モジュール76との互換性を動的に検証する。本発明の一実施形態によれば、リソース・ローダ72は、更新が行われバージョン情報が変更した場合にのみ、図4に示す追加の処理ステップを実行する。その場合、デフォルトおよび代替リソース・モジュールの内容が互換性を保ったままであるか否か判定を行なうことが必要となる。本発明は、代替リソース・モジュール82内のリソースのオペレーティング・システム70の最新バージョンとの互換性を動的に検証することによって、MUIリソース・モジュールの利用を促進する。代替リソース・モジュール82内のリソースとの互換性に影響を与えることなくオペレーティング・システム70を更新した場合、本発明のリソース・ローダ72は、代替リソース・モジュール82からリソースをロードし利用し続けることによって、リソース・モジュールのバージョン情報がオペレーティング・システムのそれからのものと異なっていても、MUI機能性を提供し続ける。
【0050】
以上、本発明の好適な実施形態について図示し説明したが、本発明の精神および範囲から逸脱することなく、種々の変更が可能であることは認められよう。
【図面の簡単な説明】
【0051】
【図1】本発明にしたがって、リソース・モジュールの互換性を動的に検証することができる、例示のリソース・ローディング・システムのブロック図である。
【図2】本発明にしたがってリソース・モジュールの互換性を動的に検証することができるリソース・ローディング・プロセスのフロー図である。
【図3】本発明にしたがってリソース・モジュールの互換性を動的に検証することができるリソース・ローディング・プロセスのフロー図である。
【図4】本発明にしたがってリソース・モジュールの互換性を動的に検証することができるリソース・ローディング・プロセスのフロー図である。
【図5】本発明を実施することができる、適当な計算システム環境を示すブブロック図である
【符号の説明】
【0052】
20 コンピュータ
22 処理ユニット
24 システム・メモリ
26 システム・バス
28 リード・オンリ・メモリ(ROM)
30 ランダム・アクセス・メモリ(RAM)
32 基本入出力システム
34 非リムーバブル不揮発性磁気媒体
36 ハード・ディスク・ドライブ
38 磁気ディスク・ドライブ
40 リムーバブル不揮発性磁気ディスク
42 光ディスク・ドライブ
44 リムーバブル不揮発性光ディスク
46 オペレーティング・システム
48 アプリケーション・プログラム
50 プログラム・モジュール
52 プログラム・データ
54 ハード・ディスク・ドライブ・インターフェース
56 磁気ディスク・ドライブ・インターフェース
60 光ディスク・ドライブ・インターフェース
60 キーボード
62 ポインティング・デバイス
64 ユーザ入力インターフェース
65 リモート・コンピュータ
66 ローカル・エリア・ネットワーク(LAN)
67 ワイド・エリア・ネットワーク(WAN)
68 アダプタ
70 リソース・ローディング・システム
72 リソース・ローダ
74 レジストリ・リソース・バージョン・データベース
76 デフォルト・リソース・モジュール
78 バージョン情報
80 チェックサム
82 代替リソース・モジュール
84 バージョン情報
86 チェックサム

【特許請求の範囲】
【請求項1】
コンピュータ・システムの動作を制御する、リソース・モジュールのオペレーティング・システムとの互換性を動的に検証する方法であって、前記コンピュータ・システムは、処理ユニット、第1の記憶手段および第2の記憶手段を含み、前記第1の記憶手段および前記第2の記憶手段は前記処理ユニットに結合されており、前記第1の記憶手段は前記処理ユニットによって実行可能なプログラムを格納しており、各リソース・モジュールが言語固有のデータを含み、デフォルト・リソース・モジュールがデフォルト・インターフェース言語に対応し、1つ以上の代替リソース・モジュールが、選択したインターフェース言語に対応し、前記処理ユニットが前記第1の記憶手段から前記プログラムを読み出して実行するときに、前記方法は、
前記処理ユニットが、代替リソース・モジュールから言語特定リソースを前記第2の記憶手段にロードする要求を取得するステップと、
前記処理ユニットが、前記代替リソース・モジュールのバージョン情報を、前記第1の記憶手段から取得するステップと、
前記処理ユニットが、現デフォルト・リソース・モジュールのバージョン情報を、前記第1の記憶手段から取得するステップと、
前記処理ユニットが、前記代替リソース・モジュールおよび前記現デフォルト・リソース・モジュールのバージョン情報を比較するステップと、
前記現デフォルト・リソース・モジュールおよび前記代替リソース・モジュールのバージョン情報が同一でない場合、前記処理ユニットが、前記現デフォルトおよび代替リソース・モジュールのどちらが更新されたか判定を行なうステップと、
更新が行われた場合、前記代替リソース・モジュールのチェックサムを、前記処理ユニットが前記第1の記憶手段から取得するステップと、
更新が行われた場合、前記処理ユニットが、前記現デフォルト・リソース・モジュールのチェックサムを、前記第1の記憶手段から取得するステップと、
前記代替リソース・モジュールのチェックサムと、前記現デフォルト・リソース・モジュールのチェックサムとを、前記処理ユニットが比較するステップと、
前記代替リソース・モジュールのチェックサムが、前記現デフォルト・リソース・モジュールのチェックサムと同一であるか否かに関して、前記処理ユニットが、互換性情報を追跡するステップと、
前記代替リソース・モジュールのチェックサムが、前記現デフォルト・リソース・モジュールのチェックサムと同一である場合、前記処理ユニットが、前記代替リソース・モジュールから、要求された言語固有リソースを前記第2の記憶手段にロードするステップと
を備えることを特徴とする方法。
【請求項2】
請求項1に記載の方法の各ステップをコンピュータ・システムに実行させるための、コンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項3】
リソース・モジュールがオペレーティング・システムと互換性があることを動的に検証するコンピュータ・システムであって、前記コンピュータ・システムは、処理ユニット、第1の記憶手段および第2の記憶手段を含み、前記第1の記憶手段および前記第2の記憶手段は前記処理ユニットに結合されており、前記第1の記憶手段は、
前記処理ユニットに、リソース・モジュールからリソースを前記第2の記憶手段にロードさせるリソース・ローダと、
少なくとも1つのリソースを含む現デフォルト・リソース・モジュールであって、リソース・コンテンツを有する、現デフォルト・リソース・モジュールと、
デフォルト・リソース・モジュールからローカライズされた1つ以上のリソースと、前記代替リソース・モジュール内に含まれるリソースを自身からローカライズした、デフォルト・リソース・モジュールのリソース・コンテンツとを含む代替リソース・モジュールとを格納しており、
前記代替リソース・モジュールを自身からローカライズした、リソース・コンテンツが、前記現デフォルト・リソース・モジュールのリソース・コンテンツと同一である場合、前記処理ユニットが、前記リソース・ローダを実行することにより、前記代替リソース・モジュールからリソースを前記第2の記憶手段にロードすることを特徴とするコンピュータ・システム。
【請求項4】
請求項3に記載のコンピュータ・システムにおいて、前記代替リソース・モジュールは、選択したインターフェース言語に対応し、各リソース・モジュールは言語固有であることを特徴とするコンピュータ・システム。
【請求項5】
請求項3に記載のコンピュータ・システムにおいて、前記オペレーティング・システムは、複数の代替リソース・モジュールを含むことを特徴とするコンピュータ・システム。
【請求項6】
請求項3に記載のコンピュータ・システムにおいて、前記コンピュータ・システムは入力手段をさらに含み、前記処理ユニットが前記代替リソース・モジュールを前記入力手段を介したユーザの指示に従って選択することを特徴とするコンピュータ・システム。
【請求項7】
請求項3に記載のコンピュータ・システムにおいて、更に、前記現デフォルト・リソース・モジュールおよび前記代替リソース・モジュールの互換性情報を保持するレジストリ・リソース・バージョン・データベースを備え、前記処理ユニットは、前記リソース・ローダを実行することにより、前記互換性情報を利用して、前記代替リソース・モジュールが前記オペレーティング・システムと互換性があるか否か判定を行なうことを特徴とするコンピュータ・システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−250003(P2007−250003A)
【公開日】平成19年9月27日(2007.9.27)
【国際特許分類】
【出願番号】特願2007−136806(P2007−136806)
【出願日】平成19年5月23日(2007.5.23)
【分割の表示】特願2001−332263(P2001−332263)の分割
【原出願日】平成13年10月30日(2001.10.30)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】