(57)【要約】【課題】  機種毎に異なる駆動条件を簡易かつ的確に設定することができなかった。【解決手段】  コンピュータにて駆動される周辺機器の駆動条件を設定するにあたり、上記周辺機器の駆動条件設定のために実施する処理の手順を示すデータであって、上記周辺機器の機種毎に予め決められた処理手順データを記録した処理手順データ記録媒体から、使用対象となっている周辺機器の機種に対応する処理手順データを参照するように設定し、上記周辺機器の駆動条件を設定するために実施する処理を示す実施処理データを受け付け、同実施処理データ受付工程にて受け付けた処理についての処理手順データを参照し、その手順に従った処理を実施することによって上記駆動条件の設定を行う。【選択図】  図４
2005228202.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにて駆動される周辺機器の駆動条件を設定する駆動条件設定装置であって、
上記周辺機器の駆動条件設定のために実施する処理の手順を示すデータであって、上記周辺機器の機種毎に予め決められた処理手順データを記録する処理手順データ記録媒体と、
使用対象となっている周辺機器の機種に対応する処理手順データを参照するように設定する機種別参照実現手段と、
上記周辺機器の駆動条件を設定するために実施する処理を示す実施処理データを受け付ける実施処理データ受付手段と、
同実施処理データ受付手段にて受け付けた処理についての処理手順データを参照し、その手順に従った処理を実施することによって上記駆動条件の設定を行う駆動条件設定手段とを具備することを特徴とする駆動条件設定装置。
【請求項２】
上記機種別参照実現手段は上記コンピュータにて実行されるアプリケーションプログラムで使用される周辺機器の機種を示すデータを取得し、上記実施処理データ受付手段は上記アプリケーションプログラムからの指示に対応した実施処理データを受け付けることを特徴とする上記請求項１に記載の駆動条件設定装置。
【請求項３】
上記処理手順データ記録媒体には上記処理手順データが周辺機器の機種名に基づいて検索できるように記録されており、上記機種別参照実現手段は周辺機器の機種名に基づいて使用対象となっている周辺機器の機種に対応する処理手順データを抽出することを特徴とする上記請求項１または請求項２のいずれかに記載の駆動条件設定装置。
【請求項４】
上記処理手順データ記録媒体に記録された処理手順データを上記周辺機器の機種名に基づいて特定するための情報は、上記コンピュータを駆動するオペレーティングシステムで標準的に使用されるデータであって周辺機器の駆動条件を示す複数のデータを含む構造体にてそのデータの一つとして記述され、上記機種別参照実現手段は当該構造体を参照することによって上記使用対象となっている周辺機器の機種に対応する処理手順データを特定することを特徴とする上記請求項３に記載の駆動条件設定装置。
【請求項５】
上記駆動条件設定手段は、上記コンピュータを駆動するオペレーティングシステムで標準的に使用されるデータであって周辺機器の駆動条件を示す複数のデータを含む構造体に対し、設定後の駆動条件を示すデータを上書きすることで駆動条件の設定を行うことを特徴とする上記請求項１〜請求項４のいずれかに記載の駆動条件設定装置。
【請求項６】
上記処理手順データに記述される処理は、上記周辺機器の現在の駆動条件を取得するための処理と上記周辺機器の駆動条件として採用し得る範囲を取得するための処理と上記周辺機器について特定の駆動条件を設定するための処理とのいずれかまたは組み合わせであることを特徴とする上記請求項１〜請求項５のいずれかに記載の駆動条件設定装置。
【請求項７】
上記駆動条件設定手段は、上記コンピュータを駆動するオペレーティングシステムで標準的に使用されるデータであって周辺機器の駆動条件を示す複数のデータを含む構造体を参照することによって上記周辺機器の現在の駆動条件あるいは駆動条件として採用し得る範囲を取得する処理を実施し、上記構造体のデータを上書きすることによって上記周辺機器について特定の駆動条件を設定するための処理を実施することを特徴とする上記請求項６に記載の駆動条件設定装置。
【請求項８】
コンピュータにて駆動される周辺機器の駆動条件を設定する駆動条件設定方法であって、
上記周辺機器の駆動条件設定のために実施する処理の手順を示すデータであって、上記周辺機器の機種毎に予め決められた処理手順データを記録した処理手順データ記録媒体から、使用対象となっている周辺機器の機種に対応する処理手順データを参照するように設定する機種別参照実現工程と、
上記周辺機器の駆動条件を設定するために実施する処理を示す実施処理データを受け付ける実施処理データ受付工程と、
同実施処理データ受付工程にて受け付けた処理についての処理手順データを参照し、その手順に従った処理を実施することによって上記駆動条件の設定を行う駆動条件設定工程とを具備することを特徴とする駆動条件設定方法。
【請求項９】
コンピュータにて駆動される周辺機器の駆動条件を設定する駆動条件設定プログラムであって、
上記周辺機器の駆動条件設定のために実施する処理の手順を示すデータであって、上記周辺機器の機種毎に予め決められた処理手順データを所定の処理手順データ記録媒体に記録しておき、
使用対象となっている周辺機器の機種に対応する処理手順データを参照するように設定する機種別参照実現機能と、
上記周辺機器の駆動条件を設定するために実施する処理を示す実施処理データを受け付ける実施処理データ受付機能と、
同実施処理データ受付機能にて受け付けた処理についての処理手順データを参照し、その手順に従った処理を実施することによって上記駆動条件の設定を行う駆動条件設定機能とをコンピュータに実現させることを特徴とする駆動条件設定プログラム。
【請求項１０】
コンピュータにて駆動される印刷装置の印刷条件を設定するとともに設定された印刷条件で印刷装置を制御する印刷制御装置であって、
上記印刷装置の印刷条件設定のために実施する処理の手順を示すデータであって、上記印刷装置の機種毎に予め決められた処理手順データを記録する処理手順データ記録媒体と、
使用対象となっている印刷装置の機種に対応する処理手順データを参照するように設定する機種別参照実現手段と、
上記印刷装置の印刷条件を設定するために実施する処理を示す実施処理データを受け付ける実施処理データ受付手段と、
同実施処理データ受付手段にて受け付けた処理についての処理手順データを参照し、その手順に従った処理を実施することによって上記印刷条件の設定を行う印刷条件設定手段と、
設定された印刷条件にて印刷を実行する指示を受け付ける印刷実行指示受付手段と、
同印刷を実行する指示に応じて上記設定された印刷条件にて印刷装置を駆動する印刷実行手段とを具備することを特徴とする印刷制御装置。
【請求項１１】
コンピュータにて駆動される印刷装置の印刷条件を設定するとともに設定された印刷条件で印刷装置を制御する印刷制御方法であって、
上記印刷装置の印刷条件設定のために実施する処理の手順を示すデータであって、上記印刷装置の機種毎に予め決められた処理手順データを記録した処理手順データ記録媒体から、使用対象となっている印刷装置の機種に対応する処理手順データを参照するように設定する機種別参照実現工程と、
上記印刷装置の印刷条件を設定するために実施する処理を示す実施処理データを受け付ける実施処理データ受付工程と、
同実施処理データ受付工程にて受け付けた処理についての処理手順データを参照し、その手順に従った処理を実施することによって上記印刷条件の設定を行う印刷条件設定工程と、
設定された印刷条件にて印刷を実行する指示を受け付ける印刷実行指示受付工程と、
同印刷を実行する指示に応じて上記設定された印刷条件にて印刷装置を駆動する印刷実行工程とを具備することを特徴とする印刷制御方法。
【請求項１２】
コンピュータにて駆動される印刷装置の印刷条件を設定するとともに設定された印刷条件で印刷装置を制御する印刷制御プログラムであって、
上記印刷装置の印刷条件設定のために実施する処理の手順を示すデータであって、上記印刷装置の機種毎に予め決められた処理手順データを所定の処理手順データ記録媒体に記録しておき、
使用対象となっている印刷装置の機種に対応する処理手順データを参照するように設定する機種別参照実現機能と、
上記印刷装置の印刷条件を設定するために実施する処理を示す実施処理データを受け付ける実施処理データ受付機能と、
同実施処理データ受付機能にて受け付けた処理についての処理手順データを参照し、その手順に従った処理を実施することによって上記印刷条件の設定を行う印刷条件設定機能と、
設定された印刷条件にて印刷を実行する指示を受け付ける印刷実行指示受付機能と、
同印刷を実行する指示に応じて上記設定された印刷条件にて印刷装置を駆動する印刷実行機能とをコンピュータに実現させることを特徴とする印刷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機種毎に異なる駆動条件の設定を実現する駆動条件設定装置、駆動条件設定方法、駆動条件設定プログラム、印刷制御装置、印刷制御方法および印刷制御プログラムに関する。
【背景技術】
【０００２】
印刷装置など、コンピュータの周辺機器を駆動するためには通常ドライバと呼ばれる制御プログラムが利用される。すなわち、アプリケーションプログラムによって周辺機器を駆動するための駆動条件を設定し、ドライバはこの設定に従って周辺機器を駆動する。従来、この設定はオペレーティングシステムが提供する標準のデータ構造体（例えば、DevMode構造体）を利用しておこなっており、このデータ書き換えることによって駆動条件を更新している。また、この処理はオペレーティングシステムが提供する標準のアプリケーション・インタフェース（例えば、特許文献１参照）を介して実施されるのが一般的である。
【特許文献１】特開平５−６４９３１号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した従来の技術において、周辺機器を駆動するためには一般に複数の駆動条件を設定する必要があるが、機種毎に異なる駆動条件を簡易かつ的確に設定することができなかった。すなわち、周辺機器の機種が異なると周辺機器にて実現可能な機能が異なる場合があり、ドライバに対して設定を行うための手法、例えば、設定を記述するためのデータ形式や設定を行うための処理手順等が異なり、機種毎に異なる駆動条件を的確に設定するには、煩雑な作業が必要とされていた。
【０００４】
より具体的には、上記DevMode構造体は、オペレーティングシステムの提供者によって定義された標準定義データと周辺機器の提供者が自由に定義できる固有定義データとを含み、周辺機器の機種毎に特有の機能については固有定義データによって駆動条件を設定する。駆動条件の設定はアプリケーションプログラム等によって実施するが、アプリケーションプログラム作成者と周辺機器作成者は異なることもあり、アプリケーションプログラム作成者が上述の固有定義データの内容を正確に把握してその条件設定を実施可能に構成するのは煩雑であった。
【０００５】
また、アプリケーションプログラムを作成する際に、周辺機器の機種毎に異なる処理を実施可能にするには、機種毎に個別の処理プログラムを必要とし、特定の周辺機器のみを利用する利用者において全く使用されない多くの処理プログラムを作成する必要があって、作業が無駄になる。さらに、アプリケーションプログラムを作成した後に発売された機種に対して対応することができない。以上のような問題は、機種毎に異なる設定処理をオペレーティングシステムが提供する標準のアプリケーション・インタフェースを利用して設定するために生じるという側面もあった。
本発明は、上記課題にかんがみてなされたもので、機種毎に異なる駆動条件を簡易かつ的確に設定することが可能な駆動条件設定装置、駆動条件設定方法、駆動条件設定プログラム、印刷制御装置、印刷制御方法および印刷制御プログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため本発明では、処理手順データを参照することによって駆動条件の設定を行うように構成し、周辺機器の機種と処理手順データとを対応づけておく。かかる構成において、駆動条件を設定する際に周辺機器の機種に対応する処理手順データを参照すれば、当該機種に対して駆動条件を設定するための適切な処理手順で設定を行うことが可能になる。従って、機種毎に異なる駆動条件を簡易かつ的確に設定することが可能である。
【０００７】
すなわち、駆動条件を設定するアプリケーションプログラム等を作成する作成者は機種毎に異なる手順を逐一把握する必要が無く、また、その処理のために個別のプログラムを作成する必要もなく、アプリケーションプログラム等を簡単に作成することができる。さらに、新たに発売された機種などの設定を行うためには、その機種に対応づけた処理手順データを追加すればよく、アプリケーションプログラム等においては新たにプログラムモジュール等を追加する必要がない。従って、ある時点以降に発売された機種等に対応することも非常に容易である。
【０００８】
尚、本発明では、コンピュータにて駆動される周辺機器に対して駆動条件を設定することができればよく、例えば、周辺機器の駆動を制御するドライバ等に対して設定結果を示すデータを受け渡すことができればよい。また、周辺機器としては、コンピュータに接続されて駆動される機器であればよく、種々の機器がこの周辺機器に該当する。例えば、コンピュータに接続されて画像の出力動作を行うプリンタやディスプレイ，プロジェクタ等の出力機器や、コンピュータに接続されて画像の入力動作を行うスキャナやデジタルカメラ等の入力機器や、コンピュータに接続されたデータの記録動作を行うハードディスクドライブ等の記録機器等、種々の機器が周辺機器となり得る。
【０００９】
処理手順データにおいては、周辺機器の駆動条件設定のために実施する処理の手順を示すことができればよく、種々の構成を採用可能である。例えば、駆動条件を設定するために実施される処理のプログラムや、その処理を示す関数等にて構成可能である。また、この処理手順データは機種毎に決められたデータである。すなわち、周辺機器の機種を特定することにより、その機種に対応づけられた適切な処理手順データを抽出することができればよい。
【００１０】
機種別参照実現手段では、使用対象となっている周辺機器の機種を取得し、取得した機種に対応する処理手順データを参照することができればよい。使用対象となっている周辺機器の機種を取得するには、種々の構成を採用可能であるが、周辺機器を利用して何らかの処理を行うのであれば、アプリケーションプログラム等によって最初に周辺機器が特定される。また、コンピュータにおいては、通常、その機種名やＩＤ等のデータによって周辺機器の機種を特定できるように構成してあるので、これらのデータによって容易に機種を特定することができる。
【００１１】
周辺機器の機種が特定されれば、上記処理手順データ記録媒体に記録された処理手順データのうち、当該機種に対応した処理手順データを容易に特定可能であるので、この処理手順データを参照するように設定することは容易である。この設定としては、処理手順データを一時記憶媒体に転送したり、処理手順データを示すポインタやフラグ等のデータを定義するなど、種々の構成を採用可能である。
【００１２】
実施処理データ受付手段においては、周辺機器の駆動条件を設定するために実施する処理を受け付けることができればよく、実施対象の処理を実施処理データによって特定している。例えば、アプリケーションプログラムのＵＩやデフォルト設定等によって駆動条件を特定する際には、設定対象となる複数の駆動条件項目のそれぞれについて、現在の設定値を取得したり、設定可能な設定値の範囲を取得したり、設定値を更新するなど各種の処理を必要とする。そこで、この処理を実施処理データによって特定するように構成すれば、駆動条件の設定に際して必要とされる処理を容易に特定することができる。
【００１３】
ここで、駆動条件を設定するために実施する処理としては、予め決められた複数の処理であって、周辺機器の複数の機種相互で共通の処理である。すなわち、駆動条件を設定するために実施する処理の詳細が周辺機器の機種毎に異なっていたとしても、その処理によって実現される機能としては機種毎に共通であり、機種毎に異なる処理の詳細は、上記処理手順データによって吸収している。かかる構成により、例えば、アプリケーションプログラム等によって駆動条件を設定する際、アプリケーションプログラム等から見れば機種毎に異なる処理を要求するのではなく、画一的な手法で処理を指定するのみで充分となって機種毎に異なる駆動条件を簡易かつ的確に設定することが可能になる。
【００１４】
駆動条件設定手段においては、実施処理データに示される処理手順を記述した処理手順データを的確に参照し、その処理を実施することができればよい。この処理は、その結果として駆動条件の設定を実施するものであれば良く、種々の構成が採用可能である。例えば、駆動条件の項目毎にその設定値を記述したデータ構造体において、設定対象の設定値を適切な値に更新するなどの処理を採用可能である。むろん、データ構造体は所定の記録媒体に記録されればよく、揮発性の記録媒体に記録しても良いし不揮発性の記録媒体に記録しても良い。
【００１５】
本発明においては、駆動条件を設定することができればよいが、コンピュータの一般的な使用態様において、利用者が利用するアプリケーションプログラムにて実現する機能の一部として周辺機器を指定することが多い。そこで、この態様に本発明を適用するために、アプリケーションプログラムで使用される周辺機器の機種を示すデータを上記機種別参照実現手段にて取得するように構成しても良い。また、このとき、アプリケーションプログラムによって実施処理データを生成するように構成し、実施処理データ受付手段にて当該実施処理データを取得する。かかる構成により、周辺機器の機種を容易に取得することができるし、アプリケーションプログラムとしても周辺機器の機種を指定するのみで充分となり、機種毎に異なる詳細な処理手順等は意識する必要がない。
【００１６】
むろん、本発明は、以上のようなアプリケーションプログラムによって駆動条件を指定する構成以外にも適用可能である。すなわち、利用者が直接的に操作するようなアプリケーションプログラムを使わないコンピュータ、例えば、デジタルカメラに搭載されたプログラムや周辺機器自体に搭載されたプログラム等の制御によって周辺機器の駆動条件を設定するような場合であっても、本発明により機種毎に異なる駆動条件を簡易かつ的確に設定することが可能になる。すなわち、利用者が直接的に操作していなくても、駆動条件を設定するアプリケーションプログラムであれば、本発明を利用可能である。
【００１７】
また、上記機種別参照実現手段にて機種に対応した処理手順データを決定する手法としては、種々の手法を採用可能である。例えば、処理手順データ記録媒体に処理手順データを記録するにあたり、記録された処理手順データが周辺機器の機種名に基づいて検索できるように構成する。かかる構成であれば、上記機種別参照実現手段にて、周辺機器の機種に対応する処理手順データを容易に抽出することができる。
【００１８】
周辺機器の機種名に基づいて処理手順データを検索するための構成としては、種々の構成を採用可能である。例えば、処理手順データに対して機種名から一義的に特定可能なファイル名を付与して記録媒体に記録したり、処理手順データを階層構造で記録するように構成して機種名から一義的に特定可能な階層にその機種名に対応する処理手順データを記録するように構成するなど種々の構成を採用可能である。
【００１９】
以上のように、周辺機器の機種名に基づいて処理手順データを検索できるように構成する際のより具体的な例として、オペレーティングシステムで標準的に使用されるデータ構造体を利用しても良い。すなわち、オペレーティングシステムにおいて、周辺機器の駆動条件を示す複数のデータを含む構造体を利用して駆動条件を設定できるように構成している場合には、この仕組みを利用して処理手順データを特定できるようにする。
【００２０】
具体的には、このデータ構造体に対して、上記周辺機器の機種名に基づいて処理手順データを特定するための情報を含めるようにしておけば、当該構造体を参照することによって容易に適切な処理手順データを特定することが可能になる。この構造体は、オペレーティングシステムで標準的に使用されるデータであるので、このオペレーティングシステムにて制御する周辺機器を利用する限り、容易にこの構造体にアクセスできる。従って、処理手順データを特定するための情報を容易に取得することができる。この構造体に対して処理手順データを特定するための情報を記述し、あるいは記述済みの構造体を使用可能にする処理は、例えば、上記周辺機器のドライバをインストールする処理とともに実施すればよい。
【００２１】
さらに、オペレーティングシステムで以上のような構造体を利用する場合に好適な構成例として、上記駆動条件設定手段による駆動条件設定に際しても当該構造体を利用する構成を採用することができる。すなわち、この構造体に対して駆動条件を示すデータを書き込めば、オペレーティングシステムによって駆動条件を解釈することができ、オペレーティングシステムの機能によってその設定をドライバ等に受け渡すことができる。従って、容易に駆動条件の設定を行い、その設定通りに周辺機器を駆動することが可能になる。尚、上記構造体に駆動条件を示すデータを書き込む処理手順は、オペレーティングシステム標準の手順に従っても良いし、この構造体に書込を行う処理手順を上記処理手順データに基づいて取得しても良い。
【００２２】
処理手順データに記述される処理としては、周辺機器の駆動条件を設定するために必要とされる処理であればよく、種々の処理を採用可能である。例えば、上記周辺機器の現在の駆動条件を取得するための処理と上記周辺機器の駆動条件として採用し得る範囲を取得するための処理と上記周辺機器について特定の駆動条件を設定するための処理とのいずれかまたは組み合わせを採用可能である。
【００２３】
周辺機器の現在の駆動条件を取得するための処理が処理手順データに記述されていれば、この手順に従うことにより、周辺機器の駆動条件として現在設定されている条件を示すデータを取得することができる。周辺機器の駆動条件として採用し得る範囲を取得するための処理が処理手順データに記述されていれば、この手順に従うことにより、周辺機器の駆動条件として設定可能な範囲を示すデータを取得することができる。以上の処理を実施可能にすることにより、周辺機器の機種によって処理を変更することなく、非常に単純な処理によって周辺機器の駆動条件を設定することができる。従って、オペレーティングシステムが提供する標準の設定手順により、機種毎に異なるデータ形式等を考慮しつつ駆動条件を設定する必要が無く、作業を単純化することができる。
【００２４】
尚、駆動条件の設定可能範囲は、駆動条件の設定値に依存し得る。例えば、ある駆動条件項目Ａに駆動条件ａ１が設定されていると他の駆動条件項目Ｂに駆動条件ｂが設定可能であるが、ある駆動条件項目Ａに駆動条件ａ２が設定されていると他の駆動条件項目Ｂに駆動条件ｂが設定できないというような状況が発生し得る。このような場合に対応できるように、ある駆動条件項目の設定範囲を取得する際に、他の駆動条件項目が総て現在の設定通りであることを前提に駆動条件項目の設定範囲を取得するなどの構成を採用しても良い。周辺機器について特定の駆動条件を設定するための処理が処理手順データに記述されていれば、この手順に従うことにより、周辺機器の駆動条件として現在設定されている条件を示すデータを更新して所望の駆動条件に設定することができる。
【００２５】
すなわち、これらの処理手順データを利用することにより、設定すべき駆動条件を特定した後に、上記駆動条件設定手段において周辺機器の現駆動条件を取得して現駆動条件と設定すべき駆動条件とが異なるか否かを判定することが可能になる。また、両者が異なる場合に設定すべき駆動条件が設定可能範囲に含まれるか否かを判定することが可能になる。さらに、設定すべき駆動条件が設定可能範囲に含まれる場合に、当該設定すべき駆動条件に設定することが可能なる。尚、上記構造体を利用してこれらの処理を実施する場合、当該構造体を参照して、上記現在の駆動条件やその設定値として採用し得る範囲を取得するし、当該構造体のデータを上書き更新することによって駆動条件を設定する。
【００２６】
上述のように、機種毎に異なる処理を処理手順データに記述し、駆動対象機種の処理手順データを参照する手法は必ずしも実体のある装置に限られるものではなく、請求項８に記載した発明のように方法の発明としても有効である。また、上述の装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としては、各種の態様を含むものである。また、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。
【００２７】
発明の思想の具現化例として駆動条件設定装置のソフトウェアとなる場合には、かかるソフトウェアも本発明に相当する。その一例として、請求項９に記載した発明では駆動条件設定プログラムとして発明を特定している。むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。さらに、これらの駆動条件設定方法、駆動条件設定プログラムにおいて上記請求項２〜請求項７に対応した構成にすることも可能である。
【００２８】
さらに、周辺機器として印刷装置を採用した場合に、上述の手法によって設定された印刷条件によって印刷を実行する構成においても上述の技術的思想と同様の思想を利用した発明が成立する。このため、請求項１０〜請求項１２のように、印刷制御装置、印刷制御方法、印刷制御プログラムとしても発明は成立する。むろん、これらの印刷制御装置、印刷制御方法、印刷制御プログラムにおいて上記請求項２〜請求項７に対応した構成にすることも可能である。
【発明を実施するための最良の形態】
【００２９】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
（１）本発明の構成：
（２）印刷条件設定処理：
（３）他の実施形態：
【００３０】
（１）本発明の構成：
図１は本発明にかかる駆動条件設定装置あるいは印刷制御装置となるコンピュータの概略構成を示すブロック図である。コンピュータ１０は演算処理の中枢をなす図示しないＣＰＵや記憶媒体としてのＲＯＭやＲＡＭ１４等を備えており、ＨＤＤ１５等の周辺機器を利用しながら所定のプログラムを実行することができる。コンピュータ１０にはシリアルＩ／Ｆ１１を介してキーボードやマウス等の操作用入力機器が接続されており、ディスプレイＩ／Ｆ１２を介して表示用のディスプレイも接続されている。さらに、プリンタ４０とはＵＳＢＩ／Ｆ１３を介して接続されている。
【００３１】
本実施形態においてコンピュータ１０には、複数の機種のプリンタ４０を接続可能になっている。プリンタ４０の方式としては特に限定されず、複数色のインクを印刷媒体に対して吐出して画像を形成するインクジェットプリンタや複数色のトナーインクを印刷媒体に対して定着させて画像を形成するレーザープリンタ等種々のプリンタを採用可能である。
【００３２】
本コンピュータ１０の構成は簡略化して説明しているが、パーソナルコンピュータとして一般的な構成を有するものを採用することができる。むろん、本発明が適用されるコンピュータはパーソナルコンピュータに限定されるものではない。また、コンピュータ１０とプリンタ４０の接続インタフェースも上述のものに限る必要はなくパラレルインタフェースやＳＣＳＩ接続，無線接続など種々の接続態様を採用可能であるし、今後開発されるいかなる接続態様であっても同様である。
【００３３】
さらに、本実施形態においてはコンピュータ１０によって印刷制御装置を構成しているが、プリンタ４０に搭載するプログラム実行環境によって本発明にかかる印刷制御処理を実施可能に構成し、プリンタ４０に対して直接的に接続されるデジタルカメラから画像データを取得して印刷制御処理を行う構成に本発明を適用してもよい。印刷条件を設定するためには、例えば、デジタルカメラに搭載する液晶ディスプレイにＵＩを表示して印刷条件を設定する構成を採用可能である。むろん、同様の構成においてデジタルカメラにて印刷制御処理を実施してもよいし、他にも分散処理によって本発明にかかる印刷制御処理を実施するなど種々の構成を採用可能である。画像を取り込むスキャナと画像を印刷するプリンタとが一体となったいわゆる複合機において本発明にかかる印刷制御処理を行ってもよい。
【００３４】
本実施形態にかかるコンピュータ１０では、プリンタドライバ（ＰＲＴＤＲＶ）２１と入力機器ドライバ（ＤＲＶ）２２とディスプレイドライバ（ＤＲＶ）２３とがＯＳ２０に組み込まれている。本実施形態において、ディスプレイＤＲＶ２３はディスプレイにおける画像データ等の表示を制御するドライバであり、入力機器ＤＲＶ２２はシリアルＩ／Ｆ１１を介して入力される上記キーボードやマウスからのコード信号を受信して所定の入力操作を受け付けるドライバである。むろん、ディスプレイＤＲＶ２３によるディスプレイの制御にＧＤＩを使用するなどの処理が必要になるが、本実施形態では印刷装置を対象とした駆動条件の設定を実施しているので、詳細は省略する。
【００３５】
ＡＰＬ２５は、カラー画像のレタッチ等を実行可能なアプリケーションプログラムであり、利用者は当該ＡＰＬ２５の実行下において上記操作用入力機器を操作して当該カラー画像をプリンタ４０にて印刷させることができる。すなわち、ＡＰＬ２５は利用者の指示によりＨＤＤ１５に記録された画像データ１５ａをＲＡＭ１４に読み出して、ディスプレイＤＲＶ２３を介して当該画像データ１５ａに基づく画像をディスプレイ上に表示させる。利用者が上記入力機器を操作するとその操作内容が入力機器ＤＲＶ２２を介して取得され、内容が解釈されるようになっており、ＡＰＬ２５はその操作内容に応じてコントラスト調整等種々の画像処理を行う。
【００３６】
ＡＰＬ２５においては、画像処理後の画像等について印刷を実行させることが可能であり、ＡＰＬ２５にて印刷実行指示がなされると、印刷対象となっているプリンタ４０の機種に対応したＰＲＴＤＲＶ２１が実行され、印刷制御処理がなされる。すなわち、ＰＲＴＤＲＶ２１はプリンタ４０の機種毎（プリンタａ〜プリンタｎ）に予め用意され、ＯＳ２０で実行できるようにインストールされる。ＰＲＴＤＲＶ２１は、機種依存処理部２１ａおよび標準処理部２１ｂの処理結果を利用して印刷制御部２１ｃが所定の処理を行って印刷データを生成し、この印刷データによって印刷を実行する。
【００３７】
ＡＰＬ２５においては印刷に先立ってその印刷条件を設定する必要がある。本実施形態においては利用者に対して印刷条件項目の設定を行わせるＵＩを表示し、ＵＩでの指示に従って印刷を実行させる。このためにＡＰＬ２５はＵＩ設定部２５ａを備えており、ＵＩ設定部２５ａでは印刷条件項目を設定するＵＩを表示するためのデータをディスプレイＤＲＶ２３に対して出力する。また、キーボードやマウスからの入力操作を入力機器ＤＲＶ２２によって取得して、利用者の指示を解釈する。
【００３８】
このとき、ＵＩ設定部２５ａは、後述する所定の関数を呼び出すことによってＵＩ上に設定済みの印刷条件や印刷条件として選択可能な条件の範囲を表示させ、また、印刷条件の設定を行う。図２は、ＵＩ設定部２５ａによって形成されるＵＩの一例を示す図である。同図において、ＵＩ２５０は給紙装置設定ボックス２５０ａと用紙サイズ設定ボックス２５０ｂと縁なし印刷設定ボックス２５０ｃと印刷モード設定部２５０ｄとＯＫボタン２５０ｅとを備えている。すなわち、各部において現在の設定値および設定可能範囲を表示し、マウス等の操作によって設定可能範囲内の所望の条件に変更、設定できるようにしてある。
【００３９】
例えば、用紙サイズ設定ボックス２５０ｂでは、ボックス内に現在設定されている用紙サイズを表示するようになっており、ボックスの右端の矢印をマウスのポインタでクリックすることにより選択肢表示ボックス２５０ｂ１が一時的に表示される。この選択肢表示ボックス２５０ｂ１においては、用紙サイズの設定可能範囲をボックス内に表示する。用紙サイズを変更したい場合には、表示された用紙サイズのいずれかを選択する。上記給紙装置設定ボックス２５０ａは同様に給紙装置を選択するボックスであり、縁なし印刷設定ボックス２５０ｃは同様に縁なし印刷を実施するか否か、実施する場合にはどのように実施するのかを選択するボックスである。
【００４０】
印刷モード設定部２５０ｄは、スライダバーによって印刷モードを設定するように構成されており、画質と速度とのいずれかを重視する度合いによって複数の選択肢が提示され、選択可能である。ＯＫボタン２５０ｅは、図２に表示された印刷条件によって印刷を実行したい場合にマウスのポインタによってクリックするボタンである。むろん、印刷条件は多岐に渡っており、図２に示す印刷条件は一例であるし、ＵＩの表示態様としても図２に示すものに限られず、種々の構成を採用可能である。
【００４１】
本発明では、ＯＳ２０に標準のＧＤＩ２４と共通Ｉ／Ｆ２６とが上記所定の関数の呼び出しに応じるようになっている。ここで、共通Ｉ／Ｆ２６は、印刷条件の設定を行うために逐次形成されるようになっており、共通Ｉ／Ｆ２６にて機種依存処理部２１ａによる処理を実施可能にすることによって機種毎に異なる処理にも対応できるようにする。本実施形態においては、これら共通Ｉ／Ｆ２６および機種依存処理部２１ａを適正に機能させるため、ＨＤＤ１５に予め共通Ｉ／Ｆ．ＤＬＬ（ダイナミックリンクライブラリ）とDevMode構造体と機種依存．ＤＬＬとが記録されている。
【００４２】
本実施形態においてはこれらのファイルを図３に示すような階層構造によって管理している。すなわち、ルート階層の下位にプリンタ関連のファイルを記録するためのプリンタ階層が設けられ、このプリンタ階層の下位に共通Ｉ／Ｆ．ＤＬＬが記録されている。当該共通Ｉ／Ｆ．ＤＬＬは、機種によって分け隔て無く利用されるので、機種に依存しない階層に記録されている。尚、上記共通Ｉ／Ｆ．ＤＬＬは共通Ｉ／Ｆ２６における機能を実現するための手順を示すプログラムが記述されたライブラリであり、ＡＰＬ２５がＨＤＤ１５から当該共通Ｉ／Ｆ．ＤＬＬをＲＡＭ１４にロードし、上記所定の関数に対応するプログラムの開始アドレスを回答することによって共通Ｉ／Ｆ２６がＯＳ２０の制御下で機能するようになる。
【００４３】
ここで、ＡＰＬ２５が呼び出す関数は、印刷条件を設定するための関数であって機種毎に共通の関数である。本実施形態において、印刷条件を設定するために必要な処理の詳細は機種毎に異なるが、各処理によって得ようとする結果は共通である。例えば、後に詳述するように、印刷条件の取得、印刷条件として設定可能な設定範囲の取得、印刷条件の設定などの共通の機能を機種毎に確実に実施することができれば、印刷条件を設定することができる。そこで、ＡＰＬ２５において、この共通の機能を関数によって指定するように構成している。
【００４４】
さらに、プリンタ階層の下位には、機種毎に分けられた階層が用意される。すなわち、図３に示すプリンタａ，プリンタｂ，，，プリンタｎはプリンタの機種名であり、各機種名によって分けられた階層に各機種用のDevMode構造体が記録されている。以上の構成により、機種名に対応した階層を検索することで容易に機種毎のDevMode構造体を抽出することが可能になる。図３には、DevMode構造体の構成を概略的に示している。すなわち、DevMode構造体は、ＯＳ２０の規格に準拠したデータを含む標準定義データと、プリンタ４０の製造者が独自に定義したデータを含む固有定義データとから構成されており、それぞれに印刷条件を示すデータが記述される。
【００４５】
図３に示す例においては、紙サイズと印刷方向（印刷用紙の短辺あるいは長辺のいずれを縦にするかの指定）と給紙装置との各設定項目についてその設定値を示すデータが標準定義データとして記述され、印刷モードと縁なし印刷と割り付けとの各設定項目についてその設定値を示すデータが固有定義データとして記述されている。尚、各設定値においては印刷条件を示すことができれば良く、番号や文字列によって各項目における特定の印刷条件を示すように構成するなど種々の構成を採用可能である。
【００４６】
固有定義データにおける印刷条件の記述形式は機種によって異なり得る。例えば、プリンタ４０の機種によって、印刷モードの設定として用意されたモードの数やモードの内容が異なり得る。しかし、本発明において、各機種毎の差異は駆動対象のプリンタの機種に対応した機種依存．ＤＬＬを参照することによって吸収している。すなわち、機種依存．ＤＬＬは、各機種毎に印刷条件を参照するための複数の処理についてその処理手順を示すプログラムを含むライブラリであり、上記共通Ｉ／Ｆ２６が関数を呼び出すことによって各処理を実行できるように構成する。
【００４７】
このために、上記DevMode構造体においては、固有定義データに機種依存．ＤＬＬを特定するためのデータを含めてある。当該データは、ＨＤＤ１５に記録された機種依存．ＤＬＬを特定するためのデータであり、例えば、機種依存．ＤＬＬを記録した階層やそのファイル名である。尚、本実施形態において、機種依存．ＤＬＬが上記処理手順データに相当する。
【００４８】
DevMode構造体は上述のようにプリンタ４０の機種を示す階層の下位に記録されるので、その階層によっていずれの機種に対応づけられているのかを容易に特定することができる。機種依存．ＤＬＬはそのDevMode構造体内に記述されているので、機種名を特定することができれば、その機種に対応づけられたDevMode構造体と機種依存．ＤＬＬとを容易に特定することが可能である。以上のようにDevMode構造体を参照することによって機種依存．ＤＬＬを特定する構成によれば、ＡＰＬ２５を非常に単純な構成にすることができる。
【００４９】
すなわち、ＡＰＬ２５自身が機種依存．ＤＬＬの記録場所を特定する必要がないので、ＡＰＬ２５にて機種毎の差異を全く意識することなく機種毎に異なる機種依存．ＤＬＬを利用することが可能になる。また、単にDevMode構造体に対して、機種依存．ＤＬＬを記録する記録場所やそのファイル名等を記述すればよいので、これらの決定に規定の規則等の制約が無く、機種依存．ＤＬＬの作成者が自由にその形式や保存場所、ファイル名等を決定することができる。
【００５０】
尚、本実施形態においては機種依存．ＤＬＬによって、機種毎のあらゆる差異を吸収することができる。例えば、固有定義データに記述されるデータの形式や特定のデータ値が意味する条件が機種毎に異なっていても、機種依存．ＤＬＬを参照することによってその差異に対応するので、各データ形式のデータを適切に読み出し、そのデータ値を解釈してＡＰＬ２５に返すことができる。
【００５１】
DevMode構造体はＯＳ２０に標準のＧＤＩ２４にて取り扱うことのできるデータ構造であるが、固有定義データにおいてはそのデータ内容をプリンタ４０の製造者が自由に決定でき、製造者や機種毎にその内容が変動し得る。従って、標準のＧＤＩ２４にて適切にその印刷条件を設定しようとすると、少なくともＡＰＬ２５にて固有定義データに記述されたデータの内容を適切に把握する必要がある。機種毎に異なる内容を適切に把握するためには、ＡＰＬ２５の作成者が予め固有定義データのデータ構造を適切に把握し、機種毎の差異に応じながら設定を行うようにプログラムを作成する必要がある。
【００５２】
また、このようにＡＰＬ２５で機種毎の対応が必要である場合、ＡＰＬ２５の作成後に新しいプリンタ４０の機種が発売された時には、その機種に適正に対応することができない。従って、ＯＳ２０に標準のＧＤＩ２４で機種毎に異なる印刷条件の設定を実施するのは、現実的に非常に困難であった。しかし、本実施形態によれば、共通Ｉ／Ｆ２６を介することによって、ＡＰＬ２５からは画一的な関数で印刷条件の設定が実施でき、ＡＰＬ２５を非常に簡易に構成することができるし、プリンタ４０の新機種に対して容易に対応することが可能になる。
【００５３】
以上のように、各機種に応じたDevMode構造体と機種依存．ＤＬＬとを特定することができれば、機種毎に異なる処理を行って印刷条件の設定を実施することが可能になるが、本実施形態においては、ＡＰＬ２５から関数を呼び出すことのみで簡単に機種毎の処理を実施できるように構成してある。すなわち、共通Ｉ／Ｆ２６は、DevMode構造体と機種依存．ＤＬＬとを特定しながら関数を呼び出すためのハンドルを作成するようにしてある。
【００５４】
具体的には、ＡＰＬ２５から機種名を特定しながらハンドルを作成するための関数を呼び出し可能であり、共通Ｉ／Ｆ２６はこの関数の呼び出しに応じて、機種名に対応したDevMode構造体を取得するための処理を実施し、ＲＡＭ１４に該当するDevMode構造体を転送する。さらに、このDevMode構造体を参照して該当する機種の機種依存．ＤＬＬを抽出し、ＲＡＭ１４に転送する。これらＲＡＭ１４に転送されたDevMode構造体と機種依存．ＤＬＬとは一つのハンドルによってセットで取り扱うことが可能になる。具体的な処理は詳述する。
【００５５】
以上のようにして機種毎の処理が実施可能になることにより、図１に示すようにＰＲＴＤＲＶ２１の一部として機種毎に適切な処理を行う機種依存処理部２１ａが形成されているかのように機能する。すなわち、共通Ｉ／Ｆ２６からの関数の呼び出しに応じて機種毎に異なる手順やデータ形式に適切に対応しながらDevMode構造体を書き換えて印刷条件の設定処理を実施する。尚、本実施形態においては、上述のようにハンドルによる取り扱いを可能にする共通Ｉ／Ｆ２６が上記機種別参照実現手段に相当する。また、機種名に対応づけられたハンドルを作成する意味で共通Ｉ／Ｆ２６が上記実施処理データ受付手段にも相当する。さらに、ハンドルによって機種毎の処理を実現する意味で上記共通Ｉ／Ｆ２６と機種依存処理部２１ａが上記駆動条件設定手段に相当する。
【００５６】
一方、本実施形態においては、ＯＳ２０に標準のＧＤＩ２４も利用するようになっている。すなわち、ＯＳ２０に標準のＧＤＩ２４によれば、関数の呼び出しによって印刷対象の画像を描画する処理やデフォルトのDevMode構造体を取得する処理等を実施することができる。また、一旦DevMode構造体に印刷条件を設定すれば、その後の描画処理はプリンタ４０の機種依存を意識することなく実施できる。そこで、ＧＤＩ２４によって印刷条件設定済みのDevMode構造体を扱うことにしている。尚、本実施形態では、ＡＰＬ２５および共通Ｉ／Ｆ２６からＧＤＩ２４に対して所定の関数を呼び出すことが可能であり、共通Ｉ／Ｆ２６は描画処理の準備としてデバイスコンテキストを作成するための関数とデフォルトのDevMode構造体を取得するための関数を呼び出すようになっている。
【００５７】
むろん、ＰＲＴＤＲＶ２１は当該ＧＤＩ２４に対する関数の呼び出しに応じて所定の処理を実施するための標準処理部２１ｂを備えており、上述の印刷対象の画像を描画する処理やデフォルトのDevMode構造体を取得する処理等を実施する。さらに、ＰＲＴＤＲＶ２１は、印刷制御部２１ｃを備えている。すなわち、印刷条件が設定され、その印刷条件に応じた描画が実施されると、印刷制御部２１ｃは当該描画後のデータからドットマトリクス状の画素からなるデータを生成し、当該データに対して色変換やハーフトーン処理を施して、印刷データを生成する。
【００５８】
このとき、上述のようにして設定された印刷条件に従って処理が実施される。例えば、設定された印刷条件に対応した解像度および画素数でドットマトリクス状の画素を構成したり、印刷モードに対応したハーフトーンアルゴリズムを実施する。他にも、印刷条件に依存し得る総ての処理については、設定された印刷条件に従うようになっている。印刷データをプリンタ４０に転送すると、プリンタ４０は当該印刷データに基づいて印刷を行う。この結果、ＡＰＬ２５にて設定した印刷条件によって画像が印刷される。
【００５９】
（２）印刷条件設定処理：
以下、印刷条件を設定するための処理を処理フローに従って詳細に説明する。図４は、上記共通Ｉ／Ｆ２６にて実現される機能を示す機能ブロック図であり、図５〜図７は、印刷制御処理の処理フローである。これらの図に示すフローでは、ＡＰＬ２５と共通Ｉ／Ｆ２６と機種依存処理部２１ａとＧＤＩ２４と標準処理部２１ｂとに関連する処理に分けて流れを示している。
【００６０】
図４に示すように、共通Ｉ／Ｆ２６においては共通Ｉ／Ｆ初期化部２６ａとハンドル確立部２６ｂと関数呼び出し部２６ｃとによる処理を実施する。共通Ｉ／Ｆ初期化部２６ａでは上記共通Ｉ／Ｆ２６を機能させるための初期設定を実施する。すなわち、ＡＰＬ２５のＵＩ設定部２５ａがＵＩを表示するにあたり、まず、ステップＳ１００にて上記ＨＤＤ１５を参照して共通Ｉ／Ｆ．ＤＬＬをロードする指示を行う。この結果、共通Ｉ／Ｆ．ＤＬＬが上記ＲＡＭ１４にロードされる（ステップＳ２００）。
【００６１】
ステップＳ２０５では、当該ロードされた共通Ｉ／Ｆ．ＤＬＬにおける各関数の先頭アドレスが取得され、当該アドレスはＡＰＬ２５に対して受け渡される（アドレス回答）。ＵＩ設定部２５ａは、ステップＳ１０５でこれらのアドレスを取得することにより各関数を呼び出し可能になる。ここでの関数は、各機種に共通の関数であり、図５では共通関数と表記している。尚、図５〜図７に示す例においては、共通関数として、getdata関数とgetrange関数とsetdata関数とハンドル作成関数とデバイスコンテキスト作成関数とが用意されている。
【００６２】
すなわち、getdataという関数によって印刷条件の取得を行い、getrangeという関数によって印刷条件の設定可能範囲の取得を行い、setdataという関数によって印刷条件の設定を行うように予め決めてある。また、ハンドル作成関数によって機種依存処理部２１ａによる処理を実現可能にするための処理を行い、デバイスコンテキスト作成関数によってデバイスコンテキストを作成するための処理を行う。
【００６３】
次に、ハンドル確立部２６ｂによってハンドルを利用した関数の呼び出しを実施できるように設定を行う。このために、ステップＳ１１０では、ＡＰＬ２５のＵＩ設定部２５ａがデフォルトとして設定されているプリンタ４０の機種名を取得し、当該機種名をパラメータとしてハンドル作成関数を呼び出す。尚、ここではデフォルトとして設定されている機種名を利用することにしており、この場合、デフォルトの機種名を示すデータを予め所定の記録媒体に記録しておく必要がある。むろん、プリンタ４０の機種名を利用者が指定して印刷条件を決定する場合には、当該指定された機種名を示すデータを取得しても良く、種々の構成を採用可能である。
【００６４】
ハンドル作成関数が呼び出されると、共通Ｉ／Ｆ２６のハンドル確立部２６ｂがその呼び出しに応じ、上述の機種名に対応したDevMode構造体を取得するための関数を呼び出す（ステップＳ２１０）。この関数はＧＤＩ２４に対する関数であり、ＧＤＩ２４はこの関数に応じてデフォルトのDevMode構造体を取得するための処理を、上記標準処理部２１ｂに実施させる（ステップＳ４１０）。標準処理部２１ｂは、これに応じて上記図３に示す階層構造を参照し、対象となっている機種の階層に記録されたDevMode構造体を抽出してＲＡＭ１４に転送する（ステップＳ５１０）。
【００６５】
すると、標準処理部２１ｂは当該ＲＡＭ１４においてDevMode構造体が記録されたアドレスを取得し、当該アドレスを回答する（ステップＳ５１５）。ＧＤＩ２４はこの回答に応じて当該アドレスを上記共通Ｉ／Ｆ２６に対して受け渡す。この結果、共通Ｉ／Ｆ２６はDevMode構造体を参照することが可能になり、ステップＳ２１５にて当該DevMode構造体を参照して機種依存．ＤＬＬを特定し、ロード指示を行う。すなわち、印刷条件の設定対象となっているプリンタの機種に対応した機種依存．ＤＬＬを特定し、ロード指示を行う。
【００６６】
これに応じ、ステップＳ３１５においては、この機種依存．ＤＬＬをＲＡＭ１４にロードし、当該ロード後のアドレスを共通Ｉ／Ｆ２６に対して回答する（ステップＳ３２０）。すなわち、この機種依存．ＤＬＬにおいても所定の関数の呼び出しに対する処理の処理手順が記述されており、各関数の先頭アドレスが共通Ｉ／Ｆ２６に受け渡される。以上の処理により、印刷条件の設定対象となっているプリンタの機種に対応した各関数の処理手順を示す機種依存．ＤＬＬおよびその機種の印刷条件を示すデータが記述されるDevMode構造体がＲＡＭ１４に記録されており、共通Ｉ／Ｆ２６において把握可能である。そこで、ステップＳ２２０では、当該DevMode構造体を含んだ形で当該機種依存．ＤＬＬのハンドルを作成し、このハンドルをＡＰＬ２５に回答する（ステップＳ２２５）。ＡＰＬ２５ではステップＳ１２５にてこのハンドルを取得する。
【００６７】
ＡＰＬ２５のＵＩ設定部２５ａは、このハンドルをパラメータにして上記getdata関数，getrange関数，setdata関数を呼び出すことによってディスプレイ上にＵＩを表示させ、また、印刷条件の設定を実施する。共通Ｉ／Ｆ２６の関数呼び出し部２６ｃは、この関数の呼び出しを受け付けて上記機種依存処理部２１ａによる処理を実施させるための関数を呼び出す。尚、共通Ｉ／Ｆ２６において呼び出しを行う関数は上記ＡＰＬ２５における関数と同様であるが、その関数に対する処理手順は機種依存．ＤＬＬの記述内容に従っている。従って、機種毎に分け隔て無く共通の関数であっても機種依存処理部２１ａにおける処理は、機種毎に異なる処理となり得る。
【００６８】
図６は、ＵＩによる設定を行う際の処理の一例であり、ＡＰＬ２５と共通Ｉ／Ｆ２６と機種依存処理部２１ａとに関する処理のフローを示している。同図において、まず、ステップＳ１３０では、ＡＰＬ２５のＵＩ設定部２５ａがハンドルをパラメータとしてgetdata関数を呼び出す。共通Ｉ／Ｆ２６は、ステップＳ２３０において、この呼び出しに応じてハンドルをパラメータとしてgetdata関数を呼び出す。この結果、機種依存処理部２１ａでは、ハンドルにて指定された機種依存．ＤＬＬを参照してgetdata関数に対する処理を実施し、DevMode構造体を参照する（ステップＳ３３０）。
【００６９】
参照結果は、共通Ｉ／Ｆ２６を介してＡＰＬ２５のＵＩ設定部２５ａに受け渡される。この結果、ＵＩ設定部２５ａにおいては、現在設定されている印刷条件を把握することができ、ステップＳ１３５では当該印刷条件を現在の設定値としてＵＩを表示させる。むろん、印刷条件として表示すべき項目は適宜選択可能であり、図２に示すように印刷条件項目の一部についてＵＩ表示するような構成等を採用可能である。
【００７０】
ＡＰＬ２５のＵＩ設定部２５ａは、上記キーボードやマウス等の操作による印刷条件の設定変更動作が受け付けられたか否かを判別している（ステップＳ１４０）。例えば、図２に示す例のように用紙サイズ設定ボックス２５０ｂにおいてボックスの右端の矢印をマウスのポインタでクリックすると設定変更を受け付けたと判別する。ステップＳ１４０にて印刷条件の設定変更が受け付けられたと判別されるとステップＳ１４５の処理を実施し、設定変更が受け付けられたと判別されなければステップＳ１４５〜Ｓ１６０をスキップする。
【００７１】
ステップＳ１４５では、ＡＰＬ２５のＵＩ設定部２５ａがハンドルをパラメータとしてgetrange関数を呼び出す。共通Ｉ／Ｆ２６は、ステップＳ２４５において、この呼び出しに応じてハンドルをパラメータとしてgetrange関数を呼び出す。この結果、機種依存処理部２１ａでは、ハンドルにて指定された機種依存．ＤＬＬを参照してgetrange関数に対する処理を実施し、DevMode構造体を参照する。すなわち、本実施形態においては、DevMode構造体を参照することによって特定の印刷条件項目における印刷条件の設定可能範囲を取得するようになっている（ステップＳ３４５）。
【００７２】
むろん、このとき、上記ステップＳ１４０にて受け付けた設定変更対象の印刷条件項目についての設定可能範囲を取得する。尚、ここでは、機種依存．ＤＬＬを参照することによって印刷条件の設定可能範囲を取得することができれば良く、その具体的な処理としては種々の構成を採用可能である。例えば、DevMode構造体の固有定義データに設定可能範囲を記述しておいても良いし、印刷条件を実際に設定し、エラーが発生した条件については設定不可能、エラーが発生しなければ設定可能と判断するように構成し、印刷条件の複数の設定値についてこの判断を行うことによって設定可能範囲を取得しても良い。
【００７３】
ステップＳ３４５によって取得された設定可能範囲は、共通Ｉ／Ｆ２６を介してＡＰＬ２５のＵＩ設定部２５ａに受け渡される。この結果、ＡＰＬ２５のＵＩ設定部２５ａは印刷条件の設定可能範囲を取得することができるので、ステップＳ１５０において、設定可能範囲をＵＩ上に表示する。例えば、図２に示す例のように上記選択肢表示ボックス２５０ｂ１を形成し、上記設定可能範囲として取得した印刷条件を当該ボックス内に列記する。
【００７４】
この結果、利用者は用紙サイズの選択肢から所望の用紙サイズを選択することが可能になる。そこで、ステップＳ１５５では、上記キーボードやマウス等による印刷条件の選択操作を受け付ける。ステップＳ１６０では、当該選択された条件およびハンドルをパラメータにしてsetdata関数を呼び出す。共通Ｉ／Ｆ２６は、ステップＳ２６０において、この呼び出しに応じて選択された条件およびハンドルをパラメータとしてsetdata関数を呼び出す。この結果、機種依存処理部２１ａでは、ハンドルにて指定された機種依存．ＤＬＬを参照してsetdata関数に対する処理を実施し、DevMode構造体を書き換える（ステップＳ３６０）。すなわち、上記選択された条件が新たな印刷条件となるようにDevMode構造体を更新する。
【００７５】
更新が実施されると、DevMode構造体が示す印刷条件は利用者が選択した通りの印刷条件となっている。そこで、ステップＳ１６５においてＡＰＬ２５のＵＩ設定部２５ａは、印刷実行指示がなされたか否かを判別する。例えば、図２に示す例ではＯＫボタン２５０ｅのクリックがなされたか否かを判別する。そして、同ステップＳ１６５にて印刷実行指示がなされたと判別されるまで上記ステップＳ１３５以降の処理を繰り返す。
【００７６】
ステップＳ１６５にて印刷実行指示がなされたと判別されると、その時点でDevMode構造体に記述された印刷条件がＡＰＬ２５によって設定された印刷条件となるので、以降は図７に示す処理により当該DevMode構造体を利用して印刷制御を実施する。すなわち、ＡＰＬ２５のＵＩ設定部２５ａはステップＳ１７０においてハンドルをパラメータとしてデバイスコンテキスト作成関数を呼び出す。共通Ｉ／Ｆ２６は、ステップＳ２７０において、この呼び出しに応じてハンドルをパラメータとしてデバイスコンテキスト作成関数を呼び出す。
【００７７】
デバイスコンテキスト作成関数に対する処理は、ＯＳ２０に標準のＧＤＩ２４にて実施される。すなわち、ＧＤＩ２４は、ステップＳ４７０にてデバイスコンテキストを作成し、ステップＳ４７５ではその回答処理を行う。回答は共通Ｉ／Ｆ２６を介してＡＰＬ２５に受け渡される。この結果、ＡＰＬ２５では、当該作成されたデバイスコンテキストを使用して印刷対象の画像を描画することが可能になる。そこで、ステップＳ１８０において、ＡＰＬ２５が印刷対象の画像を描画する描画指示を行う。
【００７８】
ＧＤＩ２４はこの指示に応じて上記標準処理部２１ｂに対して描画指示を行い（ステップＳ４８０）、この結果、標準処理部２１ｂが印刷対象の画像の描画を行う（ステップＳ５８０）。この描画がなされると、上記印刷制御部２１ｃがステップＳ６００にて印刷制御処理を実施する。すなわち、当該描画後のデータからドットマトリクス状の画素からなるデータを生成し、当該データに対して色変換やハーフトーン処理を施して、印刷データを生成する。尚、描画がなされた後には、ＡＰＬ２５によって、デバイスコンテキストの削除や上記共通Ｉ／Ｆ２６，機種依存処理部２１ａのクローズ処理が実施される。
【００７９】
（３）他の実施形態：
本発明においては、周辺機器の機種に対応する処理手順データを参照して周辺機器の駆動条件を適正に設定することができれば良く、上記実施形態の他にも種々の構成を採用可能である。例えば、図２のようなＵＩによって利用者所望の印刷条件を設定するのではなく、利用者を介在させず、ＡＰＬが各種印刷条件の設定範囲の中から適正な印刷条件を抽出して設定するような構成を採用しても良い。
【００８０】
また、上記図６に示すような処理の順序が必須というわけではない。すなわち、getdata関数とgetrange関数とsetdata関数とを利用すれば、種々の処理手順によって印刷条件を設定することができる。例えば、はじめにgetrange関数によって印刷条件の設定可能範囲を取得し、選択肢として表示させた後、選択された印刷条件についてsetdata関数によって条件を設定してもよい。
【００８１】
さらに、上記実施形態においては、コンピュータに接続される周辺機器としてのプリンタに本発明を適用していたが、むろん、駆動条件を設定すべき総ての周辺機器について本発明を適用することができる。例えば、ディスプレイ，プロジェクタ，スキャナ，デジタルカメラ，ハードディスクドライブ等に対して本発明を適用可能である。
【図面の簡単な説明】
【００８２】
【図１】駆動条件設定装置の概略構成を示すブロック図である。
【図２】ＵＩの一例を示す図である。
【図３】ファイルの階層構造を説明するための図である。
【図４】共通Ｉ／Ｆにて実現される機能を示す機能ブロック図である。
【図５】印刷制御処理のフローチャートである。
【図６】印刷制御処理のフローチャートである。
【図７】印刷制御処理のフローチャートである。
【符号の説明】
【００８３】
１０…コンピュータ、２１…ＰＲＴＤＲＶ、２１ａ…機種依存処理部、２１ｂ…標準処理部、２１ｃ…印刷制御部、２４…ＧＤＩ、２５…ＡＰＬ、２６ａ…共通Ｉ／Ｆ初期化部、２６ｂ…ハンドル確立部、２６ｃ…関数呼び出し部、４０…プリンタ
【図１】
2005228202.tif 000003
【図２】
2005228202.tif 000004
【図３】
2005228202.tif 000005
【図４】
2005228202.tif 000006
【図５】
2005228202.tif 000007
【図６】
2005228202.tif 000008
【図７】
2005228202.tif 000009