(57)【要約】【課題】      プリンタドライバのインストールを行なわずにカスタマイズドライバのインストールセットを作成し、作業効率の向上を可能にする情報処理技術を提供すること。【解決手段】  情報処理装置は、印刷設定を含むプロパティを取得する取得部と、オペレーティングシステムにデバイスドライバを稼動可能に登録することなく、前記取得部が取得した印刷設定を含むプロパティを、デバイスドライバに対して設定する設定部とを有する。【選択図】  図１０Ａ
2006309725.tif 000002
【特許請求の範囲】
【請求項１】
印刷設定を含むプロパティを取得する取得手段と、
オペレーティングシステムに対してデバイスドライバを稼動可能に登録することなく、前記取得手段が取得した印刷設定を含むプロパティを、デバイスドライバに対して設定する設定手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記取得手段と前記設定手段における処理は、アプリケーションプログラムにより実行されるものであり、
前記アプリケーションプログラムは、更に、前記デバイスドライバを介した情報の入力に対して、オペレーティングシステムに代理して前記デバイスドライバに応答する応答手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記デバイスドライバは、前記アプリケーションプログラムからの応答を、オペレーティングシステムからの応答として認識し、応答後の処理を続行することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記応答手段は、プリンタドライバに対する擬似アプリケーションプログラムインターフェースによって構成されることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記設定手段は、複数種類のオペレーティングシステム用のデバイスドライバに対して、前記印刷設定を含むプロパティを設定できることを特徴とする請求項１記載の情報処理装置。
【請求項６】
複数のデバイスドライバに対して、一度の指示で前記取得手段が取得した印刷設定に係わる情報を設定できることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
印刷装置を制御するデバイスドライバを、プロパティの設定によりカスタマイズする情報処理装置であって、
前記デバイスドライバがカスタマイズに対応しているか判別する判別手段と、
前記判別手段の判別により、前記デバイスドライバがカスタマイズに対応していると判別された場合、デバイスドライバのプロパティの設定を行なうための設定画面を表示させる設定手段と、
前記設定されたデバイスドライバのプロパティに対応するデータを取得する取得手段と、
前記取得手段により取得されたデータを、前記設定手段により設定された前記デバイスドライバのプロパティに基づくユーザインタフェースに表示させる表示制御手段と
を備えることを特徴とする情報処理装置。
【請求項８】
前記表示制御手段は、前記設定手段により設定されたプロパティに基づいて、前記ユーザインタフェースにおける項目の有効表示、無効表示または非表示を制御することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記プリンタドライバの設定に関するデータを保持し、前記取得手段と、当該データの受け渡しが可能なデータ保持手段を更に備え、
前記取得手段は、前記設定手段により設定されたプロパティに対応するデータを、前記データ保持手段に保持させ、当該プロパティに対応する当該プリンタドライバの情報をカスタマイズの設定情報として取得することを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
前記データ保持手段に保持されているアドレス情報に基づいて、使用するアプリケーションプログラムインタフェースを選択する選択手段を更に備えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記設定されたデバイスドライバのプロパティに対応して呼び出されるアプリケーションプログラムインタフェースは、当該設定されたデバイスドライバのプロパティに対する前記プリンタドライバにおける処理を擬似的に処理することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記設定されたデバイスドライバのプロパティを前記デバイスドライバの情報ファイルに書き込み、前記デバイスライバをカスタマイズしたドライバを生成する生成手段を更に備えることを特徴とする請求項７に記載の情報処理装置。
【請求項１３】
前記表示制御手段は、前記デバイスドライバの起動時において、前記デバイスドライバの情報ファイルを参照し、前記ユーザインタフェースを表示させることを特徴とする請求項７に記載の情報処理装置。
【請求項１４】
印刷設定を含むプロパティを取得する取得工程と、
オペレーティングシステムにデバイスドライバを稼動可能に登録することなく、前記取得工程が取得した印刷設定を含むプロパティを、前記デバイスドライバに設定する設定工程と、
を有することを特徴とする情報処理方法。
【請求項１５】
前記取得工程と前記設定工程における処理は、アプリケーションプログラムにより実行されるものであり、
前記アプリケーションプログラムは、さらに、前記デバイスドライバを介した情報の入力に対して、オペレーティングシステムに代理して前記デバイスドライバに応答する応答工程を備えることを特徴とする請求項１４に記載の情報処理方法。
【請求項１６】
前記デバイスドライバは、前記アプリケーションプログラムからの応答を、オペレーティングシステムからの応答として認識し、その後の処理を続行することを特徴とする請求項１５に記載の情報処理方法。
【請求項１７】
前記応答工程は、プリンタドライバに対する擬似アプリケーションプログラムインターフェースによって実行されることを特徴とする請求項１５に記載の情報処理方法。
【請求項１８】
前記設定工程は、複数種類のオペレーティングシステム用のデバイスドライバに対して、前記印刷設定を含むプロパティを設定できることを特徴とする請求項１４に記載の情報処理方法。
【請求項１９】
複数のデバイスドライバに対して、一度の指示で前記取得工程が取得した印刷設定に係わる情報を設定できることを特徴とする請求項１４に記載の情報処理方法。
【請求項２０】
印刷装置を制御するデバイスドライバを、プロパティの設定によりカスタマイズする情報処理方法であって、
前記デバイスドライバがカスタマイズに対応しているか判別する判別工程と、
前記判別工程の判別により、前記デバイスドライバがカスタマイズに対応していると判別された場合、文書のプロパティ設定とデバイスのプロパティ設定を行なうための設定画面を表示手段に表示させる設定工程と、
前記設定されたデバイスドライバのプロパティに対応するデータを取得する取得工程と、
前記取得工程により取得されたデータを、前記設定工程により設定された前記文書のプロパティ及びデバイスのプロパティに基づくユーザインタフェースを前記表示手段に表示させる表示制御工程と
を備えることを特徴とする情報処理方法。
【請求項２１】
前記表示制御工程は、前記設定工程により設定された前記文書のプロパティに基づいて、前記ユーザインタフェースにおける項目の有効表示、無効表示または非表示を制御することを特徴とする請求項２０に記載の情報処理方法。
【請求項２２】
前記プリンタドライバの設定に関するデータをデータ保持手段に保持させ、前記取得工程における処理において、当該データの受け渡しを行なうデータ保持工程を更に備え、
前記取得工程は、前記設定工程により設定されたデバイスドライバのプロパティに対応するデータを、前記データ保持工程の処理により前記データ保持手段に保持させ、当該プロパティに対応する当該プリンタドライバの情報をカスタマイズの設定情報として取得することを特徴とする請求項２０に記載の情報処理方法。
【請求項２３】
前記データ保持工程の処理により前記データ保持手段に保持されているアドレス情報に基づいて、使用するアプリケーションプログラムインタフェースを選択する選択工程を更に備えることを特徴とする請求項２２に記載の情報処理方法。
【請求項２４】
前記設定されたデバイスドライバのプロパティに対応して呼び出されるアプリケーションプログラムインタフェースは、当該設定されたデバイスドライバのプロパティに対する前記プリンタドライバにおける処理を擬似的に処理することを特徴とする請求項２３に記載の情報処理方法。
【請求項２５】
前記設定されたデバイスドライバのプロパティを前記デバイスドライバの情報ファイルに書き込み、前記デバイスライバをカスタマイズしたドライバを生成する生成工程を更に備えることを特徴とする請求項２０に記載の情報処理方法。
【請求項２６】
前記表示制御工程は、前記デバイスドライバの起動時において、前記デバイスドライバの情報ファイルを参照し、前記ユーザインタフェースを前記表示手段に表示させることを特徴とする請求項２０に記載の情報処理方法。
【請求項２７】
情報処理方法をコンピュータに実行させる制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、
印刷設定を含むプロパティを取得する取得工程と、
オペレーティングシステムにデバイスドライバを稼動可能に登録することなく、前記取得工程が取得した印刷設定を含むプロパティを、前記デバイスドライバに設定する設定工程と、
を有することを特徴とする記憶媒体。
【請求項２８】
印刷装置を制御するデバイスドライバを、プロパティの設定によりカスタマイズする情報処理方法をコンピュータに実行させる制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、
前記デバイスドライバがカスタマイズに対応しているか判別する判別工程と、
前記判別工程の判別により、前記デバイスドライバがカスタマイズに対応していると判別された場合、文書のプロパティ設定とデバイスのプロパティ設定を行なうための設定画面を表示手段に表示させる設定工程と、
前記設定されたデバイスドライバのプロパティに対応するデータを取得する取得工程と、
前記取得工程により取得されたデータを、前記設定工程により設定された前記文書のプロパティ及びデバイスのプロパティに基づくユーザインタフェースを前記表示手段に表示させる表示制御工程と
を備えることを特徴とする記憶媒体。
【請求項２９】
プリンタドライバをカスタマイズする情報処理装置において、
オペレーティングシステムの機能を模倣する擬似アプリケーションプログラミングインタフェース（ＡＰＩ）を用いて、プリンタドライバのユーザインタフェースを起動する起動手段と、
前記起動手段により起動されたプリンタドライバのユーザインタフェースを介した入力を、前記擬似ＡＰＩを用いて取得する取得手段と、
前記取得手段が取得した入力に対応する印刷設定を、前記プリンタドライバに対して設定する設定手段と、
を備えることを特徴とする情報処理装置。
【請求項３０】
前記設定手段は、前記取得手段が取得した入力に対応する印刷設定とが対応付けられた前記プリンタドライバを含むインストールセットとなるように、前記設定手段は、前記印刷設定を設定することを特徴とする請求項２９に記載の情報処理装置。
【請求項３１】
前記プリンタドライバがインストールされていない状態で、前記設定手段は、前記プリンタドライバに対して前記印刷設定を設定することを特徴とする請求項２９に記載の情報処理装置。
【請求項３２】
プリンタドライバをカスタマイズする情報処理装置における情報処理方法において、
オペレーティングシステムの機能を模倣する擬似アプリケーションプログラミングインタフェース（ＡＰＩ）を用いて、プリンタドライバのユーザインタフェースを起動する起動工程と、
前記起動工程により起動されたプリンタドライバのユーザインタフェースを介した入力を、前記擬似ＡＰＩを用いて取得する取得工程と、
前記取得工程が取得した入力に対応する印刷設定を、前記プリンタドライバに対して設定する設定工程と、
を備えることを特徴とする情報処理方法。
【請求項３３】
前記設定工程は、前記取得工程が取得した入力に対応する印刷設定とが対応付けられた前記プリンタドライバを含むインストールセットとなるように、前記設定工程は、前記印刷設定を設定することを特徴とする請求項３２に記載の情報処理方法。
【請求項３４】
前記プリンタドライバがインストールされていない状態で、前記設定工程は、前記プリンタドライバに対して前記印刷設定を設定することを特徴とする請求項３２に記載の情報処理方法。
【請求項３５】
プリンタドライバをカスタマイズする情報処理装置における情報処理方法をコンピュータに実行させる制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、
オペレーティングシステムの機能を模倣する擬似アプリケーションプログラミングインタフェース（ＡＰＩ）を用いて、プリンタドライバのユーザインタフェースを起動する起動工程と、
前記起動工程により起動されたプリンタドライバのユーザインタフェースを介した入力を、前記擬似ＡＰＩを用いて取得する取得工程と、
前記取得工程が取得した入力に対応する印刷設定を、前記プリンタドライバに対して設定する設定工程と、
を備えることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスドライバ及びその間連プログラムが搭載された情報処理装置、該装置を制御する方法、制御プログラムを記憶した媒体に関するものである。
【背景技術】
【０００２】
従来のカスタマイズシステムでは、カスタマイズされたプリンタドライバのインストールセットを作成するためには、まず、カスタマイズの対象とするプリンタドライバを対象ＯＳにインストールし、その環境においてカスタマイズプリンタドライバのインストールセットを作成するツールを起動する必要があった。
【０００３】
このため、情報処理装置（クライアントＰＣ）のＯＳが複数種混在しているようなネットワーク環境において、ネットワーク管理者等が各クライアントＰＣ用のカスタマイズドライバを作成しようとした場合、ＯＳ環境毎に上記のような手順によりカスタマイズプリンタドライバを作成する必要があった。これは、カスタマイズプリンタドライバの作成者にとっては負担が大きいものであり、作成効率も良くなく、使用態様の多様化に対応しにくいものであった。
【０００４】
また、従来のカスタマイズ技術では、ＵＩのDisable制御（設定変更ができない項目を指定して、その項目に対する入力を受け付けないようにする入力制御）は可能であったが、項目自体を非表示とする制御(以下、これを「Hide制御」という)を行なうことができなかったため、カスタマイズプリンタドライバを利用するユーザからすると、カスタマイズの結果として設定項目がDisable表示されているのか、他の印刷設定との排他的処理(コンフリクト処理)により、その項目がDisable表示されているか、区別がつかず、カスタマイズプリンタドライバのユーザにとっては判断がつかず、カスタマイズの設定に関する操作入力は容易なものでなかった。
【０００５】
上述の先行技術として、例えば、以下の特許文献１及び特許文献２に示されるものがある。
【特許文献１】特開平８−２７８８７１号公報
【特許文献２】特開平１１−１３４１４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の従来技術では、カスタマイズの設定に関する操作入力はユーザにとってわかりにくいものであるため、作業効率を向上させるべく、操作入力を容易にする技術が求められている。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、プリンタドライバのインストールを行なわずにカスタマイズドライバのインストールセットを作成し、作業効率の向上を可能にする情報処理技術の提供を一つの目的とする。
【０００８】
あるいは、プリンタドライバが、カスタマイズに対応していないOS用のものであっても、ユーザの所望するカスタマイズを反映させたカスタマイズドライバを作成することが可能であるので、カスタマイズに関する作業効率の向上を図ることを可能にする情報処理技術の提供を別の目的とする。
【課題を解決するための手段】
【０００９】
上記のいずれかの目的を達成するべく、本発明に係る情報処理装置は、
印刷設定を含むプロパティを取得する取得手段と、
オペレーティングシステムにデバイスドライバを稼動可能に登録することなく、前記取得手段が取得した印刷設定を含むプロパティをデバイスドライバに設定する設定手段とを有することを特徴とする。
【００１０】
または、印刷装置を制御するデバイスドライバを、プロパティの設定によりカスタマイズする情報処理装置は、
前記デバイスドライバがカスタマイズに対応しているか判別する判別手段と、
前記判別手段の判別により、前記デバイスドライバがカスタマイズに対応していると判別された場合、文書のプロパティ設定とデバイスのプロパティ設定を行なうための設定画面を表示させる設定手段と、
前記設定されたデバイスドライバのプロパティに対応するデータを取得する取得手段と、
前記取得手段により取得されたデータを、前記設定手段により設定された前記文書のプロパティ及びデバイスのプロパティに基づくユーザインタフェースに表示させる表示制御手段を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、プリンタドライバのインストールを行なわずにカスタマイズドライバのインストールセットを作成し、作業効率の向上を可能にする情報処理技術の提供が可能になる。
【００１２】
あるいは、本発明によれば、プリンタドライバが、カスタマイズに対応していないOS用のものであっても、ユーザの所望するカスタマイズを反映させたカスタマイズドライバを作成することが可能であるので、カスタマイズに関する作業効率の向上を図ることを可能にする情報処理技術の提供が可能になる。
【発明を実施するための最良の形態】
【００１３】
[第１実施形態]
以下、添付図面を参照して本発明の好適な実施形態を説明する。なお、本実施形態ではMicrosoft（登録商標）社製PC用ＯＳ（Operating System）であるWindows（登録商標）のプリンタドライバをカスタマイズする方法を例として説明する。
【００１４】
図１は、本発明の実施形態に係る印刷処理システムの構成を示すブロック図である。この印刷処理システムは、情報処理装置（以下、「ホストコンピュータ」ともいう）３０００と、このホストコンピュータ３０００より印刷データを受信して印刷を行なうプリンタ１５００を備えている。
【００１５】
ホストコンピュータ３０００において、ＣＰＵ１は、ＲＡＭ２に記憶されているプログラムに従って、システムバス４に接続される各デバイスを総括的に制御している。このＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等としても機能している。ＲＯＭ３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ３ｂ、及び各種データを記憶するデータＲＯＭ３ｃに区分けして構成されている。
【００１６】
キーボードコントローラ（ＫＢＣ）５は、キーボード（ＫＢ）９や不図示のポインティングデバイス（マウス）からのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０への表示を制御している。ディスクコントローラ（ＤＫＣ）７は、ハードディスクなどの外部メモリ１１へのアクセスを制御している。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インターフェース２１を介してプリンタ１５００に接続され、プリンタ１５００との間で通信制御処理を行なう。
【００１７】
外部メモリ１１は、例えばハードディスク（ＨＤ）やＭＯ或はフロッピー(登録商標)ディスク（ＦＤ）等であり、図示の如く、オペレーティングシステムプログラム（以下、ＯＳ）２０５をはじめ各種アプリケーション（例えば、図形、イメージ、文字、表等が混在した文書処理を行なう文書処理アプリケーションプログラム）２０１、印刷処理関連プログラム２０４を記憶している他に、ユーザファイル、編集ファイル等も記憶している。印刷処理関連プログラム２０４は、ページ記述言語を用いて記述される印刷データを生成するプログラムであって、同系列の複数のプリンタに対して共通に利用され得る。また、この印刷処理関連プログラム２０４は、プリンタ制御コマンド生成モジュール（以下、プリンタドライバ）２０４１、プリンタドライバＵＩ制御モジュール２０４２をも含んでいる。
【００１８】
外部メモリ１１に記憶された、本実施形態に係るカスタマイズツールプログラム（以下、単に、「カスタマイズツール」という。）を含むアプリケーション２０１は、ＲＡＭ２にロードされてＣＰＵ１により実行される。またＣＰＵ１は、例えば、ＲＡＭ２へのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧ（What You See Is What You Get）を可能としている。更に、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷設定画面（プリンタドライバＵＩ制御モジュール２０４２により制御される）を開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバ２０４１に対する印刷処理の設定を行なうことができる。
【００１９】
次にプリンタ１５００の構成について説明する。ＣＰＵ１２は、プリンタ１５００の全体の動作を制御している。ＲＡＭ１９は、ＣＰＵ１２の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またこのＲＡＭ１９は、ＮＶＲＡＭ（Ｎon-volatile  ＲＡＭ：不揮発性ＲＡＭ）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ１３は、各種フォントを記憶するフォントＲＯＭ１３ａ、ＣＰＵ１２により実行される制御プログラム等を記憶するプログラムＲＯＭ１３ｂ、及び各種データを記憶するデータＲＯＭ１３ｃを備えている。入力部１８は、ホストコンピュータ３０００との間でデータの送受信を行なう。印刷部インターフェース（Ｉ／Ｆ）１６は、プリンタエンジンである印刷部１７とのインターフェースを制御している。
【００２０】
外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスが制御されており、オプションとして接続されるハードディスク（ＨＤ）、ＭＯ、フロッピー(登録商標)ディスク（ＦＤ）、ＩＣカード等を含んでおり、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。尚、ハードディスク等の外部メモリ１４が接続されていない場合には、ＲＯＭ１３のデータＲＯＭ１３ｃに、ホストコンピュータ３０００で利用される情報等を記憶することになる。尚、この外部メモリ１４は１個に限らず複数備えるものであってもよく、例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【００２１】
操作部１５０１には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。また、不図示のＮＶＲＡＭ（Ｎon-volatile  ＲＡＭ：不揮発性ＲＡＭ）を有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。
【００２２】
ＣＰＵ１２は、ＲＯＭ１３のプログラムＲＯＭ１３ｂに記憶された制御プログラム等に基づき、印刷部インターフェース１６を介して印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、ＣＰＵ１２は入力部１８を介してホストコンピュータ３０００との通信処理が可能となっており、ホストコンピュータ３０００から送信される印刷データを受信すると共に、プリンタ１５００内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【００２３】
図２は、所定のアプリケーション及び印刷処理関連プログラムを起動して、ホストコンピュータ３０００のＲＡＭ２にプログラムやデータがロードされた状態でのＲＡＭ２のメモリマップを示す図である。
【００２４】
ＲＡＭ２には、図示の如く、ＢＩＯＳ２０６、ＯＳ２０５をはじめ、アプリケーション２０１、印刷処理関連プログラム２０４、及び関連データ２０３がロードされている。更に、空きメモリ領域２０２も確保されている。これにより、アプリケーション２０１及び印刷処理関連プログラム２０４が実行可能な状態となる。尚、印刷処理関連プログラム２０４におけるプリンタドライバＵＩ制御モジュール２０４２（図１）は、ユーザによる印刷設定指令に応じてＣＲＴ１０に印刷設定画面を表示し、ＫＢ９などを使用したユーザからの設定を可能にする。
【００２５】
図３は、カスタマイズツールのＵＩを例示する図である。カスタマイズツールは、Windows （登録商標）2000/XP/Server 2003上で動作し、Windows （登録商標）98/ME、Windows （登録商標）NT4.0、Windows （登録商標）2000/XP/Server 2003向けの各プリンタドライバをカスタマイズすることを、例としているが、本発明の趣旨は、必ずしもこれらのＯＳに限定されるものではなく、プリンタドライバを実際にインストールすることなく、擬似ＡＰＩ（この内容は後に詳細に説明する）により、ＯＳに対応するＡＰＩの動作をシミュレートする内容は、個別の関数を動作させる引数の設定を変更、追加等することにより対応することは可能であることはいうまでもない。
【００２６】
図３において、ユーザがメニュー３０１の"開く"を指定すると、カスタマイズを行なうドライバセットのフォルダを指示するためのダイアログ(不図示)が表示されて、カスタマイズを行なうドライバの格納先を指示することができる。指示されたフォルダは、表示欄３０２に表示され、指示されたドライバセットの対応ＯＳが表示欄３０３に表示される。 
リストビュー３０５には、カスタマイズを行なうプリンタドライバの対応機種とカスタマイズを行った情報に対して識別表示「On」が表示されるようになっている。チェックボックス３１０をチェックすると、ボタン３１１が有効となり、ボタン３１１を押下するとカスタマイズ用のプリンタドライバＵＩ（図４）が表示され、印刷設定（ドキュメントプロパティ）の初期値設定、デバイスの設定（プリンタプロパティ）等の初期値設定を行なうことができる。
【００２７】
チェックボックス３２０をチェックすると、ボタン３２１が有効となり、ボタン３２１を押下すると、プリンタドライバＵＩ上のコントロールの表示方法をカスタマイズするためのＵＩ（図５）が表示され、カスタマイズ用のプリンタドライバＵＩ上におけるコントロールの表示方法を設定することができる。
【００２８】
ボタン３３０を押下することで、カスタマイズドライバの作成先を指定するためのダイアログ（不図示）が表示され、カスタマイズドライバの作成先を指定することができる。
【００２９】
各種設定を行った後、ボタン３４０を押下すると、設定に従ってカスタマイズされたプリンタドライバが作成される。
【００３０】
図４は、図３のＵＩにおいて、ボタン３１１を押下すると表示されるプリンタドライバ（以下、単に「ドライバ」ともいう）の初期設定値カスタマイズ用のプリンタドライバＵＩ（初期設定値カスタマイズＵＩ）である。
【００３１】
カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の設定部として機能し、かかる設定部は、例えば、図４に示すＵＩ画面のような文書のプロパティ設定とデバイスのプロパティ設定を行なうための設定画面をＣＲＴ上に表示させる。
【００３２】
Windows（登録商標） NT4.0、Windows （登録商標）2000/XP/Server 2003のプリンタドライバでは、文書用の設定を行なうドキュメントプロパティのＵＩと、デバイスの設定を行なうプリンタプロパティのＵＩとが同時に１つのＵＩ画面中に表示されることは、通常のインストールによるプリンタドライバの設定に関するＵＩ画面では表示され得ない。しかしながら、本発明の実施形態にかかるカスタマイズ用のプリンタドライバＵＩは、カスタマイズツールがプリンタドライバのモジュールを利用して表示を行っており、文書用の設定を行なうドキュメントプロパティのＵＩと、デバイスの設定を行なうプリンタプロパティのＵＩとを同時に１つのＵＩ画面（図４）として表示するようになっている。図４において、ドキュメントプロパティのＵＩとして、ページ設定４０１、仕上げ４０２、給紙４０３、印刷品質４０４の４種類のＵＩが表示可能であり、そして、プリンタプロパティのＵＩとしてデバイスの設定４０５が表示可能である。これらの各ＵＩ（４０１〜４０５）を介して、ドキュメントプロパティの初期値設定と、プリンタプロパティの初期値設定を行なうことができる。
【００３３】
また、カスタマイズ対象でない設定に関して、図４に示すＵＩは、例えば、参照番号４１０のようにグレイアウト表示により、ユーザによる設定の入力を受け付けないように構成されている。
【００３４】
図５は、ドキュメントプロパティ表示コントロール設定ＵＩを例示する図であり、図３でボタン３２１を押下した際に、ホストコンピュータ３０００のＣＲＴ１０上に表示される。図５に示す画面例では、ページ設定５０１、仕上げ５０２、給紙５０３、印刷品質５０４、共通５０５の５種類について、表示制御の設定が可能である。ページ設定５０１、仕上げ５０２、給紙５０３、印刷品質５０４は、それぞれ、図４のドキュメントプロパティのＵＩと対応する表示制御の設定を行なうことが可能であり、共通５０５は、これらの表示制御に共通の表示制御の設定を行なうことが可能である。
【００３５】
５０６は、コントロール項目「Ｊｏｂ  Ｏｐｅｒａｔｉｏｎｓ」の設定を具体的に示しており、有効表示(通常通りの表示)、無効表示(常にDisable表示)、非表示を指定することができる。同様にその他の各コントロール項目について個別に、有効、無効、非表示の設定をすることでドキュメントプロパティのＵＩに関する表示をコントロールすることができる。これらの設定を入力すると、カスタマイズツールは、GPDファイルに書き込む。なお、無効表示には、グレーアウト表示などをして、ユーザの操作を不能にするものを含む。
【００３６】
カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の表示制御部として機能し、表示制御部は設定された文書のプロパティ（コントロール項目を含む）に基づいて、ユーザインタフェース(ＵＩ)における項目の有効表示、無効表示または非表示を制御することができる。GPDファイルは、UPDファイルとほぼ同一のデータ構造を有する。
【００３７】
次に、図６のフローチャートを用いて、カスタマイズツールの基本動作について説明する。尚、基本動作の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールが動作の主体となるものとする。
【００３８】
まず、ステップＳ６０１において、ユーザがカスタマイズツールを起動すると、カスタマイズツールの初期化処理がなされ、ステップＳ６０２において、カスタマイズツールは、図３で説明したＵＩ画面をＣＲＴ１０上に表示する。ステップＳ６０３において、ユーザがカスタマイズを行なうプリンタドライバのインストールセットを図３のＵＩ画面から指示すると、ステップＳ６０４において、指示されたインストールセットのチェック処理を行なう。カスタマイズツールは、インストールセットのチェック処理において、図７に示すプリンタドライバのインストール情報を記述するファイル（以下、「infファイル」という）の記述内容から（図７の７０１、７１０、７２０）、指示されたインストールセットに対応可能なＯＳか、指示されたプリンタドライバがカスタマイズツールによるカスタマイズに対応したプリンタドライバであるかを判定する。
【００３９】
ここで、図７は、プリンタドライバのインストール情報を記述するinfファイルの記述内容を例示する図である。このinfファイルには、モジュール記述情報が含まれており（不図示）、このモジュール記述情報に基づいて、カスタマイズツールはプリンタドライバのＵＩ処理を行っているモジュールを特定することができるものとする。図７において、700はWindows（登録商標）98/ME用のinfファイルの一部を示し、710はWindows（登録商標）NT4.0用のinfファイルの一部を示し、そして720はWindows（登録商標）2000/XP/Server2003用のinfファイルの一部を示している。ＣＰＵ１により実行されるカスタマイズツールは、infファイル７００中の「Signature」の設定７３０が、文字列リソース（"$CHICAGO$"）であれば、Windows（登録商標）98/ME用のプリンタドライバと判断する。
【００４０】
また、カスタマイズツールは、infファイル（７１０、７２０）中の「Signature」の設定（７４０、７５０）が、文字列リソース（"$Windows（登録商標） NT$"）である場合は、Windows（登録商標）NT4.0用または、Windows（登録商標）2000/XP/Server 2003用のドライバのいずれかであると判断し、更に、カスタマイズツールは、絞り込みを行なうために、infファイル（７１０、７２０）中にける「DISK1」（７６０、７７０）の設定文字列リソース内に「NT」が含まれている場合にはWindows(登録商標) NT4.0用と判断し、含まれていない場合には、Windows (登録商標) 2000/XP/Server 2003用と判断する。
【００４１】
カスタマイズに対応しているプリンタドライバは、そのことを示すための文字列リソースをinfファイル中に含んでいるので、カスタマイズツールは、判別に際して、その文字列リソースがプリンタドライバのinfファイル中に含まれているかを判断することにより、カスタマイズに対応しているか判別することができる。
【００４２】
説明を図６に戻し、ステップＳ６０５において、プリンタドライバがカスタマイズに対応していないとカスタマイズツールにより判別される場合は（Ｓ６０５−ＮＯ）、処理をステップＳ６１０に進めて、エラー処理を行い、再度インストールセットの指示ステップ（Ｓ６０３）に戻る。
【００４３】
一方、ステップＳ６０５の判定において、プリンタドライバがカスタマイズに対応しているとカスタマイズツールにより判別される場合には（Ｓ６０５−ＹＥＳ）、処理をステップＳ６０６に進め、カスタマイズツールは、ＣＲＴＣ６を制御してＣＲＴ１０上に図３〜図５で説明したＵＩ画面を表示させてプリンタドライバのカスタマイズの設定を可能にする。図３〜図５で入力される設定がカスタマイズデータとなる。
【００４４】
尚、カスタマイズデータには様々なデータが含まれる。デバイスドライバのユーザインタフェースのコントロールの表示、非表示のための制御データや、図１４に示すようなデバイスドライバの設定値が含まれる。
【００４５】
図１４は、このデバイスモード（DEVMODE）のデータ構造の一例を示す図である。
【００４６】
ここでは、用紙向き（dmOrientation）、用紙サイズ（dmPaperSize）、用紙幅（dmPaperWidth）、部数（dmCopies）などが格納されている様子が記載されている。その他、このDEVMODEデータ構造体はレジストリに格納される。プリンタドライバ２０４１は、このレジストリに格納されたDEVMODEデータ構造体を読み書きすることで、デフォルトの印刷設定環境や、後述する「お気に入り」を読み込んでユーザインタフェースにも反映することができる。
【００４７】
ここで「お気に入り」とは、プリンタドライバ２０４１の複数の印刷設定を一纏まりにしたものである。ユーザは、この一纏まりの設定からなる「お気に入り」をプリンタドライバ２０４１のユーザインタフェースで指定することで所望の動作環境を得ることができる。例えば、スタンプとステイプルをよく用いるユーザの場合には、これらステイプルとスタンプ設定の組を「お気に入り」として登録することにより、この「お気に入り」を選択するだけで、複数の設定を所望の値に設定して印刷させることができる。このようなデータを、プロパティ情報の一例であるカスタマイズデータとして、カスタマイズツールが保持し、後述するGPDファイルに書き込む。
【００４８】
図３〜図５のＵＩ画面を通じて、プリンタドライバのカスタマイズに関する設定がなされてカスタマイズの指示がなされると(Ｓ６０７)、カスタマイズツールは、ＵＩ画面で指示された内容（カスタマイズデータ）に基づいてカスタマイズしたドライバ（以下、「カスタマイズドライバ」ともいう。）の作成処理を行なう。カスタマイズデータは、プリンタドライバが読み出し可能なファイルであるGPDファイルに設定される。プリンタドライバは、インストールされ、稼動状態に設定されると、GPDファイル内の設定値を読み込む。そして、プリンタドライバは、GPDファイル内のカスタマイズされた値をプリンタドライバに反映する。例えば、よく使う印刷設定値（両面、２in１など）のプリセットをプリンタドライバに予め反映しておく。カスタマイズされたドライバをインストールするだけで、よく使う印刷設定値や、ドライバに対して操作前の状態に戻す指示があった場合にドライバに設定される、印刷設定のカスタマイズされたデフォルト値がプリンタドライバに設定された状態となる。
【００４９】
カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の生成部として機能し、かかる生成部は設定された文書のプロパティまたはデバイスのプロパティを、プリンタドライバ（デバイスドライバ）の情報ファイルに書き込み、デバイスライバをカスタマイズしたドライバ（カスタマイズドライバ）を生成する。
【００５０】
すなわち、カスタマイズツールは、カスタマイズドライバの作成処理において、カスタマイズ元のインストールセットをカスタマイズドライバ作成先にコピーした後、コピー先のインストールセットに含まれているドライバ情報ファイル(このファイルを「ＵＰＤファイル」ともいう)へカスタマイズデータを書き込むことでカスタマイズドライバを作成する。
【００５１】
ここで、図９は、プリンタドライバを構成する１ファイルである、ドライバ情報ファイル(ＵＰＤファイル)のデータフォーマットを説明する図である。同図に示すように、ＵＰＤファイルはヘッダ９０１、ＩＤ定義９０２、データ９０３からなる。ＩＤ定義９０２には、データ９０３に格納されているデータのＩＤと、データの格納位置（アドレス）との組が格納されている。そして、その組がＩＤの数に相当する分のセットで格納されている。本実施形態に係るカスタマイズツールでは、カスタマイズ用に定義されたＩＤに対応するデータの値を変更している。尚、ＩＤ定義９０２に使用したいカスタマイズデータのＩＤが定義されていない場合は、そのカスタマイズデータに対応する新たなＩＤがＩＤ定義９０２に追加される。
【００５２】
ＵＰＤファイルは対応するデバイスドライバ（プリンタドライバ）ごと（機種毎）に存在する。よって、機種毎に異なるカスタマイズを行なうことが可能である。例えば、ある機種に対応したカスタマイズ済みのドライバセットを使用して、他の機種のドライバをカスタマイズすることも可能である。また、ＩＤ定義９０２ではカスタマイズ用のＩＤを使用しているため、新しいバージョンのプリンタドライバに、それ以前にカスタマイズしたプリンタドライバの設定を引き継ぐこともできる。
【００５３】
カスタマイズされたプリンタドライバは、カスタマイズツールにより、カスタマイズデータが書き込まれたＵＰＤファイルを、インストール時又は初回の起動時に読み込み、ＵＰＤファイルのＩＤ定義９０２の所定ＩＤに対応付けて格納されたデータ９０３を読み込むように実装される。例えば、カスタマイズツールにより作成されたＵＰＤファイルには、ＩＤ定義９０２内に「CUSTUMIZED」を示すＩＤと、そのデータ格納位置として番地Ｘが格納されているとする。
【００５４】
カスタマイズ対応のプリンタドライバは、インストール完了又は初回起動時において、ＩＤ定義９０２内に「CUSTUMIZED」を示すＩＤ情報が記憶されていた場合、その情報に対応する番地を読み出すように予め実装されている。よって、このプリンタドライバは、インストール完了時又は初回起動時には、ＵＰＤファイルのＩＤ定義９０２内に「CUSTUMIZED」を示すＩＤを含むとき、そのＩＤ定義から対応するデータの番地Ｘを読み出す。続いて、そのプリンタドライバは、この番地Ｘのデータ９０３から、実際のドライバ設定データであるデバイスモードのデータ構造を更に読み出す。尚、ここで番地Ｘは絶対アドレスであってもよく、或はヘッダ９０１にデータ９０３の先頭アドレスを格納しておき、番地Ｘにはこのデータ９０３の先頭番地からのオフセットアドレスをセットしてもよい。
【００５５】
カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の表示制御部として機能し、かかる表示制御部は、プリンタドライバの起動時において、図３乃至図５のＵＩを介して設定されたカスタマイズ情報（たとえばコントロールの表示制御の指定や、印刷設定情報のデフォルト値など）を反映したプリンタドライバのドライバ情報ファイルを参照し、ユーザインタフェースをＣＲＴ１０に表示させることができる。
【００５６】
本実施形態において、カスタマイズツールは、カスタマイズデータとして、文書用の設定を行なうドキュメントプロパティに関する初期値データ（図４の４０１〜４０４により設定されるデータ）と、デバイスの設定を行なうプリンタプロパティに関する初期値データ（図４の４０５により設定される）、及び、ドキュメントプロパティに関するＵＩ上のコントロールの表示方法に関するデータ（図５のＵＩ画面より設定されたデータ）をＵＰＤファイルに対して書き込みを行なう。カスタマイズされたプリンタドライバは、インストール完了時又は初回起動時に、カスタマイズツールにより作成されたＵＰＤファイルを読み込み、カスタマイズ情報を元に動作する。これにより、カスタマイズされたプリンタドライバの動作環境を容易に構築することができる。
【００５７】
すなわち、印刷装置を制御するデバイスドライバ（プリンタドライバ）を、プロパティ（文書用の設定を行なうドキュメントプロパティに関する初期値データと、デバイスの設定を行なうプリンタプロパティに関する初期値データ）の設定によりカスタマイズする情報処理装置は、好適には、デバイスドライバがカスタマイズに対応しているか判別する判別部と、判別部の判別により、デバイスドライバがカスタマイズに対応していると判別される場合、文書のプロパティ設定とデバイスのプロパティ設定を行なうための設定画面（図３〜図５）をＣＲＴ１０上に表示させる設定部と、設定されたデバイスドライバのプロパティに対応するデータを取得する取得部と、取得部により取得されたデータを、設定部により設定された文書のプロパティ及びデバイスのプロパティに基づくユーザインタフェースに表示する表示制御部を備える。
【００５８】
または、情報処理装置は、好適には、印刷設定を含むプロパティを取得する取得部と、オペレーティングシステムにデバイスドライバを稼動可能に登録することなく、取得部が取得した印刷設定を含むプロパティを、デバイスドライバが読み出し可能な状態になるように、デバイスドライバに設定する設定部とを有する。情報処理装置において、上述の各部は、ＣＰＵ１の制御の下、カスタマイズツールを実行することにより、各部の処理が実行される。
【００５９】
説明を図６に戻し、カスタマイズドライバが作成された後（Ｓ６０８）、ユーザから終了指示がなされる(Ｓ６０９)とカスタマイズツールの動作を終了する(Ｓ６１１)。
【００６０】
次に、図８のフローチャートを用いて、ＣＰＵ１により実行されるカスタマイズツールが、プリンタドライバのカスタマイズ用ＵＩを表示する処理について説明する。尚、本処理の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールが動作の主体となるものとする。
【００６１】
図３のボタン３１１が押下されると、カスタマイズツールは、プリンタドライバのＵＩ処理を行っているモジュールをinfファイルに含まれているモジュール記述情報を元に特定し、カスタマイズツールから呼び出しが可能なように、メモリにロードする(Ｓ８０１)。
【００６２】
次に、ステップＳ８０２において、プリンタドライバのモジュールがエクスポートしている関数のアドレスを取得し（Ｓ８０２）、カスタマイズツールと、カスタマイズに対応しているプリンタドライバとの間で情報をやりとりするための構造体であるＣＳＰＬ構造体(不図示)を初期化する(Ｓ８０３)。ＣＳＰＬ構造体には、インストールされていなくてもプリンタドライバのＵＩ制御が可能なように各種の情報が保存される。
【００６３】
その後、ステップＳ８０４においてプロパティシート（カスタマイズ用のドライバＵＩ）の表示処理を行なう。このとき、図４で示したように、ドキュメントプロパティとプリンタプロパティを同時にカスタマイズできるように、両方のプロパティページが１つのＵＩ画面に表示されるようにプロパティシートの表示関数を呼び出す。
【００６４】
カスタマイズ用のドライバＵＩがユーザによって閉じられると、カスタマイズ用のドライバＵＩにて設定された情報がＣＳＰＬ構造体に保持されるので、カスタマイズツールは、その情報に対応するプリンタドライバの情報をＣＳＰＬ構造体（DeviceOption構造体、Devmode構造体を含む）から取得する(Ｓ８０５)。
【００６５】
カスタマイズツールは、ＣＰＵ１の制御の下、文書のプロパティまたはデバイスのプロパティ（デバイスドライバに設定可能なプロパティ）に対応するプリンタドライバのデータを取得する取得部として機能し、かかる取得部は、プリンタドライバの設定に関するデータを保持し、データの受け渡しが可能なデータ保持部（ＣＳＰＬ構造体）とデータの受け渡しを行なうことにより、プリンタドライバの情報を取得することができる。この際、取得部は、ＵＩ画面（図３〜図５）により設定された文書のプロパティまたはデバイスのプロパティに対応するデータを、データ保持部（ＣＳＰＬ構造体）に保持させて、データ保持部（ＣＳＰＬ構造体）からこれらのプロパティに対応するプリンタドライバの情報をカスタマイズ用の設定情報として取得する。このカスタマイズ用の設定情報に基づいて、表示制御部として機能するカスタマイズツールは、設定された文書のプロパティ及びデバイスのプロパティに基づいてカスタマイズされたユーザインタフェースをＣＲＴ１０に表示させる。
【００６６】
カスタマイズの設定情報として、プリンタプロパティの設定情報は、DeviceOption構造体(不図示)に、ドキュメントプロパティの設定情報は、Devmode構造体(不図示)に格納されており、カスタマイズツールは、これらに格納されている設定情報をカスタマイズの設定情報として取得する。
【００６７】
その後、ステップＳ８０６において、先のステップＳ８０１において、メモリにロードしたモジュールをアンロードして、カスタマイズ用ドライバＵＩの表示を終了する（Ｓ８０７）。
【００６８】
この処理フローについては、プリンタドライバの対応ＯＳによって若干処理は異なっている。例えば、Windows（登録商標） NT4.0とWindows（登録商標） 2000/XP/Server 2003は、ドライバＵＩの表示にCommon  Property  SheetUIというOSの仕組みを利用しているので、必要な前処理をして、Common  Property  SheetUI関数の呼び出しを行っている。一方、Windows （登録商標）98/MEでは、必要な前処理をして、Property  Sheet関数を呼び出してＵＩの表示を行っている。ただし、基本的な処理フローについては図８で示したとおりである。
【００６９】
図１０Ａは、プリンタドライバが実装しているWindows（登録商標） API（ApplicationProgramming Interface：アプリケーション  プログラム  インターフェース）の呼び出しについて説明する図である。プリンタドライバがインストールされている場合は、プリンタドライバのＵＩ処理１０１０において、Windows （登録商標）API（図中では、単に「API」と示す）を呼び出し１０４０（通常の呼び出し時）、カスタマイズに対応したプリンタドライバがインストールされていない場合であって、カスタマイズツールからの呼び出しの場合は、疑似Windows （登録商標）API１０６０（図中では、単に「擬似API」と示す）を呼び出し（１０５０）、対応関係にあるWindows （登録商標）APIの処理を疑似Windows （登録商標）APIで擬似的にシミュレートして、その結果をプリンタドライバＵＩ処理１０１０に返す。
【００７０】
図１０Ｂに示す１０３０は、Windows （登録商標）APIと対応する疑似（登録商標） API名の関係を示す図であり（図中では、それぞれ「API」、「擬似API名」と示す）、この対応関係は、インストールされているプリンタドライバに予め設定しておくことができるものとする。なお、通常、プリンタドライバのユーザインタフェースを制御するプログラムは、ドライバに対する入力に応じてWindows （登録商標）APIの呼び出しを行なう。本実施形態では、プリンタドライバをインストールしていない状態では、Windows（登録商標） APIを呼び出すことはできないが、擬似ＡＰＩを呼び出すことは出来るよう構成されている。
【００７１】
疑似Windows（登録商標） APIは、カスタマイズツールからの呼び出しの場合、疑似Windows （登録商標） APIがWindows （登録商標） APIの処理をシミュレートして処理をプリンタドライバＵＩ処理１０１０に返し、ＯＳにプリンタドライバがインストールされた後に通常のドライバＵＩとして呼び出された場合には、通常のWindows（登録商標） API１０２０の呼び出しを行って、処理をプリンタドライバＵＩ処理１０１０に返す。
【００７２】
図１１は、疑似Windows（登録商標） API（図中では、単に「擬似API」と示す）の呼び出しに関する処理の流れを説明するフローチャートである。尚、本処理の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールが動作の主体となるものとする。
【００７３】
まず、ステップＳ１１１０において、カスタマイズツールは、疑似Windows （登録商標）APIの引数に含まれるプリンタハンドル（引数）が、カスタマイズツールからの呼び出し時に受け渡されるＣＳＰＬ構造体のアドレス情報（以下、単に「アドレス情報」ともいう）であるかを判定する。この判定方法は、ＣＳＰＬ構造体の先頭メンバはＣＳＰＬ構造体のサイズを示すようになっているので、渡されたプリンタハンドル（引数）をＣＳＰＬ構造体の先頭アドレスとして扱って参照し、ＣＳＰＬ構造体のサイズと一致している場合には、引数のプリンタハンドルはＣＳＰＬ構造体のアドレスであると判断する（Ｓ１１１０−ＹＥＳ）。プリンタドライバＵＩモジュールは、処理結果、たとえばＵＩを通して入力された印刷設定の各項目の値や、コントロールの表示の指定を、ハンドルで指定された構造体に保存し、処理を終了する。
【００７４】
引数のプリンタハンドルがＣＳＰＬ構造体のアドレスではない場合（Ｓ１１１０−ＮＯ）、通常のプリンタドライバの動作となるので、そのまま、Windows （登録商標）API（図中では、単に「API」と示す）の呼び出しを行って(Ｓ１１２０)、処理を終了する。プリンタドライバＵＩモジュールは、処理結果、たとえばＵＩを通して入力された印刷設定の各項目の値や、コントロールの表示の指定を、ハンドルで指定された構造体に保存し、処理を終了する。
【００７５】
ステップＳ１１１０の判断において、引数のプリンタハンドルがＣＳＰＬ構造体のアドレスと一致する場合には（Ｓ１１１０−ＹＥＳ）、処理をステップＳ１１３０に進め、カスタマイズツールからの呼び出し、すなわち、プリンタドライバがインストールされていない状態で、Windows （登録商標）APIの呼び出しを行なう。この場合、プリンタドライバをインストールしていない状態では、Windows（登録商標） APIを呼び出すことはできないので、擬似Windows（登録商標） API によりWindows （登録商標）APIと同等の処理を行って(Ｓ１１３０)、その処理結果をプリンタドライバＵＩ処理１０１０に戻し、処理を終了する。
【００７６】
以上の処理により、カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の選択部として機能し、かかる選択部は、データ保持部（ＣＳＰＬ構造体）に保持されているアドレス情報（先頭アドレス）に基づいて、使用する（呼び出すべき）アプリケーションプログラムインタフェース（Windows （登録商標）API、または疑似Windows （登録商標）API）を選択する。
【００７７】
図１２は疑似Windows （登録商標）APIの一例として、プリンタドライバからCSPL_GetVersionEx()関数（図１０Ｂの１０４０を参照）を呼び出す場合の処理の流れを示すフローチャートである。本処理の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールにより、プリンタドライバＵＩが呼び出され、さらにCSPL_GetVersionEx()関数が呼び出される。同関数がシミュレートするWindows （登録商標）APIは、Windows （登録商標）GetVersionEx()であり（図１０Ｂの表１０３０を参照）、このWindows （登録商標）APIはホストコンピュータ上で動作しているＯＳのバージョンに関する情報をプリンタドライバＵＩ側の処理１０１０に返す処理を行なう。
【００７８】
まず、ステップＳ１２１０において、CSPL_GetVersionEx()関数は、関数の引数であるプリンタハンドルが、呼び出し時に受け渡されるＣＳＰＬ構造体のアドレスであるかを判定する。この判定方法は、図１１のステップＳ１１１０で説明した判定方法と同様である。ＣＳＰＬ構造体のアドレスでない場合は（Ｓ１２１０−ＮＯ）、処理をステップＳ１２２０に進め、通常のプリンタドライバとして動作するWindows（登録商標） APIである、GetVersionEx()関数１０４０を呼び出して(Ｓ１２２０)、処理を終了する。
【００７９】
一方、ステップＳ１２１０の判定において、関数の引数がＣＳＰＬ構造体のアドレスと一致する場合には（Ｓ１２１０−ＹＥＳ）、処理をステップＳ１２３０に進め、ＣＳＰＬ構造体の中に保持されているプリンタドライバに対応するＯＳの情報を元にGetVersionEx（）関数の処理を擬似的に処理（GetVersionEx（）関数の処理と同等の処理を実行）する(Ｓ１２３０)。CSPL_GetVersionEx()関数は、ステップＳ１２３０においても、GetVersionEx()関数と同じ処理結果をプリンタドライバＵＩモジュールに返す。これは他の関数についても同様である。
【００８０】
例えば、図３〜図５のＵＩ画面から設定された文書のプロパティまたはデバイスのプロパティに対応して呼び出されるアプリケーションプログラムインタフェース（擬似Windows （登録商標）API）は、設定された文書のプロパティまたはデバイスのプロパティに対するプリンタドライバにおける処理を擬似的に処理する(Windows （登録商標）APIの処理と同等の処理を実行する)。
【００８１】
ステップＳ１２３０、またはステップＳ１２２０の処理後、図１２のフローチャートの処理を終了する。
【００８２】
これにより、例えば、Windows（登録商標）98/MEのドライバモジュールのＵＩ制御に関する処理が、カスタマイズツールからの呼び出しによって行われる場合、実際に動作しているＯＳは、カスタマイズツールが対応しているWindows （登録商標）2000/XP/Server 2003なのであるが、ＣＳＰＬ構造体には、ドライバモジュールの対応ＯＳとして、Windows（登録商標） 98/MEであるという情報が含まれているので、ＯＳのバージョン情報として「Windows （登録商標）ME」であるという値を返して、Windows （登録商標）98/MEのドライバモジュールのＵＩ制御処理に破綻が生じないようにすることができる。
【００８３】
つまり、カスタマイズの対象はWindows（登録商標）98/MEのプリンタドライバとドライバ情報（例えば、ＩＮＦファイルやドライバユーザインタフェースモジュール）である。本実施形態ではカスタマイズツールはWindows （登録商標）2000/XP/Server 2003に対応しており、カスタマイズツールが実行される環境はこれらのいずれかのＯＳにより制御されるものとする。ＣＳＰＬ構造体は、図８のステップＳ８０３で初期化されるので、たとえばこのときにＣＳＰＬ構造体にＯＳのバージョンを示すデータとして、Windows（登録商標） 98/MEであるという情報が書き込まれる。これにより、ＣＳＰＬ構造体には、ドライバモジュールの対応ＯＳはWindows（登録商標） 98/MEであるという情報（ＯＳのバージョン情報）が含まれている。そこで、CSPL_GetVersionEx()関数は、ステップＳ１２３０において、ＣＳＰＬ構造体のＯＳのバージョン情報にアクセスし、「Windows （登録商標）ME」であるという値をコール元のプリンタドライバＵＩモジュールに返す。
【００８４】
これは、他の疑似Windows（登録商標） APIについても同様であり、実際にプリンタドライバがインストールされていないので本来、Windows（登録商標）APIの呼び出しにより、ドライバモジュールのＵＩ制御において不都合が発生してしまう場合でも、疑似関数（擬似API）内での処理により、Windows （登録商標）APIの処理をシミュレートすることで、Windows （登録商標）APIの動作を仮想的にＵＩ制御に反映させることが可能になる。
【００８５】
また、明示的に示していないが、Windows（登録商標）98/MEのプリンタドライバは本来、16bit環境で動作するモジュールである。よって、そのＵＩ処理も16bit環境で行われるようになっている。しかしながら、本実施形態の対象としているWindows（登録商標） 98/MEのプリンタドライバは、そのＵＩ処理において、16bit環境でわたってくるＵＩの処理をサンクアップというＯＳの機構を利用し、32bit環境にてＵＩの実処理を行っている。このため、本実施形態のカスタマイズツールからは、ＵＩの実処理を行っている32bit環境で動作するＵＩの処理関数を呼び出して、Windows（登録商標） 98/MEのＵＩ表示及び制御を行なうことが比較的容易に行なうことが可能である。
【００８６】
つまり、カスタマイズツールは、印刷設定を含むプロパティを取得する。そして、カスタマイズツールは、オペレーティングシステムにデバイスドライバを稼動可能に登録することなく、カスタマイズツールが取得した印刷設定を含むプロパティを、前記デバイスドライバが読み出し可能な状態になるように、デバイスドライバに設定することができる。なお、当該設定時、デバイスドライバは、オペレーティングシステムが管理するファイルシステムのユーザ領域に記憶された状態にある。なお、前述の「稼動可能に登録」とは、例えば、オペレーティングシステムのアドミニストレータの権限を用いて、オペレーティングシステムがドライバを認識できるようにオペレーティングシステムが管理するレジストリ領域に登録してインストールことである。
【００８７】
前述の処理は、アプリケーションプログラムの一例であるカスタマイズツールにより実行されるものである。カスタマイズツールは、さらに、前記デバイスドライバを介した情報の入力に対して、オペレーティングシステムに代理して前記デバイスドライバに応答する。
【００８８】
そして、このカスタマイズツールの擬似的な代理応答があるので、デバイスドライバは、エラー処理に陥ることなく、前記アプリケーションからの応答を、オペレーティングシステムからの応答として認識し、その後のユーザからの入力による設定処理を続行する。
【００８９】
更に、カスタマイズツールは、プリンタドライバに対する擬似APIによって構成される。更に、カスタマイズツールは、複数種類のオペレーティングシステム用（例えば、Windows（登録商標）NT,Windows（登録商標）９５など）のデバイスドライバに対して、前記印刷設定を含むプロパティを設定できる。
【００９０】
プロパティは、カスタマイズツールによりＵＰＤファイルに保存される。作成されたＵＰＤファイルは、カスタマイズ対象のプリンタドライバやプリンタドライバＵＩモジュール、およびｉｎｆファイルと共にインストールセットを構成する。作成されたインストールセットは、記録媒体や通信媒体を介してクライアントコンピュータに配布される。インストーラは、ｉｎｆファイルの記述に従ってインストールを実行する。インストーラは、ＵＰＤファイルから読み込んだ各設定項目に対応する値を、devmode構造体やdeviceOption構造体の該当する項目の値として複写する。プリンタドライバおよびプリンタドライバＵＩモジュールは、devmode構造体やdeviceOption構造体に保存された各項目の値を参照して動作する。
【００９１】
なお、カスタマイズツールは、複数のデバイスドライバに対して、一度の指示でカスタマイズツールが取得した印刷設定に係わる情報を設定できる。
【００９２】
以上説明したように、本実施形態における擬似APIとは、デバイスドライバに対して、オペレーティングを真似てカスタマイズツールが振舞うことで、オペレーティングシステムに稼動状態にインストールされている状態にあるとの錯覚をデバイスドライバに起こさせる。もし、擬似的にカスタマイズツールがデバイスドライバに応答しなければ、デバイスドライバはエラー処理に移行してしまう。これにより、デバイスドライバをインストールすることなく、カスタマイズツールによるカスタマイズ処理を続行させることができる。
【００９３】
図１３は、カスタマイズに対応したプリンタドライバのプロパティ設定に関するＵＩ制御の処理の流れを説明するフローチャートである。尚、本処理の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールが動作の主体となるものとする。図１３の手順の中で、図１１や図１２に示す疑似ＡＰＩ関数がコールされ、プロパティシートの表示や、パラメータの取得、設定値の入力が実現される。
【００９４】
まず、ステップＳ１３００において、ＵＩ制御の指示が入力されると、カスタマイズツールが起動して、ステップＳ１３１０において、ＵＩの初期化処理が行なわれる。ステップＳ１３２０において、ＵＩ表示に関するカスタマイズ情報が、図９に示すドライバ情報ファイルにある場合には(Ｓ１３２０−ＹＥＳ)、処理をステップＳ１３３０に進め、その指示にＵＩ上の表示制御（Disable制御、Hide制御）に反映し、ユーザ操作待機状態にする（Ｓ１３４０）。一方、ドライバ情報ファイルがない場合には（Ｓ１３２０−ＮＯ）、ステップＳ１３３０の処理をスキップし、ユーザ操作待機状態にする（Ｓ１３４０）。
【００９５】
その後、ユーザの操作が行われるまで待機し(Ｓ１３４０)、ＵＩを閉じる操作がなされた場合(Ｓ１３５０―ＹＥＳ)には、ＵＩの処理を終了(Ｓ１３７０)し、他の操作であった場合は（Ｓ１３５０−ＮＯ）、ユーザの操作に対応したＵＩ制御を行い(Ｓ１３６０)、処理をステップＳ１３２０に戻す。
【００９６】
これにより、図５で指示されたコントロールの表示方法に関するカスタマイズデータは、図９で示したドライバ情報ファイル内に保持されているので、そのカスタマイズデータに従った、ＵＩコントロールの表示が可能である。
【００９７】
本実施形態では、カスタマイズ情報をＵＰＤファイルというドライバ情報ファイルに書き出すようにしているが、プリンタドライバが参照可能であり、かつ、解析可能なファイルであれば、その形態はＵＰＤファイルに限定されるものではない。従って、次期Windows（登録商標）であるLonghornにおいてはプリンタドライバのドライバ情報ファイルとしてＧＰＤファイルが標準的なものとなっているが、このファイル内にカスタマイズ情報を組み込むようにしてもよい。
【００９８】
本実施形態によれば、プリンタドライバのインストールを行なわずに、ユーザの所望するカスタマイズを反映させてカスタマイズドライバのインストールセットを作成し、個別のＯＳに対応したプリンタドライバのインストールを不要とすることで、作業効率の向上を図ることが可能になる。UIから入力されたプロパティ情報は、ＣＳＰＬ構造体を介して再度プリンタドライバ情報ファイル（ＵＰＤファイル）に保存される。なおこのとき、図３のカスタマイズコード３５０をプリンタドライバ情報ファイルに、あらかじめ定めた識別コードとともに保存する。
【００９９】
プリンタドライバが、カスタマイズに対応していないＯＳ用のものであっても、複数のプリンタドライバをプリンタドライバのカスタマイズ操作の後の、１回のカスタマイズ完了指示をすると、ユーザの所望するカスタマイズを反映させたカスタマイズドライバを作成することが可能になる。
【０１００】
また、プリンタドライバの初期設定値のカスタマイズにおいては、プリンタドライバのＵＩと同等のＵＩを用いて作業が可能であるので、カスタマイズにおける初期設定作業を容易に行なうことができる。かかるＵＩを利用して設定したカスタマイズの内容を反映させて、表示項目の有効表示、無効表示、非表示を制御することで、ユーザの作業効率、操作の利便性の向上を図ることが可能になる。
【０１０１】
カスタマイズドライバは、カスタマイズしていないドライバのインストールセットと同様の構成であるので、Microsoft（登録商標）社製、Windows（登録商標）オペレーティングシステム、または、次期ＯＳであるLonghornにおける、いわゆるPoint&Print環境においてもカスタマイズドライバとして動作することが可能であり、カスタマイズドライバの汎用性を向上させることができる。
【０１０２】
[他の実施形態]
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０１０３】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した（図６、図８、図１１〜図１３）のフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施形態に係る印刷処理システムの構成を示すブロック図である。
【図２】所定のアプリケーション及び印刷処理関連プログラムを起動して、ホストコンピュータ３０００のＲＡＭ２にプログラムやデータがロードされた状態でのＲＡＭ２のメモリマップを示す図である。
【図３】カスタマイズツールのＵＩを例示する図である。
【図４】初期設定値カスタマイズ用のプリンタドライバＵＩを示す図である。
【図５】ドキュメントプロパティ表示コントロール設定ＵＩを例示する図である。
【図６】カスタマイズツールにおける基本動作の処理の流れを説明するフローチャートである。
【図７】プリンタドライバのインストール情報を記述するinfファイルの記述内容を例示する図である。
【図８】プリンタドライバのカスタマイズ用ＵＩを表示する処理の流れを説明するフローチャートである。
【図９】プリンタドライバを構成するＵＰＤファイルのデータフォーマットを説明する図である。
【図１０Ａ】プリンタドライバが実装しているアプリケーション  プログラム  インターフェース（ＡＰＩ）の呼び出しについて説明する図である。
【図１０Ｂ】APIと対応する疑似 APIの関係を示す図である。
【図１１】疑似Windows（登録商標） APIの呼び出しに関する処理の流れを説明するフローチャートである。
【図１２】疑似Windows （登録商標）APIの一例として、CSPL_GetVersionEx(  )関数を呼び出す場合の処理の流れを示すフローチャートである。
【図１３】カスタマイズに対応したプリンタドライバのプロパティ設定に関するＵＩ制御の処理の流れを説明するフローチャートである。
【図１４】デバイスドライバのカスタマイズデータの一例を示す図である。
【図１】
2006309725.tif 000003
【図２】
2006309725.tif 000004
【図３】
2006309725.tif 000005
【図４】
2006309725.tif 000006
【図５】
2006309725.tif 000007
【図６】
2006309725.tif 000008
【図７】
2006309725.tif 000009
【図８】
2006309725.tif 000010
【図９】
2006309725.tif 000011
【図１０Ａ】
2006309725.tif 000012
【図１０Ｂ】
2006309725.tif 000013
【図１１】
2006309725.tif 000014
【図１２】
2006309725.tif 000015
【図１３】
2006309725.tif 000016
【図１４】
2006309725.tif 000017