(57)【要約】【課題】Ｖ４プリンタドライバの構成に対応した機種共通プリンタドライバを構成することができるプリンタドライバ、情報処理装置および画像処理システムを提供すること。【解決手段】デスクトップ用表示部３６０が、情報処理装置を、ネットワークを介して情報処理装置と接続されるプリンタの機種に関する情報を示す機種識別情報を取得する機器情報取得部３６２、機種識別情報をストア用表示部３７０からのアクセスが可能な領域に書き込む記憶制御部３６４として機能させ、ストア用表示部３７０が、情報処理装置を、領域から機種識別情報を読み込むことで当該機種識別情報に示された機種に応じた表示を行う画面表示部３７１として機能させることで、機種共通プリンタドライバを構成する。【選択図】図６
2018092583.tif 000002
【特許請求の範囲】
【請求項１】
特定のアプリケーションから印刷の要求を受け付け、印刷設定を行うための表示を行う第一モジュールと、前記特定のアプリケーションとは異なるアプリケーションから印刷の要求を受け付け、印刷設定を行うための表示を行う第二モジュールとを含むプリンタドライバであって、
前記第一モジュールは、情報処理装置を、
ネットワークを介して前記情報処理装置と接続されるプリンタの機種に関する情報を取得する取得手段、
前記取得手段によって取得された前記情報に基づいて、前記機種に応じた接続先情報を、前記第二モジュールからのアクセスが可能な領域に書き込む書込み手段
として機能させ、
前記第二モジュールは、前記情報処理装置を、
前記領域から前記接続先情報を読み込むことで、機種に応じた表示を行う処理手段、
として機能させる、プリンタドライバ。
【請求項２】
前記第一モジュールは、さらに前記情報処理装置を、
前記取得手段によって取得された前記情報に基づいて、前記領域とは別の領域に記憶された複数のプリンタの機種に関する機種情報の中から前記情報処理装置と接続されるプリンタに対応する機種情報を取得し、スクリプト言語による処理が可能な形式とした接続先情報を生成する生成手段
として機能させ、
前記書込み手段は、
前記生成手段によって生成された接続先情報を前記領域に書き込む、
請求項１に記載のプリンタドライバ。
【請求項３】
前記第一モジュールは、さらに前記情報処理装置を、
前記取得手段によって取得された情報に基づいて、前記領域とは別の領域に記憶された複数のプリンタの機種に関する機種情報の中から前記情報処理装置と接続されるプリンタに対応する機種情報を取得し、取得した前記機種情報のうち、前記第二モジュールが印刷設定画面を表示するために使用する情報のみから、情報量を減らした簡易な接続先情報を生成する生成手段
として機能させ、
前記書込み手段は、
前記生成手段によって生成された接続先情報を前記領域に書き込む、
請求項１に記載のプリンタドライバ。
【請求項４】
前記接続先情報は、
各プリンタにおいて共通する機種共通情報と、接続されるプリンタごとに設定される機種個別情報とを含む、
請求項２または３に記載のプリンタドライバ。
【請求項５】
前記プリンタドライバは、
前記領域から前記接続先情報を読み込み、該接続先情報に基づいて、禁則処理を行う第三モジュールを含む、
請求項２〜４のいずれか１項に記載のプリンタドライバ。
【請求項６】
前記第三モジュールは、
印刷に関して設定された各設定項目の設定値を示す印刷設定情報の妥当性を評価し、各設定項目における設定可能な一覧を示す印刷能力情報を構築する、
請求項５に記載のプリンタドライバ。
【請求項７】
前記領域は、Queue Property Bagである、
請求項６に記載のプリンタドライバ。
【請求項８】
前記第二モジュールは、Ｗｉｎｄｏｗｓ（登録商標）ストアから提供されるストアアプリからの印刷の要求に応じて印刷設定画面を表示するモジュールであり、
前記第一モジュールは、前記ストアアプリ以外のアプリケーションからの印刷の要求に応じて印刷設定画面を表示するモジュールである、
請求項１〜７のいずれか１項に記載のプリンタドライバ。
【請求項９】
前記第一モジュールは、Printer Extensionであり、
前記第二モジュールは、Store Device Appである、
請求項８に記載のプリンタドライバ。
【請求項１０】
前記取得する手段は、前記情報処理装置と接続されるプリンタの機種に関する情報を、前記プリンタドライバのインストールを行うインストーラからの要求、もしくは前記機種の切り替え、もしくは印刷設定画面の呼び出しを受けて、前記情報処理装置と接続されるプリンタから、またはユーザからの入力により取得する、請求項１〜９のいずれか１項に記載のプリンタドライバ。
【請求項１１】
前記接続先情報は、暗号化方式と、暗号化に用いられる情報とを含む暗号化情報を含み、
前記第三モジュールは、さらに前記情報処理装置を、
前記接続先情報に含まれる前記暗号化情報を用い、印刷に関して設定された各設定項目の設定値を示す印刷設定情報、もしくは前記各設定項目における設定可能な一覧を示す印刷能力情報、またはその両方を暗号化する処理を行う手段として機能させる、請求項５に記載のプリンタドライバ。
【請求項１２】
前記情報処理装置は、印刷に関して設定された各設定項目の設定値を示す印刷設定情報、もしくは前記各設定項目における設定可能な一覧を示す印刷能力情報、またはその両方の少なくとも一部の情報を変更するためのカスタマイズ情報を保持し、
前記書込み手段は、前記カスタマイズ情報を適用して前記接続先情報を生成し、前記領域に書き込む、請求項２〜７、及び請求項１１のいずれか１項に記載のプリンタドライバ。
【請求項１３】
前記接続先情報は前記情報処理装置と接続されるプリンタの機種を識別する機種識別情報である、
請求項１に記載のプリンタドライバ。
【請求項１４】
特定のアプリケーションから印刷の要求を受け付け、印刷設定を行うための表示を行う第一モジュールと、前記特定のアプリケーションとは異なるアプリケーションから印刷の要求を受け付け、印刷設定を行うための表示を行う第二モジュールとを含むプリンタドライバがインストールされた情報処理装置であって、
前記第一モジュールは、
ネットワークを介して前記情報処理装置と接続されるプリンタの機種に関する情報を取得する取得手段と、
前記取得手段によって取得された前記情報に基づいて、前記機種に応じた接続先情報を、前記第二モジュールからのアクセスが可能な領域に書き込む書込み手段と
を含み、前記第二モジュールは、
前記領域から前記接続先情報を読み込むことで、前記機種に応じた表示を行う処理手段
を含む情報処理装置。
【請求項１５】
請求項１４に記載の情報処理装置と、前記情報処理装置から出力された印刷ジョブに基づき、画像処理を実行する画像処理装置とを含む、画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタドライバ、情報処理装置および該情報処理装置を含む画像処理システムに関する。
【背景技術】
【０００２】
プリンタドライバは、情報処理装置に接続されているプリンタを動作させるために、主に２つの役割を担っている。まず、１つ目の役割は、ユーザが印刷設定するためにＵＩ（User Interface）を提供することである。また、２つ目の役割は、ユーザが設定した印刷設定に基づいて、アプリケーションが出力したデータを、プリンタが解釈可能なデータに変換することである。これによって、プリンタは、ユーザが要求する印刷ジョブを実行することができる。
【０００３】
また、異なる機種のプリンタが情報処理装置に複数台接続されている場合には、機種ごとにプリンタドライバを情報処理装置にインストールすることで、各プリンタに対応したＵＩを提供し、対応したデータに変換することができる。
【０００４】
ところで、プリンタドライバは、情報処理装置のＯＳ（Operating System）の種類や、そのバージョンによって、印刷のアーキテクチャが異なる。例えば、ＭｉｃｒｏＳｏｆｔ社が提供するＯＳの、Ｗｉｎｄｏｗｓ（登録商標、以下同じ）では、Ｗｉｎｄｏｗｓ７まではＶｅｒｓｉｏｎ３（以下、Ｖ３として参照する）プリンタドライバが採用され、Ｗｉｎｄｏｗｓ８以降は、新しいアーキテクチャが導入されたＶｅｒｓｉｏｎ４（以下、Ｖ４として参照する）プリンタドライバが採用されている。
【０００５】
Ｖ４プリンタドライバでは、Ｗｉｎｄｏｗｓ８で導入された、タッチ操作で使いやすいデザインのストアアプリに対応した構成となっている。このため、Ｖ４プリンタドライバの構成に対応したプリンタドライバの開発が進められている。
【０００６】
例えば、特開２０１５−２２５４８１号公報（特許文献１）では、プリンタドライバが機種依存情報を保持する技術が開示されている。特許文献１によれば、Ｖ４プリンタドライバにおいて、印刷設定情報を効率的に編集することができる。
【０００７】
また、特開２０１５−２１５６５３号公報（特許文献２）では、同一性判断情報に基づいて、禁則処理の実施または不実施を判定する技術が開示されている。特許文献２によれば、Ｖ４プリンタドライバにおいて、禁則処理を効率的に実施することができる。ここで、禁則処理は、印刷機能の設定の競合を判断する処理である。
【０００８】
しかしながら、Ｖ４プリンタドライバのモジュール構成に起因して、特許文献１および２の技術では、複数の機種で共通して使用可能な機種共通ドライバであって、接続先の機種に応じて異なる処理が可能な機種共通ドライバを構成することができない。ここで、Ｖ３プリンタドライバおよびＶ４プリンタドライバのモジュール構成について説明する。
【０００９】
図９は、プリンタドライバのモジュール構成を示す図であり、図９（ａ）は、Ｖ３プリンタドライバを、図９（ｂ）は、Ｖ４プリンタドライバをそれぞれ示している。Ｖ３プリンタドライバと比較した場合のＶ４プリンタドライバの主な特徴としては、以下のものを挙げることができる。なお、バージョンによって表現に違いがあるが、Ｖ３プリンタドライバのモジュールであるGraphics DDI、Graphics Driverと、Ｖ４プリンタドライバのFilter I/F、Graphics Filterはそれぞれ同様のものである。
【００１０】
第１に、アプリケーションの種類に応じたＵＩが必要なことである。Ｖ４プリンタドライバでは、Ｗｉｎｄｏｗｓストアによって提供されるＷｉｎｄｏｗｓストアアプリと、Ｗｉｎｄｏｗｓストアアプリ以外のアプリケーションであるデスクトップアプリの両方に対応することが求められるので、２種類のＵＩが必要となる。したがって、Ｖ４プリンタドライバの構成では、プリンタドライバが生成する設定画面を表示するために、デスクトップアプリからプリンタドライバが呼び出された場合に画面の表示処理を行うモジュール（Printer Extension）と、ストアアプリからドライバが呼び出された場合に画面の表示処理を行うモジュール（Store Device App）とが、それぞれ異なるモジュールとして必要となる。
【００１１】
第２に、実装言語に制約があることである。Ｖ３プリンタドライバは、モジュールの実装言語に高級言語のＣやＣ＋＋を用いることができる。一方で、Ｖ４プリンタドライバでは、モジュールごとに実装言語が指定されている。例えば、印刷データの描画処理などを行うGraphics FilterはＣやＣ＋＋で実装し、印刷設定の禁則処理を行う禁則スクリプトはＪａｖａｓｃｒｉｐｔ（登録商標、以下同じ）で実装する必要がある。このような実装言語の制約によって、モジュールによっては、Ｖ３プリンタドライバと比較して、行うことができる処理に制限が加えられている。
【００１２】
第３に、各モジュールのアクセス権限にも制約があることである。ストアアプリからの呼び出しにより画面の表示処理を行うモジュールや、禁則スクリプトがアクセスできる記憶領域が制限されている。
【００１３】
これらの制限によって、ストアアプリからの呼び出しにより画面の表示処理を行うモジュールや、禁則スクリプトは、接続されているプリンタとは双方向通信を行うことができず、そのプリンタの機種名を取得することができない。このため、各機種の能力に基づき、印刷設定を行うことができる機種共通ドライバを構成することができなかった。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明は、上記従来技術における課題に鑑みてなされたものであり、Ｖ４プリンタドライバの構成に対応した機種共通プリンタドライバを構成することができるプリンタドライバ、情報処理装置および画像処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
すなわち、本発明によれば、
特定のアプリケーションから印刷の要求を受け付け、印刷設定を行うための表示を行う第一モジュールと、前記特定のアプリケーションとは異なるアプリケーションから印刷の要求を受け付け、印刷設定を行うための表示を行う第二モジュールとを含むプリンタドライバであって、
前記第一モジュールは、情報処理装置を、
ネットワークを介して前記情報処理装置と接続されるプリンタの機種に関する情報を取得する取得手段、
前記取得手段によって取得された前記情報に基づいて、前記機種に応じた接続先情報を、前記第二モジュールからのアクセスが可能な領域に書き込む書込み手段
として機能させ、
前記第二モジュールは、前記情報処理装置を、
前記領域から前記接続先情報を読み込むことで、機種に応じた表示を行う処理手段、
として機能させる、プリンタドライバが提供される。
【発明の効果】
【００１６】
上述したように、本発明によれば、Ｖ４プリンタドライバの構成に対応した機種共通プリンタドライバを構成することができるプリンタドライバ、情報処理装置および画像処理システムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態におけるハードウェアの概略構成を示す図。
【図２】本発明の実施形態における情報処理装置のハードウェア構成図。
【図３】本発明の実施形態における情報処理装置のソフトウェアブロック図。
【図４】Ｖ４プリンタドライバと構成する各モジュールがアクセス可能な領域を示す図。
【図５】プリンタドライバが印刷ジョブを出力する処理の概略を示す図。
【図６】第１の実施形態におけるＶ４プリンタドライバのデータの流れを説明する図。
【図７】第１の実施形態におけるデスクトップ用表示部が実行する処理のフローチャート。
【図８】機種情報に基づいて各モジュールが実行する処理のフローチャート。
【図９】プリンタドライバのモジュール構成を示す図。
【図１０】プリンタドライバをインストールする処理の第１の例を示したシーケンス図。
【図１１】プリンタドライバをインストールする処理の第２の例を示したシーケンス図。
【図１２】プリンタドライバを使用した印刷処理の全体の流れを示したシーケンス図。
【図１３】機種を変更する処理の流れを示したシーケンス図。
【図１４】機種を変更する前後に表示される印刷設定画面を例示した図。
【図１５】機種に応じて接続先情報を生成する処理の流れを示したフローチャート。
【図１６】機種に応じて暗号化する処理の流れを示したフローチャート。
【図１７】接続先情報をカスタマイズする処理の流れを示したフローチャート。
【図１８】第２の実施形態におけるＶ４プリンタドライバのデータの流れを説明する図。
【図１９】第２の実施形態におけるインストール処理の例を示すシーケンス図。
【図２０】第２の実施形態における印刷処理の例を示すシーケンス図。
【図２１】第２の実施形態における機種を変更する処理の例を示すシーケンス図。
【図２２】第２の実施形態における各モジュールが実行する処理の例を示すフローチャート。
【発明を実施するための形態】
【００１８】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜その説明を省略するものとする。また、以下の実施形態では、ＷｉｎｄｏｗｓのＶ４プリンタドライバのアーキテクチャに基づいたプリンタドライバを例に説明するが、本発明は、ＷｉｎｄｏｗｓやＶ４プリンタドライバに限定されるものではない。
【００１９】
図１は、本発明の実施形態におけるハードウェアの概略構成を示す図である。図１では、情報処理装置１１０とプリンタ１２０が、ネットワークを介して接続されている例を示している。この例では、１台の情報処理装置１１０と３台のプリンタ１２０がネットワークを介して接続されているが、情報処理装置１１０は２台以上であってもよい。また、プリンタ１２０は、機種共通プリンタドライバを構成し、使用するため、機種が異なる２台または４台以上であってもよい。
【００２０】
情報処理装置１１０は、各種アプリケーションを実装し、ユーザの操作によってそれらのアプリケーションを実行することができる。また、情報処理装置１１０は、ＯＳに対応したプリンタドライバを備えており、プリンタ１２０に対して印刷ジョブを送信することができる。
【００２１】
プリンタ１２０は、ネットワークを通じて、情報処理装置１１０から印刷ジョブを受信し、実行することができる画像処理装置の１つである。画像処理装置は、プリンタ１２０に限らず、コピー機能、スキャナ機能、ファックス機能、印刷機能等の複数の機能を有するMFP (Multi-Function Peripheral)などであってもよい。印刷ジョブは、情報処理装置１１０のプリンタドライバによって生成され、ＰＤＬ（Page Description Language）のようなプリンタ１２０が解釈可能な言語で記述されたデータ形式で受信することで、プリンタ１２０による印刷が可能となる。
【００２２】
次に、情報処理装置１１０のハードウェア構成について説明する。図２は本発明の実施形態における情報処理装置１１０のハードウェア構成図である。情報処理装置１１０は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、外部Ｉ／Ｆ２０４、通信Ｉ／Ｆ２０５、入力装置２０６、表示装置２０７、記憶装置２０８を含み、各ハードウェアは、バスを介して接続されている。
【００２３】
ＣＰＵ２０１は、情報処理装置１１０の動作を制御するプログラムを実行する装置である。ＲＡＭ２０２は、情報処理装置１１０が実行するプログラムの実行空間を提供するための揮発性の記憶装置であり、プログラムやデータの格納用、展開用として使用される。
ＲＯＭ２０３は、情報処理装置１１０が実行するファームウェアなどのプログラムを記憶するための不揮発性の記憶装置である。
【００２４】
外部Ｉ／Ｆ２０４は、情報処理装置１１０に、フラッシュメモリなどの外部記憶媒体などを接続するためのインターフェースである。通信Ｉ／Ｆ２０５は、有線または無線によって、情報処理装置１１０と、ネットワークとを接続するためのインターフェースである。また、通信Ｉ／Ｆ２０５は、プリンタ１２０に対して印刷ジョブを送信する際にも用いられる。
【００２５】
入力装置２０６は、ユーザが入力する操作を受け付ける装置であり、例として、キーボードや、マウスなどが挙げられる。表示装置２０７は、ユーザに対して情報を表示するための装置であり、例として、液晶ディスプレイなどが挙げられる。
【００２６】
記憶装置２０８は、情報の読み出しおよび書き込みが可能な記憶媒体であり、情報処理装置１１０を機能させるＯＳや、プリンタドライバ、各種アプリケーションなどを記憶することができる。
【００２７】
以上、情報処理装置１１０に含まれるハードウェア構成について説明した。次に、情報処理装置１１０の上記ハードウェアと協動するソフトウェアにより実現される機能手段について説明する。図３は、本発明の実施形態における情報処理装置１１０のソフトウェアブロック図である。ここでは、プリンタドライバ３５０が各機能手段を含むものとして説明する。
【００２８】
情報処理装置１１０には、アプリケーション、通信部３３０、保存部３４０、プリンタドライバ３５０が含まれていて、アプリケーションの種類には、ストアアプリ３１０と、デスクトップアプリ３２０の２種類がある。
【００２９】
ストアアプリ３１０は、アプリケーションのうち、Ｗｉｎｄｏｗｓストアから提供されるアプリケーションであり、例えばＷｉｎｄｏｗｓ８ではＭｅｔｒｏスタイルと呼ばれるＵＩで以て表示されるアプリケーションである。Ｍｅｔｒｏスタイルは、地下鉄（メトロ）や標識をモチーフとした分かりやすいデザインで、タッチ操作に対応した形式のものである。また、ストアアプリ３１０は、印刷対象となるファイルを作成することができる。なお、ストアアプリ３１０は、セキュリティ性の向上や、安定性向上のため、ＯＳによってサンドボックス化されている。すなわち、ストアアプリ３１０は、保護された領域内でしかプログラムを動作させることができないようになっている。
【００３０】
デスクトップアプリ３２０は、アプリケーションのうち、ストアアプリ３１０以外の、保護された領域外でもプログラムを動作させることができるアプリケーションである。デスクトップアプリ３２０は、ストアアプリ３１０と同様に、印刷対象となるファイルを作成することができる。デスクトップアプリ３２０の例としては、Ｍｉｃｒｏｓｏｆｔ Ｗｏｒｄ（登録商標）などの文書作成ソフトや、Ｍｉｃｒｏｓｏｆｔ Ｅｘｃｅｌ（登録商標）などの表計算ソフトが挙げられる。
【００３１】
通信部３３０は、通信Ｉ／Ｆ２０５を介して、機種識別情報の取得や、印刷ジョブの転送など、情報処理装置１１０と、プリンタ１２０との間で、情報の送受信を行う手段である。ここで、機種識別情報とは、現在の接続先となっているプリンタ１２０の機種を特定するための情報である。機種識別情報の一例として、機種名が挙げられ、以下の説明では、機種名を例に説明する。
【００３２】
保存部３４０は、機種情報、言語情報、設定情報など、各種情報を保存する手段である。ここで、機種情報とは、機能などの各機種が有する能力を示す情報であって、保存部３４０には機種ごとに複数の機種情報が記憶されている。また、保存部３４０には、アクセス権限に応じた種々の記憶領域が存在し、各記憶領域のアクセス権限はモジュールによって異なる。なお、保存部３４０に含まれる記憶領域についての詳細は後述する。
【００３３】
プリンタドライバ３５０は、プリンタ１２０を制御するためのドライバであり、印刷画像データの生成や、印刷設定の画面を表示する手段である。プリンタドライバ３５０には、上記モジュール（機能手段）としての、デスクトップ用表示部３６０、ストア用表示部３７０、禁則処理部３８０、描画部３９０が含まれている。
【００３４】
デスクトップ用表示部３６０は、図９（ｂ）におけるPrinter Extensionに対応するモジュールである。デスクトップ用表示部３６０は、例えば、ストアアプリ３１０以外のアプリケーションソフト、すなわち、デスクトップアプリ３２０から印刷の要求を受け付け、印刷設定を行うための画面の表示を行い、印刷設定情報の生成を行う。ここで、画面とは、印刷設定情報を受け付けるための印刷設定画面や、プリンタのオプションの設定および確認を行うためのオプション画面などである。Printer Extension（プリンタ拡張）は、Ｖ４プリンタドライバのデスクトップＵＩにおいて、ベンダ独自の印刷設定画面を表示するものである。
【００３５】
デスクトップ用表示部３６０は、画面表示部３６１、機器情報取得部３６２、印刷設定部３６３、記憶制御部３６４、接続先情報生成部３６５の各種機能手段を含み、これらの機能手段によって、他のモジュール、少なくともストア用表示部３７０と禁則処理部３８０からのアクセスが可能な領域に機種名を格納する。また、Ｖ４プリンタドライバにおけるデスクトップ用表示部３６０は、高級言語によって記述されるため、実行する処理に制
約がなく、アクセスできる領域にも制限はない。
【００３６】
画面表示部３６１は、プリンタ１２０の機種に応じた画面を表示する手段であり、デスクトップアプリ３２０用の画面を表示する。また、画面表示部３６１は、後述する接続先情報に基づいて、設定可能な設定値が入力されるように表示画面の制御を行うことができる。
【００３７】
機器情報取得部３６２は、プリンタ１２０との双方向通信によって、現在接続されている機器の機種名や、当該機器の状態（当該機器に取り付けられているオプションに関するオプション情報、どのサイズの用紙が、どのトレイに入っているかなど）の各種情報を取得する手段である。取得した機種名などは、保存部３４０のいずれのモジュールでもアクセス可能な領域に保存される。このように、デスクトップ用表示部３６０が機種名などを取得し、いずれのモジュールでもアクセス可能な領域に保存することで、ストア用表示部３７０が、機種名などを取得し、取得した機種名などから必要な情報を収集して、機種共通ドライバを構成することができる。
【００３８】
印刷設定部３６３は、ユーザが入力した各種設定情報に基づいて、印刷設定情報（Print Ticket）を生成する手段である。また、印刷設定部３６３は、印刷能力情報（Print Capability）に基づいて、現在接続しているプリンタ１２０の機種の能力に応じた印刷設定を行うことができる。なお、印刷設定情報とは、印刷に関して設定された各設定項目における現在の印刷設定値を示す情報である。設定項目は、例えば用紙サイズや印刷方向などの項目で、印刷設定値は、用紙サイズに対してＡ４、印刷方向に対して縦方向（ポートレート）という情報である。また、印刷能力情報とは、各設定項目における設定可能な一覧を示し、選択肢の表示などに利用される、使用可能な機能を示す情報である。印刷能力情報は、例えばプリンタ１２０がＡ４、Ｂ５サイズでの印刷が可能である場合、Ａ４サイズか、Ｂ５サイズかという選択肢の情報である。
【００３９】
記憶制御部３６４は、取得した機種名、生成した接続先情報、機種名から特定したマッピング情報（例えばマッピングテーブル）、暗号化情報などを、保存部３４０のうち、ストア用表示部３７０や禁則処理部３８０が読み込み可能（アクセス可能）な領域への書き込みを制御する手段である。マッピングテーブルの詳細については後述する。ストア用表示部３７０や禁則処理部３８０が読み込み可能な領域としては、一例として、Queue Property Bagが挙げられる。
【００４０】
接続先情報生成部３６５は、接続先情報を生成する手段である。接続先情報とは、機種情報のうち、現在接続しているプリンタ１２０の機種の機種情報であり、ストア用表示部３７０や禁則処理部３８０が読み込み可能な形式で生成される。接続先情報は、上記の機種情報であってもよいが、余分な情報を省略した簡易版機種情報であってもよい。なお、接続先情報生成部３６５は、接続先情報に加えてマッピング情報、暗号化情報など接続先に関する情報を生成してもよい。
【００４１】
機種情報は、機種毎に備える機能、装着可能なオプション、機能間や機能とオプション間の関係が定義されている設定ファイルや言語ファイルを含む。この設定ファイルはＸＭＬ（Extensible Markup Language）やＪＳＯＮ（JavaScript Object Notation）などのフォーマットで定義されている。言語ファイルも同様である。ちなみに、印刷設定画面やデバイス設定画面に表示するアイコンはＢＭＰやＰＮＧ（Potable Network Graphics）などのフォーマットで定義されている。簡易版機種情報は、ＸＭＬやＪＳＯＮなどのフォーマットで定義された機種情報から余分な情報を取り除き、禁則処理部３８０で処理可能な簡易なフォーマット形式に変更したものである。すなわち、簡易版機種情報は、ストア用表示部３７０が印刷設定画面を表示するために使用する情報のみから生成された、情報量を減らした簡易な接続先情報である。
【００４２】
例えば、同じ機種で、オプションによって動作が変わる部分があったとする。この場合、ＸＭＬでは、オプション１の場合、Ａ動作を実行し、オプション２の場合、Ｂ動作を実行すると記述される。オプション情報が取得され、そのオプションがオプション１であることが分かった場合、簡易版機種情報では、オプション２の動作の記述は不要になるため、その不要な部分を削除し、印刷設定画面に表示するために使用する、オプション１の動作の記述のみとする。
【００４３】
生成した接続先情報は、保存部３４０のうち、ストア用表示部３７０や禁則処理部３８０が読み込み可能な領域に保存される。なお、接続先情報は、簡易版機種情報とするほうが、記憶する情報量が小さくて済み、ストア用表示部３７０や禁則処理部３８０からアクセスしやすいフォーマット形式に変換する際も、簡易に変換することができるので望ましい。
【００４４】
ストア用表示部３７０は、ストアデバイスアプリとも呼ばれ、図９（ｂ）におけるStore Device Appに対応し、Ｗｉｎｄｏｗｓストアから、１つのアプリケーションとしてダウンロードされる。ストア用表示部３７０では、ストアアプリ３１０から印刷の要求を受け付け、印刷設定を行うための画面の表示を行い、印刷設定情報の生成を行う。なお、画面を表示する処理や、印刷設定情報の生成については、デスクトップ用表示部３６０と同様である。また、ストア用表示部３７０は、画面表示部３７１、印刷設定部３７２の各種機能手段を含む。
【００４５】
ストア用表示部３７０は、Windows Store Appsの制限に依存するため、上記Queue Property Bagなどの Property Bagにのみアクセスが可能で、外部リソースへはアクセスできない。これは、Windows Store Appsが、セキュリティ性や安定性を確保するため、ＯＳによりサンドボックス化されていて、ＯＳ側でガードされていることに起因する。したがって、ストア用表示部３７０は、サンドボックス外にアクセスする処理において、プリンタドライバで必要となるファイルアクセスＡＰＩ（Application Programming Interface）や、ネットワーク通信用ＡＰＩなどが使えない。そのため、ストア用表示部３７０は、双方向通信によって現在接続しているプリンタの機種名などを取得することができない。
【００４６】
画面表示部３７１は、デスクトップ用表示部３６０の画面表示部３６１と同様に、プリンタ１２０の機種に応じた画面を表示する手段であり、ストアアプリ用のＭｅｔｒｏスタイルに対応したＵＩを表示する。
【００４７】
印刷設定部３７２は、デスクトップ用表示部３６０の印刷設定部３６３と同様に、ユーザが入力した各種設定情報に基づいて、印刷設定情報（Print Ticket）を生成する手段である。
【００４８】
禁則処理部３８０は、図９（ｂ）における禁則Scriptに対応し、画面の表示を伴わずに印刷設定に関する処理を行う手段である。印刷設定に関する処理とは、例えば、アプリケーションで印刷設定を受け付ける場合に、アプリケーションからの要求に応じて、印刷能力情報を返したり、アプリケーションが生成した印刷設定情報が設定可能な値であるかの整合性や妥当性などを判定したりする処理である。
【００４９】
より具体的な禁則処理の例としては、プリンタ１２０のフィニッシング機能において、ステープルが選択されている場合には、パンチングを行うことはできないといった処理である。このような禁則処理を行うことで、両立することが想定しにくい処理を排除することができ、適切な印刷設定を行うことができる。
【００５０】
なお、禁則処理部３８０にも種々の制約が存在し、ストア用表示部３７０と同様に、Property Bagにのみアクセスが可能で、外部リソースへはアクセスできない。これは、ファイルアクセスＡＰＩやネットワーク通信用ＡＰＩを、ＯＳ側でガードしているためである。また、禁則処理部３８０の実装言語は、用途を限定したスクリプト（例えば、Ｊａｖａｓｃｒｉｐｔ）のみであるため、簡易的な処理しか出来ず、高級言語のような複雑な処理はできない。さらに、スクリプトはプリンタドライバ３５０のインストール時にそのままシステムに配置されることから、外部から処理内容を読み取られることがある。処理内容としては、例えば、機能と印刷設定情報や印刷能力情報との対応付け（マッピング）を挙げることができる。そこで、このマッピングなどを隠すことで、セキュリティを向上させることができる。禁則処理部３８０のセキュリティ性を向上する方法については、後述する。
【００５１】
描画部３９０は、図９（ｂ）におけるGraphics Filterに対応し、印刷設定に基づいて、プリンタ１２０によって解釈が可能な形式の描画データを生成し、印刷ジョブとしてプリンタ１２０に対して出力する手段である。描画データは、例えば、ＰＤＬのようなデータ形式で出力される。なお、描画部３９０も、デスクトップ用表示部３６０と同様に、実行する処理に制約がなく、アクセスできる領域にも制限はない。
【００５２】
ここでは、各機能手段は、全部がソフトウェアの実行により実現されているが、これに限られるものではなく、その一部または全部を同等の機能を提供するハードウェアとして実装することもできる。
【００５３】
ところで、保存部３４０には、保存できる領域が複数存在しているが、各領域にアクセスできる権限は、Ｖ４プリンタドライバのモジュールごとに異なる。そこで、次に、上述したソフトウェアブロックにおけるＶ４プリンタドライバがアクセスできる領域について説明する。図４は、Ｖ４プリンタドライバと構成する各モジュールがアクセス可能な領域を示す図である。なお、図４（ａ）は、Ｖ４プリンタドライバがアクセス可能な領域を示し、図４（ｂ）は、Ｖ４プリンタドライバの各モジュールがアクセス可能な領域を示している。
【００５４】
図４（ａ）に示すように、Ｖ４プリンタドライバは、保存部３４０に含まれる各種保存領域にアクセス可能である。保存部３４０には、保存領域として、Driver Property Bag３４０ａと、Queue Property Bag３４０ｂと、User Property Bag３４０ｃと、独自領域３４０ｄが含まれている。なお、保存部３４０のうち、Driver Property Bag３４０ａと、Queue Property Bag３４０ｂと、User Property Bag３４０ｃは、Ｖ４プリンタドライバがデータを保持しておくべき記憶領域として、あらかじめＯＳによって定義されている記憶領域である。
【００５５】
Driver Property Bag３４０ａは、読み込みのみが可能な領域であり、各プリンタドライバの構成ファイルが格納される。構成ファイルとは、機種情報を構築するための情報であり、例えば、機種共通情報、機種個別情報、言語情報などがある。構成ファイルに含める情報は、プリンタドライバ３５０のパッケージ時までに決定される。プリンタドライバパッケージは、プリンタドライバ３５０の機能を実現するために必要なファイルのほか、インストールやアンインストールを行うための制御ファイルなどを含むことができる。
【００５６】
機種共通情報および機種個別情報は、設定項目や、同時に設定できない設定項目に関する禁則情報、印刷設定画面の表示、印刷設定情報を生成するための情報などである。なお、機種共通情報は、プリンタ１２０の機種に依存しない情報であり、機種個別情報は、プリンタ１２０の機種に依存する情報である。設定項目の例としては、集約設定、オプション情報、フィニッシング機能などが挙げられる。集約設定に関する情報は、機種共通情報に含まれ、オプション情報やフィニッシング機能に関する情報は、機種個別情報に含まれる。
【００５７】
また、言語情報は、設定項目の表示名を言語別に格納したものであり、例えば、ホチキス留めを行うフィニッシング機能として日本語の「ステープル」と英語の「ｓｔａｐｌｅ」とが対応付けられて、保存されている。
【００５８】
Queue Property Bag３４０ｂは、読み込みおよび書き込み可能な領域であり、各モジュールからの読み込みが可能であるが、書き込みは管理者などの権限に依存する。デスクトップ用表示部３６０は、プリンタアイコンごとの情報を、Queue Property Bag３４０ｂに格納することができ、現在接続しているプリンタ１２０の機種の情報を生成し、保持する。プリンタアイコンは、同じプリンタ１２０に対して２以上のアイコンを作成することができる。このため、デスクトップ用表示部３６０は、同じプリンタであっても、２以上のアイコンの各々に対し、異なる情報を生成することができる。
【００５９】
Queue Property Bag３４０ｂには、デスクトップ用表示部３６０が、例えば、双方向通信や、ユーザの操作による機種の切り替えなどによって取得した、機種名やオプション情報を格納する。格納する情報は、デスクトップ用表示部３６０によって、ストア用表示部３７０や禁則処理部３８０が処理できる形式に変換され、格納される。
【００６０】
上述したように格納することで、ストア用表示部３７０や、禁則処理部３８０がQueue Property Bag３４０ｂにアクセス可能であることから、格納されている機種名に基づいて、現在接続している機種の機種個別情報を特定することができる。このため、機種共通情報と特定した機種個別情報とを結合して、機種共通プリンタドライバを構成することができる。
【００６１】
さらに、Queue Property Bag３４０ｂには、接続先情報生成部３６５が生成する、接続先情報を格納することができる。この接続先情報は、禁則処理部３８０によって実行するために、スクリプト言語による処理が可能な形式であることが好ましい。なぜならば、各モジュールが処理を行う度に上述した結合処理を行うことは効率が悪く、また、禁則スクリプトと比べて、デスクトップ用表示部３６０には処理の制限がないので、他のモジュールよりも効率よく処理できる。したがって、デスクトップ用表示部３６０が、禁則処理部３８０やストア用表示部３７０が処理可能な形式に変換して格納することで、効率的な処理を行うことができる。
【００６２】
このように、デスクトップ用表示部３６０が、Queue Property Bag３４０ｂなどの、他のモジュールからのアクセスが可能な領域に機種名を格納することによって、機種共通ドライバを構成することができる。
【００６３】
User Property Bag３４０ｃは、プリンタアイコンごとや、ユーザごとに情報を格納する領域であって、読み込みおよび書き込み可能な領域であるが、他のユーザの情報にはアクセスできない。User Property Bag３４０ｃは、プリンタアイコンごと、またはユーザごとに限らず、プリンタアイコンごと、かつユーザごとに情報を格納してもよい。これにより、同じプリンタを使用する場合でも、ユーザごとに使用可能な機能を変更することができる。また、User Property Bag３４０ｃには、例えば、使用頻度の高い印刷設定を、「お気に入り」として保存することができる。
【００６４】
独自領域３４０ｄは、ベンダ独自のフォーマットで情報をデスクトップ用表示部３６０によって格納することができる領域で、ファイルやレジストリ情報などを格納する領域である。
【００６５】
上述した保存領域は、図４（ｂ）に示すように、アクセスできる権限はモジュールによって異なる。図４（ｂ）は、Ｖ４プリンタドライバのモジュールを詳細に示したものであり、禁則処理部３８０、ストア用表示部３７０、デスクトップ用表示部３６０、描画部３９０の各モジュールがアクセスできる領域を示している。
【００６６】
図４（ｂ）に示すように、Driver Property Bag３４０ａと、Queue Property Bag３４０ｂと、User Property Bag３４０ｃには、各モジュールからアクセスが可能である。一方で、独自領域３４０ｄにアクセスできるのは、デスクトップ用表示部３６０と、描画部３９０に限られる。これは、図９に示した、Ｖ４プリンタドライバのアーキテクチャ構成上の制約によるものである。これにより、ストア用表示部３７０や禁則処理部３８０が、ＯＳが使用するレジストリ等を変更し、ＯＳの動作に悪影響を与えることを防ぐことができる。
【００６７】
ストア用表示部３７０と禁則処理部３８０は、Property Bagにはアクセス可能であり、外部ファイルへのアクセスは制限される。そこで、デスクトップ用表示部３６０が、接続先情報を、スクリプト言語による処理が可能な形式で、Queue Property Bag３４０ｂに格納することで、禁則処理部３８０は、禁則処理を実行することができる。
【００６８】
これまで、情報処理装置の機能構成、保存領域について説明してきた。以下、プリンタドライバ３５０のインストール、プリンタドライバ３５０を使用した印刷処理、その印刷処理の中で実施される機種共通プリンタドライバを構成する処理について詳細に説明する。
【００６９】
［第1の実施形態］
まず、プリンタドライバ３５０のインストールについて、図１０を参照して説明する。プリンタドライバ３５０のインストールは、例えばウィザードと呼ばれる機能を使用して行うことができる。プリンタドライバ３５０のインストールでは、Add Printer Wizardというウィザードを使用することができる。一方、ウィザード以外に、インストーラを使用してインストールを行うこともできる。ここでは、インストーラを使用してインストールする例について説明する。
【００７０】
プリンタドライバ３５０のインストール処理は、インストーラ４００、ＯＳ４１０、インストールされたプリンタドライバ３５０の禁則処理部３８０を使用して行われる。
【００７１】
インストーラ４００は、ＯＳ４１０の制御の下で、プリンタドライバ３５０を動作させるために、プリンタドライバ３５０をインストールする（図１０S1）。このインストールでは、例えばインストール先を選択し、プリンタドライバ３５０の機能を実現するために必要なファイルを、選択したインストール先にコピーし、各種の設定を行う。これにより、ＯＳ４１０上でプリンタドライバ３５０が動作することが可能となり、上記の機能手段が生成され、その機能手段による処理が可能となる。
【００７２】
インストーラ４００は、インストールされたプリンタドライバ３５０に対応したプリンタ１２０のプリンタアイコンを生成する（図１０S2）。プリンタアイコンの生成により、ユーザがプリンタ１２０を選択し、選択したプリンタ１２０で印刷ジョブを実行させることができる。
【００７３】
インストーラ４００は、Queue Property Bag３４０ｂに予め格納されたカスタマイズ情報を読み込む（図１０S3）。カスタマイズ情報は、機能ごとに設定された初期値（デフォルト値）を変更する場合の変更後の値や、設定可能な選択肢を増減する場合の増減後の値、すなわち変更値などの情報である。例えば、カスタマイズ情報は、カラー印刷も、白黒（モノクロ）印刷も可能なプリンタで、モノクロ印刷のみを使用させるために、モノクロ印刷のみという情報とすることができる。
【００７４】
インストーラ４００は、カスタマイズ情報が登録されている場合、デフォルト値の設定変更を行う（図１０S4）。インストーラ４００は、カスタマイズ情報が登録されていない場合、インストール処理を終了する。
【００７５】
ＯＳ４１０は、その設定変更を受けて、禁則処理部３８０に対して、その変更値が妥当な値であるかの確認（設定チェック）を依頼する（図１０S5）。禁則処理部３８０は、この段階では、機種が特定されていないため、Driver Property Bag３４０ａに格納された機種共通情報を参照し、変更値が妥当かどうかを確認する。妥当でない場合、妥当でない旨の通知を返すことができる。ＯＳ４１０は、妥当でない旨の通知をインストーラ４００に送り、インストーラ４００は、その通知を受けて、変更値に変更せず、インストール処理を終了することができる。
【００７６】
ＯＳ４１０は、禁則処理部３８０から妥当である旨の通知をインストーラ４００に返し、インストーラ４００が、その通知を受けると、デフォルト値を変更値に変更する。インストーラ４００は、この変更値への変更を、レジストリ情報を変更することにより行う（図１０S6）。レジストリ情報は、ＯＳ４１０で用いられる各種の設定情報で、上記のデフォルト値や選択肢の情報なども含まれる。
【００７７】
なお、機種共通情報や機種個別情報などは、Driver Property Bag３４０ａに事前に格納しておくことができる。
【００７８】
図１０に示したインストール処理では、機種共通プリンタドライバを構成するために必要な機種名などを取得していないが、この機種名などを取得する処理は、インストール処理に含めてもよい。なお、インストール時に機種名などを取得することで、その後は、プリンタ１２０を切り替えた際に機種名などを取得しなくても、機種共通プリンタドライバを構成することができ、その機種に固有の機能も使用することが可能となる。
【００７９】
図１１を参照して、機種名などを取得する処理を含むインストール処理について説明する。図１１に示す処理は、図１０に示した処理と同様、インストーラ４００、ＯＳ４１０、禁則処理部３８０を使用し、さらに、デスクトップ用表示部３６０に含まれる機器情報取得部３６２、記憶制御部３６４、接続先情報生成部３６５と、プリンタ１２０とを使用して行われる。
【００８０】
図１１に示すS1〜S3の処理は、図１０に示したS1〜S3の処理と同様であり、図１１に示すS11〜S13の処理は、図１０に示したS4〜S6の処理と同様であるため、それらの説明については省略する。カスタマイズ情報に設定されている情報が機種によっては適用できない場合があるため、機種情報に基づいてカスタマイズ情報を修正した上で適用する必要がある。例えば、カスタマイズ情報において、カラーがデフォルト値として設定してあったとしても、モノクロの機種であった場合、カラーをデフォルト値とせず、モノクロにする等の修正を先に行う必要がある。
【００８１】
そこで、インストーラ４００は、機器情報取得部３６２に対して、現在接続されているプリンタ１２０の機種名、機種の状態の取得を要求する（図１１S4）。インストーラ４００は、機種名のみの取得を要求してもよい。
【００８２】
機器情報取得部３６２は、プリンタ１２０と双方向通信を行い、プリンタ１２０から機種名を取得する（図１１S5）。また、機器情報取得部３６２は、プリンタ１２０から機種の状態（機種状態）を取得する（図１１S6）。この例では、最初に機種名を取得し、その後に機種状態を取得しているが、取得する順序が反対であってもよいし、同時に取得してもよい。
【００８３】
機器情報取得部３６２は、機種名等の取得後、接続先情報生成部３６５に対して、接続先情報の生成を要求する（図１１S7）。接続先情報生成部３６５は、機器情報取得部３６２により取得された機種名に基づき、接続先情報を生成する（図１１S8）。機器情報取得部３６２は、記憶制御部３６４に対して、機種名、機種情報、接続先情報の保存を要求する（図１１S9）。記憶制御部３６４は、機器情報取得部３６２により取得した機種名、機種状態、接続先情報をQueue Property Bag３４０ｂに保存する（図１１S10）。機器情報取得部３６２は、機種名、機種状態を取得したことをインストーラ４００に通知する。インストーラ４００は、保存された機種名等を参照し、デフォルト設定の変更、レジストリ情報の変更を行う。
【００８４】
インストーラ４００は、ソフトウェアで、ストアアプリ３１０以外のアプリケーションである。このため、インストーラ４００は、ストアアプリ３１０のような制限を受けることなく、外部との通信を行うことができる。したがって、インストーラ４００は、図１１に示したようなデスクトップ用表示部３６０を介することなく、直接プリンタ１２０と双方向通信を行い、プリンタ１２０から機種名などを取得することもできる。
【００８５】
次に、インストールされたプリンタドライバが印刷ジョブを出力する際に行う処理について図５を以て説明する。図５は、プリンタドライバが印刷ジョブを出力する処理の概略を示す図であり、図５（ａ）は、Ｖ３プリンタドライバの場合を、図５（ｂ）は、Ｖ４プリンタドライバの場合をそれぞれ示している。
【００８６】
図５（ａ）に示すＶ３プリンタドライバでは、プリンタＵＩで設定された印刷設定は、ＤＥＶＭＯＤＥ構造体に格納され、アプリケーションに送られる。ＤＥＶＭＯＤＥ構造体は、ベンダ共通のPublic部分と、ベンダ独自のPrivate部分とから構成され、印刷設定で設定された情報を保持する。その後、アプリケーションからスプーラへ、ＤＥＶＭＯＤＥ構造体を含むＧＤＩ（Graphics Device Interface）が送られる。
【００８７】
次に、スプーラは、ＤＤＩ（Device Driver Interface）をレンダリング部に対して出力する。レンダリング部は、ＤＤＩの命令に基づいて、ＰＤＬのような印刷を行うためのデータ形式に変換し、印刷命令をプリンタに出力することで、印刷を実施する。
【００８８】
一方、図５（ｂ）に示すＶ４プリンタドライバでは、デスクトップアプリ３２０の拡張ＵＩであるプリンタ拡張、または、ストアアプリ３１０の拡張ＵＩであるＤＣＡ（Device Companion Application）と、プリンタＵＩとが、印刷設定情報（Print Ticket）や印刷能力情報（Print Capability）をやりとりすることで、ユーザに対して、設定項目の変更などを提供する。プリンタ拡張やＤＣＡは、ベンダ独自の印刷設定画面をユーザに提供することを可能にし、ベンダがこれらをサポートすることをドライバパッケージのmanifestファイルに明記していない場合、ＯＳ標準の印刷設定画面がプリンタＵＩにより提供される。なお、ＯＳ標準の印刷設定画面には、デスクトップ用とストア用の２つがある。ちなみに、ＯＳ標準の印刷設定画面では、認証印刷等のベンダ独自の印刷設定項目は表示されない。
【００８９】
なお、禁則スクリプトでは、画面の表示を伴わず、すなわち、ユーザの操作によらずに、印刷設定情報や印刷能力情報に関する禁則処理を行う。図５（ａ）のようなＶ３プリンタドライバにおいても禁則処理を行うモジュールはあったが、Ｖ４プリンタドライバではＪａｖａｓｃｒｉｐｔによって実装するという制約がある。
【００９０】
また、アプリケーションは、プリンタＵＩから印刷設定情報を受信し、スプーラに対して、ＸＰＳ（XML Paper Specification）形式のデータを送信する。なお、ＸＰＳ形式のデータには、印刷設定情報が含まれている。レンダリング部は、ＸＰＳフィルタとデータの送受信を行い、印刷命令をプリンタに出力することで、印刷を実施する。
【００９１】
図１２を参照して、上記のプリンタドライバが印刷ジョブを出力する際に行う処理を詳細に説明する。図１２に示す処理は、ストアアプリ３１０およびデスクトップアプリ３２０のいずれかのアプリ４２０、ＯＳ４１０、禁則処理部３８０、デスクトップ用表示部３６０およびストア用表示部３７０のいずれか、描画部３９０を使用して行われる。この例では、デスクトップ用表示部３６０に含まれる機器情報取得部３６２、記憶制御部３６４、接続先情報生成部３６５を使用するものとして説明する。
【００９２】
ユーザは、ストアアプリ３１０およびデスクトップアプリ３２０のいずれかのアプリ４２０を使用し、印刷するためのデータを作成し、アプリ４２０に対してそのデータの印刷を要求する。ユーザは、既に作成済みのデータを読み出し、アプリ４２０を使用してそのデータを表示し、そのデータの印刷を要求してもよい。作成済みのデータは、情報処理装置内のデータであってもよいし、ネットワークに接続された他の機器からダウンロードして取得したデータであってもよい。データは、文書、表、図形のデータであってもよいし、画像データであってもよい。
【００９３】
アプリ４２０は、画面の表示を伴わないで、現在設定されている印刷設定の確認を行う（図１２S1）。例えば、アプリ４２０には、使用するプリンタ１２０や使用する用紙サイズなどが設定されている。ＯＳ４１０は、禁則処理部３８０に対して、印刷設定の設定値が妥当かどうかの確認（設定チェック）を依頼する（図１２S2）。禁則処理部３８０は、その設定値の確認を行い、確認結果をＯＳ４１０に返す。ＯＳ４１０は、その結果をアプリ４２０に返す。
【００９４】
アプリ４２０は、受け取った結果に基づき、設定されているプリンタ１２０や用紙サイズなどの情報、ユーザ設定画面へ切り替えるボタン、印刷を実行するための印刷ボタン等を表示させることができる。ユーザは、この表示において、異なるプリンタ１２０を選択したり、用紙サイズなどを変更したりすることができる。
【００９５】
ユーザは、プリンタ１２０を決定し、詳細な印刷設定を行うために、上記のユーザ設定画面へ切り替えるボタンを押下する。アプリ４２０は、このボタンの押下を受けて、ＯＳ４１０に対して印刷設定の表示を要求する（図１２S3）。ＯＳ４１０は、禁則処理部３８０に対して、設定チェックを依頼する（図１２S4）。禁則処理部３８０は、設定チェックを行い、確認結果をＯＳ４１０に返す。
【００９６】
ＯＳ４１０は、確認結果が妥当であり、印刷設定が確定したことを受けて、デスクトップ用表示部３６０に対して、確定した印刷設定に基づくユーザ設定画面の起動を指示する（図１２S5）。これに対し、ＯＳ４１０は、確認結果が妥当でない場合、妥当でない印刷設定の設定項目をデフォルト設定にしたり、削除したりするなどして、ユーザ設定画面の起動を指示することができる。起動されたユーザ設定画面では、ユーザは印刷設定を変更することができる。デスクトップ用表示部３６０は、ユーザによる印刷設定の確認や変更が終了し、ユーザ設定画面が閉じられたことを、ＯＳ４１０を介してアプリ４２０に通知する。
【００９７】
ＯＳ４１０は、上記の通知を受けると、図１１のS4と同様の機種名、機種情報の取得を、デスクトップ用表示部３６０に含まれる機器情報取得部３６２に対して要求する（図１２S6）。デスクトップ用表示部３６０内では、図１１のS5〜S10と同様の処理を、図１２のS7〜S12において実施する。すなわち、プリンタ１２０に対して機種名、機種状態の取得を要求し、接続先情報を生成し、取得した機種名、機種状態、生成した接続先情報を保存する。
【００９８】
アプリ４２０は、ユーザによる印刷ボタンの押下を受けて、印刷の実行をＯＳ４１０に対して指示する（図１２S13）。ＯＳ４１０は、その指示を受けて、描画部３９０に対して、印刷の実行を命令する（図１２S14）。描画部３９０は、印刷設定に基づき、プリンタ１２０により解釈可能な形式の描画データを生成し、印刷ジョブとして、設定されているプリンタ１２０に対して出力する（図１２S15）。
【００９９】
なお、図１２S2およびS4における設定チェックは、印刷設定情報についてのみ行うこともできるし、印刷設定情報と印刷能力情報の両方について行ってもよい。印刷設定情報および印刷能力情報は、図１２の説明で記載されているように様々なアプリに通知する形式である。また、上記の設定チェックやユーザ設定画面の起動は、プリンタドライバ３５０が備える機能手段により実行されることから、以下、プリンタドライバ３５０が実行する処理について詳細に説明する。
【０１００】
まず、図５（ｂ）にて説明したＶ４プリンタドライバが実行する処理によるデータの流れについて、より具体的に説明する。図６は、第１の実施形態におけるプリンタドライバ３５０の構成に対応したＶ４プリンタドライバのデータの流れを説明する図である。
【０１０１】
デスクトップ用表示部３６０は、図９（ｂ）におけるPrinter Extensionに対応するモジュールであり、Ｖ４プリンタドライバにおいて、実行する処理に制約がないことから、プリンタ１２０と双方向通信を行うことができる。そこで、まず、双方向通信を行うことで、デスクトップ用表示部３６０は、現在接続している機種の機種名を取得し、Queue Property Bag３４０ｂに格納する。デスクトップ用表示部３６０は、ユーザに入力させる、または指定させることにより機種名を取得してもよい。
【０１０２】
デスクトップ用表示部３６０は、機種名を、少なくともデスクトップ用表示部３６０が呼び出される複数のタイミングで取得することができる。そのタイミングとしては、ユーザがプリンタ１２０などのデバイスに対して各種の設定を行うためのデバイス設定画面を開き、デバイス設定画面で使用する機種を切り替えたときを一例として挙げることができる。そのほかのタイミングとしては、上記の印刷時の印刷設定画面が呼び出されるとき（図１２）を挙げることができる。上記のデバイス設定画面で使用する機種を切り替える処理を、図１３を参照して説明する。
【０１０３】
オプション設定で使用される標準のDevice Property Sheetは、Ｖ４プリンタドライバでベンダが拡張することはできない。これは、Ｖ４プリンタドライバのアーキテクチャの仕様が拡張できない仕様になっているためである。そこで、別の手段によりデバイス設定画面を表示し、デバイス設定画面により拡張した機能、例えば上記の機種名の取得を実現する。
【０１０４】
ユーザは、情報を閲覧・検索するアプリケーションであるエクスプローラ４４０を使用し、表示されたプリンタアイコン上で右クリックしてメニューを開き、そのメニューからデバイス拡張を呼び、デスクトップ用表示部３６０を呼び出すことができる。なお、この方法は一例であるので、これに限られるものではない。このようにして、エクスプローラ４４０は、デスクトップ用表示部３６０に対して、デバイス設定画面を呼び出し、表示させるように指示する（図１３S1）。
【０１０５】
デスクトップ用表示部３６０は、その指示を受けて、デバイス設定画面を表示する（図１３S2）。そして、デスクトップ用表示部３６０は、現在接続しているプリンタ１２０との間で双方向通信を行い、機種名を取得する（図１３S3）。また、デスクトップ用表示部３６０は、機種状態も取得する（図１３S4）。ここでは、現在接続しているプリンタ１２０の機種を自動的に取得する構成を例示したが、これに限られるものではなく、ユーザが使用する機種を手動で設定してもよい。また、機種名と機種状態の取得の順序は逆であっても、同時であってもよい。
【０１０６】
続いて、デスクトップ用表示部３６０は、図１１のS7、S8と同様に、接続先情報生成部３６５で接続先情報を生成する（図１３S5）。
【０１０７】
デスクトップ用表示部３６０は、ユーザによる設定変更を受け付けることができる。ユーザは、現在の設定を無視して、表示された設定項目のチェックボックスにチェックを入れるなどして、設定を変更することができる。デスクトップ用表示部３６０は、取得した機種名や機種状態、設定変更する場合の変更値、及び接続先情報などを、Queue Property Bag３４０ｂに保存する（図１３S6）。デスクトップ用表示部３６０は、それらの保存が終了し、デバイス設定画面が閉じられたことを、エクスプローラ４４０に対して通知する。
【０１０８】
本実施形態では、インストールの場面（図１１）、印刷実行の場面（図１２）、これから説明するデバイス設定画面が呼び出される場面（図１３）の３つの場面全てにおいて、機種名の取得や、接続先情報の生成を行っているが、必ずしもこれら全ての場面でこれらの処理を行う必要はなく、いずれか１つ、もしくは２つの場面で行うようにしてもよい。
【０１０９】
再び図６を参照して、デスクトップ用表示部３６０は、Queue Property Bag３４０ｂに格納された機種名に基づいて、Driver Property Bag３４０ａを参照し、スクリプト言語に対応した接続先情報を生成する。ここで生成した接続先情報を、Queue Property Bag３４０ｂに格納することで、ストア用表示部３７０や禁則処理部３８０からアクセスすることが可能となる。接続先情報には、機種の機能やオプションの他、機種の能力を表示するためのアイコンや、言語情報などが含まれる。なお、オプションは、現在接続している機種の状態であって、デスクトップ用表示部３６０とプリンタ１２０との双方向通信によって取得されるものである。接続先情報に含まれるオプション情報としては、その機種の機能を拡張するために自動原稿送り装置（ADF）が追加されている場合、そのＡＤＦを装備している旨の情報を一例として挙げることができる。
【０１１０】
デスクトップ用表示部３６０がQueue Property Bag３４０ｂに生成する接続先情報は、ストア用表示部３７０や禁則処理部３８０が処理することから、それらの機能部が処理しやすいＪｓｏｎ形式やＩｎｉ形式などのテキスト形式や、シリアライズしたバイナリ形式などのデータ形式が好ましい。
【０１１１】
このように、デスクトップ用表示部３６０が、接続先情報を動的に生成することで、プリンタ１２０の状態も考慮した接続先情報を格納することができる。したがって、インストール前に作成してプリンタドライバのパッケージに含める必要がなく、パッケージ容量を削減することができる。
【０１１２】
また、デスクトップ用表示部３６０は、Queue Property Bag３４０ｂに、マッピングテーブルを格納することもできる。マッピングテーブルは、機能を示す文字列であって、禁則処理部３８０等のプリンタドライバ３５０の内部処理において使用される文字列と、印刷設定情報や印刷能力情報で用いられる文字列との対応関係を示したテーブルである。マッピングテーブルは、機種名に応じて、Driver Property Bag３４０ａのマッピングデータから引き当てられる。このようなマッピングテーブルによって、機種ごとの機能を、どの印刷設定情報や印刷能力情報に入れ込み、格納するかを決定することができる。
【０１１３】
この決定する処理の例としては、ドライバ内部で扱われている機能の選択肢を、どの印刷設定情報、印刷能力情報に割り当てるかを機種毎に変更する処理を挙げることができる。この処理により、例えば機種Aではトレイ１、トレイ２、大容量トレイとして内部で扱い、機種Bではトレイ１、トレイ２、トレイ３として内部で扱っているものを、印刷能力情報ではどちらもトレイ１、トレイ２、トレイ３と記載することができる。
【０１１４】
なお、マッピングテーブルも、接続先情報と同様に、テキスト形式や、シリアライズしたバイナリ形式のような、ストア用表示部３７０や禁則処理部３８０が処理しやすいデータ形式であることが好ましい。
【０１１５】
また、禁則処理部３８０は、図９（ｂ）の禁則scriptに対応するモジュールであり、印刷設定情報や印刷能力情報の処理を行う。禁則処理部３８０は、例えば、印刷設定の組み合わせが妥当であるかを判断する。妥当でないと判断された組み合わせについては、非表示にすることができる。また、禁則処理部３８０は、ＯＳ４１０やアプリ４２０などからの要求に応じて、プリンタドライバ３５０が設定可能な機能の情報を示す印刷能力情報を返信し、プリンタドライバ３５０に設定されている各種機能の設定値を示す印刷設定情報を返信する。印刷設定情報は、図４には図示しないDevmode Property Bagに格納することができる。
【０１１６】
禁則処理部３８０は、例えば、課金処理や認証処理に使用される個人情報などのセキュリティ情報を、プリンタ１２０に出力される印刷設定情報に格納する場合に、暗号化処理を行う。また、Queue Property Bag３４０ｂに機種名が保存されている場合には、禁則処理部３８０は、機種名に応じて、Driver Property Bag３４０ａから機種に応じたマッピングテーブルを取得することができ、該マッピングテーブルで処理を行うこともできる。
【０１１７】
一方で、禁則処理部３８０は、スクリプトがそのままＯＳ４１０に配置されるだけであるため、外部から処理が見える状態にある。このため、暗号化する場合でも、どのように暗号化しているのかを外部から解読することができ、暗号化のセキュリティ性が低くなってしまう。また、機能の中には、外部に漏洩してはならない個人情報（ユーザ名やパスワードなど）を利用するものがある。そこで、以下のような方法によってセキュリティ性を確保することが好ましい。
【０１１８】
まず、デスクトップ用表示部３６０が、機種が特定された段階で、マッピングテーブルとともに、暗号化のための情報（暗号化情報）を生成し、マッピングテーブルとともに、暗号化情報をQueue Property Bag３４０ｂに保存する。このとき、暗号化情報は、デスクトップ用表示部３６０によって、バイナリ化など外部から解読しにくい形式に変換される。暗号化情報は、ＷＥＰ(Wired Equivalent Privacy)、ＴＫＩＰ(Temporal Integrity Protocol)、ＡＥＳ(Advanced Encryption Standard)などの暗号化方式（暗号化アルゴリズム）と、暗号化に用いられる情報とを含む。暗号化情報は、接続先情報に記載し、保存される。
【０１１９】
禁則処理部３８０は、接続先情報に含まれる暗号化情報を用いて、個人情報を暗号化し、暗号化された個人情報を該当する箇所に入れ込み、暗号化された個人情報含む印刷設定情報を生成する。このように、暗号化情報を、デスクトップ用表示部３６０のような外部からの解読が難しいモジュールが保持することで、セキュリティ性を向上することができる。
【０１２０】
暗号化方式および暗号化に用いられる情報は、機種によって対応可能な方式が異なるため、接続先のプリンタ１２０が決定した段階で、デスクトップ用表示部３６０が、決定されたプリンタ１２０に合った暗号化ロジックをマッピングテーブルに格納することができる。また、暗号化方式および暗号化に用いられる情報は、デスクトップ用表示部３６０ではなく、Driver Property Bag３４０ａに機種毎に格納し、選択している機種によって、利用する暗号化方式および暗号化に用いられる情報を取得し適用することもできる。
【０１２１】
なお、上述の説明では、デスクトップ用表示部３６０が暗号化情報を保持する場合の例を示したが、外部からの解読が難しい形式とした暗号化情報を、各機種個別情報に記憶し、デスクトップ用表示部３６０が、機種情報から機種ごとの暗号化情報を取得し、接続先情報に書き込んでもよい。したがって、セキュリティ性を向上するためには、暗号化情報に含まれる暗号化方式と引数とを、Queue Property Bag３４０ｂとDriver Property Bag３４０ａとにそれぞれ分けて保存することが好ましい。
【０１２２】
なお、禁則処理部３８０は、全ての機種の処理を記載せず、接続先の機種に応じてDriver Property Bag ３４０ａから禁則処理の内容を取得する構成とすることができる。このような構成とすることで、機種共通ドライバに対応可能な機種を追加するアップデートを行う場合であっても、モジュールを変更することなく、機種情報の追加のみでアップデートが可能となる。
【０１２３】
以上、Ｖ４プリンタドライバが実行する処理によるデータの流れについて説明した。次に、上述した図１１、図１２、図１３において行う処理について、より具体的なフローチャートを以て説明する。図７は、第１の実施形態におけるデスクトップ用表示部３６０が実行する処理のフローチャートであり、機種情報を特定する場面で行う処理である。図８は、機種情報に基づいて各モジュールが実行する処理のフローチャートであり、図７の処理で保存した機種情報に基づいて処理を行う場面である。
【０１２４】
まず、図７について説明する。デスクトップ用表示部３６０は、ステップＳ１０００から処理を開始する。なお、図７の処理は、インストーラ４００やエクスプローラ４４０などからデスクトップ用表示部３６０が呼び出されときや、ファイルの印刷を行うために印刷設定を行う印刷設定画面が呼び出されたときなどに、処理を開始する。
【０１２５】
その後、ステップＳ１００１で、プリンタ１２０の機種名を取得する。機種名は、デスクトップ用表示部３６０が、プリンタ１２０と双方向通信することで取得してもよいし、ユーザの操作によって、機種を直接指定することで取得してもよい。この処理は、図１１のS5、図１２のS7、図１３のS3に対応する処理である。
【０１２６】
次に、ステップＳ１００２で、取得した機種名を、Queue Property Bag３４０ｂに格納する。この処理は、図１３のS5に対応する処理である。ステップＳ１００３では、ステップＳ１００２で格納した機種名に基づいて、スクリプト処理が可能な形式の接続先情報を構築する。接続先情報は、Driver Property Bag３４０ａが保持する複数の機種の機種情報から取得した機種名を参照することで、現在の接続先の機種に対応する機種情報を特定し、現在の接続先に関する接続先情報を構築する。この処理は、図１１のS8、図１２のS10に対応する処理である。
【０１２７】
ステップＳ１００３で構築した接続先情報は、ステップＳ１００４で、Queue Property Bag３４０ｂに格納される。この処理は、図１１のS10、図１２のS12に対応する処理である。この例では、機種名と接続先情報とを別個に格納しているが、図１１や図１２に示すように接続先情報を生成した段階で一緒に格納してもよい。
【０１２８】
なお、ステップＳ１００４の処理は必須ではなく、以下の処理によって代替できる。デスクトップ用表示部３６０が格納する処理を行わない場合には、禁則処理部３８０およびストア用表示部３７０は、Queue Property Bag３４０ｂから取得した機種名に応じて、Driver Property Bag３４０ａに保持された機種情報のうち、機種名に対応する機種情報を特定することで、接続先情報を生成することができる。
【０１２９】
その後、ステップＳ１００５では、デスクトップ用表示部３６０の印刷設定部３６３が、Queue Property Bag３４０ｂからオプション情報を取得する。そして、ステップＳ１００６で、機種情報やオプション情報などに基づいて、取得したプリンタ１２０のＵＩを構築し、表示することで、ユーザに提供する。その後、ステップＳ１００７で、処理を終了する。ステップＳ１００５〜ステップＳ１００７の処理は、図１２のS2、もしくは図１２のS12の後であって、図１２のS13の前、または図１２のS14の後であって図１２のS15の前に実行することができる。
【０１３０】
次に、図８について説明する。図８（ａ）は、禁則処理部３８０が印刷設定情報を出力するフローチャートである。この処理も、上記と同様、図１２のS12の後であって、図１２のS13の前に実行される処理である。
【０１３１】
図８（ａ）では、禁則処理部３８０は、ステップＳ２０００から処理を開始し、ステップＳ２００１で、デスクトップアプリ３２０から印刷設定情報を受け取る。次に、ステップＳ２００２で、Queue Property Bag３４０ｂに格納されている、接続先情報を取得する。
【０１３２】
ステップＳ２００３では、取得した接続先情報に基づいて、機種共通情報の妥当性を評価する。機種共通情報の妥当性の評価は、各プリンタに共通する、機種依存しない印刷設定情報の設定値が妥当な値かどうかを確認することで行う。機種共通情報としては、例えば、集約設定などが挙げられる。
【０１３３】
その後、ステップＳ２００４では、取得した接続先情報に基づいて、機種個別情報の設定値の妥当性を評価する。ステップＳ２００３の妥当性の評価は、プリントスキーム（設定項目）ごとに、オプション情報や、フィニッシング機能などが、選択されているプリンタ１２０の能力を超えないことを確認することで行う。
【０１３４】
ステップＳ２００３およびＳ２００４で妥当性の評価をした後、ステップＳ２００５で、デスクトップアプリ３２０に印刷設定情報を返却し、ステップＳ２００６で処理を終了する。なお、暗号化情報については、暗号化を行った印刷設定情報を生成した後、削除されることが望ましい。
【０１３５】
また、図８（ｂ）は、禁則処理部３８０が印刷能力情報を出力するフローチャートである。この処理は必要に応じて実施することができる。この処理は、上記と同様、図１２のS2、もしくは図１２のS12の後であって、図１２のS13の前、または図１２のS14の後であって、図１２のS15の前に実行することができる。印刷能力情報を構築する処理の場合には、禁則処理部３８０は、図８（ｂ）のステップＳ３０００から処理を開始し、ステップＳ３００１で、デスクトップアプリ３２０から印刷能力情報構築命令を受け取る。次に、ステップＳ３００２で、Queue Property Bag３４０ｂに格納されている、接続先情報を取得する。なお、ステップＳ３００２の処理は、ステップＳ２００２の処理と同様である。
【０１３６】
次に、ステップＳ３００３では、能力情報や言語情報を構築する。ステップＳ３００３における能力情報の構築では、プリントスキームごとに設定値の選択肢を構築する。また、言語情報は、ＯＳやデスクトップアプリ３２０のロケール（国や地域の設定）に基づいて、各設定値の言語情報を構築する。設定値の言語情報としては、例えば、「ステープル、右上」等の情報である。
【０１３７】
ステップＳ３００４では、Queue Property Bag３４０ｂに格納されている、現在のプリンタ１２０のオプション情報に基づいて、ステップＳ３００３で構築した能力情報を補正する。能力情報の補正は、設定値の選択肢の追加や削除等である。
【０１３８】
その後、ステップＳ３００５で、印刷能力情報をデスクトップアプリ３２０に返却し、ステップＳ３００６で、処理を終了する。
【０１３９】
図８（ａ）および（ｂ）の処理によって、禁則処理部３８０は、プリンタ１２０に応じた機種共通情報や機種個別情報を構築することができる。なお、図８（ａ）および（ｂ）に示す処理は、別個に並行して、必要に応じて連続して（シーケンシャルに）実施することができる。
【０１４０】
次に、ストア用表示部３７０がストア用ＵＩを構築する処理について、図８（ｃ）を以て説明する。ストア用表示部３７０は、ステップＳ４０００から処理を開始し、ステップＳ４００１で、禁則処理部３８０から印刷設定情報を取得する。次に、ステップＳ４００２で、ストア用表示部３７０は、Queue Property Bag３４０ｂを参照して、現在接続している機種の機種名を取得する。この処理は、図１２のS8に対応する処理である。なお、図１２と異なる点は、この処理が行われるのが、ストアアプリ３１０から印刷要求が行われた場合であるという点である。
【０１４１】
その後、ステップＳ４００３で、ストア用表示部３７０は、Queue Property Bag３４０ｂから、接続先情報を読み込む。次に、ステップＳ４００４で、現在接続している機種に対応した印刷能力情報を構築し、印刷設定情報の妥当性を評価する。
【０１４２】
次に、ステップＳ４００５では、現在接続している機種の能力に対して、印刷設定情報を反映したＵＩを構築し、表示することで、ユーザに提供し、ステップＳ４００６で、処理を終了する。ステップＳ４００３〜ステップＳ４００６の処理は、上記と同様、図１２のS12の後であって、図１２のS13の前に実行される処理である。
【０１４３】
ここまでに説明した通り、図８（ｃ）の処理によって、ストア用表示部３７０は、接続先の機種に応じたＵＩを生成することができる。したがって、図６に示した各種処理を実行することで、Ｖ４プリンタドライバにおける機種共通プリンタドライバを構成することができる。
【０１４４】
図８（ｃ）の処理によって表示されるＵＩの例を、図１４に示す。図１４（ａ）は、カラー印刷が可能なカラー機に接続した場合のストア用表示部３７０が表示するＵＩの一例を示した図である。図１４（ｂ）は、図１３に示した処理により機種をモノクロ機に切り替えた場合のストア用表示部３７０が表示するＵＩの一例を示した図である。
【０１４５】
図１４（ａ）に示すように、カラー機に接続した場合は、破線で示すカラー／モノクロの印刷設定項目が表示され、いずれの設定項目も選択可能になる。モノクロ機に切り替えると、図１４（ｂ）に示すように、カラー／モノクロの印刷設定項目自体が表示されなくなる。
【０１４６】
次に、図１５を参照して、図７のステップＳ１００３の接続先情報を構築する詳細な処理について説明する。図１５は、図７のＳ１００３およびＳ１００４の接続先情報の生成および記憶とともに、マッピング情報と暗号化情報も記憶する場合の例を示した図である。接続先情報は、上述した簡易版機種情報が望ましいことから、ここでは、機種に応じて、簡易版機種情報を生成する処理について説明する。この処理は、デスクトップ用表示部３６０が、ストア用表示部３７０および禁則処理部３８０が処理を行う際に使用する簡易版機種情報を生成する処理である。図１５に示す処理は、図１１のS5〜S10、図１２のS7〜S12、図１３のS3〜S5で行うことが可能である。
【０１４７】
ステップＳ１５００から処理を開始し、ステップＳ１５０１では、デスクトップ用表示部３６０は、Queue Property Bag３４０ｂから現在接続しているプリンタ１２０の機種名を取得する。ステップＳ１５０２では、デスクトップ用表示部３６０は、取得した機種名に基づき、Driver Property Bag３４０ａから該当する機種情報を取得する。機種情報は、ＸＭＬやＪＳＯＮなどのフォーマットで定義されていることから、ステップＳ１５０３では、機能を定義するＸＭＬファイルおよび言語を定義するＪＳＯＮファイルから、オプション情報に応じて、印刷設定画面の表示に必要な情報だけを取得し、取得した必要な情報から簡易版機種情報を生成する。このとき、簡易版機種情報は、禁則処理部３８０で処理可能な簡易なフォーマット形式に変更される。そして、ステップＳ１５０４で、デスクトップ用表示部３６０は、生成した簡易版機種情報をQueue Property Bag３４０ｂに保存する。
【０１４８】
ステップＳ１５０５では、デスクトップ用表示部３６０は、ステップＳ１５０１で取得した機種名に基づき、Driver Property Bag３４０ａから該当するマッピングデータを取得する。デスクトップ用表示部３６０は、取得したマッピングデータをマッピングテーブルに反映し、ステップＳ１５０６で、マッピングテーブルをQueue Property Bag３４０ｂに保存する。また、デスクトップ用表示部３６０は、ステップＳ１５０７で、暗号化情報を生成し、ステップＳ１５０８で、生成した暗号化情報をQueue Property Bag３４０ｂに保存する。この保存により、ステップＳ１５０９で処理を終了する。ここでは、先にマッピングデータを取得して保存し、その後、暗号化情報を生成して保存する処理となっているが、これに限られるものではなく、暗号化情報を生成して保存する処理を先に実行してもよいし、両者を同時に実行してもよい。
【０１４９】
図１６を参照して、印刷設定情報の暗号化を行う処理について説明する。この暗号化処理は、暗号化すべき印刷設定（機能）がプリンタドライバ３５０に入力された後であって、図１３のS2において禁則処理部３８０が呼び出されたタイミングや、図１３のS14で描画部３９０が呼び出された後、描画部３９０からＯＳ４１０を介して禁則処理部３８０が呼び出されるため、その呼び出されたタイミング等で行うことができる。なお、この暗号化処理は、禁則処理部３８０が行うことができる。
【０１５０】
ステップＳ１６００から処理を開始し、ステップＳ１６０１では、禁則処理部３８０は、印刷設定情報を受け取る。ステップＳ１６０２では、禁則処理部３８０は、Queue Property Bag３４０ｂに保存した簡易版機種情報を読み込む。また、ステップＳ１６０３で、禁則処理部３８０は、Queue Property Bag３４０ｂに保存されたマッピングテーブルも読み込む。なお、禁則処理部３８０は、マッピングテーブルを先に読み込み、後に簡易版機種情報を読み込んでもよい。
【０１５１】
ステップＳ１６０４では、禁則処理部３８０は、簡易版機種情報の中の機能の１つを選択する。そして、ステップＳ１６０５で、禁則処理部３８０は、選択した機能が暗号化する機能かどうかを判断する。暗号化する機能かどうかは、マッピングテーブルから判断することができる。マッピングテーブルは、機能に対応し、その機能が暗号化する機能かどうかを示し、暗号化する場合、どの暗号化方式でどの印刷設定情報に入れ込むかという情報を含むためである。なお、マッピングデータは、暗号化の強度の情報を含んでいてもよい。暗号化する機能である場合、ステップＳ１６０６へ進み、暗号化する機能でない場合、ステップＳ１６０８へ進む。
【０１５２】
デスクトップ用表示部３６０は、機種毎および強度毎の暗号化に用いられる情報のDriver Property Bag３４０ａ上の保存場所、または上述した暗号化に用いられる情報の生成方法を知っている。この保存場所または生成方法は、コードとして保持し、このコードは外部から解読することができない。デスクトップ用表示部３６０は、機種名を取得後、その保存場所から暗号化に用いられる情報を取得し、またはその生成方法に従って暗号化に用いられる情報を生成し、Queue Property Bag３４０ｂの特定の場所に保存する。
【０１５３】
ステップＳ１６０６では、禁則処理部３８０が、Queue Property Bag３４０ｂの特定の場所に保存された、その機能および強度に対応した暗号化に用いられる情報を取得する。ここでは、強度の情報も考慮しているが、単に機能に対応した暗号化に用いられる情報であってもよい。ステップＳ１６０７では、禁則処理部３８０は、取得した暗号化に用いられる情報を使用し、その機能に使用する個人情報などを暗号化し、暗号化した情報を印刷設定情報などに入れ込み、格納する。
【０１５４】
このとき、禁則処理部３８０は、機種に関係なく、Queue Property Bag３４０ｂの特定の場所から暗号化に用いられる情報を取得する。このため、外部から解読可能な禁則処理部３８０の処理として、暗号化のための情報や暗号化のための処理を直接記述する必要がなくなり、セキュリティを向上させることができる。また、禁則処理部３８０は、ステップＳ１６０７で格納した後、Queue Property Bag３４０ｂの特定の場所に保存された暗号化に用いられる情報を削除する。これにより、暗号化に用いられる情報をQueue Property Bag３４０ｂ上に保存している期間を短くし、よりセキュリティを向上させることができる。
【０１５５】
ステップＳ１６０８では、禁則処理部３８０は、全ての機能を選択したかを判断し、選択していない場合、ステップＳ１６０４へ戻り、次の機能を選択する。これに対し、全ての機能を選択した場合、ステップＳ１６０９へ進み、暗号化処理を終了する。
【０１５６】
ところで、図１０に示したプリンタドライバのインストール処理では、カスタマイズ情報を読み込み、レジストリ情報を変更した。上記の簡易版機種情報は、このインストール時に決定したカスタマイズ情報を適用し、カスタマイズすることができる。図１７を参照して、簡易版機種情報をカスタマイズする処理について説明する。
【０１５７】
はじめに、カスタマイズ情報は、レジストリに書き込まれる情報で、初期値を変える場合や、設定値自体を限定する場合などに利用される。設定値自体を限定する場合の例としては、集約設定で、１枚の紙に１ページ、２ページ、４ページの印刷が可能な設定を、２ページのみに限定する場合を挙げることができる。
【０１５８】
ステップＳ１７００から処理を開始し、図１５に示した処理と同様、ステップＳ１７０１では、デスクトップ用表示部３６０は、現在接続しているプリンタ１２０の機種名を取得する。ステップＳ１７０２では、デスクトップ用表示部３６０は、取得した機種名に基づき、Driver Property Bag３４０ａから該当する機種情報を取得する。そして、ステップＳ１７０３において、デスクトップ用表示部３６０は、機能を定義するＸＭＬファイルおよび言語を定義するＪＳＯＮファイルから、オプション情報に応じて、必要な情報だけを取得し、取得した必要な情報から簡易版機種情報を生成する。
【０１５９】
ステップＳ１７０４では、デスクトップ用表示部３６０は、レジストリにカスタマイズ情報があるかを判断する。ある場合は、ステップＳ１７０５へ進み、ない場合は、ステップＳ１７０６へ進む。ステップＳ１７０５では、デスクトップ用表示部３６０は、簡易版機種情報の機能毎にカスタマイズ情報を適用する。具体的には、初期値の変更や選択肢の増減を行う。
【０１６０】
ステップＳ１７０６では、デスクトップ用表示部３６０は、カスタマイズ情報が適用された簡易版機種情報または何も適用せず、何の変更も行わない簡易版機種情報を、Queue Property Bag３４０ｂに保存する。
【０１６１】
その後は図１５に示した処理と同様、ステップＳ１７０７において、デスクトップ用表示部３６０は、ステップＳ１７０１で取得した機種名に基づき、Driver Property Bag３４０ａから該当するマッピングデータを取得する。デスクトップ用表示部３６０は、取得したマッピングデータをマッピングテーブルに反映し、ステップＳ１７０８で、マッピングテーブルをQueue Property Bag３４０ｂに保存する。この保存により、ステップＳ１７０９で処理を終了する。
【０１６２】
［第２の実施形態］
第１の実施形態では、デスクトップ用表示部３６０が、Queue Property Bag３４０ｂに機種識別情報に応じて生成した接続先情報を記憶する場合の例について説明を行ったが、Queue Property Bag３４０ｂに記憶する接続先情報を生成する処理は好適な一例であり、必須ではない。第２の実施形態では、デスクトップ用表示部３６０が、Queue Property Bag３４０ｂに記憶する接続先情報の生成をデスクトップ用表示部３６０が行わない場合の処理の例について説明する。
【０１６３】
＜Ｖ４プリンタドライバのデータの流れ＞
図１８は、第２の実施形態に係るＶ４プリンタドライバのデータの流れを説明する図である。
【０１６４】
デスクトップ用表示部３６０は、第１の実施形態で述べたようにプリンタ１２０と双方向通信を行うことができる。そこで、まず、デスクトップ用表示部３６０は、プリンタ１２０と双方向通信を行い、現在接続しているプリンタ１２０の機種識別情報（機種名等）を取得し、取得した機種識別情報をQueue Property Bag３４０ｂに接続先情報として格納する。
【０１６５】
好ましくは、このとき、デスクトップ用表示部３６０は、現在接続しているプリンタ１２０の機種状態（オプション情報、どのサイズの用紙が、どのトレイに入っているか等）を取得し、Queue Property Bag３４０ｂに格納する。
【０１６６】
デスクトップ用表示部３６０が、機種識別情報（及び機種状態）を取得するタイミングは複数ある。例えば、
１）プリンタドライバ３５０を情報処理装置にインストールするとき
２）ユーザの操作により、機種が変更されたとき、または機種識別情報の取得が必要になったとき
３）デスクトップアプリ３２０が、ＵＩを表示するとき
等である。
【０１６７】
なお、本実施形態では、デスクトップ用表示部３６０は、接続情報の生成を行わない。本実施形態では、ストア用表示部３７０、及び禁則処理部３８０は、Queue Property Bag３４０ｂに格納された機種識別情報を取得し、機種識別情報によって特定される機種の機種情報をDriver Property Bag３４０ａから取得する。これにより、ストア用表示部３７０、及び禁則処理部３８０は、現在接続されているプリンタ１２０の機種情報を、Driver Property Bag３４０ａから取得し、所定の処理を実行することができるようになる。
【０１６８】
好ましくは、ストア用表示部３７０、及び禁則処理部３８０は、Queue Property Bag３４０ｂに格納された機種識別情報を取得し、機種識別情報によって特定される機種のマッピングデータを取得する。これにより、ストア用表示部３７０、及び禁則処理部３８０は、取得したマッピングデータを用いて、現在接続されているプリンタ１２０のマッピングテーブルを作成し、作成したマッピングテーブルに従って所定の処理を実行することができるようになる。
【０１６９】
なお、ストア用表示部３７０、及び禁則処理部３８０が実行する所定の処理は、第１の実施形態と同様である。
【０１７０】
＜処理の流れ＞
続いて、第２の実施形態に係る処理の流れについて説明する。
【０１７１】
（インストール処理）
図１９は、第２の実施形態におけるインストール処理の例を示すシーケンス図である。なお、図１９に示す処理のうち、ステップＳ１〜Ｓ６の処理は、図１１に示す第１の実施形態のインストール処理（第２の例）と同様なので、ここでは、第１の実施形態との相違点を中心に説明を行う。
【０１７２】
本実施形態では、機器情報取得部３６２は、図１９のステップＳ５、Ｓ６で、プリンタ１２０から機種名及び機種状態を取得した後、接続先情報の生成を行わずに、図１９のステップＳ７の処理を実行する。
【０１７３】
図１９のステップＳ７において、機器情報取得部３６２は、記憶制御部３６４に対して、取得した機種名及び機種状態の保存を要求する。
【０１７４】
図１９のステップＳ８において、記憶制御部３６４は、機器情報取得部３６２により取得した機種名（機種識別情報）、機種状態を、Queue Property Bag３４０ｂに保存する。また、機器情報取得部３６２は、機器名、機種状態を取得したことをインストーラ４００に通知する。
【０１７５】
インストーラ４００は、図１９のステップＳ３でカスタマイズ情報が登録されていた場合、図１９のステップＳ９以降に示すデフォルト値の変更処理を実行する。
【０１７６】
図１９のステップＳ９において、インストーラ４００は、デフォルト値の設定変更をＯＳ４１０に要求する。
【０１７７】
図１９のステップＳ１０において、ＯＳ４１０は、デフォルト値の設定変更の要求を受けて、禁則処理部３８０に対して、カスタマイズ情報の変更値が妥当な値であるかの確認（設定チェック）を依頼する。禁則処理部３８０は、機器情報取得部３６２が取得した機種名から特定される機種情報をDriver Property Bag３４０ａから取得し、取得した機種情報を用いて、変更値が妥当かどうかを確認する。変更値が妥当でない場合、禁則処理部３８０は、変更値が妥当でない旨の通知をＯＳ４１０に返すことができる。この場合、ＯＳ４１０は、変更値が妥当でない旨の通知をインストーラ４００に送り、インストーラ４００は、その通知を受けて、デフォルト値の設定を変更せずに、インストール処理を終了する。
【０１７８】
別の一例として、図１９のステップＳ１０において、ＯＳ４１０は、禁則処理部３８０に対して、カスタマイズ情報の変更値の矛盾を解決する禁則処理（例えば、妥当でない設定項目や設定値等を変更する、削除する等）を要求するものであっても良い。この場合、禁則処理部３８０は、カスタマイズ情報の変更値の矛盾を解決して、妥当な変更値を生成し、変更値が妥当である旨をＯＳ４１０に通知する。
【０１７９】
ＯＳ４１０は、禁則処理部３８０から、カスタマイズ情報の変更値が妥当である旨の通知を受けると、その通知をインストーラ４００に返す。
【０１８０】
図１９のステップＳ１１において、インストーラ４００は、カスタマイズ情報の変更値が妥当である旨の通知を受けると、カスタマイズ情報の変更値をデフォルト値に反映させる。例えば、インストーラ４００は、レジストリ情報を変更することにより、カスタマイズ情報の変更値をデフォルト値に反映させる。
【０１８１】
（印刷処理）
図２０は、第２の実施形態における印刷処理の例を示すシーケンス図である。なお、図２０に示す処理のうち、ステップＳ１〜Ｓ５の処理は、図１２に示す第１の実施形態の印刷処理と同様なので、ここでは、第１の実施形態との相違点を中心に説明を行う。
【０１８２】
図２０のステップＳ６において、デスクトップ用表示部３６０は、機種名、機種状態の取得を、機器情報取得部３６２に要求する。
【０１８３】
図２０のステップＳ７において、機器情報取得部３６２は、プリンタ１２０と双方向通信を行い、プリンタ１２０から機種名を取得する。また、図２０のステップＳ８において、機器情報取得部３６２は、プリンタ１２０から機種状態を取得する。
【０１８４】
本実施形態では、機器情報取得部３６２は、図２０のステップＳ７、Ｓ８で、プリンタ１２０から機種名及び機種状態を取得した後、接続先情報の生成を行わずに、図２０のステップＳ９の処理を実行する。
【０１８５】
図２０のステップＳ９において、機器情報取得部３６２は、記憶制御部３６４に対して、取得した機種名及び機種状態の保存を要求する。
【０１８６】
図２０のステップＳ１０において、記憶制御部３６４は、機器情報取得部３６２により取得した機種名（機種識別情報）、機種状態を、Queue Property Bag３４０ｂに保存する。
【０１８７】
図２０のステップＳ１１において、デスクトップ用表示部３６０は、機器情報取得部３６２が取得した機種名から特定される機種情報をDriver Property Bag３４０ａから取得し、取得した機種情報を用いて印刷設定画面を表示する。表示された印刷設定画面では、ユーザは印刷設定を変更することができる。デスクトップ用表示部３６０は、ユーザによる印刷設定の確認や変更が終了し、ユーザ設定画面が閉じられたことを、ＯＳ４１０を介してアプリ４２０に通知する。
【０１８８】
図２０のステップＳ１２において、アプリ４２０は、例えば、ユーザによる印刷ボタンの押下を受けて、印刷の実行をＯＳ４１０に対して指示する。
【０１８９】
図２０のステップＳ１３において、ＯＳ４１０は、アプリ４２０からの指示を受けて、描画部３９０に対して印刷の実行を命令する。図２０のステップＳ１４において、描画部３９０は、印刷設定に基づき、プリンタ１２０により解釈可能な形式の描画データ（印刷可能な印刷データ）を生成し、印刷ジョブとして、設定されているプリンタ１２０に対して出力する。
【０１９０】
（機種を変更する処理）
図２１は、第２の実施形態における機種を変更する処理の例を示すシーケンス図である。なお、図２１に示す処理のうち、ステップＳ１〜Ｓ４の処理は、図１３に示す第１の実施形態の機種を変更する処理と同様なので、ここでは、第１の実施形態との相違点を中心に説明を行う。
【０１９１】
本実施形態では、デスクトップ用表示部３６０は、図２１のステップＳ３、Ｓ４で機種名及び機種状態を取得した後、接続先情報の生成を行わずに、ユーザによる設定変更を受け付ける。
【０１９２】
図２１のステップＳ５において、デスクトップ用表示部３６０は、取得した機種名や機種状態、設定変更する場合の変更値などを、Queue Property Bag３４０ｂに保存する。デスクトップ用表示部３６０は、それらの保存が終了し、デバイス設定画面が閉じられたことを、エクスプローラ４４０に対して通知する。
【０１９３】
このように、本実施形態では、デスクトップ用表示部３６０は、接続情報の生成を行わない。
【０１９４】
続いて、図２２を用いて、本実施形態に係る各モジュールが実行する処理の例について説明する。
【０１９５】
（印刷設定情報の出力処理）
図２２（ａ）は、第２の実施形態における印刷設定情報の出力処理の例を示すフローチャートである。この処理は、第２の実施形態に係る禁則処理部３８０が、印刷設定情報を出力する処理の例を示しており、図８（ａ）に示した第１の実施形態に係る印刷設定情報を出力する処理に対応している。
【０１９６】
禁則処理部３８０は、ステップＳ２２１０から処理を開始し、ステップＳ２２１１において、デスクトップアプリ３２０から印刷設定情報を受け取る。
【０１９７】
ステップＳ２２１２において、禁則処理部３８０は、Queue Property Bag３４０ｂに格納されている機種識別情報（例えば機種名等）を取得する。
【０１９８】
ステップＳ２２１３において、禁則処理部３８０は、取得した機種識別情報によって特定される機種情報を、Driver Property Bag３４０ａから取得する。例えば、禁則処理部３８０は、取得した機種識別情報によりプリンタ１２０の機種を特定し、特定した機種に対応する機種情報を、Driver Property Bag３４０ａから取得する。
【０１９９】
ステップＳ２２１４において、禁則処理部３８０は、取得した機種情報に基づいて、機種共通情報の妥当性を評価する。機種共通情報の妥当性の評価は、各プリンタに共通する、機種に依存しない印刷設定情報の値が妥当な値かどうかを確認することによって行われる。
【０２００】
好ましくは、禁則処理部３８０は、確認結果が妥当でない場合、印刷設定情報の矛盾を解決する禁則処理（例えば、妥当でない設定項目や設定値等を変更する、削除する等）を実行し、機種共通の印刷設定情報の設定項目や設定値等の矛盾を解消させる。
【０２０１】
ステップＳ２２１５において、禁則処理部３８０は、取得した機種情報、及び機種状態に基づいて、機種個別情報の設定値の妥当性を評価する。
【０２０２】
機種個別情報の設定値の妥当性の評価は、プリンタの機種に依存する印刷設定情報の設定項目ごとに、オプション情報や、フィニッシング機能等が、選択されているプリンタ１２０の能力を超えないことを確認することで行う。
【０２０３】
好ましくは、禁則処理部３８０は、確認結果が妥当でない場合、印刷設定情報の矛盾を解決する禁則処理（例えば、妥当でない設定項目や設定値等を変更する、削除する等）を実行し、機種に依存する印刷設定情報の設定項目や設定値等の矛盾を解消させる。
【０２０４】
ステップＳ２２１６において、禁則処理部３８０は、ステップＳ２２１４、Ｓ２２１５における印刷設定情報の妥当性の評価結果を反映した印刷設定情報を、デスクトップアプリ３２０に返却し、ステップＳ２２１７において処理を終了する。
【０２０５】
（印刷能力情報の出力処理）
図２２（ｂ）は、第２の実施形態における印刷能力情報の出力処理の例を示すフローチャートを示している。この処理は、第２の実施形態に係る禁則処理部３８０が、印刷能力情報を出力する処理の例を示しており、図８（ｂ）に示した第１の実施形態に係る印刷能力情報を出力する処理に対応している。
【０２０６】
禁則処理部３８０は、ステップＳ２２２０から処理を開始し、ステップＳ２２２１において、デスクトップアプリ３２０から印刷能力情報構築命令を受け取る。
【０２０７】
ステップＳ２２２２において、禁則処理部３８０は、Queue Property Bag３４０ｂに格納されている機種識別情報（例えば機種名）を取得する。
【０２０８】
ステップＳ２２２３において、禁則処理部３８０は、取得した機種識別情報によって特定される機種情報を、Driver Property Bag３４０ａから取得する。例えば、禁則処理部３８０は、取得した機種識別情報によりプリンタ１２０の機種を特定し、特定した機種に対応する機種情報を、Driver Property Bag３４０ａから取得する。
【０２０９】
ステップＳ２２２４において、禁則処理部３８０は、印刷能力情報や言語情報を構築する。印刷能力情報の構築では、設定項目ごとに設定値の選択肢を構築する。また、言語情報は、ＯＳ４１０やデスクトップアプリ３２０のロケール（国や地域の設定）に基づいて、各設定値の言語情報を構築する。
【０２１０】
ステップＳ２２２５において、禁則処理部３８０は、Queue Property Bag３４０ｂに格納されている、現在のプリンタ１２０の機種状態に含まれるオプション情報に基づいて、ステップＳ２２２４で構築した印刷能力情報を補正する。印刷能力情報の補正には、例えば、設定値の選択肢の追加や削除等が含まれる。
【０２１１】
ステップＳ２２２６において、禁則処理部３８０は、ステップＳ２２２５で補正された印刷能力情報をデスクトップアプリ３２０に返却し、ステップＳ３００６で、処理を終了する。
【０２１２】
（ストア用表示部による表示処理）
図２２（ｃ）は、第２の実施形態におけるストア用表示部３７０による表示処理の例を示すフローチャートを示している。この処理は、第２の実施形態に係る禁則処理部３８０が印刷設定画面を表示する処理の例を示しており、図８（ｃ）に示した第１の実施形態に係るストア用表示部３７０がストア用ＵＩを構築する処理に対応している。
【０２１３】
ストア用表示部３７０は、ステップＳ２２３０から処理を開始し、ステップＳ２２３１で、禁則処理部３８０から印刷設定情報を取得する。
【０２１４】
ステップＳ２２３２において、ストア用表示部３７０は、Queue Property Bag３４０ｂに格納されている機種識別情報（例えば機種名）を取得する。
【０２１５】
ステップＳ２２３３において、ストア用表示部３７０は、取得した機種識別情報によって特定される機種情報を、Driver Property Bag３４０ａから取得する。例えば、ストア用表示部３７０は、取得した機種識別情報によりプリンタ１２０の機種を特定し、特定した機種に対応する機種情報を、Driver Property Bag３４０ａから取得する。
【０２１６】
ステップＳ２２３４において、ストア用表示部３７０は、現在接続している機種に対応した印刷能力情報を、禁則処理部３８０を用いて作成し、印刷設定情報の妥当性を評価する。
【０２１７】
ステップＳ２２３５において、ストア用表示部３７０は、現在接続している機種の印刷能力情報に対して印刷設定情報を反映したＵＩを構築して表示し、ステップＳ２２３６において処理を終了する。
【０２１８】
ここで、必ずしもステップＳ２２３４を行う必要はない。ステップＳ２２３４を行わない場合、ストア用表示部３７０は、ステップＳ２２３５においてステップＳ２２３３で取得した現在接続している機種に対応する機種情報を用いて、印刷設定を受け付けるためのＵＩを構築して表示する。また、ステップＳ２２３３において、機種情報とともに機種状態をQueue Property Bag３４０ｂから取得し、ステップＳ２２３５において、さらに機種状態を用いてＵＩを構築しても良い。
【０２１９】
上記の処理により、禁則処理部３８０、及びストア用表示部３７０は、Queue Property Bag３４０ｂに接続情報が記憶されていない場合でも、現在接続されているプリンタ１２０の機種情報を取得し、所定の処理を実行することができるようになる。
【０２２０】
以上、説明した本発明の各実施形態によれば、Ｖ４プリンタドライバ構成において、機種共通プリンタドライバを構成するプリンタドライバ、情報処理装置および画像処理装置を提供することができる。
【０２２１】
上述した本発明の実施形態の各機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等で記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭ等の装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【０２２２】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０２２３】
１１０…情報処理装置、１２０…プリンタ、２０１…ＣＰＵ、２０２…ＲＡＭ、２０３…ＲＯＭ、２０４…外部Ｉ／Ｆ、２０５…通信Ｉ／Ｆ、２０６…入力装置、２０７…表示装置、２０８…記憶装置、３１０…ストアアプリ、３２０…デスクトップアプリ、３３０…通信部、３４０…保存部、３５０…プリンタドライバ、３６０…デスクトップ用表示部、３６１…画面表示部、３６２…機器情報取得部、３６３…印刷設定部、３６４…記憶制御部、３６５…接続先情報生成部、３７０…ストア用表示部、３７１…画面表示部、３７２…印刷設定部、３８０…禁則処理部、３９０…描画部、４００…インストーラ、４１０…ＯＳ、４２０…アプリ、４４０…エクスプローラ
【先行技術文献】
【特許文献】
【０２２４】
【特許文献１】特開２０１５−２２５４８１号公報
【特許文献２】特開２０１５−２１５６５３号公報
【図１】
2018092583.tif 000003
【図２】
2018092583.tif 000004
【図３】
2018092583.tif 000005
【図４】
2018092583.tif 000006
【図５】
2018092583.tif 000007
【図６】
2018092583.tif 000008
【図７】
2018092583.tif 000009
【図８】
2018092583.tif 000010
【図９】
2018092583.tif 000011
【図１０】
2018092583.tif 000012
【図１１】
2018092583.tif 000013
【図１２】
2018092583.tif 000014
【図１３】
2018092583.tif 000015
【図１４】
2018092583.tif 000016
【図１５】
2018092583.tif 000017
【図１６】
2018092583.tif 000018
【図１７】
2018092583.tif 000019
【図１８】
2018092583.tif 000020
【図１９】
2018092583.tif 000021
【図２０】
2018092583.tif 000022
【図２１】
2018092583.tif 000023
【図２２】
2018092583.tif 000024