(57)【要約】【課題】周辺機器の機種名やオプション構成をユーザに指定させることなく、ＰＣにドライバをインストールすることが可能な周辺機器ドライバ、周辺機器制御装置および周辺機器ドライバのインストール方法を提供する。【解決手段】接続対象となる周辺機器が決定していないユニバーサルドライバ１０に複数の周辺機器がサポートする機能処理のプログラムを全て格納し、接続対象となる周辺機器が決定すると、その周辺機器がサポートする機能処理の設定を行うことが可能なＵＩを作成し、その周辺機器に固有の周辺機器ドライバとしてＯＳに登録する。【選択図】図２
2005267367.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）等の各種の情報を視覚的に表示し得るモニタディスプレイ等の表示装置、ＣＤ−ＲＯＭドライブ、フロッピー（登録商標）ディスクドライブ、若しくはキーボードやマウス等の入力装置の構成を具備している。
【００３９】
次に、本発明に係る周辺機器ドライバについて詳細に説明する。なお、ＰＣ２にインストールする本発明に係る周辺機器ドライバは、実際の出力先となるプリンタ３が未決定且つ全機種に対応可能な状態（つまり、全機種間で共通仕様）であり、以後、このような状態の本発明に係る周辺機器ドライバをユニバーサルドライバとする。
【００４０】
図２は、ユニバーサルドライバ１０の構成の一例を示す図である。
【００４１】
図２に示すように、ユニバーサルドライバ１０は、描画コアプログラム１１、描画レイアウター処理プログラム１２、ＰＪＬ出力プログラム１３、画像処理等目的別コンポーネント（モノクロ用ウォーター／フォーム類、カラー用ウォーター／フォーム類、色判別、画質調整、色調整、ＮＩＥ、ＲＬＥ圧縮、ＤｅｌｔａＲａｗ圧縮、Ｊｐｅｇ圧縮）１４、ＵＩ機能対応処理モジュール１５、禁則処理マトリクス１６、ＵＩ基本モジュール１７、Ｉｎｆファイル１８、各プリンタ３に対応する機能対応情報１９から構成されている。
【００４２】
描画コアプログラム１１は、ＯＳおよびアプリケーションとのネゴシエーション処理を行う。
【００４３】
描画レイアウター処理プログラム１２は、Ｄｅｖｍｏｄｅの値に従ってページレイアウト、スケーリングの処理を行う。
【００４４】
ＰＪＬ出力プログラム１３は、プリンタＪＯＢランゲージの出力の処理を行う。
【００４５】
画像処理等目的別コンポーネント１４は、圧縮または色変換等の画像処理の目的別処理モジュールである。
【００４６】
ＵＩ機種対応処理モジュール１５は、ＵＩリソースまたは特殊なコントロールの処理が記述され、プリンタ３毎に用意されるＵＩ表示ビットマップも含んでいる。
【００４７】
なお、ＵＩ機種対応処理モジュール１６は、最初の印刷実行時またはＵＩオープン時に、ＰＣ２のＳｙｓｔｅｍフォルダにコピーされ、同時にレジストリもファイル名が登録される。その後、処理ルーチンとしてユニバーサルドライバ１０から、このレジストリ登録名を利用して呼び出される。
【００４８】
禁則処理マトリクス１６は、機種毎の禁則条件を記述したファイルであり、ＵＩ機能対応処理モジュール１５と同期して処理される。
【００４９】
ＵＩ基本モジュール１７は、基本的なＵＩを表示する処理を行うプログラムである。具体的には、プリンタ３が実現する各機能に対するＵＩコンポーネントの定義（例えば、「用紙サイズ選択機能」はコンボボックスで表示する）、および各機能に対するＤｅｖｍｏｄｅの定義（つまり、各々の機能で選択された値をＤｅｖｍｏｄｅのどのパラメータに当てはめるかを処理すること）等を行う。
【００５０】
なお、Ｄｅｖｍｏｄｅとは、ＯＳで定義されているプリンタドライバとアプリケーション間で値のやり取りを行うパラメータである。
【００５１】
このプリンタドライバＵＩ基本モジュール１７においては、アプリケーションに通知する必要のある機能がサポートされており、Ｄｅｖｍｏｄｅの基本Ｄｅｖｍｏｄｅ（全てのプリンタに共通して使用するＤｅｖｍｏｄｅ）がサポートされている。
【００５２】
機能対応情報１９は、プリンタ３においてサポートされる機能と選択肢とのテーブルがバイナリデータとなっている。つまり、ユニバーサルドライバ１０はプリンタ３の機種毎に機能対応情報１９を持つことになる。
【００５３】
なお、機能対応情報１９はＤｅｖｍｏｄｅ構造体と機能情報構造体ＦｕｎｃＤａｔａとから構成されている。
【００５４】
Ｄｅｖｍｏｄｅ構造体はＤｅｖｍｏｄｅの対象機種初期値（印刷実行時に必要なＤｅｖｍｏｄｅの値を決定するための情報）である。
【００５５】
機能情報構造体ＦｕｎｃＤａｔａは各機能について固定長のバイトデータ（ＵＩ表示時に必要な選択肢情報）を持つ構造体である。
【００５６】
次に、機能情報構造体ＦｕｎｃＤａｔａについて詳細に説明する。
【００５７】
図３は、機能情報構造体ＦｕｎｃＤａｔａ２０の一例を示す図である。
【００５８】
ここで、各バイトデータの意味について詳細に説明する。
【００５９】
ＷＯＲＤ値およびＤＷＯＲＤ値は機能の有無と選択肢の有無を示し、選択肢数が１５を超える場合はＤＷＯＲＤ値をとる。また、ｌｏｎｇ値は機能の有無と値の上限下限を示す。
【００６０】
なお、機能対応情報１９を保持する場所は、ユニバーサルドライバ１０を構成する他のファイルと同一の場所であっても良いし、別の場所（例えば、プリンタ上のメモリ、ネットワーク上の外部装置等）であっても良い。この場合に、別の保持する場所のタイムスタンプ等の取得を実施し、プリンタドライバでの機能対応情報のタイムスタンプ等と比較することにより、自動アップデートを実施しても良い。
【００６１】
ユニバーサルドライバ１０の初回インストール（プリンタ非依存インストール）時のＤｅｖｍｏｄｅの値は適当な仮設定値とする。この仮設定値は実際に使用されることはないので、どのような値でもよいが、実際使用される値としておいた方が現実的である。この仮設定値は初回インストール時に従来のプリンタ３のＤｅｖｍｏｄｅの規定値と同様な処理でＯＳに登録され、この時のＶｅｒｓｉｏｎを「１．００」とする。
【００６２】
ＵＩが開かれずに印刷指示を受け付けた場合（テストページを印刷する場合、アプリケーションから印刷ボタンまたは「Ｃｔｒｌ＋Ｐ」でＵＩを開かずに印刷する場合）のユニバーサルドライバ１０が行う処理について図４に示すフローチャートを参照して説明する。
【００６３】
印刷時に呼び出されたＤｅｖｍｏｄｅのＶｅｒｓｉｏｎをチェックする（ステップＳ４０１）。
【００６４】
Ｖｅｒｓｉｏｎが１．００ではない場合（ステップＳ４０１でＮＯ）、処理を終了する。
【００６５】
Ｖｅｒｓｉｏｎが１．００である場合（ステップＳ４０１でＹＥＳ）、プリンタからプリンタＩＤを取得する（ステップＳ５０２）。
【００６６】
なお、プリンタ３がＮｅｔｗｏｒｋＭＩＢ等に対応している機種の場合、プリンタ３からプリンタＩＤを取得すると同時にプリンタ３のオプション構成も取得する構成でも適用可能である。ただし、機能対応情報１９から取得したＤｅｖｍｏｄｅは、原則、禁則は発生しないのだが、プリンタ３から取得したオプション構成は想定されない状態であったり、機能対応情報がアップデート等により変更があった場合には、禁則が発生する可能性がある。
【００６７】
機能対応情報に基づいてプリンタＩＤに相当する対応Ｄｅｖｍｏｄｅ値を取得し（ステップＳ４０３）、禁則チェックを行う（ステップＳ４０４）。
【００６８】
禁則が無い場合（ステップＳ４０５でＮＯ）、ステップＳ４０９に進む。
【００６９】
禁則がある場合（ステップＳ４０５でＹＥＳ）、変更が可能か否か確認する（ステップＳ４０６）。
【００７０】
変更が可能な場合（ステップＳ４０６でＹＥＳ）、競合値を変更する（ステップＳ４０７）。
【００７１】
変更が不可能な場合（ステップＳ４０６でＮＯ）、競合による機能ドロップメッセージを表示する（ステップＳ４０８）。
【００７２】
レジストリＤｅｖｍｏｄｅをマージする（ステップＳ４０９）。
【００７３】
なお、レジストリＤｅｖｍｏｄｅをマージすることで対応機種ドライバの規定値が決定する。
【００７４】
Ｖｅｒｓｉｏｎを１．ｘｘに変更し（ステップＳ４１０）、処理を終了する。
【００７５】
なお、Ｖｅｒｓｉｏｎを１．ｘｘ（プリンタ３の機種毎に設定）に変更することで、次回印刷時からは既対応として、通常のプリンタドライバと同じ処理で動作する。
【００７６】
ＵＩが開かれた場合（プリンタプロパティからＵＩが開かれた場合、アプリケーションの印刷メニューからプリンタ３の設定画面が開かれた場合）のユニバーサルドライバ１０が行う処理について詳細に説明する。なお、ＵＩのオープンが指示された時点で、所定のレジストリキーが作成されていない場合は、初回のＵＩのオープンと判断される。
【００７７】
Ｄｅｖｍｏｄｅの規定値が既に設定されている（Ｖｅｒｓｉｏｎが１．００ではない）場合（例えば、テストプリント等で印刷実施済みの場合）、機能情報構造体ＦｕｎｃＤａｔａ２０を格納場所（ユニバーサルドライバを構成する他のファイルと同一の場所、プリンタ上のメモリ、ネットワーク上の外部装置等）から取得し、機能情報構造体ＦｕｎｃＤａｔａ２０の取得に成功すると、所定のレジストリキーを作成し、取得した機能情報構造体ＦｕｎｃＤａｔａ２０を格納する。ＵＩ表示時には、Ｆｕｎｃｔｉｏｎ＿Ｉｎｆｏ構造体に従って、メモリ領域にＵＩタグを構成する。
【００７８】
次に、ＵＩタグについて詳細に説明する。
【００７９】
図５は、ＵＩタグ２１の一例を示す図である。
【００８０】
具体例を挙げると、Ｎｕｐを４ｕｐまでサポートする機種の場合の機能情報構造体ＦｕｎｃＤａｔａ２０から展開される「ＳＥＫＥＣＴ＿ＩＴＥＭ＿ＩＮＦＯ」は、
ｌｐＦｕｎｃＮａｍｅ  ←  ”Ｎアップ”
ｗＩｔｅｍＮｕｍ  ←  ”３”
ｌｐＳｅｌＩｔｅｍ  ←  ”２ｕｐ””４ｕｐＹＯＫＯ”４ｕｐＴＡＴＥ”
のようにタグ内容が変わる。
【００８１】
また、Ｎｕｐを３２ｕｐまでサポートする機種の場合は、の機能情報構造体ＦｕｎｃＤａｔａ２０から展開される「ＳＥＫＥＣＴ＿ＩＴＥＭ＿ＩＮＦＯ」は、
ｌｐＦｕｎｃＮａｍｅ  ←  ”Ｎアップ”
ｗＩｔｅｍＮｕｍ  ←  ”９”
ｌｐＳｅｌＩｔｅｍ  ←  ”２ｕｐ””４ｕｐＹＯＫＯ””４ｕｐＴＡＴＥ”…”３２ｕｐＴＡＴＥ”
のようにタグ内容が変わる。
【００８２】
ＵＩタグ２１になるのは、有効となっている機能のみであり、機能対応情報において無効となっている機能はＵＩタグ２１自体を持たない。実際には、「ｌｐＳｅｌＩｔｅｍ」の内容は選択肢の文字列だけにとどまらず、当該選択肢の文字列に対応するＤｅｖｍｏｄｅの値等も含まれている。
【００８３】
次に、ＵＩが開かれた場合のユニバーサルドライバ１０が行う処理について図６に示すフローチャートを参照して説明する。
【００８４】
ＤｅｖｍｏｄｅのＶｅｒｓｉｏｎをチェックする（ステップＳ６０１）。
【００８５】
Ｖｅｒｓｉｏｎが１．００ではない場合（ステップＳ６０１でＮＯ）、ステップ６０３に進む。
【００８６】
Ｖｅｒｓｉｏｎが１．００である場合（ステップＳ６０１でＹＥＳ）、図４に示すフローチャートの処理を実施することで、Ｄｅｖｍｏｄｅの規定値を取得する（ステップＳ６０２）。
【００８７】
機能情報構造体ＦｕｎｃＤａｔａの有無をチェックする（ステップＳ６０３）。
【００８８】
機能情報構造体ＦｕｎｃＤａｔａが有る場合（ステップＳ６０３でＹＥＳ）、ステップＳ６０５に進む。
【００８９】
機能情報構造体ＦｕｎｃＤａｔａが無い場合（ステップＳ６０３でＮＯ）、機能情報構造体ＦｕｎｃＤａｔａを取得する（ステップＳ６０４）。
【００９０】
ＵＩメモリにデータを展開し（ステップＳ６０５）、Ｄｅｖｍｏｄｅの規定値を反映し（ステップＳ６０６）、Ｄｅｖｍｏｄｅの規定値において禁則が発生する場合は競合を解消し（ステップＳ６０７）、処理を終了する。
【００９１】
そして、ＵＩ表示処理において、ＵＩ基本モジュール１７からＵＩ機能対応処理モジュール名を固定名で、内容を機種毎に変えておくことで、機種別ＵＩを実現することができる。更に、マシンビットマップ等も包含することで、接続機種に応じてＵＩ表示ビットマップを変更することができる。
【００９２】
次に、機能対応情報１９について詳細に説明する。
【００９３】
図７は、機能対応情報１９の一例を示す図である。
【００９４】
図７に示すように、テーブルには、各プリンタ（ＰｒｉｎｔｅｒＡ、ＰｒｉｎｔｅｒＢ、ＰｒｉｎｔｅｒＣ）における機能と当該機能に対応する選択肢とのサポートの有無が示されている。
【００９５】
例えば、機能名「カラーモード」に対応する選択肢名「自動」、「カラー」および「白黒」について、「ＰｒｉｎｔｅｒＡ」は全てサポートしておらず、「ＰｒｉｎｔｅｒＢ」は「カラー」および「白黒」をサポートし、「自動」はサポートしておらず、「ＰｒｉｎｔｅｒＣ」は全てサポートしている。
【００９６】
従って、ＵＩ機種対応処理モジュール１５が機能情報構造体ＦｕｎｃＤａｔａ２０を決定する際に、「ＰｒｉｎｔｅｒＡ」の場合は「カラーモード」に対応するＵＩタグ２１は構成されず、「ＰｒｉｎｔｅｒＢ」の場合、「カラーモード」に対応するＵＩタグ２１は、
ｌｐＦｕｎｃＮａｍｅ  ←  ”カラーモード”
ｗＩｔｅｍＮｕｍ  ←  ”２”
ｌｐＳｅｌＩｔｅｍ  ←  ”カラー””白黒”
と構成され、「ＰｒｉｎｔｅｒＣ」の場合、「カラーモード」に対応するＵＩタグ２１は、
ｌｐＦｕｎｃＮａｍｅ  ←  ”カラーモード”
ｗＩｔｅｍＮｕｍ  ←  ”３”
ｌｐＳｅｌＩｔｅｍ  ←  ”自動””カラー””白黒”
と構成される。
【００９７】
なお、「対応Ｄｅｖｍｏｄｅ」は各機能に対応するＤｅｖｍｏｄｅを示し、「コンポーネント」は各選択肢名に対応するコンポーネントを示す。なお、コンポーネント「Ｂ１」は描画コアを示し、コンポーネント「Ｂ２」は描画レイアウター処理を示し、コンポーネント「Ｂ３」はＰＤＬ出力を示し、コンポーネント「Ｂ４」はモノクロ用ウォーター／フォーム類を示し、コンポーネント「Ｂ５」はカラー用ウォーター／フォーム類を示し、コンポーネント「Ｃ１」は色判別を示し、コンポーネント「Ｃ２」は画質調整を示し、コンポーネント「Ｃ３」は色調整を示し、コンポーネント「Ｃ４」はＮＩＥを示し、コンポーネント「Ｃ５」はＲＬＥ圧縮を示し、コンポーネント「Ｃ６」はＤｅｌｔａＲａｗ圧縮を示し、コンポーネント「Ｃ７」はＪＰＥＧ圧縮を示す。
【００９８】
次に、機能禁則処理マトリクス１７について詳細に説明する。
【００９９】
図８は、メイン規則の機能禁則処理マトリクス１７の一例を示す図である。
【０１００】
図８に示すように、メイン規則の機能禁則処理マトリクス１７は、各機能および当該機能毎の選択肢についての競合データ（禁則の場合は「×」が付されている）が示されている。
【０１０１】
例えば、機能名「原稿サイズ」に対応する選択肢名「Ａ３」は機能名「出力サイズ」に対応する選択肢名「原稿サイズと同じ」が禁則であり、また、「用紙トレイ選択」に対応する選択肢名「トレイ１」は機能名「原稿サイズ」に対応する選択肢名「ユーザ定義サイズ」、機能名「用紙種類」に対応する選択肢名「ＯＨＰフィルム」、「厚紙」、「コート紙」、「ラベル紙」、「はがき」、「封筒」が禁則である。
【０１０２】
従って、ＵＩ基本モジュールは、機能名「原稿サイズ」に「Ａ３」が選択された際に、機能名「出力サイズ」に対応する選択肢名「原稿サイズと同じ」をグレー表示でディムアウト等し、機能名「用紙トレイ選択」に「トレイ１」が選択された際に、機能名「原稿サイズ」に対応する選択肢名「ユーザ定義サイズ」、機能名「用紙種類」に対応する選択肢名「ＯＨＰフィルム」、「厚紙」、「コート紙」、「ラベル紙」、「はがき」、「封筒」をグレー表示でディムアウト等する。
【０１０３】
図９は、グラフィックスの機能禁則処理マトリクス１７の一例を示す図である。
【０１０４】
図９に示すように、グラフィックスの機能禁則処理マトリクス１７は、各機能および当該機能毎の選択肢についての競合データ（禁則の場合は「×」が付されている）が示されている。
【０１０５】
なお、ユニバーサルドライバ１０に機種情報の再取得を行う機能を加えることで、既に周辺機器との接続が完了し、具体的な周辺機器が決定したユニバーサルドライバ１０を再構成することが可能になる。
【０１０６】
また、本発明は、上記で説明した実施例のように、ＰＣ２にユニバーサルドライバ１０をインストールする構成に限定せず、上記で説明したユニバーサルドライバ１０と同様な機能を有する周辺機器制御装置の構成でも適用可能である。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施の形態で用いるプリントシステム１の全体構成の一例を示すブロック図である。
【図２】ユニバーサルドライバ１０の構成の一例を示す図である。
【図３】機能情報構造体ＦｕｎｃＤａｔａ２０の一例を示す図である。
【図４】ＵＩが開かれずに印刷指示を受け付けた場合（テストページを印刷する場合、アプリケーションから印刷ボタンまたは「Ｃｔｒｌ＋Ｐ」でＵＩを開かずに印刷する場合）のユニバーサルドライバ１０が行う処理を示すフローチャートである。
【図５】ＵＩタグ２１の一例を示す図である。
【図６】ＵＩが開かれた場合のユニバーサルドライバ１０が行う処理を示すフローチャートである。
【図７】機能対応情報１９の一例を示す図である。
【図８】メイン規則の機能禁則処理マトリクス１７の一例を示す図である。
【図９】グラフィックスの機能禁則処理マトリクス１７の一例を示す図である。
【符号の説明】
【０１０８】
１    プリントシステム
２    ＰＣ
３    プリンタ
４    ネットワーク
５    ＣＰＵ
６    ＲＯＭ
７    ＲＡＭ
８    ＨＤ
９    Ｉ／Ｆ
１０    ユニバーサルドライバ
１１    描画コアプログラム
１２    描画レイアウター処理プログラム
１３    ＰＪＬ出力プログラム
１４    画像処理等目的別コンポーネント
１５    ＵＩ機能対応処理モジュール
１６    禁則処理マトリクス
１７    ＵＩ基本モジュール
１８    Ｉｎｆファイル
１９    機能対応情報
２０    機能情報構造体ＦｕｎｃＤａｔａ
２１    ＵＩタグ
【図１】
2005267367.tif 000003
【図２】
2005267367.tif 000004
【図３】
2005267367.tif 000005
【図４】
2005267367.tif 000006
【図５】
2005267367.tif 000007
【図６】
2005267367.tif 000008
【図７】
2005267367.tif 000009
【図８】
2005267367.tif 000010
【図９】
2005267367.tif 000011