(57)【要約】【課題】アプリケーションプログラムの用途等に応じてリソースファイルやコードファイルを複数個作成する必要をなくし管理コストを低減する。【解決手段】  機能要素に対して任意に設定可能な機能要素識別名を用いて該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から機能要素識別名を取得する制御定義情報読取部１６と、機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、機能要素識別名に対応する機能要素ＩＤを取得する機能要素定義情報読取部１５と、取得された機能要素ＩＤを用いて、情報処理装置におけるアプリケーションプログラムの設定を行なう設定部１１とをそなえる。【選択図】図１
2011186720.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の機能要素を有するアプリケーションプログラムを実行可能な情報処理装置であって、
該機能要素に対して任意に設定可能な機能要素識別名を用いて該アプリケーションプログラムにかかる制御情報を定義された制御定義情報を格納する制御定義情報格納部と、
該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を格納する機能要素定義情報格納部と、
該制御定義情報格納部に格納された該制御定義情報から該機能要素識別名を取得する制御定義情報読取部と、
該機能要素定義情報格納部に格納された該機能要素定義情報を参照して、該制御定義情報読取部により取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報読取部と、
該機能要素定義情報読取部によって取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、当該情報処理装置における該アプリケーションプログラムの設定を行なう設定部とをそなえることを特徴とする、情報処理装置。
【請求項２】
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置において実行される該アプリケーションプログラムの機能を特定する制御情報をそなえ、
該設定部が、該機能要素定義情報読取部によって取得された該機能要素ＩＤを用いて、該情報処理装置における該機能要素の実行を制限することを特徴とする、請求項１記載の情報処理装置。
【請求項３】
該制御定義情報が、該機能要素の使用に関する制御として、該機能要素にかかる文字置換を行なう定義をそなえ、
該設定部が、該機能要素定義情報読取部によって取得された該機能要素ＩＤを用いて、該機能要素にかかる文字列の置換を行なうことを特徴とする、請求項１又は請求項２記載の情報処理装置。
【請求項４】
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置の表示装置に出力する文字列の少なくとも一部を他の文字列により置換する定義をそなえ、
該設定部が、該制御定義情報に基づいて、該文字列の置換を行なうことを特徴とする、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
情報処理装置における、複数種類の機能要素を有するアプリケーションプログラムの処理方法であって、
該アプリケーションプログラムに関して、該機能要素に対して任意に設定した機能要素識別名を用いて、該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から該機能要素識別名を取得する制御定義情報取得ステップと、
該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、該制御定義情報取得ステップにおいて取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報取得ステップと、
該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、該情報処理装置における該アプリケーションプログラムの設定を行なう設定ステップとをそなえることを特徴とする、処理方法。
【請求項６】
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置において実行される該アプリケーションプログラムの機能を特定する制御情報をそなえ、
該設定ステップにおいて、該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該情報処理装置における該機能要素の実行を制限することを特徴とする、請求項５記載の処理方法。
【請求項７】
複数種類の機能要素を有するアプリケーションプログラムの処理をコンピュータに実行させるための処理プログラムであって、
該アプリケーションプログラムに関して、該機能要素に対して任意に設定した機能要素識別名を用いて、該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から該機能要素識別名を取得する制御定義情報取得ステップと、
該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、該制御定義情報取得ステップにおいて取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報取得ステップと、
該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、該情報処理装置における該アプリケーションプログラムの設定を行なう設定ステップとを該コンピュータに実行させることを特徴とする、処理プログラム。
【請求項８】
複数種類の機能要素を有するアプリケーションプログラムの処理をコンピュータに実行させるための処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
該処理プログラムが、
該アプリケーションプログラムに関して、該機能要素に対して任意に設定した機能要素識別名を用いて、該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から該機能要素識別名を取得する制御定義情報取得ステップと、
該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、該制御定義情報取得ステップにおいて取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報取得ステップと、
該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、該情報処理装置における該アプリケーションプログラムの設定を行なう設定ステップとを該コンピュータに実行させることを特徴とする、処理プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置における、複数種類の機能要素を有するアプリケーションプログラムの処理に関する。
【背景技術】
【０００２】
例えば、プリント基板設計の用途に用いられるＣＡＤ（Computer Aided Design：以下、プリント板ＣＡＤ）は、基板上に部品や配線を配置する機能をそなえている。このようなプリント板ＣＡＤの機能を、例えば、データセンタやＩＤＣ（Internet Data Center）等のレイアウト設計において機器や配線の配置の用途に転用することが考えられる。これにより、データセンタ等における機器のレイアウトに用いるＣＡＤ（以下、インフラＣＡＤ）のプログラムの開発コストや期間を低減することが期待できる。
【０００３】
プリント板ＣＡＤをインフラＣＡＤに転用するには、例えば、コマンド名やラベル名、表示されるメッセージ本文を変更する必要がある。例えば、プリント板ＣＡＤにおいて用いられる「信号名」や「部品ピン名」、「付属品」等の用語を、インフラＣＡＤにおいては、「接続名」や「ＩＦ名」、「添付品」等に変更する必要がある。
また、プログラムの用途によっては、一部の機能や機能内の特定のコマンドが不要となる場合がある。例えば、プリント板ＣＡＤに一般的にそなえられているＦＰＧＡ（Field Programmable Gate Array）エディタ機能や制約条件編集機能等はインフラＣＡＤでは不要である。又、インフラＣＡＤにおいては、情報表示機能内のＲｏＨＳ（Restriction of Hazardous Substances：有害物質規制）情報やＦＰＧＡ部品情報等も不要である。
【０００４】
従来においては、例えば上述の如きインフラＣＡＤをプリント板ＣＡＤに基づいて作成する場合には、プリント板ＣＡＤのプログラムにおける特定のプロジェクトのリソースファイルを変更することにより、インフラＣＡＤのプロジェクトのリソースファイルを作成し、これによりインフラＣＡＤを作成する。
図４４はリソースファイルの例を示す図、図４５はヘッダファイルの例を示す図、図４６はメニュー画面の例を示す図である。
【０００５】
例えば、図４６に示す表示制御メニューは、再描画，全体表示，拡大表示，縮小表示，表示画面移動，表示リセット等をメニューアイテムとしてそなえている。この図４６に示す表示制御メニューは図４４に示すようなリソースファイルに定義される。
リソースファイルは、各種リソースを操作するためのファイルでありプログラマによって作成される。このリソースファイルは、例えば、Windows（登録商標）においては、拡張子“.rc”を付加した任意のファイル名で保存される。
【０００６】
また、例えば、会話型プログラムの開発においては、プログラムをその核となるコアプロジェクトと機能単位に分かれた複数のプロジェクトとで構成し、アプリケーションのリソースをプロジェクトとして管理する場合がある。又、一般的に、各プロジェクトが使用するメニューやダイアログ上のコマンド名やラベル名はそれぞれのプロジェクトのリソースとして定義される。
【０００７】
一般的に、プログラマは、便宜上、各リソースに対して当該リソースを特定するためのわかり易い任意のリソース名を設定し、このリソース名を用いてリソースの識別を行なう。なお、リソースとは、プログラムが使用するデータ（オブジェクト）であり、例えば、プログラム内に埋め込まれている、テキストやウィンドウの内容，メニューの情報（属性情報）である。そして、このリソースを用いて、例えば、フォントの種類や表示色，背景色等を定義することができる。
【０００８】
ヘッダファイルとは、リソースに割り振られる固有のＩＤ（リソースＩＤ）を定義するファイルであり、例えば、Windowsにおいては、Resource.h等のファイル名で保存される。プログラムがコンパイルされロードモジュールになった後には、コンピュータにおける動作はこのリソースＩＤにより制御される。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−３４７７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、プログラムのリソースファイルを変更することは別のプログラムを作成することに等しく、これにより、リソースファイルの製造や保守・管理にかかる工数や費用が増大するという課題がある。プログラムを用途に応じて複数作成する場合には、そのリソースファイルも用途数倍必要になる。又、リソースファイルを分けると、これらのリソースファイルの保守に際して修正漏れが発生し、プログラム品質が低下するおそれもある。
【００１１】
また、例えば、ユーザに提供されるメニュー画面を、専用の設定メニューを表示させることにより、単にグラフィカルインタフェースやサウンド等を変更する手法が知られている（特許文献１参照）。しかしながら、プログラムのインストール後においても、例えば、プログラムの一部の機能を有効もしくは無効にする等、単に画面表示レベルにとどまらず、プログラムの機能修正を行ないたい場合がある。ところが、プログラムのロードモジュールにおいては、上述の如く、リソースＩＤによって制御され、任意に設定したわかり易いリソース名を用いてプログラムの機能修正を行なうことができず煩雑であるという課題がある。
【００１２】
本件の目的の一つは、このような課題に鑑み創案されたもので、アプリケーションプログラムの用途等に応じてリソースファイルやコードファイルを複数個作成する必要がなく、これらの管理コストを低減できるようにすることである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【００１３】
このため、この情報処理装置は、複数種類の機能要素を有するアプリケーションプログラムを実行可能な情報処理装置であって、該機能要素に対して任意に設定可能な機能要素識別名を用いて該アプリケーションプログラムにかかる制御情報を定義された制御定義情報を格納する制御定義情報格納部と、該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を格納する機能要素定義情報格納部と、該制御定義情報格納部に格納された該制御定義情報から該機能要素識別名を取得する制御定義情報読取部と、該機能要素定義情報格納部に格納された該機能要素定義情報を参照して、該制御定義情報読取部により取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報読取部と、該機能要素定義情報読取部によって取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、当該情報処理装置における該アプリケーションプログラムの設定を行なう設定部とをそなえる。
【００１４】
また、この処理方法は、情報処理装置における、複数種類の機能要素を有するアプリケーションプログラムの処理方法であって、該アプリケーションプログラムに関して、該機能要素に対して任意に設定した機能要素識別名を用いて、該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から該機能要素識別名を取得する制御定義情報取得ステップと、該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、該制御定義情報取得ステップにおいて取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報取得ステップと、該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、該情報処理装置における該アプリケーションプログラムの設定を行なう設定ステップとをそなえる。
【００１５】
さらに、この処理プログラムは、複数種類の機能要素を有するアプリケーションプログラムの処理をコンピュータに実行させるための処理プログラムであって、該アプリケーションプログラムに関して、該機能要素に対して任意に設定した機能要素識別名を用いて、該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から該機能要素識別名を取得する制御定義情報取得ステップと、該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、該制御定義情報取得ステップにおいて取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報取得ステップと、該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、該情報処理装置における該アプリケーションプログラムの設定を行なう設定ステップとを該コンピュータに実行させる。
【００１６】
また、コンピュータ読取可能な記録媒体は、上述した処理プログラムを記録したものである。
【発明の効果】
【００１７】
開示の技術によれば、以下の少なくともいずれか１つの効果ないし利点が得られる。
（１）アプリケーションプログラムの用途等に応じてリソースファイルやコードファイルを複数個作成する必要がなく、これらの管理コストを低減できる。
（２）機能要素に対して任意に設定可能な機能要素識別名を用いてアプリケーションプログラムにかかる制御情報を定義することができ利便性が高い。
【図面の簡単な説明】
【００１８】
【図１】実施形態の一例としての情報処理装置の構成を模式的に示す図である。
【図２】実施形態の一例としての情報処理装置におけるアプリケーションプログラムのソフトウェア環境を模式的に示す図である。
【図３】実施形態の一例としての情報処理装置における各ファイルの格納例を示す図である。
【図４】実施形態の一例としての情報処理装置において用いられるBP-DEFの定義フォーマットの例を示す図である。
【図５】実施形態の一例としてのBP-DEFの情報定義部のフォーマットを例示する図である。
【図６】実施形態の一例としてのBP-DEFの情報定義部の定義例を示す図である。
【図７】実施形態の一例としての言語情報定義部のフォーマットを例示する図である。
【図８】実施形態の一例としての言語情報定義部の定義例を示す図である。
【図９】実施形態の一例としての使用コマンド定義部のフォーマットを例示する図である。
【図１０】実施形態の一例としての使用コマンド定義部の定義例を示す図である。
【図１１】実施形態の一例としての使用禁止コマンド定義部のフォーマットを例示する図である。
【図１２】実施形態の一例としての使用禁止コマンド定義部の定義例を示す図である。
【図１３】実施形態の一例としてのBP-DEFのコマンド文字差替え定義部のフォーマットを例示する図である。
【図１４】実施形態の一例としてのBP-DEFのコマンド文字差替え定義部の定義例を示す図である。
【図１５】実施形態の一例としてのBP-DEFのコマンド文字差替え定義部の定義例を示す図である。
【図１６】実施形態の一例としての画面文字差替え定義部のフォーマットを例示する図である。
【図１７】実施形態の一例としての画面文字差替え定義部の定義例を示す図である
【図１８】実施形態の一例としてのＤＢ項目文字差替え定義部のフォーマットを例示する図である。
【図１９】実施形態の一例としてのＤＢ項目文字差替え定義部の定義例を示す図である。
【図２０】実施形態の一例としての区切り文字付きメッセージの文字差替え定義部のフォーマットを例示する図である。
【図２１】実施形態の一例としての区切り文字付きメッセージの文字差替え定義部の定義例を示す図である。
【図２２】実施形態の一例としての禁止コマンド解除定義部のフォーマットを例示する図である。
【図２３】実施形態の一例としての禁止コマンド解除定義部の定義例を示す図である。
【図２４】実施形態の一例としての情報処理装置における禁止コマンド解除定義部の運用にかかるAPIの関数仕様を例示する図である。
【図２５】実施形態の一例としての情報処理装置における禁止コマンド解除定義部の運用にかかるAPIの関数仕様を例示する図である。
【図２６】実施形態の一例としてのライセンス制御定義部のフォーマットを例示する図である。
【図２７】実施形態の一例としてのライセンス制御定義部の定義例を示す図である。
【図２８】実施形態の一例としてのユーザ毎環境設定定義部のフォーマットを例示する図である。
【図２９】実施形態の一例としてのユーザ毎環境設定定義部のツールバー定義のフォーマットを例示する図である。
【図３０】実施形態の一例としてのユーザ毎環境設定定義部の定義例を示す図である。
【図３１】実施形態の一例としてのユーザ毎環境設定定義部の表示ウィンドウ定義のフォーマットを例示する図である。
【図３２】実施形態の一例としてのユーザ毎環境設定定義部の表示ウィンドウ定義の定義例を示す図である。
【図３３】実施形態の一例としての情報処理装置におけるベース以外の言語についての言語情報定義部の例を示す図である。
【図３４】実施形態の一例としてのCommandInfo.txtの定義フォーマットの例を示す図である。
【図３５】実施形態の一例としてのCommandInfo.txtの定義フォーマットの定義例を示す図である。
【図３６】実施形態の一例としてCommandInfo.txtの生成に際して採取されるMFC標準コマンドを例示する図である。
【図３７】実施形態の一例としてCommandInfo.txtの生成に際して採取されるMFC標準コマンドの定義例を示す図である。
【図３８】実施形態の一例としてのCommandInfo.txt生成過程におけるデータの流れを例示する図である。
【図３９】実施形態の一例としてのCommandInfo.txtの作成手法を説明するためのフローチャートである。
【図４０】実施形態の一例としてのアプリケーションプログラムの作成処理を説明するためのフローチャートである。
【図４１】実施形態の一例としての情報処理装置における処理を説明するためのフローチャートである。
【図４２】実施形態の一例としてのBP-DEFの定義例を示す図である。
【図４３】実施形態の一例としての表示装置に表示されるメニュー画面の例を示す図である。
【図４４】リソースファイルの例を示す図である。
【図４５】ヘッダファイルの例を示す図である。
【図４６】メニュー画面の例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本情報処理装置、処理方法、処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体に係る実施の形態を説明する。
図１は実施形態の一例としての情報処理装置の構成を模式的に示す図である。本情報処理装置（コンピュータ）１は、アプリケーションプログラムを実行することにより種々の機能を実現する。
【００２０】
本情報処理装置１は、図１に示すように、ＣＰＵ（Central Processing Unit）１０，記憶装置２１，ＲＡＭ（Random Access Memory）２３，ＲＯＭ（Read Only Memory）２４及び表示装置２５をそなえている。
ＲＯＭ２４は種々のプログラムやデータを格納する記憶装置であり、ＲＡＭ２３は後述するＣＰＵ１０が演算処理や制御を行なう際にデータ等を一次的に格納する記憶装置である。
【００２１】
表示装置２５は種々の情報を表示するものであり、例えば、液晶ディスプレイやＥＬ（electroluminescence）ディスプレイ，ＣＲＴ（Cathode Ray Tube）ディスプレイ等、種々の方式の表示装置が用いられる。この表示装置２５には、ＯＳ（Operating System）やアプリケーションプログラム２０１の種々のメニューやメッセージ等、種々の情報が表示（出力）される。
【００２２】
記憶装置（制御定義情報格納部，機能要素定義情報格納部）２１は、種々のプログラムやデータを格納する記憶装置であって、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）である。この記憶装置２１には、例えば、ＯＳや起動処理プログラム（図示省略）の他、アプリケーションプログラム２０１，リソース定義ファイル２０２およびコマンド情報ファイル２０３が格納されている。
【００２３】
アプリケーションプログラム２０１は、本情報処理装置１に機能を実現させるためのプログラムであり、例えば、ロードモジュール（実行ファイル）の状態で格納されている。又、アプリケーションプログラム２０１は、複数のリソース（機能要素）を有している。
ここで、リソースとは、ＯＳやアプリケーションプログラム２０１等のプログラムが使用するデータ（オブジェクト）であり、各種コマンドの他、テキストやウィンドウの内容，メニューの情報（属性情報）等が含まれる。そして、アプリケーションプログラム２０１において使用するリソースにより、例えば、表示装置２５に表示される文字のフォントの種類や表示色，背景色等が特定される。すなわち、このリソースを変更することにより、アプリケーションプログラム２０１のＧＵＩ（Graphical User Interface）や機能を適宜、変更することができる。
【００２４】
なお、本実施形態においては、メニューとは、例えば、会話型アプリケーションプログラムのＧＵＩのメニューバー上に配置される各種メニュー（メニューバーメニュー）や、このメニューバーメニューからプルダウン表示されるプルダウンメニュー，表示画面上におけるポインタ操作等に伴って表示されるポップアップメニュー等を含んだ総称をいう。
また、コマンドとは、会話型アプリケーションプログラムにおける処理の最小単位である。そして、上述したメニューの各項目に、それぞれ１つのコマンドが割り当てられている。すなわち、コマンドの集合体がメニューとして表示される。
【００２５】
ダイアログとは、コマンドの実行の前後でそのコマンドを遂行するために必要な情報を交換する為に表示されるウィンドウを指す。
本情報処理装置１においては、アプリケーションプログラム２０１の起動時において、そのリソースの少なくとも一部を切り替えることにより、起動後のアプリケーションプログラム２０１の機能やＧＵＩを変更することができる。これにより、アプリケーションプログラム２０１を異なる用途に合わせて使い分けることができる。
【００２６】
以下、本実施形態においては、アプリケーションプログラム２０１がＣＡＤプログラムである場合について説明する。そして、例えば、このアプリケーションプログラム２０１の起動時において、少なくとも一部のリソースを変更することにより、プリント板ＣＡＤとインフラＣＡＤとの２種類のＣＡＤに選択的に切り替えることができる。又、アプリケーションプログラム２０１の起動後においても、少なくとも一部のリソースを変更することにより、プリント板ＣＡＤもしくはインフラＣＡＤにおける、機能や画面表示等を適宜変更することができる。なお、プリント板ＣＡＤとは、プリント基板の回路設計の用途に用いられるＣＡＤであり、インフラＣＡＤとは、データセンタ等における機器のレイアウトに用いられるＣＡＤである。
【００２７】
図２は実施形態の一例としての情報処理装置１におけるアプリケーションプログラム２０１のソフトウェア環境を模式的に示す図である。
本情報処理装置１においては、この図２に示すように、アプリケーションプログラム２０１のロードモジュール２０１ａと、リソース定義ファイル２０２およびコマンド情報ファイル２０３とを用いることによりアプリケーションプログラム２０１が実行される。
【００２８】
ロードモジュール２０１ａは、ＣＰＵ１０が実行可能な実行ファイルであり、例えば、拡張子が“exe”や“dll”等のファイルである。このロードモジュール２０１ａは、アプリケーションプログラム２０１のソースコードファイル（図示省略）とリソースファイル（図示省略）とをビルド（コンパイル及びリンケージ）することにより作成される。なお、ビルドは、一般にビルドツールと呼ばれるプログラムを使いて行なわれる。
【００２９】
ソースコードファイル（コードファイル）は、ソースコード（コード）が記述されたファイルである。ソースコードとは、例えば、ｃ，やｃ＋＋等のプログラミング言語の仕様に従って記述されたコンピュータに対する一連の指示である。リソースファイルは、例えば、メニューやダイアログ等のＧＵＩを定義する。
リソース定義ファイル２０２は、アプリケーションプログラム２０１にかかる制御情報を定義する情報であり、リソースに対して任意に設定したリソース名（機能要素識別名）を用いてアプリケーションプログラム２０１にかかる制御情報を定義するものである。
【００３０】
例えば、WindowsのMFC（Microsoft Foundation Class）においては、リソースを固有の数値（リソースＩＤ，機能要素ＩＤ）を付与して管理している。このリソースＩＤには一般に所定桁数の数字（番号）が用いられ、プログラマ等がコードファイルやリソースファイルの作成にこのリソースＩＤを用いるには利便性が低い。そこで、プログラマは、任意の文字や記号を組み合わせて認識し易い文字列作成し、各リソースに対して、この作成した文字列をリソース名として割り当てる。そして、プログラミング時においては、リソースＩＤに代えてこのリソース名を用いてコードファイルやリソースファイルの作成を行なう。
【００３１】
なお、以下、リソースにはコマンドが含まれるものとし、又、リソースＩＤにはコマンドに固有の数値であるコマンドＩＤが含まれる。
リソース定義ファイル２０２は、プログラマ等が任意に設定するものであり、リソース名を用いて、アプリケーションプログラム２０１にかかる制御情報を定義する。
このリソース定義ファイル２０２は、文字列“BP-DEF”を含んだファイル名で保存される（例えば、BP-DEF.txt）ことが望ましい。以下、リソース定義ファイル２０２のことをBP-DEFと表現する場合がある。
【００３２】
リソース定義ファイル２０２には、例えば、以下の（ａ）〜（ｆ）に示す機能を制御するための定義が含まれる。
（ａ）実行開始直後に、機能単位または機能内の特定のコマンドの表示・非表示を制御する機能
（ｂ）メニュー，ダイアログ表示時にラベル名等を書き換える機能
（ｃ）メッセージ出力時にメッセージ本文を書き換える機能
（ｄ）使用禁止コマンドも特定のコマンドの実行中にのみ実行可能とする機能
（ｅ）ライセンスによって機能を表示・非表示にする機能
（ｆ）ユーザの環境に合わせて環境設定する機能
また、本実施形態においては、リソース定義ファイル２０２には、デフォルトのBP-DEF，システムカスタマイズ用のBP-DEF及びユーザカスタマイズ用のBP-DEFがある。
【００３３】
デフォルトのBP-DEFは、アプリケーションプログラム２０１における各制御（使用コマンドの定義や文字の差し替え指示等）のデフォルト設定となる情報を定義するファイルである。又、このデフォルトのBP-DEFの定義は、プログラマが手作業で入力することにより設定（作成）される。
また、本実施形態においては、デフォルトのBP-DEFには、プリント板ＣＡＤ用のデフォルトのBP-DEF（ファイル名：BP-DEF_PT）と、インフラＣＡＤ用のデフォルトのBP-DEF（ファイル名：BP-DEF_INFRA）とがある。
【００３４】
なお、これらのデフォルトのBP-DEFは、上述の如くプログラマの手作業により定義されるものであるので、使用コマンド等の定義漏れが生じるおそれがある。そこで、定義漏れをチェックするプログラムを別途用意することが望ましい。例えば、定義漏れチェックのプログラムは、コードファイルやリソースファイルにおいて使用されているリソース名を順次抽出し、各リソース名がデフォルトのBP-DEFに定義（登録）されているかを確認する。
【００３５】
システムカスタマイズ用のBP-DEFは、デフォルトのBP-DEFに対して、システムとしてカスタマイズを行なう場合に用いられ、プログラマによって定義される。又、本実施形態においては、アプリケーションプログラム２０１の用途に応じてシステムカスタマイズ用のBP-DEFをそれぞれ用意する。
例えば、プリント板ＣＡＤの用途として通信機器の設計と情報処理装置の設計とがある場合には、通信機器の設計に用いるカスタマイズＡ用のBP-DEF（ファイル名：BP-DEF_A）と、情報処理装置の設計に用いるカスタマイズＢ用のBP-DEF（ファイル名：BP-DEF_B）との２種類のシステムカスタマイズ用のBP-DEFを用意する。
【００３６】
ユーザカスタマイズ用のBP-DEFは、アプリケーションプログラム２０１のユーザが個別に制御を定義するファイル（ファイル名：BP-DEF_USER）である。このユーザカスタマイズ用のBP-DEFに定義した内容は、ロードしたデフォルトのBP-DEFの定義内容に対して上書きされる。
このユーザカスタマイズ用のBP-DEFは、デフォルトのBP-DEFの定義に対して、ユーザがカスタマイズしたい箇所（差分）のみの定義を行なう。又、このユーザカスタマイズ用のBP-DEFには使用コマンドの定義は行なわず、又、仮にコマンド定義が行なわれたとしても無視されるものとする。使用させたいコマンドは、デフォルトのBP-DEFに定義されることが望ましい。
【００３７】
また、本実施形態においては、プリント板ＣＡＤにおいてシステムカスタマイズ用としてカスタマイズＡ／カスタマイズＢを切り替え可能に用い、又、インフラＣＡＤにおいて、ユーザカスタマイズ用BP-DEFを用いる。又、上述したBP-DEFは、システムカスタマイズ用とユーザカスタマイズ用との階層構造にしてもよい。
図３は実施形態の一例としての情報処理装置における各ファイルの格納例を示している。この図３に示す例においては、記憶装置２１におけるフォルダ“%EMAGINEDIR%”の下層にフォルダ“BP”及びフォルダ“UserExtention”が形成されている。又、フォルダ“BP”の下層にはフォルダ“BP-DEF”が形成され、このフォルダ“BP-DEF”に、CommandInfo.txt，BP-DEF_PT，BP-DEF_INFRA，BP-DEF_A及びBP-DEF_Bが格納されている。更に、フォルダ“UserExtention”の下層にはフォルダ“BP”が形成されており、このフォルダ“BP”にBP-DEF_USERが格納されている。
【００３８】
なお、CommandInfo.txtについては後述する。又、これらの各ファイルの格納位置は、この図３に示す例に限定されるものではなく、適宜変形して実施することができる。
図４は実施形態の一例としての情報処理装置において用いられるBP-DEFの定義フォーマットの例を示す図である。
BP-DEF（リソース定義ファイル２０２）の定義フォーマットは、例えば、図４に示すように、BP-DEFの情報定義部ａ１，言語情報定義部ａ２，使用コマンド定義部ａ３，使用禁止コマンド定義部ａ４，コマンド文字差替え定義部ａ５，画面文字差替え定義部ａ６，ＤＢ項目文字差替え定義部ａ７，区切り文字付きメッセージの文字差替え定義部ａ８，禁止コマンド解除定義部ａ９，ユーザ毎環境設定定義部ａ１０及びライセンス制御定義部ａ１１をそなえている。
【００３９】
なお、以下、BP-DEF中における“#”以降はコメントとして扱われ、無視されるものとする。又、複数行にまたがる定義は不可とする。更に、文字列中にダブルクォート（”）を記述する場合は、「\”」 のようにバックスラッシュを付加して記述する。
以下に、BP-DEFにおける各定義部について説明する。
（１）BP-DEFの情報定義部
図５は実施形態の一例としてのBP-DEFの情報定義部ａ１のフォーマットを例示する図、図６はその定義例を示す図である。
【００４０】
BP-DEFの情報定義部ａ１は、タグ<BPDEF>とタグ<BPDEFEND>との間に言語毎の使用コマンド定義や文字の差し替え指示等を記述する。又、<“コメント”>のみ省略可とし、その他の項目は省略不可とする。
図６に示す例においては、「日本語の文字の差し替え定義」や「英語の文字の差し替え定義」と記述されている領域に、言語情報定義部ａ２，使用コマンド定義部ａ３，使用禁止コマンド定義部ａ４，コマンド文字差替え定義部ａ５，画面文字差替え定義部ａ６，ＤＢ項目文字差替え定義部ａ７，区切り文字付きメッセージの文字差替え定義部ａ８，禁止コマンド解除定義部ａ９，ユーザ毎環境設定定義部ａ１０及びライセンス制御定義部ａ１１が記述される。
【００４１】
（２）言語情報定義部
図７は実施形態の一例としての言語情報定義部ａ２のフォーマットを例示する図、図８はその定義例を示す図である。
言語情報定義部ａ２は、タグ<MEBP_LANG>とタグ<MEBP_LANGEND>との間に、指示した言語の使用コマンド一覧の定義や文字の差し替え指示を記述する。
【００４２】
具体的には、図８に示す例においては、「日本語の使用コマンド一覧の定義、文字の差し替え定義など・・・」もしくは「英語の使用コマンド一覧の定義、文字の差し替え定義など・・・」と記述されている領域に、使用コマンド定義部ａ３，使用禁止コマンド定義部ａ４，コマンド文字差替え定義部ａ５，画面文字差替え定義部ａ６，ＤＢ項目文字差替え定義部ａ７，区切り文字付きメッセージの文字差替え定義部ａ８，禁止コマンド解除定義部ａ９，ユーザ毎環境設定定義部ａ１０及びライセンス制御定義部ａ１１が記述される。
【００４３】
なお、<言語>は、以下のように指示する。
JAPANESE : 日本語（テ゛フォルト。省略可）
ENGLISH  : 英語
また、日本語環境の定義を英語環境に引き継がせる場合については後述する「（１２）その他」の項目を参照の事。
【００４４】
そして、この言語情報定義部ａ２は、使用する言語毎に定義する。
（３）使用コマンド定義部
図９は実施形態の一例としての使用コマンド定義部ａ３のフォーマットを例示する図、図１０はその定義例を示す図である。
使用コマンド定義部ａ３は、タグ<USECOMMAND>とタグ< USECOMMANDEND>との間に、使用コマンド一覧の定義を記述する。使用コマンド一覧の定義は、コマンド名を記述することにより行なう。
【００４５】
また、コマンド名はプロジェクト毎に定義し、タグ<PROJECT>とタグ<PROJECTEND>との間に、そのプロジェクトで使用を許可するコマンドを定義する。なお、プロジェクトのフォルダ名（以下、プロジェクト名という場合がある）は大文字で指定するものとし、又、コマンド名は、“ID_xxx”の形式で定義する。なお、以下、ID_xxxと表現する場合には、xxxの箇所には任意桁数の任意の文字が入力されるものとする。
【００４６】
さらに、使用コマンドの定義はID_xxxのみの定義のため、それだけでは何のコマンドであるのかがわかり辛い。そこで、各コマンド名に対して、その内容が分かる情報、例えば、コマンドについての説明を表記する文字列（コマンド文字列，関連情報）をコメントとして記入することが望ましい。
デフォルトのBP-DEFにおいては、この使用コマンド定義部ａ３に定義されていないコマンドは使用不可となり、例えば、メニュー上においてはそのコマンドは非アクティブの状態となる。又、使用コマンド一覧の定義は、デフォルトのBP-DEFに対してのみ可能とする。従って、カスタマイズ用のBP-DEFへ使用コマンド一覧を定義した場合においても、これらのカスタマイズ用のBP-DEFに登録された使用コマンド一覧は無視される。
【００４７】
図１０に示す例においては、プロジェクト“MEBP”に対して、ID_BP_FILE_OPEN，ID_BP_FILE_CLOSE，ID_BP_FILE_SAVE，ID_EDIT_PART_COPY及びID_EDIT_PART_COPYを使用可能なコマンドとして定義している。又、この図１０に示す例においては、プロジェクト“EDITATTR”に対して、ID_SAVE_TO_CSV_OVERWRITE，ID_SAVE_TO_CSV，ID_LIST_DLG_MENUITEM_START_EDITATTR及びID_LIST_DLG_MENUITEM_DELETE_LAYOUTを使用可能なコマンドとして定義している。
【００４８】
（４）使用禁止コマンド定義部
図１１は実施形態の一例としての使用禁止コマンド定義部ａ４のフォーマットを例示する図、図１２はその定義例を示す図である。
使用禁止コマンド定義部ａ４は、タグ<UNUSECOMMAND>とタグ< UNUSECOMMANDEND>との間に、使用を禁止するコマンド一覧（使用禁止コマンド一覧）の定義を記述する。使用禁止コマンド一覧の定義は、コマンド名を記述することにより行なう。
【００４９】
また、コマンド名はプロジェクト毎に定義し、タグ<PROJECT>とタグ<PROJECTEND>との間に、そのプロジェクトで使用を許可するコマンドを定義する。なお、プロジェクトのフォルダ名は大文字で指定するものとし、又、コマンド名は、“ID_xxx”の形式で定義する。
さらに、使用禁止コマンドについても、その定義は、ID_xxxの如くコマンド名が記述されるだけであるので、対応させてその関連情報をコメントとして記入することが望ましい。
【００５０】
また、デフォルトのBP-DEFで使用禁止コマンドとして定義されているコマンドは、カスタマイズ用のBP-DEF上で使用コマンドとして定義したとしても、デフォルトのBP-DEFの使用禁止定義が優先され、使用禁止コマンドのままとなる。
【００５１】
【表１】
2011186720.tif 000003
【００５２】
すなわち、表１に示すように、例えば、デフォルトのBP-DEFに使用コマンドとして定義されるとともに、カスタマイズ用のBP-DEFに使用禁止コマンドとして定義されたコマンドＡは使用不可となる。又、例えば、デフォルトのBP-DEFに使用禁止コマンドとして定義されるとともに、カスタマイズ用のBP-DEFに使用コマンドとして定義されたコマンドＢも使用不可となる。
【００５３】
ここで、使用禁止コマンド定義部ａ３が必要な理由を説明する。
使用コマンドのみが定義できる場合は、使用禁止コマンドにしたい場合は、使用コマンド定義部ａ３に以下のパターン１，２のいずれかの定義を行なうことになる。すなわち、
［パターン１］使用コマンド一覧に定義されているが、先頭に“#”を定義してコメント扱いにする。
【００５４】
［パターン２］使用コマンド一覧に定義しない。
デフォルトのBP-DEFだけの場合は問題ないが、特定のユーザ用のカスタマイズ用BP-DEFにて使用禁止コマンドを定義したい場合に問題が生じるおそれがある。
例えば、上記パターン１により、デフォルトのBP-DEF上では使用コマンドとして定義されている既存のコマンドＡを、ユーザカスタマイズ用のBP-DEF上では“#”をつけてコメント扱いとして使用禁止コマンドとして定義したとする。又、新たにコマンドＢが追加され、このコマンドｂがデフォルトのBP-DEFに使用コマンドとして定義されたとする。
【００５５】
【表２】
2011186720.tif 000004
【００５６】
このような場合に、表２に示すように、ユーザカスタマイズ用のBP-DEF上ではコマンドＢは使用コマンド一覧には未定義の状態となる。コマンドＢは使用可として扱いたいが、上記の［パターン１］もしくは［パターン２］の仕様では、コマンドＢも使用不可とみなされてしまう。
【００５７】
【表３】
2011186720.tif 000005
【００５８】
これを解決するために使用禁止コマント゛の定義の概念を設けて、明示的に使用不可のコマンドを定義する（表３参照）。
図１２に示す例においては、プロジェクト“MEBP”に対して、ID_BP_FILE_SAVEを使用不可なコマンドとして定義している。又、この図１０に示す例においては、プロジェクト“EDITATTR”に対して、ID_LIST_DLG_MENUITEM_START_EDITATTR及びID_LIST_DLG_MENUITEM_DELETE_LAYOUTを使用不可なコマンドとして定義している。
【００５９】
（５）コマンド文字差替え定義部
図１３は実施形態の一例としてのBP-DEFのコマンド文字差替え定義部ａ５のフォーマットを例示する図、図１４及び図１５はそれぞれその定義例を示す図である。
BP-DEFのコマンド文字差替え定義部ａ５は、タグ<COMMAND_STRINGCHANGE>とタグ< COMMAND_STRINGCHANGEEND>との間にコマンドの文字差し替えの定義を行なう。具体的には、対象となるコマンドのコマンド名の後に、変更前の文字と変更後の文字を並べて記述する。
【００６０】
なお、コマンド名はプロジェクト毎に定義し、タグ<PROJECT>とタグ<PROJECTEND>との間に、そのプロジェクトで使用を許可するコマンドを定義する。なお、プロジェクトのフォルダ名は大文字で指定するものとし、又、コマンド名は、“ID_xxx”の形式で定義する。
変更前の文字と一致した場合、変更後の文字に置き換える（文字比較は完全一致ではなく、部分一致での比較）。又、全プロジェクトのコマンドを一括で変更したい場合は、“*”を指示する。更に、各項目は省略不可とする。
【００６１】
図１４に示す例においては、全コマンドの文字列“部品ピン”を文字列“IF”に置換するとともに、プロジェクト“MeBP”のコマンドID_TOOL_ADD_MISC_PARTの“機構部品”を“システム添付品”に置換する例を示している。
また、図１５に示す例においては、プロジェクト“MeBP”の配下の全てのコマンドの文字列“AAA”を文字列“BB”に置換するとともに、各プロジェクト配下のコマンド“ID_TOOL_ADD_MISC_PART”の文字列“機構部品”を文字列“システム添付品”に置換する例を示している。
【００６２】
（６）画面文字差替え定義部
図１６は実施形態の一例としての画面文字差替え定義部ａ６のフォーマットを例示する図、図１７はその定義例を示す図である。
画面文字差替え定義部ａ６は、タグ<DIALOG_STRINGCHANGE>とタグ<DIALOG_STRINGCHANGEEND>との間に、各画面中における文字差替えの定義を記述する。具体的には、変更前の文字と変更後の文字を並べて記述する。
【００６３】
なお、文字差替えの定義は、画面毎に指示するものであって、タグ<DIALOG>とタグ<DIALOGEND>との間に文字差替えの定義を記述する。又、タグ<DIALOG>には、対象となる画面に関する“プロジェクトのフォルダ名”と、その“画面タイトル”とをダブルコロン“：”を介して並べる。
プロジェクトのフォルダ名は大文字で指定するものとし、又、変更前の文字と一致した場合、変更後の文字に置き換える（文字比較は完全一致での比較）。
【００６４】
画面のコマンド名指示による文字差し替え方法では、“IDC_STATIC”のコマンド名を画面内に複数定義することができるため、画面内のコマンド名を特定することは不可能である。一方、本手法の如く、文字列比較による差し替えを行なうことにより、画面内の任意の文字を確実に差し替えることが可能となる。又、全画面を一括で変更したい場合は、“*”を指示する。更に、各項目は省略不可とする。
【００６５】
図１７に示す例においては、全画面における文字列“部品ピン”を文字列“IF”に、又、文字列“ピン名”を文字列“IF名”にそれぞれ置換している。更に、プロジェクト“MeBP”の「機構部品入力」の画面において、文字列“機構部品入力”を文字列“システム添付品入力”に、文字列“別途手配指示”を文字列“借用／持ち込み”に、それぞれ置換している。又、文字列“入力済み部品情報”を“入力済み製品情報に”、文字列“部品名”を文字列“製品名”に、又、文字列“入力部品情報”を“入力製品情報”にそれぞれ置換する例を示している。
【００６６】
（７）ＤＢ項目文字差替え定義部
図１８は実施形態の一例としてのＤＢ項目文字差替え定義部ａ７のフォーマットを例示する図、図１９はその定義例を示す図である。
ＤＢ項目文字差替え定義部ａ７は、BPDEFプロジェクトのリソースに定義されている各プロジェクトで共通で参照するようなＤＢの項目（ラベル，値等）に対する指示である。
【００６７】
具体的には、タグ<RESOURCE_STRINGCHANGE >とタグ<RESOURCE_STRINGCHANGEEND>との間に、リソースの文字差し替えの定義を記述する。具体的には、変更前の文字と変更後の文字を並べて記述する。
なお、文字差替えの定義は、画面毎に指示するものであって、タグ<DIALOG>とタグ<DIALOGEND>との間に文字差替えの定義を記述する。この文字差替えの定義は、対象となるリソース名と変更した文字とを並べて記述する。また、リソース名は以下の形式で指示する。
【００６８】
ラベル      ：“IDS_LABEL_XXX”
値          ：“IDS_VALUE_XXX”
図１９はIDS_LABEL_XXX及びIDS_VALUE_XXXの文字の差し替えを行なう例を示している。
さて、BPDEFプロジェクトに以下に示す関数（１）を設けて、BP-DEFに定義したリソース名はその関数から参照する仕組みとする。
【００６９】
string LoadStringBPDef( “IDS_LABEL_xxx” )・・・（１）
なお、この関数（１）は、以下の処理を行なう。
（i）引数に指示されたリソース名がBP-DEFに定義されている場合は、定義された文字列を返す。
（ii）引数に指示されたリソース名 がBP-DEFに未定義の場合は、BPDEFプロジェクトのリソースから文字列を取得して返す。
【００７０】
引数に指示されるリソースＩＤは文字列なので、後述するCommandInfo.txtを参照して数値のコマンドＩＤを取得した後、リソースから該当する文字列を取得する。
（８）区切り文字付きメッセージの文字差替え定義部
図２０は実施形態の一例としての区切り文字付きメッセージの文字差替え定義部ａ８のフォーマットを例示する図、図２１はその定義例を示す図である。
【００７１】
区切り文字付きメッセージの文字差替え定義部ａ８は、区切り文字付きの文字列について、区切り文字で囲まれている部分を他の文字列で置換する指示を定義する。この区切り文字付きメッセージの文字差替え定義部ａ８は、タグ<MESSAGE_STRINGCHANGE>とタグ<MESSAGE_STRINGCHANGEEND>との間に、区切り文字付きの文字列中における文字差替えの定義を記述する。具体的には、変更前の文字と変更後の文字を並べて記述する。
【００７２】
ここで、区切り文字とは、予め設定された特定の文字列であり、本実施形態においては、文字列“![”及び“]!”を区切り文字として用いる。これらの文字列“![”及び“]!”を含む文字列において、区切り文字“![”と“]!”とで挟まれて（囲まれて）いる部分が置換対象の文字となり、変換後の文字列を用いて置換される。
なお、この区切り文字付きメッセージの文字差替え定義部ａ８においてはプロジェクト名や画面タイトル等の指示は不要とする。そして、区切り文字で区切った置換対象の文字と一致した場合に、変更後の文字に置き換える（文字比較は完全一致での比較）。
【００７３】
図２１に示す例においては、「![部品]!(%sPART%)には![別途手配フラグ]!を設定できません。![未設定]!にします。」との文章（区切り文字付きメッセージ）において、“部品”，“別途手配フラグ”及び“未設定”の各文字列を、“製品”，“借用／持ち込み”及び“未登録”の文字列にそれぞれ置換する。
これにより、「部品 (%sPART%)には別途手配フラグを設定できません。未設定にします。」とのメッセージが書き換えられ、「製品(%sPART%)には借用／持ち込みを設定できません。未登録にします。」となる。
【００７４】
一般に、メッセージ文中の一部の単語を機械的に置換する指示は、プログラマが意図しない書換が生じるおそれがある。
例えば、プリント板ＣＡＤにおける別途手配指示の「する／しない」は、インフラＣＡＤの場合には「借用／持ち込み」と差し替える必要がある。この場合、単純に、文字列「する」を文字列「借用」に差し替えてしまうと、意図しない「する」まで「借用」に差し替わってしまうおそれがある。
【００７５】
そこで、本実施形態においては、メッセージ文内の置換え対象となりそうな単語を区切り文字( ![，]! )で区切り、表示する場合は区切り文字を除いて表示する。すなわち、区切り文字間を１語として認識して、その区切り文字間の単語で文字比較を行ない、文字差し替えを行なう。以下に、メッセージ文の定義例を示す。
#NO:934 LVL:WAR ID:CANNOT_SET_PREPARE
![Parts]!(%sPART%) cannot set ![special prepare]!.
![部品]!(%sPART%)には![別途手配フラク゛]!を設定できません。![未設定]!にします。
【００７６】
（９）禁止コマンド解除定義部
図２２は実施形態の一例としての禁止コマンド解除定義部ａ９のフォーマットを例示する図、図２３はその定義例を示す図である。
禁止コマンド解除定義部ａ９は、使用禁止したコマンドであっても、指定したコマンドを実行中の場合には使用禁止コマンドの解除を行なう指示を定義する。
【００７７】
具体的には、タグ<RELEASE_UNUSECOMMAND>とタグ<RELEASE_UNUSECOMMANDEND>との間に、使用禁止を解除したいコマンドの定義を記述する。使用禁止を解除したいコマンドの定義は、コマンド名を記述することにより行なう。
また、コマンド名はプロジェクト毎に定義し、タグ<PROJECT>とタグ<PROJECTEND>との間に、そのプロジェクトで使用禁止を解除したいコマンドを定義する。又、タグ<PROJECT>には、対象とする“プロジェクトのフォルダ名”と、実行するコマンド名とを並べる。なお、プロジェクトのフォルダ名は大文字で指定するものとし、又、コマンド名は、“ID_xxx”の形式で定義する。
【００７８】
さらに、使用禁止を解除したいコマンドについても、その定義は、ID_xxxの如くコマンド名が記述されるだけであるので、対応させてその関連情報をコメントとして記入することが望ましい。
なお、対象のコマンドの実行が終了した場合は、その使用禁止を解除したコマンドは再び使用禁止コマンドとなる。
【００７９】
図２３に示す例においては、プロジェクト“MEBP”において、コマンド“ID_EDIT_PRODUCT”の実行中には、「グループ化解除」のコマンド“ID_TOOL_UNGROUP”と、「部品入力」のコマンド“ID_SHOW_PLACE_DLG”とを実行可とする。
図２４及び図２５は実施形態の一例としての情報処理装置における禁止コマンド解除定義部ａ９の運用にかかるAPIの関数仕様を例示する図である。なお、図２４は使用禁止コマンドを一次的に解除するAPIの例を示す図、図２５は一時的に解除した使用禁止コマンドを再度使用禁止コマンドに戻すAPIの例を示す図である。
【００８０】
また、この禁止コマンド解除定義部ａ９は、以下のように運用することが望ましい。
すなわち、図２４に示すような、コマンドの実行時に、使用禁止コマンドを一時的に解除するAPIをBPDEFプロジェクトに定義する。
また、図２５に示すような、コマンドの終了時に、一時的に解除した使用禁止コマンドを再度使用禁止コマンドに戻すAPIをBPDEFプロジェクトに定義する。
【００８１】
（１０）ライセンス制御定義部
図２６は実施形態の一例としてのライセンス制御定義部ａ１１のフォーマットを例示する図、図２７はその定義例を示す図である。
ライセンス制御定義部ａ１１は、使用可とするコマンドや使用付加とするコマンドをライセンスの単位で定義するものであり、ライセンス種類に応じて、使用可もしくは使用不可とするコマンドをそれぞれ規定する。
【００８２】
具体的には、タグ< LICENSE >とタグ<LICENSEEND>との間に、使用可能なコマンドの定義を記述する。具体的には、例えば、使用可能なコマンド名を定義する。又、タグ<LICENSE>には、対象とする“ライセンス名”を並べる。なお、<“コメント”>のみ省略可とし、その他の項目は省略不可とする。
図２７に示す例においては、ライセンス名“BASE”について、コマンドID_BP_FINE_NEWを使用可能に設定している。
【００８３】
（１１）ユーザ毎環境設定定義部
図２８は実施形態の一例としてのユーザ毎環境設定定義部ａ１０のフォーマットを例示する図である。
ユーザ毎環境設定定義部ａ１０は、ユーザ固有の環境設定を定義するものであり、タグ<USER_SETTING>とタグ<USER_SETTINGEND>との間に環境設定の定義を記述する。
【００８４】
<キー名>=<設定値>の指示形式については、iniファイルでの指示形式と同様とする。但し、BP-DEFではコロン（：）”が区切り文字として扱われるので、サーバパス定義（http：//等）中のコロンが区切り文字として判断されないように、<設定値>に文字列を指示する場合はダブルクォート（“，”）で囲んで記述する。
また、このユーザ毎環境設定定義部ａ１０には、アプリケーションプログラム２０１が接続される各種サーバ（データサーバやウェブサーバ，ライブラリサーバ）へのアクセスパス（サーバパス）等を登録することもできる。
【００８５】
さらに、ユーザ毎環境設定定義部ａ１０においては、アクセス可能な各種サーバへのアクセスパスを予め登録しておき、アクセスを有効にするパスに対してのみ、参照を許可することを表すフラグ（例えば“１”）を設定してもよい。又、アクセスを有効にするパス数に上限を定めてもよい。
また、ユーザ毎環境設定定義部ａ１０には、利用可能なツールバーの定義を含んでもよい。
【００８６】
図２９は実施形態の一例としてのユーザ毎環境設定定義部ａ１０のツールバー定義のフォーマットを例示する図、図３０はその定義例を示す図である。
ツールバー定義は、タグ<TOOLBAR>とタグ<TOOLBAREND>との間に使用するツールバーコードの定義を記述する。なお、ツールバーは一段毎に定義を行ない、タグ<ROW_GROUP>とタグ<ROW_GROUPEND>とにより一段分のツールバーを定義する。又、ツールバーの特定に用いるツールバー名は、“ID_xxx”の形式で定義を行なう。
【００８７】
図３０に示す例においては、１段目のツールバーに、コマンド“ID_VIEW_TOOLBAR”とコマンド“ID_VIEW_TOOLBAR_EDIT”とを、又、２段目のツールバーに、コマンド“ID_VIEW_TOOLBAR_FIND”とコマンド“ID_VIEW_TOOLBAR_LIST”とをそれぞれ設定している。
さらに、ユーザ毎環境設定定義部ａ１０には、表示ウィンドウの表示もしくは非表示の定義を含んでもよい。
【００８８】
図３１は実施形態の一例としてのユーザ毎環境設定定義部ａ１０の表示ウィンドウ定義のフォーマットを例示する図、図３２はその定義例を示す図である。
表示ウィンドウ定義は、タグ<WINDOW>とタグ<WINDOW>との間に表示を制御するウィンドウの定義を記述する。具体的には、ウィンドウの定義として、ウィンドウを特定するためのウィンドウ名を記述する。なお、ウィンドウ名には、“ID_xxx”の形式で定義を行なう。又、ここで未定義のウィンドウＩＤにかかる表示ウィンドウは非表示となる。
【００８９】
図３２に示す例においては、ID_VIEW_WINDOW_FULLVIEW，ID_BP_TREEVIEW_DISPLAY， ID_VIEW_WINDOW_MESSAGE， ID_LAYERCONTROL_DISPLAY及びID_PLACE_DISPLAYにかかるウィンドウを表示し、ID_ELEMENTCONTROL_DISPLAYにかかるウィンドウを表示しないことを設定している。
（１２）その他
BP-DEFの定義の中には、日本語、英語とで同じ定義となるものもあり、その定義を言語毎に定義するのは煩雑であり、且つ、定義漏れが生じるおそれがある。そこで、本実施形態においては、特定の言語環境（例えば、日本語環境）の定義をベースとして、このベースとなる日本語環境の定義を他の言語の定義にも引き継げる仕組みを有する。
【００９０】
具体的には、ベースとなる日本語以外の言語の定義において、定義を引き継がせたい各カテゴリの定義自体を省略することにより、ベースの日本語環境の定義を引き継ぐものとする。定義を引き継がせない場合は、例えば、各カテゴリの定義において空定義を行なう。これにより、ベース以外の言語にかかる定義を容易に行なうことができるとともに、定義漏れの発生を抑止することができ、信頼性を向上させることができる。
【００９１】
図３３は実施形態の一例としての情報処理装置におけるベース以外の言語についての言語情報定義部ａ２の例を示す図である。
この図３３に示す例は、ベース以外の言語として英語環境の定義を示しており、コマンド“USECOMMAND”及びコマンド“USER_SETTING”を先頭に“#”を付すことによりコメント表示としている（符号Ｂ１参照）。又、コマンド“DIALOG_STRINGCHANGE”は、その内部に定義が記述されていない空定義となっている。
【００９２】
このような場合には、符号ｂ１で示されるカテゴリ定義は未定義扱いとなり、日本語環境の定義が引き継がれる。一方、符号ｂ２で示されるカテゴリ定義は空定義のため、日本語環境の定義は引き継がれない。
なお、文字の差し替えのような言語に依存するようなカテゴリ定義の場合は、省略すると日本語環境の定義が引き継がれてしまい、文字化けするので必ずカテゴリ定義を行なう必要がある。
【００９３】
コマンド情報ファイル２０３は、リソース名（コマンド名：機能要素識別名）とリソースＩＤ（コマンドＩＤ：機能要素ＩＤ）との関連付けを行なう情報であり、リソース名に対して固有のリソースＩＤを関連付けて構成された機能要素定義情報である。このコマンド情報ファイル２０３は、例えば、アプリケーションプログラム２０１の作成過程において、後述するリソース定義情報作成プログラム３０１を実行することにより生成される。
【００９４】
上述したBP-DEFに定義するリソース名（コマンド名）は文字列扱いとなるが、実際のＭＦＣ上では各リソース（コマンド）は、数値であるリソースＩＤ（コマンドＩＤ）で管理されている。コマンド情報ファイル２０３は、これらのリソース名とリソースＩＤとの関連付けを行なう。又、コマンド名の文字の差し替えを行なう際、元々のコマンド文字列に対しての差し替え指示となるため、コマンド名の差し替え前の文字列の関連付けも必要となる。
【００９５】
コマンド情報ファイル２０３は、その関連付けを行なうものであり、各プロジェクトのコードファイル（ヘッダーファイル）とリソースファイルとを読み込み、それらの情報をまとめたファイルとして作成される。本実施形態においては、このコマンド情報ファイル２０３のファイル名として“CommandInfo.txt”を用いる。以下、コマンド情報ファイル２０３をCommandInfo.txtと表現する場合もある。
【００９６】
そして、このCommandInfo.txtをアプリケーションプログラム２０１から参照することによって、コマンド名に対応するコマンドＩＤやコマンド文字列（関連情報）を取得することが可能となる。
なお、CommandInfo.txtは、アプリケーションプログラム２０１のインストーラ（プログラムを記録したコンピュータ読取可能な記録媒体）に、アプリケーションプログラム２０１のロードモジュール２０１ａやBP-DEFとともに記録されてユーザに提供される。
【００９７】
このCommandInfo.txtは、具体的には、各プロジェクトのコードファイル（resource.h）からコマンド名と自動生成されたコマンドＩＤ（リソースＩＤ，ＩＤ番号，リソース番号）を取り出すとともに、リソースファイルからコマンド名に対するコマンド文字列を取り出して関連付けを行なうことにより作成する。
図３４は実施形態の一例としてのCommandInfo.txtの定義フォーマットの例を示す図、図３５はその定義例を示す図である。
【００９８】
CommandInfo.txtは、図３４に示すように、リソース名（コマンド名）に対して、リソースＩＤ（コマンドＩＤ）や、そのコマンドについての説明を各言語で表記するコマンド文字列（関連情報）を関連付けて構成されている。なお、図３４，図３５に示す例においては、関連情報各言語での表記例として日本語及び英語で表記したコマンド文字列が示されている。
【００９９】
また、これらの定義はプロジェクト毎に定義され、対応するプロジェクトについてのタグ<PROJECT>とタグ<PROJECTEND>との間に定義される。なお、プロジェクトのフォルダ名は大文字で指定するものとし、コードファイル（resource.h）から収集した“ID_xxx”の形式のリソース名を全て定義する。
但し、日本語及び英語のコマンド文字列の両方が取得できなかったコマンドＩＤは定義しないものとする。
【０１００】
また、コマンド文字列は、ダブルクォート（”）で囲んで定義する。更に、リソースファイル（***.rc）からコマンド文字列を取得できなかった場合は、空文字列（””）を定義する。
図３５に示す例においては、プロジェクト“MeBP”に、コマンドID_VIEW_ZOOM_ALL，ID_VIEW_ZOOM_IN，ID_VIEW_ZOOM_OUT及びID_OVERWRITE_CONSTCSVが定義されている。又、例えば、コマンドID_VIEW_ZOOM_ALLのコマンドＩＤは32830であり、日本語では“全体表示(&A)”と表記され、英語では“Zoom full(&A)”と表記される。
【０１０１】
また、この図３５に示す例においては、プロジェクト“EDITATTR”に、コマンドID_SELECT_ITEM， ID_READ_FROM_CSV， ID_SAVE_TO_CSV_OVERWRITE及びID_SELECT_CHILDPARTが定義されている。
さらに、CommandInfo.txtにおいては、プログラマが作成したアプリケーションプログラム２０１に含まれるリソースだけではなく、ＯＳ等のシステムにおいて管理されるリソースについても、そのリソース名やリソースＩＤを登録する。
【０１０２】
図３６は実施形態の一例としてCommandInfo.txtの生成に際して採取されるMFC標準コマンドを例示する図、図３７はその定義例を示す図である。
図３６に示すコマンドは、プリント板ＣＡＤのコマンドとして実行できるMFC標準のコマンドであり、コードファイル（resource.h）には定義されない。これらの図３６に示すコマンド名は、例えば、Visual StudioのAFXRES.Hというファイルに定義される。このAFXRES.Hは、例えば、以下に示すようなファイルパスで格納されている。
【０１０３】
Program Files\Microsoft Visual Studio\VC98\MFC\Include\AFXRES.H
そして、これらのAFXRES.Hから取得するコマンド名は、例えば、CommandInfo.txtに“MFCAFXRES”のプロジェクト名で出力する。又、BP-DEFの指示で“MEBP”のプロジェクトで指示されたコマンド名の場合、“MEBP”プロジェクトに見つからなかった場合は“MFCAFXRES”のプロジェクトも参照する。
【０１０４】
図３７に示す例においては、CommandInfo.txtにおいて、プロジェクト“MFCAFXRES”に、コマンド、ID_FILE_CLOSE，ID_FILE_PRINT，ID_FILE_PRINT_DIRECT，及びID_FILE_PRINT_PREVIEWを登録している。
ここで、図３８を参照しながら、図３９に示すフローチャート（ステップＡ１０〜Ａ５０）に従って、CommandInfo.txtの作成手法を説明する。なお、図３８は実施形態の一例としてのCommandInfo.txt生成過程におけるデータの流れを例示する図である。
【０１０５】
以下の処理は、例えば、アプリケーションプログラム２０１を作成するプログラミング機能を搭載したコンピュータ（図示省略）において、そのＣＰＵがリソース定義情報作成プログラム３０１（図３８参照）を実行することにより実施される。又、CommandInfo.txtの生成は、例えば、アプリケーションプログラム２０１のソースコードファイル及びリソースファイルの完成後に行なわれる。そして、リソース定義情報作成プログラム３０１の実行は、コードファイルのビルド時に連動して行なうことが望ましく、ビルドを行なう度に自動的に実行することで、常に最新の状態とすることができ、又、実行し忘れを防ぐこともできる。
【０１０６】
ＣＰＵは、図３８の矢印Ｂ１０に示すように、アプリケーションプログラム２０１における全てのプロジェクトのコードファイル（ヘッダーファイル）からリソース名及びリソースＩＤを取得する（ステップＡ１０；第１の取得ステップ）。なお、このコードファイルは、例えば、拡張子が“.h”として作成されるファイルである。
また、ＣＰＵは、図３８の矢印Ｂ２０に示すように、アプリケーションプログラム２０１における全てのプロジェクトのリソースファイルからリソース名及びその関連情報を取得する（ステップＡ２０；第２の取得ステップ）。なお、このリソースファイルは、例えば、拡張子が“.rc”として作成されるファイルである。又、リソース名に関連する関連情報は言語種類に応じて用意することが望ましい。
【０１０７】
そして、ＣＰＵは、これらのステップＡ１０，Ａ２０において取得した取得した情報から、CommandInfo.txtの書式に合致するデータを生成する（ステップＡ３０）。すなわち、リソース名をキーとしてリソースＩＤ及び関連情報を相互に対応付ける。
また、ＣＰＵは、例えば、Windowsにおける、ＭＦＣのAFXRES.RC及びAFXRES.hや、VC98のWINUSER.hからも同様にコマンドＩＤ，コマンド名，関連情報を取得して、BP-DEFの書式に合致するデータを生成する（ステップＡ４０）。
【０１０８】
その後、ＣＰＵは、図３８の矢印Ｂ３０に示すように、ステップＡ３０，Ａ４０において生成したデータをマージしてCommandInfo.txtとして出力することにより、CommandInfo.txt２０３を生成する（ステップＡ５０）。
ＣＰＵ１０は、種々の演算や制御を行なう処理装置であって、記憶装置２１やＲＯＭ２４に格納されているＯＳやプログラム（アプリケーションプログラム２０１）を実行することにより種々の機能を実現する。
【０１０９】
本実施形態においては、ＣＰＵ１０は、アプリケーションプログラム２０１を実行することにより、設定部１１，機能要素定義情報読取部１５及び制御定義情報読取部１６として機能する。
制御定義情報読取部１６は、記憶装置２１に格納されたリソース定義ファイル２０２を読み取り、このリソース定義ファイル２０２からリソース名を取得する。
【０１１０】
機能要素定義情報読取部１５は、記憶装置２１に格納されたコマンド情報ファイル２０３を参照して、制御定義情報読取部１６により取得されたリソース名に対応するリソースＩＤや関連情報を取得する。
設定部１１は、機能要素定義情報読取部１５によって取得されたリソースＩＤを用いて、リソース定義ファイル２０２に定義されたアプリケーションプログラムにかかる制御情報に従って、本情報処理装置１におけるアプリケーションプログラム２０１の設定を行なう。
【０１１１】
この設定部１１は、より詳細には、コマンド制御部１２，メニュー制御部１３及びメッセージ制御部１４として機能する。
メニュー制御部１３は、表示装置２５に表示するメニュー画面の制御を行なうものである。このメニュー制御部１３は、リソース定義ファイル２０２に定義された、本情報処理装置１において実行されるアプリケーションプログラム２０１の機能を特定する制御情報に従って、機能要素定義情報読取部１５によって取得されたリソースＩＤを用いて、メニュー画面におけるそのリソースにかかるメニューの表示を制御する。これにより、メニュー制御部１３は、情報処理装置１における機能要素の実行を制限する。
【０１１２】
例えば、メニュー制御部１３は、使用禁止コマンド定義部ａ４に従って、使用が禁止されているコマンドについては、そのメニューを表示画面に表示させたり、言語情報定義部ａ２に従って、指示された言語でメニュー表示を行なう。
また、メニュー制御部１３は、コマンド文字差替え定義部ａ５や画面文字差替え定義部ａ６に従って、メニュー上における文字列の差し替えを行なう。又、メニュー制御部１３は、ユーザ毎環境設定定義部ａ１０に従って、ツールバーや表示ウィンドウの表示制御を行なう。
【０１１３】
コマンド制御部１２は、情報処理装置１において使用（実行）可能なコマンドを制御するものである。このコマンド制御部１２は、機能要素定義情報読取部１５によって取得されたコマンドＩＤを用いて、情報処理装置１におけるコマンドの実行を制限する。
例えば、コマンド制御部１２は、使用コマンド定義部ａ３，使用禁止コマンド定義部ａ４，禁止コマンド解除定義部ａ９，ユーザ毎環境設定定義部ａ１０及びライセンス制御定義部ａ１１に従って、情報処理装置１において、使用が禁止されているコマンドについては起動を阻止する一方で、使用が許可されているコマンドを実行させる。
【０１１４】
メッセージ制御部１４は、表示装置２５に表示するメッセージの制御を行なうものである。このメッセージ制御部１４は、例えば、リソース定義ファイル２０２に定義された、本情報処理装置１の表示装置２５に出力する文字列の少なくとも一部を他の文字列により置換する定義に従い、メッセージの文字列の置換を行なう。
例えば、メッセージ制御部１４は、画面文字差替え定義部ａ６や区切り文字付きメッセージの文字差替え定義部ａ８に従って、表示装置２５に表示するメッセージについて、その少なくとも一部の差し替え制御を行ない、表示させるメッセージを作成する。
【０１１５】
そして、情報処理装置のＣＰＵ１０が、処理プログラムを実行することにより、上述した設定部１１，機能要素定義情報読取部１５及び制御定義情報読取部１６として機能する。
なお、これらの設定部１１，機能要素定義情報読取部１５及び制御定義情報読取部１６としての機能を実現するためのプログラム（処理プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【０１１６】
設定部１１，機能要素定義情報読取部１５及び制御定義情報読取部１６としての機能を実現する際には、内部記憶装置（本実施形態ではＲＡＭ２３やＲＯＭ２４）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【０１１７】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、情報処理装置１がコンピュータとしての機能を有しているのである。
【０１１８】
ここで、アプリケーションプログラム２０１の作成処理を、図４０に示すフローチャート（ステップＣ１０〜Ｃ７０）に従って説明する。
プログラマは、プログラミング機能をそなえたコンピュータを用いて、アプリケーションプログラム２０１のコードファイル及びリソースファイルを作成する（ステップＣ１０）。そして、プログラマは、コンピュータにそなえられているビルドツールを用いて、これらのコードファイル及びリソースファイルをビルドして、ロードモジュール２０１ａを作成する（ステップＣ２０）。
【０１１９】
また、プログラマは、コンピュータにおいてリソース定義情報作成プログラム３０１を実行することにより、ステップＣ１０において作成したコードファイル及びリソースファイルに基づき、CommandInfo.txtを作成する（ステップＣ３０）。
さらに、プログラマは、このコンピュータを用いて、アプリケーションプログラム２０１の用途やユーザの有するライセンス等に応じたBP-DEFを作成する（ステップＣ４０）。
【０１２０】
そして、ステップＣ２０において作成されたロードモジュール２０１ａ，ステップＣ３０において作成されたCommandInfo.txt及びステップＣ４０において作成されたBP-DEFを記録媒体に格納することにより、インストールメディアを作成する（ステップＣ５０）。
作成されたインストールメディアは、ユーザが使用する情報処理装置１においてアプリケーションプログラム２０１のインストールに用いられる（ステップＣ６０）。このインストールが行なわれた後、情報処理装置１においてアプリケーションプログラム２０１の起動処理が行なわれる（ステップＣ７０）。
【０１２１】
上述の如く構成された、実施形態の一例としての情報処理装置１における処理を、図４１に示すフローチャート（ステップＤ１０〜Ｄ４０）に従って説明する。
かかる処理は、情報処理装置１において、例えば、アプリケーションプログラム２０１の起動時や、このアプリケーションプログラム２０１の実行時において、ユーザ操作等に伴ってメニューの切り替えが生じた場合に行なわれる。
【０１２２】
制御定義情報読取部１６は、BP-DEF２０２から使用可能とするコマンドのリソース名情報を取得する（ステップＤ１０）。又、機能要素定義情報読取部１５は、CommandInfo.txt２０３を読み、ステップＤ１０において取得したリソース名をリソースＩＤに変換する（ステップＤ２０）。設定部１１は、このステップＤ２０において取得したリソースＩＤを用いて各種制御を行なう。
【０１２３】
すなわち、コマンド制御部１２はコマンドの使用可否を制御し（ステップＤ３０）、メニュー制御部１３は表示装置２５に表示させるメニュー画面において、当該コマンドに関するメニューの表示制御を行なう（ステップＤ４０）。又、メッセージ制御部１４は、表示装置２５に表示させる表示画面において、当該コマンドに関するメッセージの表示制御を行なう。
【０１２４】
このように、実施形態の一例としての情報処理装置１によれば、アプリケーションプログラム２０１の外部ファイルとして作成されたBP-DEFにおいて、用途等に応じてリソースにかかる制御の定義を行なう。これにより、用途等に応じてリソースファイルやコードファイルを複数個作成する必要がなく、これらの管理コストを低減することができる。
また、BP-DEFにおいて、リソースに対して任意に設定可能なリソース名を用いてアプリケーションプログラム２０１にかかる制御情報を定義することができ利便性が高い。
【０１２５】
さらに、アプリケーションプログラム２０１を情報処理装置１にインストールした後においても、BP-DEFを変更することにより、リソースにかかる制御の定義を行なうができる。すなわち、アプリケーションプログラム２０１の表示制御や機能制御について高い自由度で運用することができる。又、画面表示等にかかる文字の差し替えを容易に行なうことができ利便性が高い。
【０１２６】
またさらに、CommandInfo.txtをリソース定義情報作成プログラム３０１により自動的に作成することができ利便性が高い。
また、デフォルトのBP-DEFの他、カスタマイズ用のBP-DEFをそなえることにより、アプリケーションプログラム２０１に多様性を持たせることができる。
さらに、BP-DEFにおいて文字の差し替え定義を行なうことにより、メニューやメッセージを用意に変更することができる。
【０１２７】
さて、従来手法においては、プログラミング時においては、制御するコマンドのリソース名が確定していれば、例えば、そのリソース名を指定してコマンドを削除することができる。
例えば、プログラミング機能をそなえたコンピュータにおいて、以下の（Ｐ１）の処理を入力することにより、図４６に示したようなメニュー画面から所望のコマンドを削除することができる。
【０１２８】
menu->DeleteMenu(ID_VIEW_ZOOM_ALL, MF_BYPOSITION );  ・・・（Ｐ１）
しかしながら、アプリケーションプログラム２０１の起動後においては、情報処理装置１においては各コマンドはリソースＩＤによって制御される。従って、メニュー画面を動的に制御するためには、以下の（Ｐ２）の処理に示すように、リソースＩＤを指定して行なう必要がある。
【０１２９】
menu->DeleteMenu( 30043, MF_BYPOSITION );  ・・・（Ｐ２）
すなわち、従来手法においては、プログラマ等は、煩雑なリソースＩＤを用いた指定を行なう必要があり利便性が低く非現実的である。
【０１３０】
一方、本情報処理装置１においては、プログラマ等は煩雑なリソースＩＤを用いた指定を行なわずに画面表示や機能制限の制御を行なうことができる。
図４２は実施形態の一例としてのBP-DEFの定義例を示す図、図４３は表示装置２５に表示されるメニュー画面の例を示す図である。なお、図４２に示すメニュー画面は表示制御に関するメニュー画面であって、コマンドのアイコンが配置されている。
【０１３１】
そして、図４２に示すように、BP-DEFにおいて使用禁止とするコマンド（ID_VIEW_ZOOM_ALL）の行頭に“#”を付してコメント文とすることにより、非定義状態となり、このコマンドの使用が禁止される。
また、CommandInfo.txtにおいては、以下の定義が行なわれている。
ID_VIEW_ZOOM_ALL                30043  "全体表示(&A)"
これらの情報に基づいて、メニュー制御部１３は、図４３に示すように、メニュー画面上から該当するコマンド（再描画，全体表示）を非表示とする表示制御を行なう。
【０１３２】
なお、図４２に示す例においては、コマンド“ID_VIEW_ZOOM_REDRAW”も禁止されている。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、リソース定義ファイル２０３（BP-DEF）の定義フォーマットは、図４に示した構成に限定されるものではなく適宜変更して実施することができる。例えば、BP-DEFに、図４に例示したもの以外の定義を含んでもよく、又、その一部を含まないものであってもよい。
【０１３３】
また、BP-DEFに含まれる各種定義の記述に用いられるタグも、上述した実施形態に限定されるものではなく、適宜変更して実施することができる。
さらに、上述した実施形態においては、アプリケーションプログラム２０１がＣＡＤプログラムであり、プリント板ＣＡＤとインフラＣＡＤとの２種類のＣＡＤに選択的に切り替えることができる例を示しているが、これに限定されるものではない。すなわち、アプリケーションプログラム２０１は、プリント板ＣＡＤやインフラＣＡＤ以外の用途に切り替えて使用してもよく、更に、アプリケーションプログラム２０１はＣＡＤ以外のプログラムであってもよい。
【０１３４】
また、上述した実施形態においては、区切り文字として文字列“![”及び“]!”を用いているが、これに限定するものではなく、種々変形して実施することができる。なお、区切り文字には２以上の文字を組み合わせを用いることが望ましい。特に、一般的な文章中において、その文字の組み合わせが出現する可能性が低いと考えられる文字列を用いることが望ましい。
【０１３５】
そして、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
複数種類の機能要素を有するアプリケーションプログラムを実行可能な情報処理装置であって、
該機能要素に対して任意に設定可能な機能要素識別名を用いて該アプリケーションプログラムにかかる制御情報を定義された制御定義情報を格納する制御定義情報格納部と、
該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を格納する機能要素定義情報格納部と、
該制御定義情報格納部に格納された該制御定義情報から該機能要素識別名を取得する制御定義情報読取部と、
該機能要素定義情報格納部に格納された該機能要素定義情報を参照して、該制御定義情報読取部により取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報読取部と、
該機能要素定義情報読取部によって取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、当該情報処理装置における該アプリケーションプログラムの設定を行なう設定部とをそなえることを特徴とする、情報処理装置。
【０１３６】
（付記２）
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置において実行される該アプリケーションプログラムの機能を特定する制御情報をそなえ、
該設定部が、該機能要素定義情報読取部によって取得された該機能要素ＩＤを用いて、該情報処理装置における該機能要素の実行を制限することを特徴とする、付記１記載の情報処理装置。
【０１３７】
（付記３）
該制御定義情報が、該機能要素の使用に関する制御として、該機能要素にかかる文字置換を行なう定義をそなえ、
該設定部が、該機能要素定義情報読取部によって取得された該機能要素ＩＤを用いて、該機能要素にかかる文字列の置換を行なうことを特徴とする、付記１又は付記２記載の情報処理装置。
【０１３８】
（付記４）
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置の表示装置に出力する文字列の少なくとも一部を他の文字列により置換する定義をそなえ、
該設定部が、該制御定義情報に基づいて、該文字列の置換を行なうことを特徴とする、付記１〜３のいずれか１項に記載の情報処理装置。
【０１３９】
（付記５）
該制御定義情報が、該機能要素の使用に関する制御として、該情報処理装置における言語環境設定を特定する定義をそなえるとともに、当該言語環境設定を特定する定義において、特定の言語についての動作環境を主設定として、他の言語については該主設定から変更される箇所についてのみ定義し、
該設定部が、非変更箇所に対しては該主設定を用いて該アプリケーションプログラムの機能制限設定を行なうことを特徴とする、付記１〜４のいずれか１項に記載の情報処理装置。
【０１４０】
（付記６）
該制御定義情報が、
該機能要素に対して任意に設定した機能要素識別名を用いた該機能要素の使用に関する制御定義部と、
該情報処理装置のＯＳ（Operating System）の仕様に基づいて予め規定された機能要素識別名を用いた該機能要素の使用に関する制御定義部とを有することを特徴とする、付記１〜５のいずれか１項に記載の情報処理装置。
【０１４１】
（付記７）
情報処理装置における、複数種類の機能要素を有するアプリケーションプログラムの処理方法であって、
該アプリケーションプログラムに関して、該機能要素に対して任意に設定した機能要素識別名を用いて、該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から該機能要素識別名を取得する制御定義情報取得ステップと、
該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、該制御定義情報取得ステップにおいて取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報取得ステップと、
該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、該情報処理装置における該アプリケーションプログラムの設定を行なう設定ステップとをそなえることを特徴とする、処理方法。
【０１４２】
（付記８）
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置において実行される該アプリケーションプログラムの機能を特定する制御情報をそなえ、
該設定ステップにおいて、該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該情報処理装置における該機能要素の実行を制限することを特徴とする、付記７記載の処理方法。
【０１４３】
（付記９）
該制御定義情報が、該機能要素の使用に関する制御として、該機能要素にかかる文字置換を行なう定義をそなえ、
該設定ステップにおいて、該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該機能要素にかかる文字列の置換を行なうことを特徴とする、付記７又は付記８記載の処理方法。
【０１４４】
（付記１０）
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置の表示装置に出力する文字列の少なくとも一部を他の文字列により置換する定義をそなえ、
該設定ステップにおいて、該制御定義情報に基づいて、該文字列の置換を行なうことを特徴とする、付記７〜９のいずれか１項に記載の処理方法。
【０１４５】
（付記１１）
該制御定義情報が、該機能要素の使用に関する制御として、該情報処理装置における言語環境設定を特定する定義をそなえるとともに、当該言語環境設定を特定する定義において、特定の言語についての動作環境を主設定として、他の言語については該主設定から変更される箇所についてのみ定義し、
該設定ステップにおいて、非変更箇所に対しては該主設定を用いて該アプリケーションプログラムの機能制限設定を行なうことを特徴とする、付記７〜１０のいずれか１項に記載の処理方法。
【０１４６】
（付記１２）
該制御定義情報が、
該機能要素に対して任意に設定した機能要素識別名を用いた該機能要素の使用に関する制御定義部と、
該情報処理装置のＯＳ（Operating System）の仕様に基づいて予め規定された機能要素識別名を用いた該機能要素の使用に関する制御定義部とを有することを特徴とする、付記７〜１１のいずれか１項に記載の処理方法。
（付記１３）
複数種類の機能要素を有するアプリケーションプログラムの処理をコンピュータに実行させるための処理プログラムであって、
該アプリケーションプログラムに関して、該機能要素に対して任意に設定した機能要素識別名を用いて、該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から該機能要素識別名を取得する制御定義情報取得ステップと、
該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、該制御定義情報取得ステップにおいて取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報取得ステップと、
該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、該情報処理装置における該アプリケーションプログラムの設定を行なう設定ステップとを該コンピュータに実行させることを特徴とする、処理プログラム。
【０１４７】
（付記１４）
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置において実行される該アプリケーションプログラムの機能を特定する制御情報をそなえ、
該設定ステップにおいて、該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該情報処理装置における該機能要素の実行を制限するように、該コンピュータを機能させることを特徴とする、付記１３記載の処理プログラム。
【０１４８】
（付記１５）
該制御定義情報が、該機能要素の使用に関する制御として、該機能要素にかかる文字置換を行なう定義をそなえ、
該設定ステップにおいて、該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該機能要素にかかる文字列の置換を行なうように、該コンピュータを機能させることを特徴とする、付記１３又は付記１４記載の処理プログラム。
【０１４９】
（付記１６）
該制御定義情報が、該機能要素の使用に関する制御として、当該情報処理装置の表示装置に出力する文字列の少なくとも一部を他の文字列により置換する定義をそなえ、
該設定ステップにおいて、該制御定義情報に基づいて、該文字列の置換を行なうように、該コンピュータを機能させることを特徴とする、付記１３〜１５のいずれか１項に記載の処理プログラム。
【０１５０】
（付記１７）
該制御定義情報が、該機能要素の使用に関する制御として、該情報処理装置における言語環境設定を特定する定義をそなえるとともに、当該言語環境設定を特定する定義において、特定の言語についての動作環境を主設定として、他の言語については該主設定から変更される箇所についてのみ定義し、
該設定ステップにおいて、非変更箇所に対しては該主設定を用いて該アプリケーションプログラムの機能制限設定を行なうように、該コンピュータを機能させることを特徴とする、付記１３〜１６のいずれか１項に記載の処理プログラム。
【０１５１】
（付記１８）
複数種類の機能要素を有するアプリケーションプログラムの処理をコンピュータに実行させるための処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
該処理プログラムが、
該アプリケーションプログラムに関して、該機能要素に対して任意に設定した機能要素識別名を用いて、該アプリケーションプログラムにかかる制御情報を定義された制御定義情報から該機能要素識別名を取得する制御定義情報取得ステップと、
該機能要素識別名に対して固有の機能要素ＩＤを関連付けて構成された機能要素定義情報を参照して、該制御定義情報取得ステップにおいて取得された該機能要素識別名に対応する該機能要素ＩＤを取得する機能要素定義情報取得ステップと、
該機能要素定義情報取得ステップにおいて取得された該機能要素ＩＤを用いて、該制御定義情報に定義された該アプリケーションプログラムにかかる制御情報に従って、該情報処理装置における該アプリケーションプログラムの設定を行なう設定ステップとを該コンピュータに実行させることを特徴とする、処理プログラムを記録したコンピュータ読取可能な記録媒体。
【０１５２】
（付記１９）
該処理プログラムとともに、該制御定義情報及び該機能要素管理情報を記録したことを特徴とする、付記１８記載の処理プログラムを記録したコンピュータ読取可能な記録媒体。
（付記２０）
情報処理装置における、複数種類の機能要素を有するアプリケーションプログラムの起動処理に用いられる、機能要素定義情報を作成する機能要素定義情報作成方法であって、
該アプリケーションプログラムのコードファイルから、該機能要素に対して設定した機能要素識別名と、当該機能要素識別名に対して固有に設定された機能要素ＩＤとを
取得する第１の取得ステップと、
該アプリケーションプログラムのリソースファイルから、該機能要素識別名と、当該機能要素識別名に関連付けて登録されている関連情報とを取得する第２の取得ステップと、
該第１の取得ステップにおいて取得された該機能要素識別名及び該機能要素ＩＤと、該第２の取得ステップとにおいて取得された該機能要素識別名及び該関連情報とを該機能要素識別名に基づいて組み合わせることにより、該機能要素定義情報を作成する組み合わせステップとをそなえることを特徴とする、機能要素定義情報作成方法。
【符号の説明】
【０１５３】
１    情報処理装置
１０    ＣＰＵ
１１    設定部
１２    コマンド制御部
１３    メニュー制御部
１４    メッセージ制御部
１５    機能要素定義情報読取部
１６    制御定義情報読取部
２１    記憶装置（制御定義情報格納部，機能要素定義情報格納部）
２３    ＲＡＭ
２４    ＲＯＭ
２５    表示装置
２０１    アプリケーションプログラム
２０１ａ    ロードモジュール
２０２    BP-DEF，リソース定義ファイル（制御定義情報）
２０３    CommandInfo.txt，コマンド情報ファイル（機能要素定義情報）
３０１    リソース定義情報作成プログラム
【図１】
2011186720.tif 000006
【図２】
2011186720.tif 000007
【図３】
2011186720.tif 000008
【図４】
2011186720.tif 000009
【図５】
2011186720.tif 000010
【図６】
2011186720.tif 000011
【図７】
2011186720.tif 000012
【図８】
2011186720.tif 000013
【図９】
2011186720.tif 000014
【図１０】
2011186720.tif 000015
【図１１】
2011186720.tif 000016
【図１２】
2011186720.tif 000017
【図１３】
2011186720.tif 000018
【図１４】
2011186720.tif 000019
【図１５】
2011186720.tif 000020
【図１６】
2011186720.tif 000021
【図１７】
2011186720.tif 000022
【図１８】
2011186720.tif 000023
【図１９】
2011186720.tif 000024
【図２０】
2011186720.tif 000025
【図２１】
2011186720.tif 000026
【図２２】
2011186720.tif 000027
【図２３】
2011186720.tif 000028
【図２４】
2011186720.tif 000029
【図２５】
2011186720.tif 000030
【図２６】
2011186720.tif 000031
【図２７】
2011186720.tif 000032
【図２８】
2011186720.tif 000033
【図２９】
2011186720.tif 000034
【図３０】
2011186720.tif 000035
【図３１】
2011186720.tif 000036
【図３２】
2011186720.tif 000037
【図３３】
2011186720.tif 000038
【図３４】
2011186720.tif 000039
【図３５】
2011186720.tif 000040
【図３６】
2011186720.tif 000041
【図３７】
2011186720.tif 000042
【図３８】
2011186720.tif 000043
【図３９】
2011186720.tif 000044
【図４０】
2011186720.tif 000045
【図４１】
2011186720.tif 000046
【図４２】
2011186720.tif 000047
【図４３】
2011186720.tif 000048
【図４４】
2011186720.tif 000049
【図４５】
2011186720.tif 000050
【図４６】
2011186720.tif 000051