(57)【要約】【課題】  情報処理装置において、既存のアプリケーションを用いた場合にも、周辺機器に対し機種等毎に異なる固有機能を自由に設定して、高度な処理を行う。【解決手段】  前記周辺機器が有する２以上の機能についての設定を組み合わせ、当該機能設定組み合わせに固有の名称を付して機能設定組み合わせを定義する設定定義手段３０と、前記機能設定組み合わせに付した名称を、当該機能設定組み合わせを構成する一の機能についての設定内容を示す設定名として、オペレーションシステムを介してアプリケーションに通知する設定名通知手段３２と、通知された前記名称のうちから前記アプリケーションが選択した前記名称を取得して、当該名称が示す前記機能設定組み合わせを個々の機能の設定に展開する機能展開手段３４と、展開した前記個々の機能の設定内容に従って、前記周辺機器の機能設定を行なう機能設定手段３６と、を有する。【選択図】図３
2012150573.tif 000002
【特許請求の範囲】
【請求項１】
オペレーションシステムと、前記オペレーションシステムと協働して周辺機器の動作を管理するデバイスドライバとを備え、オペレーションシステムを介して前記周辺機器を動作させることにより所定の処理を行うアプリケーションを実行し、当該所定の処理を行う情報処理装置であって、
前記周辺機器が有する２以上の機能についての設定を組み合わせ、当該機能設定組み合わせに固有の名称を付して機能設定組み合わせを定義する設定定義手段と、
前記設定定義手段が前記機能設定組み合わせに付した名称を、当該機能設定組み合わせを構成する一の機能についての設定内容を示す設定名として、前記オペレーションシステムを介して前記アプリケーションに通知する設定名通知手段と、
前記アプリケーションが前記設定名通知手段により通知された前記名称のうちから選択した名称を取得して、当該名称が示す前記機能設定組み合わせを個々の機能の設定に展開する機能展開手段と、
前記機能展開手段が展開した前記個々の機能の設定内容に従って、前記周辺機器の機能設定を行なう機能設定手段と、
を有する情報処理装置。
【請求項２】
請求項１に記載された情報処理装置において、
前記周辺機器は、前記アプリケーションが前記オペレーションシステムを介して前記デバイスドライバに対し個別に設定を指示することのできる基本機能と、前記オペレーションシステムを介して前記デバイスドライバに対し個別に設定を指示できない固有機能とを有し、
前記設定定義手段は、一の前記基本機能と前記固有機能とを組み合わせて、前記機能設定組み合わせを定義し、
前記設定名通知手段は、前記設定定義手段が前記機能設定組み合わせに付した名称を、前記機能設定組み合わせを構成する前記基本機能についての設定内容を示す設定名として、前記オペレーションシステムに通知する情報処理装置。
【請求項３】
請求項２に記載された情報処理装置において、
前記設定定義手段は、いずれか一の前記基本機能と組み合わせた前記固有機能を他の前記基本機能と組み合わせることなく、前記機能設定組み合わせを定義する情報処理装置。
【請求項４】
請求項２又は３に記載された情報処理装置において、
ユーザの識別情報を記憶する識別情報記憶手段を有し、
前記設定定義手段は、前記識別情報記憶手段が記憶する前記識別情報を参照し、前記識別情報に応じて予め定められた２以上の機能を組み合わせて、前記機能設定組み合わせを定義する情報処理装置。
【請求項５】
請求項１ないし４のいずれかに記載された情報処理装置において、
前記デバイスドライバは、前記設定定義手段と、前記設定名通知手段と、前記機能展開手段と、前記機能設定手段と、により構成される情報処理装置。
【請求項６】
請求項１ないし５のいずれかに記載された情報処理装置を有する印刷処理装置であって、
前記周辺機器は印刷装置であり、
前記デバイスドライバは、前記印刷装置の動作を管理するプリンタドライバである印刷処理装置。
【請求項７】
オペレーションシステムと、前記オペレーションシステムと協働して周辺機器の動作を管理するデバイスドライバとを備え、オペレーションシステムを介して前記周辺機器を動作させることにより所定の処理を行うアプリケーションを実行し、当該所定の処理を行う情報処理装置における情報処理方法であって、
前記周辺機器が有する２以上の機能についての設定を組み合わせ、当該機能設定組み合わせに固有の名称を付して機能設定組み合わせを定義する工程と、
前記定義する工程において前記機能設定組み合わせに付した名称を、当該機能設定組み合わせを構成する一の機能についての設定内容を示す設定名として、前記オペレーションシステムを介して前記アプリケーションに通知する工程と、
前記アプリケーションが前記通知する工程において通知された前記名称のうちから選択した名称を取得して、当該名称が示す前記機能設定組み合わせを、個々の機能の設定に展開する工程と、
前記展開する工程において展開された前記個々の機能の設定内容に従って、前記周辺機器の機能設定を行なう工程と、
を有する情報処理方法。
【請求項８】
オペレーションシステムと、前記オペレーションシステムと協働して周辺機器の動作を管理するデバイスドライバとを備え、オペレーションシステムを介して前記周辺機器を動作させることにより所定の処理を行うアプリケーションを実行し、当該所定の処理を行う情報処理装置のコンピュータを、
前記周辺機器が有する２以上の機能についての設定を組み合わせ、当該機能設定組み合わせに固有の名称を付して機能設定組み合わせを定義する設定定義手段と、
前記設定定義手段が前記機能設定組み合わせに付した名称を、当該機能設定組み合わせを構成する一の機能についての設定内容を示す設定名として、前記オペレーションシステムを介して前記アプリケーションに通知する設定名通知手段と、
前記アプリケーションが前記設定名通知手段により通知された前記名称のうちから選択した名称を取得して、当該名称が示す前記機能設定組み合わせを、個々の機能の設定に展開する機能展開手段と、
前記機能展開手段が展開した前記個々の機能の設定内容に従って、前記周辺機器の機能設定を行なう機能設定手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスドライバにより印刷装置等の周辺機器の動作を制御する情報処理装置、当該情報処理装置を用いた印刷処理装置、前記情報処理装置における情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
印刷装置の動作を制御して印刷を実行する印刷処理装置として、印刷装置を周辺機器として用いたパーソナルコンピュータ（Personal Computer）等の情報処理装置が使用されることが多い。
【０００３】
一般に、情報処理装置では、当該情報処理装置の動作全体を管理するＯＳ（Operating System）と、印刷装置等の周辺機器の動作を管理するデバイスドライバとを備え、このＯＳ上で動作するアプリケーションにより、例えば印刷装置を用いた印刷動作が実行される。
【０００４】
ここで、アプリケーションとは、所定の処理を行うようにプログラムされたアプリケーション・プログラムを、情報処理装置のコンピュータにより実行することにより、情報処理装置内に実現される機能実現手段をいう。
【０００５】
また、「ＯＳ上で動作する」とは、アプリケーションが、ＯＳの提供するソフトウェア・インタフェース（ＯＳについて予め定義された関数や変数等）を介して、ＯＳに対し種々の処理の実行を依頼することにより、目的の処理を行うことを意味する。
【０００６】
一方、ＯＳは、印刷装置等の周辺機器を動作させる必要がある場合には、それら周辺機器を管理するデバイスドライバというソフトウェアに対し、当該デバイスドライバが提供するソフトウェア・インタフェースを介して、当該周辺機器における動作の実行を依頼する。
【０００７】
上記のような、アプリケーション、ＯＳ、及びデバイスドライバの関係は階層構造で表すことができ、アプリケーションはその階層構造の最上層にあってユーザからの指示を受け取り、ＯＳはその中間層にあってアプリケーションからの指示を各周辺機器における動作等に展開し、デバイスドライバはその最下層にあって周辺機器に対する細かな動作指示を行なうのである。
【０００８】
このＯＳとして広く用いられているものにWindows（登録商標）があり、アプリケーションに対するソフトウェア・インタフェースとしてWindows（登録商標） API（Application Programming Interface）が定義され、その内容が公開されている。また、Windows（登録商標）が使用するデバイスドライバのソフトウェア・インタフェースとして、DDI（Device Driver Interface）が定義されており、Windows（登録商標） APIと同様にその内容が公開されている。
【０００９】
ところで、ＯＳであるWindows（登録商標）の上で動作するアプリケーションにより例えば印刷を行う場合、一般に、印刷動作を開始する前に印刷設定画面が表示され、ユーザは当該画面により印刷動作に関する各種設定を行なう。この印刷設定画面には、通常、印刷装置の各種機能を設定するための機能項目やその選択肢が表示されるようになっており、ユーザは、所望の機能項目（例えば、原稿サイズや用紙サイズ等）について所望の選択肢（例えば、Ａ３サイズ、Ｂ４サイズ、Ａ４サイズ等）を選択することにより、印刷動作の設定を行なう。
【００１０】
図１２は、従来の情報処理装置においてアプリケーションが表示する、印刷設定画面の一例を示す図である。図１２に示す印刷設定画面では、機能項目「原稿サイズ」に対応する「サイズ」ボタンが設けられており、これを押下することにより、原稿サイズについての選択肢（A3(297×420mm)、B4(257×364mm)など）がドロップダウンリストの形式で表示される。このドロップダウンリストから、ユーザは、一の選択肢を選択することにより、原稿サイズを指定することができる。
【００１１】
ここで、印刷設定画面に表示される機能項目や各機能項目における選択肢は、印刷装置を動作させるためのデバイスドライバ（プリンタドライバ）が記憶しており、アプリケーションは、例えば、Windows（登録商標） APIが提供する関数（ＡＰＩ関数）の一つであるDevice Capabilities関数を用いて、プリンタドライバから機能項目及び各機能項目の選択肢を取得して、印刷設定画面を構成する。
【００１２】
また、アプリケーションは、Windows（登録商標）APIが提供するＤＥＶＭＯＤＥ構造体と称されるデータの集合体（所定のメモリ領域に記憶されたデータの集まり）を介して、印刷装置についての各種機能の設定状態を参照する。すなわち、アプリケーションは、ＯＳであるWindows（登録商標）が提供する種々のＡＰＩ関数を用いて、その印刷装置に対応するＤＥＶＭＯＤＥ構造体のアドレスを取得し、そのＤＥＶＭＯＤＥ構造体が保持するデータ（「メンバ」と称する）のうち所望の機能項目を表すメンバを参照して、その機能項目についての現在の設定状態を取得する。このように取得した情報は、アプリケーションにより印刷設定画面上に現在の設定状態として表示される。
【００１３】
また、アプリケーションは、ユーザが上記印刷設定画面において印刷装置の一部又は全部の機能の設定を変更すると、その変更内容に基づき、ＤＥＶＭＯＤＥ構造体メンバのうち設定変更が行われた機能に対応するメンバの記憶内容を書き換える。このように書き換えられた設定内容は、例えば印刷動作を開始する際に、プリンタドライバによりＤＥＶＭＯＤＥ構造体メンバから読み出され、印刷装置に設定されて印刷動作に反映される。
【００１４】
しかしながら、このＤＥＶＭＯＤＥ構造体には、そのメンバの内容定義（何を記憶するメンバであるかについての定義）が公開され、かつ、アプリケーションに対してアクセス（読み出しや書き込み）が許可されているメンバ（パブリック・メンバ）と、そのメンバの内容定義がデバイスドライバの作成者に委ねられ、かつ、アプリケーションに対してアクセスが許可されていないメンバ（プライベート・メンバ）とが存在する。そして、パブリック・メンバには、トレイ情報、用紙情報、印刷解像度等、種々の印刷装置に共通の、あるいは一般的な機能（基本機能）についての情報が記憶され、プライベート・メンバには、通常、印刷装置の機種毎又はベンダ毎に固有の機能（固有機能）についての情報が記憶されている。
【００１５】
すなわち、アプリケーションは、ＤＥＶＭＯＤＥ構造体のパブリック・メンバに記憶された基本機能に関する情報に限り、ＡＰＩを介してアクセスすることができるが、プライベート・メンバに記憶された固有機能を取得あるいは変更して、これを利用することはできない。その結果、印刷装置に、固有機能として高度な印刷機能、例えばトナーの使用量を制御してランニングコストを低減したり、排紙時の印刷面の方向を変更する等の機能が備わっていても、アプリケーションからこれらの固有機能を設定して利用することはできないという問題がある。
【００１６】
この問題を解消する方法として、ＤＥＶＭＯＤＥ構造体のプライベート・メンバにアクセスするための新しい関数や変数を備えた拡張ＤＤＩを、プリンタドライバに設ける方法が知られている（特許文献１参照）。すなわち、アプリケーションは、拡張ＤＤＩが提供する新しい関数等を用いて、ＤＥＶＭＯＤＥ構造体のプライベート・メンバに記憶された固有機能に関する設定情報を参照又は変更して、その印刷装置の固有機能を用いた印刷動作を実行するのである。
【００１７】
しかしながら、上記従来の方法では、上記拡張ＤＤＩが提供する新しい関数等を用いてアプリケーション・プログラムを作成しなければならず、Windows（登録商標） APIのみを利用して作成された既存のアプリケーションでは、依然として印刷装置の固有機能を利用することはできないという問題を有している。
【発明の概要】
【発明が解決しようとする課題】
【００１８】
本発明は、上記従来の問題に鑑みなされたものであって、その目的は、情報処理装置において、既存のアプリケーションを用いた場合にも、印刷装置等の周辺機器の固有機能を自由に設定して、高度な処理を行えるようにすることである。
【課題を解決するための手段】
【００１９】
本発明は、オペレーションシステムと、前記オペレーションシステムと協働して周辺機器の動作を管理するデバイスドライバとを備え、オペレーションシステムを介して前記周辺機器を動作させることにより所定の処理を行うアプリケーションを実行し、当該所定の処理を行う情報処理装置であって、前記周辺機器が有する２以上の機能についての設定を組み合わせ、当該機能設定組み合わせに固有の名称を付して機能設定組み合わせを定義する設定定義手段と、前記設定定義手段が前記機能設定組み合わせに付した名称を、当該機能設定組み合わせを構成する一の機能についての設定内容を示す設定名として、前記オペレーションシステムを介して前記アプリケーションに通知する設定名通知手段と、前記アプリケーションが前記設定名通知手段により通知された前記名称のうちから選択した名称を取得して、当該名称が示す前記機能設定組み合わせを個々の機能の設定に展開する機能展開手段と、前記機能展開手段が展開した前記個々の機能の設定内容に従って、前記周辺機器の機能設定を行なう機能設定手段と、を有する情報処理装置である。
また、本発明は、オペレーションシステムと、前記オペレーションシステムと協働して周辺機器の動作を管理するデバイスドライバとを備え、オペレーションシステムを介して前記周辺機器を動作させることにより所定の処理を行うアプリケーションを実行し、当該所定の処理を行う情報処理装置における情報処理方法であって、前記周辺機器が有する２以上の機能についての設定を組み合わせ、当該機能設定組み合わせに固有の名称を付して機能設定組み合わせを定義する工程と、前記定義する工程において前記機能設定組み合わせに付した名称を、当該機能設定組み合わせを構成する一の機能についての設定内容を示す設定名として、前記オペレーションシステムを介して前記アプリケーションに通知する工程と、前記アプリケーションが前記通知する工程において通知された前記名称のうちから選択した名称を取得して、当該名称が示す前記機能設定組み合わせを、個々の機能の設定に展開する工程と、前記展開する工程において展開された前記個々の機能の設定内容に従って、前記周辺機器の機能設定を行なう工程と、を有する情報処理方法である。
また、本発明は、オペレーションシステムと、前記オペレーションシステムと協働して周辺機器の動作を管理するデバイスドライバとを備え、オペレーションシステムを介して前記周辺機器を動作させることにより所定の処理を行うアプリケーションを実行し、当該所定の処理を行う情報処理装置のコンピュータを、前記周辺機器が有する２以上の機能についての設定を組み合わせ、当該機能設定組み合わせに固有の名称を付して機能設定組み合わせを定義する設定定義手段と、前記設定定義手段が前記機能設定組み合わせに付した名称を、当該機能設定組み合わせを構成する一の機能についての設定内容を示す設定名として、前記オペレーションシステムを介して前記アプリケーションに通知する設定名通知手段と、前記アプリケーションが前記設定名通知手段により通知された前記名称のうちから選択した名称を取得して、当該名称が示す前記機能設定組み合わせを、個々の機能の設定に展開する機能展開手段と、前記機能展開手段が展開した前記個々の機能の設定内容に従って、前記周辺機器の機能設定を行なう機能設定手段、として機能させるプログラムである。
【発明の効果】
【００２０】
本発明によれば、情報処理装置において、既存のアプリケーションを用いた場合にも、周辺機器に対し、ベンダや機種毎に異なる固有の機能を自由に設定して、高度な処理を行うことができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係る情報処理装置のハードウェアの構成を示すブロック図である。
【図２】本情報処理装置が備えるアプリケーション、ＯＳ、及びデバイスドライバの構成を示すブロック図である。
【図３】本情報処理装置が有する機能実現手段の構成を示すブロック図である。
【図４】本情報処理装置の動作手順を示すフロー図である。
【図５Ａ】本情報処理装置のプリンタドライバが実行する拡張機能定義処理の、ドライバ設定情報の生成及び記憶までの処理手順を示すフロー図である。
【図５Ｂ】本情報処理装置のプリンタドライバが実行する拡張機能定義処理の、ドライバ設定情報の生成及び記憶後の処理手順を示すフロー図である。
【図６】本情報処理装置のプリンタドライバが実行する拡張機能定義処理の際に、表示部に表示される拡張機能定義画面の一例を示す図である。
【図７】本情報処理装置のプリンタドライバが生成する、ドライバ設定情報の一例を示す図である。
【図８】本情報処理装置のプリンタドライバが生成する、拡張ドライバ機能情報の一例を示す図である。
【図９】本情報処理装置のプリンタドライバが実行する、機能応答処理の手順を示すフロー図である。
【図１０】本情報処理装置においてアプリケーションが表示する、印刷設定画面の一例を示す図である。
【図１１】本情報処理装置のプリンタドライバが実行する、機能展開処理の手順を示すフロー図である。
【図１２】従来の情報処理装置においてアプリケーションが表示する、印刷設定画面の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の実施の形態を説明する。
図１は、本発明の一実施形態に係る情報処理装置のハードウェアの構成を示すブロック図である。
本情報処理装置１はコンピュータであり、ＣＰＵ（Central Processing Unit：中央処理装置）２と、記憶手段であるＲＯＭ（Read Only Memory）４及びＲＡＭ（Random Access Memory）６と、補助記憶手段であるＨＤＤ（Hard Disk Drive：固定ディスク装置）８と、ＣＤ−ＲＯＭやフロッピー（登録商標）ディスク等の記録媒体から情報を読み取る情報読取部１０と、外部機器との通信を行なう通信インタフェース１２と、表示部１４と、操作部１６とを有している。
また、情報処理装置１には、通信インタフェース１２を介して、周辺機器である印刷装置Ｘが接続されている。
【００２３】
なお、表示部１４としては、例えば液晶表示装置を使用することができ、また、操作部１６としては、キーボードや、マウス等のポインティングデバイスを使用することができる。
【００２４】
ＨＤＤ８には、ＣＰＵ２を動作させるための各種のプログラムが保存されており、ＣＰＵ２は、これらのプログラムを読み出して実行することにより、アプリケーション、ＯＳ、及びデバイスドライバを、情報処理装置１の一部として実現する。
【００２５】
図２は、情報処理装置１が備えるアプリケーション、ＯＳ及びデバイスドライバの構成を示すブロック図である。
情報処理装置１は、ＯＳ１８と、ＯＳ１８上で動作し、印刷装置Ｘを用いて印刷動作を行なうアプリケーションＹと、ＯＳ１８を介してアプリケーションＹから指示を受けて印刷装置Ｘの動作を制御するデバイスドライバであるプリンタドライバ２０と、を備える。ここで、ＯＳ１８としては、例えばWindows（登録商標）を使用することができる。以下、本実施形態では、「Windows（登録商標）」と「ＯＳ１８」は同じものを意味するものとする。
【００２６】
Windows（登録商標）であるＯＳ１８は、その一部として、印刷装置Ｘについての情報を記憶するＤＥＶＭＯＤＥ構造体２２をＲＡＭ６等の記憶装置内に有している。ただし、ＯＳ１８はＤＥＶＭＯＤＥ構造体２２のパブリック・メンバにのみアクセスが可能となっている。一方、プリンタドライバ２０は、ＤＥＶＭＯＤＥ構造体２２のパブリック・メンバ及びプライベート・メンバの両方にアクセスすることができる。
【００２７】
プリンタドライバ２０は、ＤＤＩを介してＯＳ１８やアプリケーションＹとの間でデータの授受、処理要求の受付、処理応答の返信等を行なうＵＩ部２０２と、ＤＥＶＭＯＤＥ構造体２２の各メンバの記憶内容に従って印刷装置Ｘを設定すると共に、画像データを送信して印刷装置Ｘに印刷動作を行わせる描画部２０４と、ユーザが入力した基本機能と固有機能との組み合わせに関する情報（後述するドライバ設定情報）に基づいて当該基本機能と固有機能とを組み合わせて拡張機能（拡張ドライバ機能）を定義する拡張ドライバ機能生成部２０６と、上記定義された拡張ドライバ機能から基本機能と固有機能への展開等を行なうドライバ機能評価部２０８と、を有している。
【００２８】
また、プリンタドライバ２０は、その一部として、印刷装置Ｘが有する基本機能の機能項目及びそれら機能項目の選択肢についての情報（ドライバ機能情報）を保存するドライバ機能情報保存部２１０と、ユーザの入力内容に従い、拡張機能を構成する基本機能と固有機能の組み合わせについての情報（ドライバ設定情報）を保存するドライバ設定情報保存部２１４と、拡張ドライバ機能生成部２０６が生成した拡張ドライバ機能についての情報（拡張ドライバ機能情報）を保存する拡張ドライバ機能情報保存部２１２とを、プリンタドライバ２０を構成するプログラム内又はＲＡＭ等の記憶装置内に有している。
【００２９】
図３は、情報処理装置１が有する機能実現手段の構成を示すブロック図である。
情報処理装置１は、周辺機器である印刷装置Ｘが有する基本機能と固有機能の設定を組み合わせ、当該機能設定組み合わせに固有の名称（拡張機能名）を付して拡張機能を定義する設定定義手段３０と、設定定義手段３０が上記機能設定組み合わせに付した拡張機能名を、当該機能設定組み合わせを構成する基本機能の選択肢として、ＯＳ１８であるWindows（登録商標）を介してアプリケーションＹに通知する設定名通知手段３２と、アプリケーションＹが設定名通知手段３２により通知された拡張機能名のうちから選択した拡張機能名を取得して、当該拡張機能名が示す前記拡張機能を、当該拡張機能を構成する基本機能及び固有機能の設定に展開する機能展開手段３４と、機能展開手段３４が展開した基本機能及び固有機能の設定内容に従って、前記周辺機器の機能設定を行なう機能設定手段３６と、を有している。
【００３０】
ここで、設定定義手段３０は、例えばＵＩ部２０２と拡張ドライバ機能生成部２０６により実現され、設定名通知手段３２は、例えばＵＩ部２０２とドライバ機能評価部２０８により実現され、機能展開手段３４は、例えばＵＩ部２０２とドライバ機能評価部２０８により実現され、機能設定手段３６は、例えばＵＩ部２０２とドライバ機能評価部２０８により実現される。
【００３１】
上記の構成を備える情報処理装置１は、設定定義手段３０（即ち、拡張ドライバ機能生成部２０６）により、基本機能の選択肢と固有機能の選択肢とを組み合わせて拡張機能を定義し、それらの個々の組み合わせ（拡張機能）に固有の名称（拡張機能名）を付与する。そして、設定名通知手段３２（即ち、ＵＩ部２０２）により、当該基本機能の選択肢に上記拡張機能名を持つ選択肢（拡張選択肢）を追加して、Windows（登録商標）に通知する。ここで、基本機能に本来与えられている選択肢を、上記拡張選択肢と区別して、基本選択肢というものとする。
【００３２】
これにより、アプリケーションＹの印刷設定画面には上記基本機能の選択肢として、基本選択肢と拡張選択肢とが表示されることとなり、ユーザは当該選択肢から拡張選択肢を選択することができる。
【００３３】
そして、アプリケーションＹは、印刷設定画面において拡張選択肢の一つが選択されると、選択された拡張選択肢を、ＤＥＶＭＯＤＥ構造体２２を介してプリンタドライバ２０に渡す。続いて、機能展開手段３４（即ち、プリンタドライバ２０のドライバ機能評価部２０８）は、渡された拡張選択肢の名称（拡張機能名）から、その拡張機能名に対応付けられた拡張機能を構成する基本機能と固有機能の一の選択肢の組み合わせを特定し、機能設定手段３６（即ち、描画部２０４）は、例えば印刷動作実行の際に、当該特定した選択肢の組み合わせに基づいて、当該印刷装置Ｘの動作設定を行なう。
【００３４】
すなわち、情報処理装置１では、アプリケーションＹは、従来のようにＤＤＩに追加した新たな関数等を用いてＤＥＶＭＯＤＥ構造体２２のプライベート・メンバにアクセスするのではなく、基本機能の選択肢に追加された上記拡張選択肢を介して、固有機能に関する設定情報の参照や変更を行なう。このため、Windows（登録商標） APIのみを使用する既存のアプリケーションであっても、印刷装置Ｘに固有の機能を利用して、高度な印刷動作を実行することができる。
【００３５】
次に、情報処理装置１の動作手順について、図４に示すフロー図にしたがって説明する。
ユーザが情報処理装置１の電源を投入すると（Ｓ１０１）、ＣＰＵ２は、ＲＯＭ４に記憶された起動プログラムに従い、ＯＳ１８であるWindows（登録商標）プログラム及び周辺機器を動作させるためのデバイスドライバを、ＨＤＤ８からＲＡＭ６にダウンロードする（Ｓ１０２）。ここで、ＨＤＤ８からダウンロードされるデバイスドライバには、情報処理装置１に接続された印刷装置Ｘの動作を管理又は制御するプリンタドライバ２０も含まれる。
【００３６】
次に、ＣＰＵ２は、ＲＡＭ６にダウンロードしたWindows（登録商標）プログラムを実行して（Ｓ１０３）、操作部１６等により動作指示が入力されるのを待機する（Ｓ１０４）。そして、操作部１６から動作指示が入力されると、その操作指示に従って処理を行う（Ｓ１０５）。また、Windows（登録商標）プログラムの終了指示が入力されたか否かを判断し（Ｓ１０６）、終了指示が入力されれば（Ｓ１０６、Ｙｅｓ）、処理を終了する。一方、終了指示が入力されないときは（Ｓ１０６、Ｎｏ）、ステップＳ１０５に戻って処理を繰り返す。
【００３７】
なお、Windows（登録商標）プログラム起動後のステップＳ１０５の処理においては、ＣＰＵ２は、Windows（登録商標）プログラムに従い、操作部１６からの動作指示に基づいてWindows（登録商標）に関する機能設定変更等の処理や、複数のアプリケーションの実行処理を、並列に実行する。
このため、ステップＳ１０５においてアプリケーションＹの実行を完了する前にWindows（登録商標）プログラムの終了指示が入力されれば、ＣＰＵ２がステップＳ１０６を実行してWindows（登録商標）を終了する場合があり得る。
【００３８】
ここで、本情報処理装置１の特徴的な動作は、ステップＳ１０５において行なわれる以下の３つの処理である。
(i)  拡張機能定義処理
プリンタドライバ２０が行なう処理であって、Windows（登録商標）を介したユーザからの指示により、基本機能と固有機能とを組み合わせて拡張機能を定義する処理である。
(ii)  機能応答処理
アプリケーションＹがWindows（登録商標） APIのDeviceCapabilities関数を用いて、プリンタドライバ２０に対し印刷装置Ｘの機能詳細（機能項目と各機能項目に関する選択肢）を問い合わせたときに、プリンタドライバ２０が、その問合せに対する応答を返すための処理である。
(iii)  機能展開処理
プリンタドライバ２０が行なう処理であって、アプリケーションＹによりＤＥＶＭＯＤＥ構造体２２のパブリック・メンバに書き込まれた拡張選択肢から、当該拡張選択肢が示す拡張機能を、基本機能と固有機能の選択肢に展開し、当該基本機能及び固有機能に対応するＤＥＶＭＯＤＥ構造体２２のパブリック・メンバ及びプライベート・メンバに、それぞれ上記展開した各機能の選択肢を書き込む処理である。
【００３９】
以下、拡張機能定義処理、機能応答処理、及び機能展開処理について、順に説明する。
【００４０】
（１）拡張機能定義処理
拡張機能定義処理では、基本機能と固有機能とを組み合わせて、拡張機能を定義する。この処理は、Windows（登録商標）を介した操作部１６からの指示により、プリンタドライバ２０が表示する印刷装置Ｘについての機能設定画面から起動される。
【００４１】
この機能設定画面としては、例えば、Windows（登録商標）におけるプリンタのプロパティ・ダイアログボックスを用いることができる。このプロパティ・ダイアログ・ボックスは、例えば、Windows（登録商標）に対するコマンド「スタート」−「コントロールパネル」−「プリンタ」を選択すると表示されるプリンタリストにおいて、所望のプリンタ（本実施形態では印刷装置Ｘ）を右クリック（マウスの右ボタン押下）することにより、プリンタドライバ２０により表示される。
【００４２】
プリンタドライバ２０は、この機能設定画面に、例えば拡張機能定義処理を開始するためのボタン又はタブを設け、ユーザが当該ボタンを押下するか又は当該タブを選択することにより、拡張機能定義処理を開始する。
【００４３】
以下、拡張機能定義処理の手順について、図５Ａ、図５Ｂ及び図６を用いて説明する。ここで、図５Ａは、プリンタドライバ２０が実行する拡張機能定義処理の、ドライバ設定情報の生成及び記憶までの処理手順を示すフロー図であり、図５Ｂは、同処理のドライバ設定情報の生成及び記憶後の処理手順を示すフロー図である。また、図６は、拡張機能定義処理の際に表示部１４に表示される拡張機能定義画面の一例を示す図である。
【００４４】
まず、図５Ａに示すフロー図を用いて、ドライバ設定情報の生成及び記憶までの拡張機能定義処理の手順を説明する。
拡張機能定義処理を開始すると、まず、プリンタドライバ２０のＵＩ部２０２は、図６Ａに示すような拡張機能定義画面の初期画面を表示する（Ｓ２０１）。この初期画面には、機能拡張の対象となる基本機能のリスト（給紙トレイ、原稿サイズ等）が表示されており、ユーザは、各基本機能の横に設けられたチェックボックスにチェックを入れることにより、当該基本機能を、拡張機能定義に使用する機能の一つとして入力することができる。
【００４５】
ＵＩ部２０２は、上記の操作により基本機能が入力されたときは、当該入力された基本機能を機能拡張の対象として取得する（Ｓ２０２）。なお、図６Ａに示した初期画面の基本機能のリストには、最左列から順に、基本機能名、Windows（登録商標） APIにおける当該基本機能の名称、当該基本機能に対応するＤＥＶＭＯＤＥ構造体２２のパブリック・メンバの名称が表示されている。
【００４６】
図６Ａにおいて、チェックボックスにチェックが入った基本機能は、リスト下部にあるドロップダウンリストに表示される。ここで、ユーザは、ドロップダウンリストから一の基本機能を選択して、当該ドロップダウンリストの横にある詳細設定ボタンを押すことにより、当該基本機能と組み合わせる固有機能の選択を開始することができる。
【００４７】
すなわち、ＵＩ部２０２は、初期画面の「詳細設定」ボタンが押下されたか否かを判断し（Ｓ２０３）、押下されたときは（Ｓ２０３、Ｙｅｓ）、図６Ｂに示すような詳細設定画面を表示する（Ｓ２０４）。一方、「詳細設定」ボタンが押されなかったときは（Ｓ２０３、Ｎｏ）、「ＯＫ」ボタンが押下されたか否かを判断し（Ｓ２０５）、「ＯＫ」ボタンが押下されたときは（Ｓ２０５、Ｙｅｓ）、拡張機能定義画面における設定内容を確定した後（Ｓ２０６）、拡張機能定義画面を消去して（Ｓ２１０）、処理を終了する。
【００４８】
一方、「ＯＫ」ボタンが押下されなかったときは（Ｓ２０５、Ｎｏ）、「キャンセル」ボタンが押下されたか否かを判断し（Ｓ２０７）、「キャンセル」ボタンが押下されたときは（Ｓ２０７、Ｙｅｓ）、拡張機能定義画面での設定内容を破棄した後（Ｓ２０８）、拡張機能定義画面を消去して（Ｓ２１０）、処理を終了する。
また、「キャンセル」ボタンが押下されなかったときは（Ｓ２０７、Ｎｏ）、「適用」ボタンが押下されているはずであるので、拡張機能定義画面での設定内容を確定して（Ｓ２０９）、ステップＳ２０２に戻って処理を繰り返す
【００４９】
ステップＳ２０３において「詳細設定」ボタンが押されると、図６Ｂに示すような詳細設定画面が表示部１４に表示される。
図６Ｂに示す詳細設定画面の下部には、ステップＳ２０２で入力した基本機能と組み合わせることができる固有機能のリストが表示されており、ユーザは、固有機能名の横にあるチェックボックスにチェックを入れることにより、当該固有機能を、当該基本機能に組み合わせる機能として入力することができる。
【００５０】
次に、ＵＩ部２０２は、上記の操作により固有機能が入力されたときは、当該固有機能を、ステップＳ２０２で取得した基本機能に組み合わせる固有機能として取得する（Ｓ２１１）。
【００５１】
図６Ｂの上部には、Windows（登録商標）に対し予めWindows（登録商標）利用者として登録されたグループ又はユーザを表示するリストボックスが表示されており、ユーザは、このリストから、後述するステップＳ２１７（図５Ｂ）において生成される機能設定組み合わせ（拡張機能）の使用許可を与えるグループ又はユーザ（以下、「許可ユーザ」という）を選択して入力することができる。
【００５２】
ＵＩ部２０２は、上記の操作によりグループ又はユーザが入力されたときは、当該グループ又はユーザを許可ユーザとして取得する（Ｓ２１２）。なお、グループ名又はユーザ名のリスト下部にある「追加」ボタン及び「削除」ボタンは、グループ又はユーザを追加及び削除する際にそれぞれ使用する。
【００５３】
次に、ＵＩ部２０２は、ステップＳ２０２において取得した基本機能と、ステップＳ２１１において取得した固有機能と、ステップＳ２１２において取得した許可ユーザに基づき、当該基本機能、固有機能、及び許可ユーザの関係を示すドライバ設定情報を生成し、生成したドライバ設定情報をドライバ設定情報保存部２１４に記憶する（Ｓ２１３）。なおドライバ設定情報保存部２１４としては、例えば、ＲＡＭ６内に確保されるレジストリと称されるWindows（登録商標）プログラムの記憶域を使用することができる。
【００５４】
このレジストリに記憶された内容は、Windows（登録商標）プログラムを終了する際に、Windows（登録商標）によりＨＤＤ８に保存され、次にWindows（登録商標）プログラムが起動されたときに、ＲＡＭ６にダウンロードされる。このため、ドライバ設定情報保存部２１４としてレジストリを使用すれば、Windows（登録商標）が終了し情報処理装置１の電源がＯＦＦされても、次に情報処理装置１を起動してWindows（登録商標）を立ち上げた際には、過去に定義した拡張機能をそのまま使用することができる。
【００５５】
図７は、ドライバ設定情報の一例を示す図である。図７のドライバ設定情報には、最左列から順に、基本機能名、当該基本機能に対する機能拡張の有無、拡張機能の許可ユーザ、及び当該基本機能に対する固有機能の組み合わせ状況が示されている。これにより、基本機能の行毎に、当該基本機能と固有機能との組み合わせ（機能組み合わせ）の状況が記録される。
【００５６】
図７では、基本機能名「原稿サイズ」の行の、「トナーセーブ」及び「フェースアップ」の列が「ＯＮ」となっており、これら２つの固有機能が基本機能「原稿サイズ」と組み合わされたことが示されている。
また、基本機能名「原稿サイズ」の行の「許可ユーザ」の列には、ユーザ名「ｔｅｓｔ」が示されており、当該機能の組み合わせによる拡張機能の使用が、ユーザ「ｔｅｓｔ」に許可されていることがわかる。
【００５７】
次に、図５Ｂに示すフロー図を用いて、ドライバ設定情報の生成及び記憶後の拡張機能定義処理の手順を説明する。
ドライバ設定情報の生成及び記憶（図５ＡのステップＳ２１３）を完了すると、ＵＩ部２０２は、生成したドライバ設定情報を拡張ドライバ機能生成部２０６に渡し（Ｓ２１４）、拡張ドライバ機能生成部２０６は、渡されたドライバ設定情報から、現在のWindows（登録商標）ログインユーザ（現在のWindows（登録商標）プログラムを起動したユーザ）が許可ユーザとなっている機能組み合わせがあるか否かを判断する（Ｓ２１５）。
【００５８】
ＯＳ１８であるWindows（登録商標）は、通常、Windows（登録商標）プログラムの起動の際に、起動を指示したユーザの認証を実施し、認証に合格したときは、当該ユーザ（すなわちログインユーザ）の識別情報を識別情報記憶手段、例えばＲＡＭ等の記憶装置に記憶する。したがって、拡張ドライバ機能生成部２０６は、上記識別情報記憶手段が記憶するログインユーザの識別情報を参照することにより、現在のログインユーザを認識して、上記のステップＳ２１５の処理を実行することができる。
【００５９】
次に、拡張ドライバ機能生成部２０６は、現在のログインユーザが許可ユーザとなっている機能組み合わせがあるときは（Ｓ２１５、Ｙｅｓ）、ドライバ設定情報から、当該機能組み合わせを構成する基本機能と固有機能とを特定する（Ｓ２１６）。続いて、特定した基本機能及び固有機能の、それぞれの選択肢の全組み合わせに固有の名称（拡張機能名）を付与して、これら選択肢の組み合わせと拡張機能名との対応関係を示す拡張ドライバ機能情報を生成し（Ｓ２１７）、生成した拡張ドライバ機能情報を拡張ドライバ機能情報保存部２１２に記憶する（Ｓ２１８）。
【００６０】
すなわち、基本機能の選択肢と固有機能の選択肢との組み合わせを、それぞれ一つの拡張機能として扱い、拡張機能のそれぞれに固有の拡張機能名を付すことで、拡張機能を定義するのである。これにより、拡張機能名により各拡張機能を指定又は特定することができるようになる。
なお、拡張ドライバ機能情報保存部２１２としては、ドライバ設定情報保存部２１４と同様に、ＲＡＭ６に確保されたレジストリを使用することができる。
【００６１】
一方、現在のログインユーザが許可ユーザとなっている機能組み合わせがないときは（Ｓ２１５、Ｎｏ）、拡張ドライバ機能情報を生成することなく、ステップＳ２１９に処理を移す。
【００６２】
図８は、拡張ドライバ機能情報の一例を示す図である。
図８に示す拡張ドライバ機能情報には、定義された拡張機能（基本機能と固有機能の選択肢の組み合わせ）がリスト形式で表示されており、各拡張機能について、最左列から順に、基本機能名、拡張機能名、基本機能の選択肢、基本機能に組み合わされた第１の固有機能名、第１の固有機能の選択肢、基本機能に組み合わされた第２の固有機能名、及び第２の固有機能の選択肢が示されている。なお、図８の拡張ドライバ機能情報では、基本機能に組み合わせられた固有機能の数は２つであるが、これに限らず、１つの基本機能に３つ以上の固有機能を組み合わせて、拡張機能を定義してもよい。
【００６３】
なお、図８に示した拡張機能には、例えば４行目（タイトル行除く）の拡張機能名「Ａ４」のように、固有機能と組み合わされず基本機能の選択肢のみで構成される機能も、便宜上含まれている。
【００６４】
ここで、図８に示す拡張ドライバ機能情報の拡張機能名は、プリンタドライバ２０により自動生成されたものであり、例えば、図８において第１行目（タイトル行除く）の拡張機能名「Ａ４＋トナーセーブ＋フェースアップ」は、基本機能「原稿サイズ」の選択肢「ＤＭＰＡＰＥＲ＿Ａ４」の「Ａ４」と、選択肢が「ＯＮ」となっている固有機能名「トナーセーブ」及び「フェースアップ」とを組み合わせて構成されている。
【００６５】
なお、拡張機能名は、上記のようにプリンタドライバ２０が一定のルールに従って自動生成するものとしてもよいし、ユーザにより入力されるものとしてもよい。
【００６６】
本実施形態では、図８に示す自動生成された名称に対し、ユーザがその名称を編集して変更することができるように、拡張機能定義画面の詳細設定画面に「名前編集」ボタンを設けている。
【００６７】
ステップＳ２１８の後、ＵＩ部２０２は、詳細設定画面において「名前編集」ボタンが押下されたか否かを判断し（Ｓ２１９）、「名前編集」ボタンが押されたときは（Ｓ２１９、Ｙｅｓ）、拡張ドライバ機能情報保存部２１２の拡張ドライバ機能情報を参照して、図６Ｃのような名前編集画面を表示する（Ｓ２２０）。
【００６８】
図６Ｃに示す名前編集画面には、拡張ドライバ機能情報に基づいて、拡張機能名（１列目）と、その拡張機能名が表す基本機能と固有機能の選択肢の組み合わせ（２列目以降）が表示されている。この画面により、ユーザは、名前欄（第１列目）の拡張機能名を編集して変更することができる。
【００６９】
なお、現在のログインユーザを許可ユーザとする機能組み合わせがなく（ステップＳ２１５においてＮｏの場合）、拡張ドライバ機能情報が生成されなかったときは、ステップＳ２２０において、名前編集画面のリストには何も表示されないか、又は、拡張ドライバ機能情報保存部２１２に保存されている、過去に作成された拡張ドライバ機能情報の内容が表示される。
【００７０】
次に、ＵＩ部２０２は、「ＯＫ」ボタンが押下されたか否かを判断し（Ｓ２２１）、「ＯＫ」ボタンが押下されたときは（Ｓ２２１、Ｙｅｓ）、名前編集画面での拡張機能名の編集内容に基づいて、拡張ドライバ機能情報保存部２１２に記憶されている拡張ドライバ機能情報の内容を更新し（Ｓ２２２）、名前編集画面を表示部１４から消去した後（Ｓ２２３）、図５ＡのステップＳ２１１に戻って処理を繰り返す。また、ステップＳ２２１において「ＯＫ」ボタンが押下されなかったときは（Ｓ２２１、Ｎｏ）、「キャンセル」ボタンが押下されているはずであるので、拡張機能名についての編集内容を破棄し（Ｓ２２４）、名前編集画面を表示部１４から消去した後（Ｓ２２３）、図５ＡのステップＳ２１１に戻って処理を繰り返す。
【００７１】
一方、ステップＳ２１９において「名前編集」ボタンが押下されなかったときは（Ｓ２１９、Ｎｏ）、「ＯＫ」ボタンが押下されたか否かを判断し（Ｓ２２５）、「ＯＫ」ボタンが押下されたときは（Ｓ２２５、Ｙｅｓ）、詳細設定画面における設定内容を確定し（Ｓ２２６）、詳細設定画面を表示部１４から消去した後（Ｓ２２７）、図５ＡのステップＳ２０２に戻って処理を繰り返す。
【００７２】
一方、ステップＳ２２５において「ＯＫ」ボタンが押下されなかったときは（Ｓ２２５、Ｎｏ）、「キャンセル」ボタンが押下されているはずであるので、詳細設定画面での設定内容を破棄して（Ｓ２２８）、詳細設定画面を表示部１４から消去した後（Ｓ２２７）、図５ＡのステップＳ２０２に戻って処理を繰り返す。
【００７３】
（２）機能応答処理
次に、アプリケーションＹがDeviceCapabilities関数により印刷装置Ｘの機能詳細（機能項目及び各機能項目の選択肢）を問合せたときに、プリンタドライバ２０が当該問合せに対する応答を返すための、機能応答処理について説明する。
【００７４】
アプリケーションＹは、通常、アプリケーション・ウィンドウのメニューバーから「ファイル」−「印刷」が選択されたときに、印刷ページや印刷部数、印刷用紙のサイズ等の指定を行なうための印刷設定画面を表示するために、Windows（登録商標） APIのDeviceCapabilities関数を用いて、Windows（登録商標）を介してプリンタドライバ２０に、印刷装置Ｘの機能詳細を問い合わせる。
【００７５】
より詳細には、アプリケーションＹがWindows（登録商標）に対しWindows（登録商標） APIのDeviceCapabilities関数を用いて印刷装置Ｘの機能詳細を問い合わせると、Windows（登録商標）は、プリンタドライバ２０のDDIであるDrvDeviceCapabilities関数を用いて、プリンタドライバ２０に対し機能詳細の問合せを行ない、プリンタドライバ２０は、DrvDeviceCapabilities関数に対する応答処理として、機能応答処理を実行する。
すなわち、機能応答処理は、ＵＩ部２０２がWindows（登録商標）からDrvDeviceCapabilities関数を受け取ることにより、その動作を開始する。
【００７６】
以下、機能応答処理の手順について、図９に示すフロー図にしたがって説明する。
機能応答処理を開始すると、ＵＩ部２０２は、ドライバ機能評価部２０８に、機能詳細に関する情報（機能詳細情報）の取得を依頼し（Ｓ３０１）、ドライバ機能評価部２０８は、ドライバ機能情報保存部２１０が記憶するドライバ機能情報を参照し、全ての基本機能の名称を取得して、これらを機能項目とする（Ｓ３０２）。
【００７７】
次に、ドライバ機能評価部２０８は、ドライバ設定情報保存部２１４が記憶しているドライバ設定情報を参照して、機能拡張が行われていない基本機能と、機能拡張が行われている基本機能とを特定し（Ｓ３０３）、機能拡張が行なわれていない基本機能に関する選択肢を、ドライバ機能情報から取得する（Ｓ３０４）。
【００７８】
続いて、ドライバ機能評価部２０８は、拡張ドライバ機能情報保存部２１２が記憶する拡張ドライバ機能情報（図８）を参照し、拡張ドライバ機能情報に記録されている拡張機能名を、当該基本機能についての選択肢として取得する（Ｓ３０５）。
【００７９】
上述したように、この拡張ドライバ機能情報には、便宜上、基本機能の選択肢のみからなる機能も含まれるため、拡張ドライバ機能情報に記録された拡張機能名を当該基本機能の選択肢として取得すれば、その選択肢には、当該基本機能についての基本選択肢と拡張選択肢とが含まれることとなる。
【００８０】
次に、ドライバ機能評価部２０８は、ステップＳ３０２で取得した機能項目と、ステップＳ３０４で取得した、機能拡張が行なわれていない基本機能に関する選択肢、及び、ステップＳ３０５で取得した、機能拡張が行なわれている基本機能の選択肢を、印刷装置Ｘの機能詳細情報としてＵＩ部２０２に渡す（Ｓ３０６）。
【００８１】
次に、ＵＩ部２０２は、ドライバ機能評価部２０８から受け取った機能詳細情報をWindows（登録商標）に渡して（Ｓ３０７）、処理を終了する。
【００８２】
上述のようにしてWindows（登録商標）に渡された機能詳細情報は、Windows（登録商標）からアプリケーションＹに渡され、アプリケーションＹは、Windows（登録商標）から渡された機能詳細情報に基づいて、例えば、印刷設定画面を表示する。
【００８３】
図１０は、アプリケーションＹが表示する印刷設定画面の一例を示す図である。
図１０の印刷設定画面では、基本機能「原稿サイズ」に対応する「サイズ」ボタンが設けられており、この「サイズ」ボタンを押下することにより、基本機能「原稿サイズ」に関する選択肢が、ドロップダウンリストの形式で表示される。
【００８４】
このドロップダウンリストには、図８に示した拡張ドライバ機能情報に記録された拡張機能名の一部が、基本機能「原稿サイズ」の選択肢として表示されている。
【００８５】
具体的には、例えば、図８に示した拡張ドライバ機能情報の６行目（タイトル行除く）の拡張機能名「Ａ３＋トナーセーブ」に対応する選択肢が、図１０に示すドロップダウンリストの１行目に「Ａ３（２９７×４２０ｍｍ）＋ＴｏｎｅｒＳａｖｅＯｎ」として表示され、同様に、図８の拡張ドライバ機能情報の８行目、１０行目、１２行目、及び２行目の拡張機能名「Ａ３」、「Ｂ４＋トナーセーブ」、「Ｂ４」、及び「Ａ４＋トナーセーブ」に対応する選択肢が、図１０のドロップダウンリストの２行目以降に順次表示されている。
【００８６】
ユーザは、このドロップダウンリストから、例えば、「Ａ３（２９７×４２０ｍｍ）＋ＴｏｎｅｒＳａｖｅＯｎ」を選択すると、基本機能である「原稿サイズ」をＡ３に指定すると共に、固有機能である「トナーセーブ」をＯＮに指定することができる。
【００８７】
上記のようにドロップダウンリストから選択された選択肢は、アプリケーションＹによりＤＥＶＭＯＤＥ構造体２２のパブリック・メンバのうち、基本機能「原稿サイズ」に対応するメンバに書き込まれ、プリンタドライバ２０に渡される。
【００８８】
（３）機能展開処理
次に、機能展開処理について説明する。
本処理は、プリンタドライバ２０が行なう処理であって、アプリケーションＹがＤＥＶＭＯＤＥ構造体２２のメンバに書き込んだ拡張選択肢の名称（拡張機能名）から、当該拡張機能名が示す拡張機能を、当該拡張機能を構成する基本機能の選択肢と固有機能の選択肢に展開して、ＤＥＶＭＯＤＥ構造体２２のメンバのうち、当該基本機能及び固有機能に対応するメンバに、上記展開した選択肢を書き込む処理である。
【００８９】
本処理は、例えばアプリケーションＹがプリンタドライバ２０に対して印刷動作の実行を指示したときに、その印刷動作の前処理として動作を開始する。この印刷動作の実行指示は、例えば、アプリケーションＹが表示する印刷設定画面においてユーザが「ＯＫ」ボタンを押下したときに、アプリケーションＹからプリンタドライバ２０に与えられる。
【００９０】
また、本処理は、例えば、Windows（登録商標）を介したユーザからの指示により、プリンタドライバ２０が印刷装置Ｘの機能設定画面を表示する際にも、その表示のための前処理として実行される。
【００９１】
以下、機能設定処理の手順について、図１１に示すフロー図を用いて説明する。
機能設定処理を開始すると、ＵＩ部２０２は、ドライバ機能評価部２０８にＤＥＶＭＯＤＥ構造体２２のメンバに書き込まれた各機能の設定内容の解析を依頼する（Ｓ４０１）。
【００９２】
次に、ドライバ機能評価部２０８は、ドライバ設定情報保存部２１４に記憶されているドライバ設定情報を参照し、機能拡張が行われていない基本機能と、機能拡張が行われている基本機能とを特定した後（Ｓ４０２）、ＤＥＶＭＯＤＥ構造体２２のメンバのうち、機能拡張が行なわれている基本機能に対応するメンバに記憶された選択肢名（拡張機能名）を取得する（Ｓ４０３）。
【００９３】
そして、拡張ドライバ機能情報保存部２１２が記憶している拡張ドライバ機能情報を参照し、ステップＳ４０３で取得した拡張機能名から、その拡張機能を構成する基本機能の選択肢と固有機能の選択肢を特定する（Ｓ４０４）。
【００９４】
続いて、ドライバ機能評価部２０８は、特定した基本機能の選択肢と固有機能の選択肢をＵＩ部２０２に渡し（Ｓ４０５）、ＵＩ部２０２は、渡された基本機能の選択肢と固有機能の選択肢を、ＤＥＶＭＯＤＥ構造体２２のメンバのうち、当該基本機能及び固有機能に係るメンバにそれぞれ書き込んで（Ｓ４０６）、処理を終了する。
【００９５】
本処理の終了後は、例えば、本処理が印刷処理の前処理として実行された場合には、描画部２０４が、ＤＥＶＭＯＤＥ構造体２２の各メンバを参照し、各メンバの記憶内容に従って印刷装置Ｘを設定すると共に、アプリケーションＹから与えられる画像データに基づき、印刷装置Ｘに印刷動作を指示して、記録用紙への印刷を行う。また、本処理がプリンタドライバ２０による機能設定画面表示の前処理として実行された場合には、例えば、ＵＩ部２０２が、ＤＥＶＭＯＤＥ構造体２２の各メンバを参照して、機能設定画面を表示する。
【００９６】
なお、本実施形態では、周辺機器である印刷装置の動作を管理するデバイスドライバ、即ちプリンタドライバを有する情報処理装置について説明したが、本発明は、スキャナ、モデム、あるいはルータ等の他の周辺機器の動作を管理するデバイスドライバを有する情報処理装置についても同様に適用することができ、これにより、それら周辺機器の固有機能を自由に設定して利用することができる。
【００９７】
次に、本情報処理装置１の変形例について説明する。
本変形例では、プリンタドライバ２０の拡張ドライバ機能情報生成手段２０６は、図５ＢのステップＳ２１７において、基本機能に組み合わせるべき固有機能が、既に別の基本機能と組み合わされ、他の拡張機能の定義に使用されている場合には、当該固有機能を組み合わせ対象から除外して拡張機能を定義するものとする。
【００９８】
一の固有機能（Ｋとする）が、２つの基本機能（Ｓ１及びＳ２とする）に対して重複して組み合わされ、二つの機能組み合わせＳ１＋Ｋ及びＳ２＋Ｋから拡張機能が定義されるものとすると、基本機能Ｓ１及びＳ２はそれぞれ個別に選択肢を選択することができるため、Ｓ１について選択された拡張選択肢により固有機能Ｋに与えられる設定内容と、Ｓ２について選択された拡張選択肢により固有機能Ｋに与えられる設定内容とが矛盾する場合が生じ得る。
【００９９】
本変形例によれば、Ｓ１＋Ｋの組み合わせにより既に拡張機能が定義されている場合には、Ｋを用いた他の組み合わせ（例えばＳ２＋Ｋ）による拡張機能は定義されないため、一つの固有機能に対して矛盾する設定が行なわれるのを防止することができる。
具体的には、ステップＳ２１７（図５Ｂ）において、拡張ドライバ機能情報生成部２０６は、拡張ドライバ機能情報保存部２１２に記憶されている拡張ドライバ機能情報を参照し、当該拡張ドライバ機能情報に記録されている拡張機能の中に、図５ＡのステップＳ２０２で取得した基本機能とは異なる基本機能と、図５ＡのステップＳ２１１において取得した固有機能とが組み合わされて定義された拡張機能があるときは、当該固有機能をステップＳ２１７（図５Ｂ）における機能設定組み合わせの対象から除くものとすればよい。
【０１００】
以上説明したように、本実施形態では、従来のようにＤＤＩに追加した新たな関数等を用いてＤＥＶＭＯＤＥ構造体のプライベート・メンバにアクセスするのではなく、基本機能と固有機能の選択肢の組み合わせを当該基本機能の選択肢に追加し、当該追加された選択肢（拡張選択肢）を用いて固有機能に関する設定情報の参照や変更を行なう。このため、Windows（登録商標） APIのみを使用する既存のアプリケーションであっても、固有機能に関する設定を自由に変更して高度な印刷動作を実行することができる。
【符号の説明】
【０１０１】
１・・・情報処理装置、２・・・ＣＰＵ、４・・・ＲＯＭ、６・・・ＲＡＭ、８・・・ＨＤＤ、１０・・・情報読取部、１２・・・通信インタフェース、１４・・・表示部、１６・・・操作部、１８・・・ＯＳ、２０・・・プリンタドライバ、２２・・・ＤＥＶＭＯＤＥ構造体、３０・・・設定定義手段、３２・・・設定名通知手段、３４・・・機能展開手段、３６・・・機能設定手段、２０２・・・ＵＩ部、２０４・・・描画部、２０６・・・拡張ドライバ機能生成部、２０８・・・ドライバ機能評価部、２１０・・・ドライバ機能情報保存部、２１２・・・拡張ドライバ機能情報保存部、２１４・・・ドライバ設定情報保存部。
【先行技術文献】
【特許文献】
【０１０２】
【特許文献１】特許第４３１０１７２号公報
【図１】
2012150573.tif 000003
【図２】
2012150573.tif 000004
【図３】
2012150573.tif 000005
【図４】
2012150573.tif 000006
【図５Ａ】
2012150573.tif 000007
【図５Ｂ】
2012150573.tif 000008
【図６】
2012150573.tif 000009
【図７】
2012150573.tif 000010
【図８】
2012150573.tif 000011
【図９】
2012150573.tif 000012
【図１０】
2012150573.tif 000013
【図１１】
2012150573.tif 000014
【図１２】
2012150573.tif 000015