(57)【要約】【課題】周辺機器の機種名やオプション構成をユーザに指定させることなく、ＰＣにドライバをインストールすることが可能な周辺機器ドライバ、周辺機器制御装置および周辺機器制御ドライバのインストール方法を提供する。【解決手段】接続対象となる周辺機器が決定していないユニバーサルドライバ１０に全ての周辺機器に共通使用のプログラムだけを格納し、接続対象となる周辺機器が決定すると、その周辺機器が格納する依存ファイルを取得してロードすることで、その周辺機器がサポートする機能処理の設定を行うことが可能なＵＩを作成し、その周辺機器に固有の周辺機器ドライバとしてＯＳに登録する。【選択図】図２
2005267541.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して少なくとも１つの周辺機器と接続する情報処理装置に格納され、該周辺機器を制御する周辺機器ドライバにおいて、
全ての周辺機器に共通仕様である基本プログラム
を具備し、
接続対象の周辺機器が保持する前記基本プログラムに追加する差分プログラムと、該周辺機器がサポートする機能に対応する機能プログラムと、該周辺機器に依存するデータおよびプログラムとを含む周辺機器依存ファイルを、該周辺機器から取得する処理と、
該取得した周辺機器依存ファイルを前記基本プログラムに追加する処理と、
前記周辺機器依存ファイルを追加した基本プログラムを前記周辺機器に依存するプログラムであると前記情報処理装置に登録する処理と
をコンピュータに動作させることを特徴とする周辺機器ドライバ。
【請求項２】
前記周辺機器に依存するデータは、
前記機能に対応するサポートの有無を記述した機能対応情報であり、
前記周辺機器に依存するプログラムは、
前記機能対応情報に基づき、前記周辺機器に固有のユーザインターフェースを構成する機能対応処理プログラムであり、
前記周辺機器依存ファイルを追加した基本プログラムにより、前記機能対応処理プログラムで構成したユーザインターフェースを表示装置に表示する処理
をコンピュータに動作させることを特徴とする請求項１記載の周辺機器ドライバ。
【請求項３】
前記差分プログラムにより、前記機能プログラムを起動する処理
をコンピュータに動作させることを特徴とする請求項１記載の周辺機器ドライバ。
【請求項４】
前記接続対象の周辺機器が保持する前記機能同士で発生する動作上の競合の禁則が記述された機能禁則処理情報を該周辺機器から取得する処理と、
該取得した機能禁則処理情報に基づき、前記ユーザインターフェース上に表示する機能同士で発生する競合を解消する処理と
をコンピュータに動作させることを特徴とする請求項２記載の周辺機器ドライバ。
【請求項５】
前記ユーザインターフェースを前記表示装置に表示せずに前記周辺機器に処理を依頼する場合、
前記機能対応情報に基づき、該周辺機器がサポートする機能を確認する処理と、
該確認に従って、前記差分プログラムにより、前記機能プログラムを起動する処理と
をコンピュータに動作させることを特徴とする請求項２記載の周辺機器ドライバ。
【請求項６】
前記機能プログラムをネットワーク上の格納装置に格納する場合、
前記周辺機器から前記周辺機器依存ファイルを取得するとともに、前記格納装置から前記機能プログラムを取得する処理
をコンピュータに動作させることを特徴とする請求項１記載の周辺機器ドライバ。
【請求項７】
ネットワーク上の少なくとも１つの周辺機器を制御する周辺機器制御装置において、
全ての周辺機器に共通仕様である基本プログラム
を具備し、
接続対象の周辺機器が保持する前記基本プログラムに追加する差分プログラムと、該周辺機器がサポートする機能に対応する機能プログラムと、該周辺機器に依存するデータおよびプログラムとを含む周辺機器依存ファイルを、該周辺機器から取得し、
該取得した周辺機器依存ファイルを前記基本プログラムに追加し、
前記周辺機器依存ファイルを追加した基本プログラムを前記周辺機器に依存するプログラムであると登録する
ことを特徴とする周辺機器制御装置。
【請求項８】
前記周辺機器に依存するデータは、
前記機能に対応するサポートの有無を記述した機能対応情報であり、
前記周辺機器に依存するプログラムは、
前記機能対応情報に基づき、前記周辺機器に固有のユーザインターフェースを構成する機能対応処理プログラムであり、
前記周辺機器依存ファイルを追加した基本プログラムにより、前記機能対応処理プログラムで構成したユーザインターフェースを表示装置に表示する
ことを特徴とする請求項７記載の周辺機器制御装置。
【請求項９】
前記差分プログラムにより、前記機能プログラムを起動する
ことを特徴とする請求項７記載の周辺機器制御装置。
【請求項１０】
前記接続対象の周辺機器が保持する前記機能同士で発生する動作上の競合の禁則が記述された機能禁則処理情報を該周辺機器から取得し、
該取得した機能禁則処理情報に基づき、前記ユーザインターフェース上に表示する機能同士で発生する競合を解消する
ことを特徴とする請求項８記載の周辺機器制御装置。
【請求項１１】
前記ユーザインターフェースを前記表示装置に表示せずに前記周辺機器に処理を依頼する場合、
前記機能対応情報に基づき、該周辺機器がサポートする機能を確認し、
該確認に従って、前記差分プログラムにより、前記機能プログラムを起動する
ことを特徴とする請求項８記載の周辺機器制御装置。
【請求項１２】
前記機能プログラムをネットワーク上の格納装置に格納する場合、
前記周辺機器から前記周辺機器依存ファイルを取得するとともに、前記格納装置から前記機能プログラムを取得する
ことを特徴とする請求項７記載の周辺機器制御装置。
【請求項１３】
ネットワークを介して少なくとも１つの周辺機器と接続する情報処理装置に格納され、該周辺機器を制御する周辺機器ドライバのインストール方法において、
全ての周辺機器に共通仕様である基本プログラムを保持し、
接続対象の周辺機器が保持する前記基本プログラムに追加する差分プログラムと、該周辺機器がサポートする機能に対応する機能プログラムと、該周辺機器に依存するデータおよびプログラムとを含む周辺機器依存ファイルを、該周辺機器から取得し、
該取得した周辺機器依存ファイルを前記基本プログラムに追加し、
前記周辺機器依存ファイルを追加した基本プログラムを前記周辺機器に依存するプログラムであると前記情報処理装置に登録する
ことを特徴とする周辺機器ドライバのインストール方法。
【請求項１４】
前記周辺機器に依存するデータは、
前記機能に対応するサポートの有無を記述した機能対応情報であり、
前記周辺機器に依存するプログラムは、
前記機能対応情報に基づき、前記周辺機器に固有のユーザインターフェースを構成する機能対応処理プログラムであり、
前記周辺機器依存ファイルを追加した基本プログラムにより、前記機能対応処理プログラムで構成したユーザインターフェースを表示装置に表示する
ことを特徴とする請求項１３記載の周辺機器ドライバのインストール方法。
【請求項１５】
前記差分プログラムにより、前記機能プログラムを起動する
ことを特徴とする請求項１３記載の周辺機器ドライバのインストール方法。
【請求項１６】
前記接続対象の周辺機器が保持する前記機能同士で発生する動作上の競合の禁則が記述された機能禁則処理情報を該周辺機器から取得し、
該取得した機能禁則処理情報に基づき、前記ユーザインターフェース上に表示する機能同士で発生する競合を解消する
ことを特徴とする請求項１４記載の周辺機器ドライバのインストール方法。
【請求項１７】
前記ユーザインターフェースを前記表示装置に表示せずに前記周辺機器に処理を依頼する場合、
前記機能対応情報に基づき、該周辺機器がサポートする機能を確認し、
該確認に従って、前記差分プログラムにより、前記機能プログラムを起動する
ことを特徴とする請求項１４記載の周辺機器ドライバのインストール方法。
【請求項１８】
前記機能プログラムをネットワーク上の格納装置に格納する場合、
前記周辺機器から前記周辺機器依存ファイルを取得するとともに、前記格納装置から前記機能プログラムを取得する
ことを特徴とする請求項１３記載の周辺機器ドライバのインストール方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周辺機器ドライバ、周辺機器制御装置および周辺機器制御ドライバのインストール方法に関し、特に、ネットワークに接続された周辺機器の機種に対応した周辺機器ドライバ、周辺機器制御装置および周辺機器制御ドライバのインストール方法に関する。
【背景技術】
【０００２】
ネットワークに接続されたプリンタ、スキャナ、ファックス、コピー機等の周辺機器に対して、ホストコンピューター（以後、ＰＣ［Personal Computer］という）からジョブを発行したり、これらの周辺機器を管理したりする場合には、予め周辺機器の種類や機種を把握した上で、機種に対応した適当な周辺機器制御プログラム（以後、ドライバという）をＰＣに用意する必要がある。
【０００３】
ＰＣのＯＳ（Operating System）上にドライバをインストールするために、ＯＳ標準のインストールウィザードまたは各ベンダーによるセットアップツールが提供されており、それらによるインストール作業において、ひとつのパッケージで複数機種をサポートしている場合には、インストールする機種やオプション構成をユーザが選択しなければならない。
【０００４】
従来では、ユーザに機種やオプション構成を報知する手段として、ネットワーク接続されている周辺機器をブロードキャストして機種名をピックアップするものがあり、ローカル接続されている周辺機器をＰｎＰ（Plug and Play）で検出するものがある。
【０００５】
例えば、周辺機器から取得した機能に応じて、周辺機器を制御するための制御プログラムのユーザーインタフェースを自動構成する情報処理装置及び情報処理方法及び情報処理システム及び情報処理プログラムを記憶した記憶媒体及び情報処理プログラムを送出する送出装置及び情報処理プログラム製品がある（例えば、特許文献１参照。）。
【特許文献１】特開２０００−１３７５９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ＯＳ標準のインストールウィザードまたはベンダーによるセットアップツールにおいては、ドライバのインストール時に周辺機器の電源がＯＦＦになっている場合は当該周辺機器の機種名やオプション構成を取得することができない。また、複数の機種名がリストアップされた場合は適正な機種名が分からないことがあり、ユーザは知見のある管理者に機種名を問い合わせたり、または周辺機器のマニュアルで機種名を調べる等の作業が必要であった。
【０００７】
そこで、本発明は、周辺機器の機種名やオプション構成をユーザに指定させることなく、ＰＣにドライバをインストールすることが可能な周辺機器ドライバ、周辺機器制御装置および周辺機器制御ドライバのインストール方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１の発明は、ネットワークを介して少なくとも１つの周辺機器と接続する情報処理装置に格納され、該周辺機器を制御する周辺機器ドライバにおいて、全ての周辺機器に共通仕様である基本プログラムを具備し、接続対象の周辺機器が保持する前記基本プログラムに追加する差分プログラムと、該周辺機器がサポートする機能に対応する機能プログラムと、該周辺機器に依存するデータおよびプログラムとを含む周辺機器依存ファイルを、該周辺機器から取得する処理と、該取得した周辺機器依存ファイルを前記基本プログラムに追加する処理と、前記周辺機器依存ファイルを追加した基本プログラムを前記周辺機器に依存するプログラムであると前記情報処理装置に登録する処理とをコンピュータに動作させることを特徴とする。
【０００９】
なお、基本プログラムは図２に示す描画コアプログラム１１１、描画レイアウター処理プログラム１２１、ＰＪＬ出力プログラム１３１、ＵＩ基本モジュール１２およびＩｎｆプログラム１５１に対応し、差分プログラムは図３に示す描画コアプログラムの追加機能の差分ファイル１１２、描画レイアウター処理プログラムの追加機能の差分ファイル１２２およびＰＪＬ出力プログラムの追加機能の差分ファイル１３２に対応し、機能プログラムは図３に示す画像処理等目的別コンポーネント１７に対応し、周辺機器依存ファイルは図３に示すプリンタ依存ファイル１６に対応する。
【００１０】
また、請求項２の発明は、請求項１の発明において、前記周辺機器に依存するデータは、前記機能に対応するサポートの有無を記述した機能対応情報であり、前記周辺機器に依存するプログラムは、前記機能対応情報に基づき、前記周辺機器に固有のユーザインターフェースを構成する機能対応処理プログラムであり、前記周辺機器依存ファイルを追加した基本プログラムにより、前記機能対応処理プログラムで構成したユーザインターフェースを表示装置に表示する処理をコンピュータに動作させることを特徴とする。
【００１１】
なお、機能対応情報は図３に示す機能対応情報２０に対応し、機能対応処理プログラムは図３に示すＵＩ機能対応処理モジュール１８に対応する。
【００１２】
また、請求項３の発明は、請求項１の発明において、前記差分プログラムにより、前記機能プログラムを起動する処理をコンピュータに動作させることを特徴とする。
【００１３】
また、請求項４の発明は、請求項２の発明において、前記接続対象の周辺機器が保持する前記機能同士で発生する動作上の競合の禁則が記述された機能禁則処理情報を該周辺機器から取得する処理と、該取得した機能禁則処理情報に基づき、前記ユーザインターフェース上に表示する機能同士で発生する競合を解消する処理とをコンピュータに動作させることを特徴とする。
【００１４】
なお、機能禁則処理情報は図３に示す禁則処理マトリクス１９に対応する。
【００１５】
また、請求項５の発明は、請求項２の発明において、前記ユーザインターフェースを前記表示装置に表示せずに前記周辺機器に処理を依頼する場合、前記機能対応情報に基づき、該周辺機器がサポートする機能を確認する処理と、該確認に従って、前記差分プログラムにより、前記機能プログラムを起動する処理とをコンピュータに動作させることを特徴とする。
【００１６】
また、請求項６の発明は、請求項１の発明において、前記機能プログラムをネットワーク上の格納装置に格納する場合、前記周辺機器から前記周辺機器依存ファイルを取得するとともに、前記格納装置から前記機能プログラムを取得する処理をコンピュータに動作させることを特徴とする。
【００１７】
また、請求項７の発明は、ネットワーク上の少なくとも１つの周辺機器を制御する周辺機器制御装置において、全ての周辺機器に共通仕様である基本プログラムを具備し、接続対象の周辺機器が保持する前記基本プログラムに追加する差分プログラムと、該周辺機器がサポートする機能に対応する機能プログラムと、該周辺機器に依存するデータおよびプログラムとを含む周辺機器依存ファイルを、該周辺機器から取得し、該取得した周辺機器依存ファイルを前記基本プログラムに追加し、前記周辺機器依存ファイルを追加した基本プログラムを前記周辺機器に依存するプログラムであると登録することを特徴とする。
【００１８】
なお、基本プログラムは図２に示す描画コアプログラム１１１、描画レイアウター処理プログラム１２１、ＰＪＬ出力プログラム１３１、ＵＩ基本モジュール１２およびＩｎｆプログラム１５１に対応し、差分プログラムは図３に示す描画コアプログラムの追加機能の差分ファイル１１２、描画レイアウター処理プログラムの追加機能の差分ファイル１２２およびＰＪＬ出力プログラムの追加機能の差分ファイル１３２に対応し、機能プログラムは図３に示す画像処理等目的別コンポーネント１７に対応し、周辺機器依存ファイルは図３に示すプリンタ依存ファイル１６に対応する。
【００１９】
また、請求項８の発明は、請求項７の発明において、前記周辺機器に依存するデータは、前記機能に対応するサポートの有無を記述した機能対応情報であり、前記周辺機器に依存するプログラムは、前記機能対応情報に基づき、前記周辺機器に固有のユーザインターフェースを構成する機能対応処理プログラムであり、前記周辺機器依存ファイルを追加した基本プログラムにより、前記機能対応処理プログラムで構成したユーザインターフェースを表示装置に表示することを特徴とする。
【００２０】
なお、機能対応情報は図３に示す機能対応情報２０に対応し、機能対応処理プログラムは図３に示すＵＩ機能対応処理モジュール１８に対応する。
【００２１】
また、請求項９の発明は、請求項７の発明において、前記差分プログラムにより、前記機能プログラムを起動することを特徴とする。
【００２２】
また、請求項１０の発明は、請求項８の発明において、前記接続対象の周辺機器が保持する前記機能同士で発生する動作上の競合の禁則が記述された機能禁則処理情報を該周辺機器から取得し、該取得した機能禁則処理情報に基づき、前記ユーザインターフェース上に表示する機能同士で発生する競合を解消することを特徴とする。
【００２３】
なお、機能禁則処理情報は図３に示す禁則処理マトリクス１９に対応する。
【００２４】
また、請求項１１の発明は、請求項８の発明において、前記ユーザインターフェースを前記表示装置に表示せずに前記周辺機器に処理を依頼する場合、前記機能対応情報に基づき、該周辺機器がサポートする機能を確認し、該確認に従って、前記差分プログラムにより、前記機能プログラムを起動することを特徴とする。
【００２５】
また、請求項１２の発明は、請求項７の発明において、前記機能プログラムをネットワーク上の格納装置に格納する場合、前記周辺機器から前記周辺機器依存ファイルを取得するとともに、前記格納装置から前記機能プログラムを取得することを特徴とする。
【００２６】
また、請求項１３の発明は、ネットワークを介して少なくとも１つの周辺機器と接続する情報処理装置に格納され、該周辺機器を制御する周辺機器ドライバのインストール方法において、全ての周辺機器に共通仕様である基本プログラムを保持し、接続対象の周辺機器が保持する前記基本プログラムに追加する差分プログラムと、該周辺機器がサポートする機能に対応する機能プログラムと、該周辺機器に依存するデータおよびプログラムとを含む周辺機器依存ファイルを、該周辺機器から取得し、該取得した周辺機器依存ファイルを前記基本プログラムに追加し、前記周辺機器依存ファイルを追加した基本プログラムを前記周辺機器に依存するプログラムであると前記情報処理装置に登録することを特徴とする。
【００２７】
また、請求項１４の発明は、請求項１３の発明において、前記周辺機器に依存するデータは、前記機能に対応するサポートの有無を記述した機能対応情報であり、前記周辺機器に依存するプログラムは、前記機能対応情報に基づき、前記周辺機器に固有のユーザインターフェースを構成する機能対応処理プログラムであり、前記周辺機器依存ファイルを追加した基本プログラムにより、前記機能対応処理プログラムで構成したユーザインターフェースを表示装置に表示することを特徴とする。
【００２８】
また、請求項１５の発明は、請求項１３の発明において、前記差分プログラムにより、前記機能プログラムを起動することを特徴とする。
【００２９】
また、請求項１６の発明は、請求項１４の発明において、前記接続対象の周辺機器が保持する前記機能同士で発生する動作上の競合の禁則が記述された機能禁則処理情報を該周辺機器から取得し、該取得した機能禁則処理情報に基づき、前記ユーザインターフェース上に表示する機能同士で発生する競合を解消することを特徴とする。
【００３０】
また、請求項１７の発明は、請求項１４の発明において、前記ユーザインターフェースを前記表示装置に表示せずに前記周辺機器に処理を依頼する場合、前記機能対応情報に基づき、該周辺機器がサポートする機能を確認し、該確認に従って、前記差分プログラムにより、前記機能プログラムを起動することを特徴とする。
【００３１】
また、請求項１８の発明は、請求項１３の発明において、前記機能プログラムをネットワーク上の格納装置に格納する場合、前記周辺機器から前記周辺機器依存ファイルを取得するとともに、前記格納装置から前記機能プログラムを取得することを特徴とする。
【発明の効果】
【００３２】
本発明によれば、ユーザが実際に周辺機器を接続した後、直ちに使用することが可能になるとともに、ＰＣとネットワーク環境、プリンタ、スキャナ等システムとして設置する場合に、具体的な周辺機器機種が選定されていなくても、周辺機器ドライバがインストールされた環境を提供することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態について添付図面を参照して詳細に説明する。
【００３４】
本発明の実施の形態として、ＰＣ（Personal Computer）とプリンタとがネットワークを介して接続し、本発明に係る周辺機器ドライバがＰＣにインストールされる構成を一例にして詳細に説明する。
【００３５】
図１は、本発明の実施の形態で用いるプリントシステム１の全体構成の一例を示すブロック図である。
【００３６】
図１に示すように、ＰＣ２と複数のプリンタ３とがネットワーク４を介して接続している。なお、プリンタ３は必ずしも複数必要なわけではない。
【００３７】
ＰＣ２の構成について詳細に説明する。
【００３８】
図１に示すように、ＰＣ２は、ＣＰＵ５、ＲＯＭ６、ＲＡＭ７、ＨＤ８、Ｉ／Ｆ９を具備して構成される。
【００３９】
ＣＰＵ（Central Processing Unit）５は、基本ソフトウェアであるオペレーティングシステム（以後、ＯＳという）に基づいてＰＣ２本体のシーケンス制御を行う。
【００４０】
ＲＯＭ（Read Only Memory）６は、ＰＣ２の起動時に実行されるプログラム等を記録する。
【００４１】
ＲＡＭ（Random Access Memory）７は、プログラムの実行に必要なワークエリアのバッファエリアとして利用される。
【００４２】
ＨＤ（Hard Disk）８は、ＯＳまたはアプリケーションプログラム（以後、アプリケーションという）または周辺機器ドライバまたは各種のデータを格納する。
【００４３】
Ｉ／Ｆ（Interface）９は、ネットワーク４上のプリンタ３との間で各種データの送受信を行う。
【００４４】
なお、特に図示しないが、ＰＣ２は、例えば、アプリケーション画面およびプリンタドライバＵＩ（User Interface）等の各種の情報を視覚的に表示し得るモニタディスプレイ等の表示装置、ＣＤ−ＲＯＭドライブ、フロッピー（登録商標）ディスクドライブ、若しくはキーボードやマウス等の入力装置の構成を具備している。
【００４５】
次に、本発明に係る周辺機器ドライバについて詳細に説明する。なお、ＰＣ２にインストールする本発明に係る周辺機器ドライバは、実際の出力先となるプリンタ３が未決定且つ全機種に対応可能な状態（つまり、全機種間で共通仕様）であり、以後、このような状態の本発明に係る周辺機器ドライバをユニバーサルドライバとする。
【００４６】
図２は、ユニバーサルドライバ１０の構成の一例を示す図である。
【００４７】
図２に示すように、ユニバーサルドライバ１０は、描画コアプログラム１１１、描画レイアウター処理プログラム１２１、ＰＪＬ出力プログラム１３１、ＵＩ基本モジュール１４、Ｉｎｆファイル１５１から構成されている。
【００４８】
描画コアプログラム１１１は、ＯＳおよびアプリケーションとのネゴシエーション処理を行う。
【００４９】
描画レイアウター処理プログラム１２１は、Ｄｅｖｍｏｄｅの値に従ってページレイアウト、スケーリングの処理を行う。
【００５０】
ＰＪＬ出力プログラム１３１は、プリンタＪＯＢランゲージの出力の処理を行う。
【００５１】
ＵＩ基本モジュール１４は、基本的なプリンタドライバＵＩを表示する処理を行うプログラムである。具体的には、プリンタ３が実現する各機能に対するＵＩコンポーネントの定義（例えば、「用紙サイズ選択機能」はコンボボックスで表示する）、および各機能に対するＤｅｖｍｏｄｅの定義（つまり、各々の機能で選択された値をＤｅｖｍｏｄｅのどのパラメータに当てはめるかを処理すること）等を行う。
【００５２】
なお、Ｄｅｖｍｏｄｅとは、ＯＳで定義されているプリンタドライバとアプリケーション間で値のやり取りを行うパラメータである。
【００５３】
このＵＩ基本モジュール１４においては、アプリケーションに通知する必要のある機能がサポートされており、Ｄｅｖｍｏｄｅの基本Ｄｅｖｍｏｄｅ（全てのプリンタに共通して使用するＤｅｖｍｏｄｅ）がサポートされている。
【００５４】
上記描画コアプログラム１１１、描画レイアウター処理プログラム１２１、ＰＪＬ出力プログラム１３１およびＵＩ基本モジュール１４がＩｎｆファイル１５１として記述されている。
【００５５】
次に、プリンタ３に格納されているプリンタ依存ファイルの構成について詳細に説明する。
【００５６】
図３は、プリンタ依存ファイル１６の構成の一例を示す図である。
【００５７】
図３に示すように、プリンタ依存ファイル１６は、描画コアプログラムの追加機能の差分ファイル１１２、描画レイアウター処理プログラムの追加機能の差分ファイル１２２、ＰＪＬ出力プログラムの追加機能の差分ファイル１３２、画像処理等目的別コンポーネント（モノクロ用ウォーター／フォーム類、カラー用ウォーター／フォーム類、色判別、画質調整、色調整、ＮＩＥ、ＲＬＥ圧縮、ＤｅｌｔａＲａｗ圧縮、Ｊｐｅｇ圧縮）１７、ＵＩ機能対応処理モジュール１８、禁則処理マトリクス１９、Ｉｎｆファイル１５２、機能対応情報２０から構成されている。
【００５８】
描画コアプログラムの追加機能の差分ファイル１１２、描画レイアウター処理プログラムの追加機能の差分ファイル１２２およびＰＪＬ出力プログラムの追加機能の差分ファイル１３２は、機種毎に異なる機能処理のプログラム部分であり、名称は機種毎に異なる。
【００５９】
例えば、描画コアプログラム１１１の追加機能としてＦｏｎｔ機能（プリンタＦｏｎｔ／ＴＴフォント）等、描画レイアウター処理プログラム１２１の追加機能として拡大連写、画像繰り返し、小冊子等、ＰＪＬ出力プログラム１３１の追加機能としてＰｒｏｏｆＰｒｉｎｔ、ＳａｖｅｄＰｒｉｎｔ、ＳｅｃｕｒｅＰｒｉｎｔ等がある。
【００６０】
なお、これらの差分ファイルは、最初の印刷実行時またはＵＩオープン時に、ＰＣ２のＳｙｓｔｅｍフォルダにコピーされ、同時にレジストリもファイル名が登録される。その後、処理ルーチンとしてユニバーサルドライバ１０から、このレジストリ登録名を利用して呼び出される。
【００６１】
画像処理等目的別コンポーネント１７は、圧縮または色変換等の画像処理の目的別処理モジュールである。
【００６２】
なお、画像処理等目的別コンポーネント１７は、差分ファイルから呼び出される。つまり、差分ファイルには、処理毎に呼び出すモジュール名がハードコードされている。
【００６３】
また、画像処理目的別コンポーネント１７は機種間で共通に使用できるので、ネットワーク４上の外部装置に格納し、必要なときにダウンロードする構成でも適用可能である。
【００６４】
ＵＩ機種対応処理モジュール１８は、ＵＩリソースまたは特殊なコントロールの処理が記述され、プリンタ３毎に用意されるＵＩ表示ビットマップも含んでいる。
【００６５】
なお、ＵＩ機種対応処理モジュール１８は、最初の印刷実行時またはＵＩオープン時に、ＰＣ２のＳｙｓｔｅｍフォルダにコピーされ、同時にレジストリもファイル名が登録される。その後、処理ルーチンとしてユニバーサルドライバ１０から、このレジストリ登録名を利用して呼び出される。
【００６６】
禁則処理マトリクス１９は、機種毎の禁則条件を記述したファイルであり、ＵＩ機能対応処理モジュール１８と同期して処理される。
【００６７】
Ｉｎｆファイル１５２は、ユニバーサルドライバ１０のＩｎｆファイル１５１とは別なものであり、機種対応したＩｎｆファイル１５２である。なお、ＰｎＰ（Plug and Play）インストールの時はこちらのＩｎｆファイル１５２が参照される。
【００６８】
機能対応情報２０は、格納されているプリンタにおいてサポートされる機能と選択肢とのテーブルがバイナリデータとなっている。
【００６９】
なお、機能対応情報２０はＤｅｖｍｏｄｅ構造体と機能情報構造体ＦｕｎｃｔｉｏｎＩｎｆｏとから構成されている。
【００７０】
Ｄｅｖｍｏｄｅ構造体はＤｅｖｍｏｄｅの対象機種初期値（印刷実行時に必要なＤｅｖｍｏｄｅの値を決定するための情報）である。
【００７１】
機能情報構造体ＦｕｎｃｔｉｏｎＩｎｆｏは各機能について固定長のバイトデータ（ＵＩ表示時に必要な選択肢情報）を持つ構造体である。
【００７２】
次に、機能情報構造体ＦｕｎｃｔｉｏｎＩｎｆｏ２１について詳細に説明する。
【００７３】
図４は、機能情報構造体ＦｕｎｃｔｉｏｎＩｎｆｏ２１の一例を示す図である。
【００７４】
図４に示すように、機能情報構造体ＦｕｎｃｔｉｏｎＩｎｆｏ２１は１つのコントロールについての１つのＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体と、それに従属する複数（Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体のｗＩｔｅｍＮｕｍの数分）のＳＥＬＥＣＴ＿ＩＴＥＭ構造体とで構成されている。
【００７５】
具体例を挙げると、ソータービン、大容量排出トレイを持つ機種の場合、Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体は、
ｓｔｒＦｕｎｃＮａｍｅ  ←  ”排出先”
ｗＳｅｌＭｅｔｈｏｄ  ←  コンボボックス
ｗＩｔｅｍＮｕｍ  ←  ５
となり、このＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体に従属する５つのＳＥＬＥＣＴ＿ＩＴＥＭ構造体は、
ＳＥＬＥＣＴ＿ＩＴＥＭ構造体１｛ｓｔｒＩｔｅｍＮａｍｅ←”標準”、ｉｄＤｅｖｍｏｄｅ←ｄｍＯｕｔｐｕｔ、ｄｗＶａｌｕｅ←１｝
ＳＥＬＥＣＴ＿ＩＴＥＭ構造体２｛ｓｔｒＩｔｅｍＮａｍｅ←”ソータービン１”、ｉｄＤｅｖｍｏｄｅ←ｄｍＯｕｔｐｕｔ、ｄｗＶａｌｕｅ←３｝
ＳＥＬＥＣＴ＿ＩＴＥＭ構造体３｛ｓｔｒＩｔｅｍＮａｍｅ←”ソータービン２”、ｉｄＤｅｖｍｏｄｅ←ｄｍＯｕｔｐｕｔ、ｄｗＶａｌｕｅ←４｝
ＳＥＬＥＣＴ＿ＩＴＥＭ構造体４｛ｓｔｒＩｔｅｍＮａｍｅ←”ソータービン３”、ｉｄＤｅｖｍｏｄｅ←ｄｍＯｕｔｐｕｔ、ｄｗＶａｌｕｅ←５｝
ＳＥＬＥＣＴ＿ＩＴＥＭ構造体５｛ｓｔｒＩｔｅｍＮａｍｅ←”大容量排出トレイ”、ｉｄＤｅｖｍｏｄｅ←ｄｍＯｕｔｐｕｔ、ｄｗＶａｌｕｅ←９｝
となる。
【００７６】
また、ステープル、冊子折り機能を持つ機種の場合、Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体は、
ｓｔｒＦｕｎｃＮａｍｅ  ←  ”仕上げ加工”
ｗＳｅｌＭｅｔｈｏｄ  ←  コンボボックス
ｗＩｔｅｍＮｕｍ  ←  ３
となり、このＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体に従属する３つのＳＥＬＥＣＴ＿ＩＴＥＭ構造体は、
ＳＥＬＥＣＴ＿ＩＴＥＭ構造体１｛ｓｔｒＩｔｅｍＮａｍｅ←”なし”、ｉｄＤｅｖｍｏｄｅ←ｄｍＦｉｎｉｓｈ、ｄｗＶａｌｕｅ←０｝
ＳＥＬＥＣＴ＿ＩＴＥＭ構造体２｛ｓｔｒＩｔｅｍＮａｍｅ←”ステープル”、ｉｄＤｅｖｍｏｄｅ←ｄｍＦｉｎｉｓｈ、ｄｗＶａｌｕｅ←１｝
ＳＥＬＥＣＴ＿ＩＴＥＭ構造体３｛ｓｔｒＩｔｅｍＮａｍｅ←”冊子折り”、ｉｄＤｅｖｍｏｄｅ←ｄｍＦｉｎｉｓｈ、ｄｗＶａｌｕｅ←２｝
となる。
【００７７】
なお、機能対応情報２０を保持する場所は、プリンタ依存ファイル１６と同一の場所であっても良いし、別の場所（例えば、プリンタ３上のメモリ、ネットワーク４上の外部装置）であっても良い。この場合に、別の保持する場所のタイムスタンプ等の取得を実施し、プリンタドライバでの機能対応情報のタイムスタンプ等と比較することにより、自動アップデートを実施しても良い。
【００７８】
ユニバーサルドライバ１０の初回インストール（プリンタ非依存インストール）時のＤｅｖｍｏｄｅの値は適当な仮設定値とする。この仮設定値は実際に使用されることはないので、どのような値でもよいが、実際使用される値としておいた方が現実的である。この仮設定値は初回インストール時に従来のプリンタ３のＤｅｖｍｏｄｅの規定値と同様な処理でＯＳに登録され、この時のＶｅｒｓｉｏｎを「１．００」とする。
【００７９】
ＵＩが開かれずに印刷指示を受け付けた場合（テストページを印刷する場合、アプリケーションから印刷ボタンまたは「Ctl+P」でＵＩを開かずに印刷する場合）のユニバーサルドライバ１０が行う処理について図５に示すフローチャートを参照して説明する
印刷時に呼び出されたＤｅｖｍｏｄｅのＶｅｒｓｉｏｎをチェックする（ステップＳ５０１）。
【００８０】
Ｖｅｒｓｉｏｎが１．００ではない場合（ステップＳ５０１でＮＯ）、処理を終了する。
【００８１】
Ｖｅｒｓｉｏｎが１．００である場合（ステップＳ５０１でＹＥＳ）、プリンタからプリンタ依存ファイルを取得する（ステップＳ５０２）。
【００８２】
なお、プリンタ依存ファイル１６の名称は機種毎に異なる。例えば、描画コアプログラムの追加機能の差分ファイル１１２の名称を「ＡｄｄＣｏｒｅ．ｄｌｌ」、描画レイアウター処理プログラムの追加機能の差分ファイル１２２の名称を「ＡｄｄＬａｙ．ｄｌｌ」、ＰＪＬ出力プログラムの追加機能の差分ファイル１３２の名称を「ＡｄｄＰＪＬ．ｄｌｌ」として最初にユニバーサルドライバ１０に登録しておく。プリンタ依存ファイル１６取得時にレジストリにファイル名登録し、最初にユニバーサルドライバ１０に登録した名称を呼び出すようにプログラムしておくことで、プリンタから取得したプリンタ依存ファイル１６を処理モジュールとして使用することができる。
【００８３】
また、プリンタ３がＮｅｔｗｏｒｋＭＩＢ等に対応している機種の場合、プリンタ３からプリンタ依存ファイル１６を取得すると同時にプリンタ３のオプション構成も取得する構成でも適用可能である。ただし、機能対応情報２０から取得したＤｅｖｍｏｄｅは、原則、禁則は発生しないのだが、プリンタ３から取得したオプション構成は想定されない状態であったり、機能対応情報２０がアップデート等により変更があった場合には、禁則が発生する可能性がある。
【００８４】
取得したプリンタ依存ファイルをＳｙｓｔｅｍフォルダにコピーし（ステップＳ５０３）、対応Ｄｅｖｍｏｄｅ値を取得し（ステップＳ５０４）、禁則チェックを行う（ステップＳ５０５）。
【００８５】
禁則が無い場合（ステップＳ５０６でＮＯ）、ステップＳ５１０に進む。
【００８６】
禁則がある場合（ステップＳ５０６でＹＥＳ）、変更が可能か否か確認する（ステップＳ５０７）。
【００８７】
変更が可能な場合（ステップＳ５０７でＹＥＳ）、競合値を変更する（ステップＳ５０８）。
【００８８】
変更が不可能な場合（ステップＳ５０７でＮＯ）、競合による機能ドロップメッセージを表示する（ステップＳ５０９）。
【００８９】
レジストリＤｅｖｍｏｄｅをマージする（ステップＳ５１０）。
【００９０】
なお、追加機能の差分ファイルを登録し、レジストリＤｅｖｍｏｄｅをマージすることで対応機種ドライバの規定値が決定する。
【００９１】
Ｖｅｒｓｉｏｎを１．ｘｘに変更し（ステップＳ５１１）、処理を終了する。
【００９２】
そして、プリンタドライバ起動時に描画コアプログラムの追加機能の差分ファイル１１２「ＡｄｄＣｏｒｅ．ｄｌｌ」をロードする。この名称は固定でユニバーサルドライバ１０にハードコードされている。差分ファイルの中身は機種毎に異なるので、更に、画像処理等目的別コンポーネント１７が機種構成または機能に応じてロードされる。
【００９３】
ＵＩが開かれた場合（プリンタプロパティからＵＩが開かれた場合、アプリケーションの印刷メニューからプリンタ３の設定画面が開かれた場合）のユニバーサルドライバ１０が行う処理について詳細に説明する。なお、ＵＩのオープンが指示された時点で、所定のレジストリキーが作成されていない場合は、初回のＵＩのオープンと判断される。
【００９４】
Ｄｅｖｍｏｄｅの規定値が既に設定されている（Ｖｅｒｓｉｏｎが１．００ではない）場合（例えば、テストプリント等で印刷実施済みの場合）、プリンタ３からＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体を取得し、Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体の取得に成功すると、所定のレジストリキーを作成し、取得したＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体を格納する。ＵＩ表示時には、Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体に従って、メモリ領域にＵＩ情報を構成する。
【００９５】
Ｄｅｖｍｏｄｅの規定値が設定されていない（Ｖｅｒｓｉｏｎが１．００）場合（印刷未実施で初めてＵＩを開く場合）、図５に示すフローチャートの処理を実施することで、Ｄｅｖｍｏｄｅの規定値を取得し、プリンタ３からＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体を取得し、Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体の取得に成功すると、所定のレジストリキーを作成し、取得したＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体を格納する。ＵＩ表示時には、Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体に従って、メモリ領域にＵＩ情報を構成する。
【００９６】
次に、ＵＩが開かれた場合のユニバーサルドライバ１０が行う処理について図６に示すフローチャートを参照して説明する。
【００９７】
ＤｅｖｍｏｄｅのＶｅｒｓｉｏｎをチェックする（ステップＳ６０１）。
【００９８】
Ｖｅｒｓｉｏｎが１．００ではない場合（ステップＳ６０１でＮＯ）、ステップ６０３に進む。
【００９９】
Ｖｅｒｓｉｏｎが１．００である場合（ステップＳ６０１でＹＥＳ）、図５に示すフローチャートの処理を実施することで、Ｄｅｖｍｏｄｅの規定値を取得する（ステップＳ６０２）。
【０１００】
Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体の有無をチェックする（ステップＳ６０３）。
【０１０１】
Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体が有る場合（ステップＳ６０３でＹＥＳ）、ステップＳ６０５に進む。
【０１０２】
Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体が無い場合（ステップＳ６０３でＮＯ）、プリンタからＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体を取得する（ステップＳ６０４）。
【０１０３】
ＵＩメモリにデータを展開し（ステップＳ６０５）、Ｄｅｖｍｏｄｅの規定値を反映し（ステップＳ６０６）、Ｄｅｖｍｏｄｅの規定値において禁則が発生する場合は競合を解消し（ステップＳ６０７）、処理を終了する。
【０１０４】
そして、ＵＩ表示処理において、ＵＩ基本モジュール１４からＵＩ機能対応処理モジュール１８名を固定名で、内容を機種毎に変えておくことで、機種別ＵＩを実現することができる。更に、マシンビットマップ等も包含することで、接続機種に応じてＵＩ表示ビットマップを変更することができる。
【０１０５】
Ｄｅｖｍｏｄｅの規定値が設定され、プリンタ３から取得したＦｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体を格納することで、ユニバーサルドライバ１０はプリンタ３に依存するプリンタドライバとしてＯＳに登録される。
【０１０６】
次に、機能対応情報２０について詳細に説明する。
【０１０７】
図７は、機能対応情報２０の一例を示す図である。
【０１０８】
図７に示すように、機能対応情報２０には、プリンタ３（例えば、ＰｒｉｎｔｅｒＡ）における機能と当該機能に対応する選択肢とのサポートの有無が記述されている。
【０１０９】
なお、「対応Ｄｅｖｍｏｄｅ」は各機能に対応するＤｅｖｍｏｄｅを示し、「コンポーネント」は各選択肢名に対応するコンポーネントを示す。なお、コンポーネント「Ｂ１」は描画コアを示し、コンポーネント「Ｂ２」は描画レイアウター処理を示し、コンポーネント「Ｂ３」はＰＤＬ出力を示し、コンポーネント「Ｂ４」はモノクロ用ウォーター／フォーム類を示し、コンポーネント「Ｂ５」はカラー用ウォーター／フォーム類を示し、コンポーネント「Ｃ１」は色判別を示し、コンポーネント「Ｃ２」は画質調整を示し、コンポーネント「Ｃ３」は色調整を示し、コンポーネント「Ｃ４」はＮＩＥを示し、コンポーネント「Ｃ５」はＲＬＥ圧縮を示し、コンポーネント「Ｃ６」はＤｅｌｔａＲａｗ圧縮を示し、コンポーネント「Ｃ７」はＪＰＥＧ圧縮を示す。
【０１１０】
次に、機能禁則処理マトリクス１９について詳細に説明する。
【０１１１】
図８は、メイン規則能禁則処理マトリクス１９の一例を示す図である。
【０１１２】
図８に示すように、メイン規則の禁則処理マトリクス１９は、各機能および当該機能毎の選択肢についての競合データ（禁則の場合は「×」が付されている）が示されている。
【０１１３】
例えば、機能名「原稿サイズ」に対応する選択肢名「Ａ３」は機能名「出力サイズ」に対応する選択肢名「原稿サイズと同じ」が禁則であり、また、「用紙トレイ選択」に対応する選択肢名「トレイ１」は機能名「原稿サイズ」に対応する選択肢名「ユーザ定義サイズ」、機能名「用紙種類」に対応する選択肢名「ＯＨＰフィルム」、「厚紙」、「コート紙」、「ラベル紙」、「はがき」、「封筒」が禁則である。
【０１１４】
従って、ＵＩ基本モジュール１４は、機能名「原稿サイズ」に「Ａ３」が選択された際に、機能名「出力サイズ」に対応する選択肢名「原稿サイズと同じ」をグレー表示でディムアウト等し、機能名「用紙トレイ選択」に「トレイ１」が選択された際に、機能名「原稿サイズ」に対応する選択肢名「ユーザ定義サイズ」、機能名「用紙種類」に対応する選択肢名「ＯＨＰフィルム」、「厚紙」、「コート紙」、「ラベル紙」、「はがき」、「封筒」をグレー表示でディムアウト等する。
【０１１５】
図９は、グラフィックスの禁則処理マトリクス１９の一例を示す図である。
【０１１６】
図９に示すように、グラフィックスの禁則処理マトリクス１９は、各機能および当該機能毎の選択肢についての競合データ（禁則の場合は「×」が付されている）が示されている。
【０１１７】
なお、ＯＳに登録するプリンタドライバはユニバーサルドライバ１０の上書きである必要はなく、別アイコンとして登録することもできる。その際には、１つのユニバーサルドライバ１０で、ネットワーク４上の複数機種のプリンタ３に対応して複数のプリンタアイコンを自動作成することができる。
【０１１８】
また、プリンタ３に対して機能対応情報２０を要求するタイミングとして、毎回の印刷時とすることがネットワーク４への負荷、または印刷パフォーマンスの低下が考えられる。それに考慮して要求するタイミングに条件付けを行うことが可能であり、条件として、幾つかのケースが選択できる。
【０１１９】
１．初回１回のみ
２．前回の機能対応情報２０取得から一定の機間が経過している
３．プリンタ３側から情報更新要求を受け付けた場合
４．ＵＩにて情報更新要求を行った場合
ケース１の場合、ＰＣ２のＯＳ上で、プリンタ名のプリンタドライバとして登録されている場合には、情報要求を発行しない。プリンタドライバ名称はそのままユニバーサルドライバ１０として上書きする場合には、追加機能の差分ファイルが存在する場合には、情報要求を発行しない、またはレジストリに情報取得終了キーを登録する。
【０１２０】
ケース２の場合、情報取得終了時に、レジストリ等に最終履歴のタイムスタンプを登録する。タイムスタンプ登録が有る場合には、プリンタドライバＵＩを開いたタイミングで現時刻とタイムスタンプとの比較を実行し、規定時間以上が経過していた場合には、プリンタに情報取得要求を発行する。
【０１２１】
ケース３の場合、装着オプションの変更または消耗品（トナーカートリッジ等）の交換を行なった時に、プリンタ側のプログラムからＰＣに向けて情報要求コマンドを送信する。これを受けて、プリンタドライバは情報取得要求をプリンタに発行する。
【０１２２】
ケース４の場合、プリンタドライバＵＩにドライバアップデートボタンを付ける等、ユーザからの指示手段を与えた場合、その指示選択に従って情報要求を発行する。
【０１２３】
また、本発明は、ＰＣ２とプリンタ３とがローカル接続（有線、無線は問わない）する構成でも適用可能である。）
また、本発明は、上記で説明した実施例のように、ＰＣ２にユニバーサルドライバ１０をインストールする構成に限定せず、上記で説明したユニバーサルドライバ１０と同様な機能を有する周辺機器制御装置の構成でも適用可能である。
【図面の簡単な説明】
【０１２４】
【図１】本発明の実施の形態で用いるプリントシステム１の全体構成の一例を示すブロック図である。
【図２】ユニバーサルドライバ１０の構成の一例を示す図である。
【図３】プリンタ依存ファイル１６の構成の一例を示す図である。
【図４】機能情報構造体ＦｕｎｃｔｉｏｎＩｎｆｏ２１の一例を示す図である。
【図５】ＵＩが開かれずに印刷指示を受け付けた場合（テストページを印刷する場合、アプリケーションから印刷ボタンまたは「Ctl+P」でＵＩを開かずに印刷する場合）のユニバーサルドライバ１０が行う処理を示すフローチャートである。
【図６】ＵＩが開かれた場合のユニバーサルドライバ１０が行う処理を示すフローチャートを参照である。
【図７】機能対応情報２０の一例を示す図である。
【図８】メイン規則能禁則処理マトリクス１９の一例を示す図である。
【図９】グラフィックスの禁則処理マトリクス１９の一例を示す図である。
【符号の説明】
【０１２５】
１    プリントシステム
２    ＰＣ
３    プリンタ
４    ネットワーク
５    ＣＰＵ
６    ＲＯＭ
７    ＲＡＭ
８    ＨＤ
９    Ｉ／Ｆ
１０    ユニバーサルドライバ
１１１    描画コアプログラム
１１２    描画コアプログラムの追加機能の差分ファイル
１２１    描画レイアウター処理プログラム
１２２    描画レイアウター処理プログラムの追加機能の差分ファイル
１３１    ＰＪＬ出力プログラム
１３２    ＰＪＬ出力プログラムの追加機能の差分ファイル
１４    ＵＩ基本モジュール
１５１、１５２    Ｉｎｆファイル
１６    プリンタ依存ファイル
１７    画像処理等目的別コンポーネント
１８    ＵＩ機能対応処理モジュール
１９    禁則処理マトリクス
２０    機能対応情報
【図１】
2005267541.tif 000003
【図２】
2005267541.tif 000004
【図３】
2005267541.tif 000005
【図４】
2005267541.tif 000006
【図５】
2005267541.tif 000007
【図６】
2005267541.tif 000008
【図７】
2005267541.tif 000009
【図８】
2005267541.tif 000010
【図９】
2005267541.tif 000011