(57)【要約】【課題】Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を容易に追加することができるようにする。【解決手段】情報処理装置は、プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、複数の処理実行部に関する情報である処理情報を、所定の記憶領域に保存する処理情報管理部と、印刷処理の要求を受け付ける受付部と、を有し、プリンタドライバは、印刷処理の要求を受け付けたとき、所定の記憶領域から処理情報を取得する処理情報取得部と、処理情報取得部が取得した処理情報に基づいて、複数の処理実行部のうち、少なくとも１つの処理実行部に所定の処理の実行を要求する要求部と、として情報処理装置を機能させる。【選択図】図７
2018088230.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置に画像処理を要求するプリンタドライバを実行する情報処理装置であって、
前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、
前記複数の処理実行部に関する情報である処理情報を、所定の記憶領域に保存する処理情報管理部と、
印刷処理の要求を受け付ける受付部と、
を有し、
前記プリンタドライバは、
前記印刷処理の要求を受け付けたとき、前記所定の記憶領域から前記処理情報を取得する処理情報取得部と、
前記処理情報取得部が取得した前記処理情報に基づいて、前記複数の処理実行部のうち、少なくとも１つの処理実行部に前記所定の処理の実行を要求する要求部と、
として前記情報処理装置を機能させる情報処理装置。
【請求項２】
前記処理情報管理部は、前記複数の処理実行部が実行する処理のうち、前記プリンタドライバが要求する処理に関する前記処理情報を、前記プリンタドライバにおける論理プリンタの各々に対応する記憶領域に保存し、
前記受付部は、前記印刷処理の要求とともに該印刷処理における前記論理プリンタの指定を受付し、
前記処理情報取得部は、指定された前記論理プリンタに対応する記憶領域から前記処理情報を取得する請求項１に記載の情報処理装置。
【請求項３】
前記処理情報管理部は、
前記複数の処理実行部が実行する処理のうち、前記プリンタドライバにおける前記論理プリンタの各々が共通に要求する処理に関する前記処理情報を、前記プリンタドライバに対応する記憶領域に保存する請求項２に記載の情報処理装置。
【請求項４】
前記処理情報取得部は、
前記プリンタドライバに対応する記憶領域に前記処理情報が記憶されている場合、前記プリンタドライバに対応する記憶領域から前記処理情報を取得する請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、前記プリンタドライバと連携する連携プログラムを実行し、
前記連携プログラムは、
前記複数の処理実行部を、前記プリンタドライバから実行可能な記憶領域に配置する配置部と、
前記配置部が配置した前記複数の処理実行部が実行する処理に関する前記処理情報を、前記論理プリンタの各々に対応する記憶領域、又は前記プリンタドライバに対応する記憶領域に保存する前記処理情報管理部と、
を有する請求項３又は４に記載の情報処理装置。
【請求項６】
前記処理情報管理部は、
前記複数の処理実行部が実行する処理の前記処理情報を、前記連携プログラムに対応する記憶領域に保存する請求項５に記載の情報処理装置。
【請求項７】
前記連携プログラムに対応する記憶領域に保存された前記処理情報に基づいて、該処理情報を、前記論理プリンタの各々に対応する記憶領域に保存するか、前記プリンタドライバに対応する記憶領域に保存するかを決定するための第１の設定画面を表示させる第１の連携機能設定部を有する請求項６に記載の情報処理装置。
【請求項８】
前記第１の連携機能設定部は、
前記連携プログラムが前記情報処理装置にインストールされたとき、前記第１の設定画面を表示させる請求項７に記載の情報処理装置。
【請求項９】
前記第１の連携機能設定部は、
前記プリンタドライバが前記情報処理装置にインストールされたとき、前記第１の設定画面を表示させる請求項７に記載の情報処理装置。
【請求項１０】
前記論理プリンタに対応する記憶領域に保存された前記処理情報に基づいて、該処理情報に対応する１つ以上の処理のうち、当該論理プリンタが実行を要求する処理を設定するための第２の設定画面を表示させる第２の連携機能設定部を有する請求項２乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記処理情報は、該処理情報に対応する前記処理実行部にアクセスするためのパス情報を含む請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記処理情報は、該処理情報に対応する処理の種別を示す情報を含む請求項１乃至１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記処理の種別に基づいて、前記複数の処理実行部が実行する処理の実行順序を決定する決定部を有する請求項１２に記載の情報処理装置。
【請求項１４】
前記要求部は、
前記決定部が決定した実行順序に従って、前記少なくとも１つの処理実行部に処理を要求する請求項１３に記載の情報処理装置。
【請求項１５】
前記所定の記憶領域に記憶された前記処理情報に基づいて、前記処理実行部から前記所定の処理の設定画面に関する情報を取得し、前記取得した情報を用いて前記所定の処理の設定画面を表示するＵＩ部を有する請求項１乃至１４のいずれか一項に記載の情報処理装置。
【請求項１６】
前記処理実行部は、
前記所定の処理の設定画面に関する情報を記憶する設定画面情報管理部と、
前記所定の処理の設定画面で設定された設定値を取得する設定部と、
前記設定部が取得した前記設定値を記憶する設定値管理部と、
前記設定値管理部が記憶した前記設定値に従って、前記所定の処理を実行する処理部と、
を有する請求項１５に記載の情報処理装置。
【請求項１７】
画像処理を実行する画像処理装置と、前記画像処理装置に前記画像処理の実行を要求するプリンタドライバを実行する情報処理装置とを含む情報処理システムであって、
前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、
前記複数の処理実行部が実行する処理のうち、前記プリンタドライバが要求する処理に関する処理情報を、前記プリンタドライバにおける論理プリンタの各々に対応する記憶領域に保存する処理情報管理部と、
印刷処理の要求とともに該印刷処理における前記論理プリンタの指定を受け付ける受付部と、
を有し、
前記プリンタドライバは、
指定された前記論理プリンタに対応する記憶領域から前記処理情報を取得する処理情報取得部と、
前記処理情報取得部が取得した前記処理情報に基づいて、前記複数の処理実行部のうち、少なくとも１つの処理実行部に処理の実行を要求する要求部と、
として前記情報処理装置を機能させる情報処理システム。
【請求項１８】
画像処理装置に画像処理の実行を要求するプリンタドライバを実行する情報処理装置における情報処理方法であって、
前記情報処理装置が、
前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部を記憶するステップと、
前記複数の処理実行部が実行する処理のうち、前記プリンタドライバが要求する処理に関する処理情報を、前記プリンタドライバにおける論理プリンタの各々に対応する記憶領域に保存するステップと、
印刷処理の要求とともに該印刷処理における前記論理プリンタの指定を受け付けるステップと、
指定された前記論理プリンタに対応する記憶領域から前記処理情報を取得するステップと、
前記取得した処理情報に基づいて、前記複数の処理実行部のうち、少なくとも１つの処理実行部に処理の実行を要求するステップと、
を含む情報処理方法。
【請求項１９】
画像処理装置に画像処理の実行を要求するプリンタドライバを実行する情報処理装置に、
前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部を記憶するステップと、
前記複数の処理実行部が実行する処理のうち、前記プリンタドライバが要求する処理に関する処理情報を、前記プリンタドライバにおける論理プリンタの各々に対応する記憶領域に保存するステップと、
印刷処理の要求とともに該印刷処理における前記論理プリンタの指定を受け付けるステップと、
指定された前記論理プリンタに対応する記憶領域から前記処理情報を取得するステップと、
前記取得した処理情報に基づいて、前記複数の処理実行部のうち、少なくとも１つの処理実行部に処理の実行を要求するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）２０００からＷｉｎｄｏｗｓ７までのＷｉｎｄｏｗｓＯＳ（Operating System）では、Ｖｅｒｓｉｏｎ３（以降「Ｖ３」と称する）プリンタドライバと呼ばれるプリンタドライバのアーキテクチャが採用されている。また、Ｗｉｎｄｏｗｓ８以降のＷｉｎｄｏｗｓＯＳでは、Ｖ３プリンタドライバに加え、Ｖｅｒｓｉｏｎ４（以降「Ｖ４」と称する）プリンタドライバと呼ばれる新しいプリンタドライバのアーキテクチャが採用されている。
【０００３】
Ｖ４プリンタドライバは、フィルタパイプライン方式を採用しており、例えば、サードパーティを含むベンダが、プリンタドライバに独自のフィルタモジュールを追加することにより、独自の拡張機能を提供可能な技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フィルタを含むプリンタドライバにおいて、フィルタが実行する処理に変更を加えたいとき、フィルタに大幅な変更を加える必要がないような処理の変更であっても、フィルタをインストールし直す必要があり、利用者の利便性が損なわれていた。
【０００５】
また、Ｖ３プリンタドライバでは、例えば、独自のポートモニタ等を用意することにより、プリンタドライバに独自のフィルタモジュールを追加することなく、拡張機能を実現することができる。しかし、Ｖ４プリンタドライバでは、独自のポートモニタの利用が制限されており、ベンダが独自のポートモニタを用意して、独自の機能を追加することは困難である。さらに、Ｖ４プリンタドライバでは、独自のポートモニタを用意することができない（ポートモニタを独自のポートモニタに変更することができない）という問題がある。
【０００６】
このように、従来の技術では、Ｖ４プリンタドライバ、又は同様の制限を持つプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を追加することには困難を伴っていた。
【０００７】
本発明の実施の形態は、上記の問題点に鑑みてなされたものであって、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を容易に追加することができるようにする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一実施形態に係る情報処理装置は、画像処理装置に画像処理を要求するプリンタドライバを実行する情報処理装置であって、前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、前記複数の処理実行部に関する情報である処理情報を、所定の記憶領域に保存する処理情報管理部と、印刷処理の要求を受け付ける受付部と、を有し、前記プリンタドライバは、前記印刷処理の要求を受け付けたとき、前記所定の記憶領域から前記処理情報を取得する処理情報取得部と、
前記処理情報取得部が取得した前記処理情報に基づいて、前記複数の処理実行部のうち、少なくとも１つの処理実行部に前記所定の処理の実行を要求する要求部と、として前記情報処理装置を機能させる。
【発明の効果】
【０００９】
本発明の一実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を容易に追加することができるようになる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る情報処理システムの一例のシステム構成を示す図である。
【図２】一実施形態に係るクライアント装置及びサーバ装置の一例のハードウェア構成を示す図である。
【図３】一実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。
【図４】クライアント装置の一例のソフトウェア構成を示す図である。
【図５】Ｖ４プリンタドライバ及びストアデバイスアプリがアクセス可能な記憶領域について説明するための図である。
【図６】一実施形態に係るクライアント装置の機能構成図である。
【図７】第１の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成図である。
【図８】第１の実施形態に係る処理情報の例を示す図（１）である。
【図９】第１の実施形態に係る処理情報の例を示す図（２）である。
【図１０】第１の実施形態に係る設定画面の例を示す図である。
【図１１】第１の実施形態に係る印刷操作の受付画面の例を示す図である。
【図１２】第１の実施形態に係る印刷処理の例を示すフローチャートである。
【図１３】第２の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成図である。
【図１４】第２の実施形態に係る印刷処理の例を示すフローチャートである。
【図１５】第３の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成図である。
【図１６】第３の実施形態に係る連携プログラムのインストール処理の例を示すフローチャートである。
【図１７】第３の実施形態に係る設定画面の一例のイメージを示す図である。
【図１８】第３の実施形態に係るプリンタドライバのインストール処理の例を示すフローチャートである。
【図１９】第４の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成の一例を示す図である。
【図２０】第４の実施形態に係る印刷処理の例を示すフローチャートである。
【図２１】第４の実施形態に係る実行順序の決定処理の例を示すフローチャートである。
【図２２】第４の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成の別の一例を示す図である。
【図２３】一実施形態に係る利用シーンの一例について説明するための図である。
【図２４】一実施形態に係るポートモニタの設定画面の例を示す図である。
【図２５】第５の実施形態に係るクライアント装置の機能構成図である。
【図２６】第５の実施形態に係る処理実行部の機能構成の例を示す図である。
【図２７】第５の実施形態に係るデバイス設定画面の表示処理の例を示す図である。
【図２８】第５の実施形態に係る表示画面の例を示す図（１）である。
【図２９】第５の実施形態に係る表示画面の例を示す図（２）である。
【図３０】第５の実施形態に係る表示画面の例を示す図（３）である。
【図３１】第５の実施形態に係る拡張機能の設定処理の例を示すシーケンス図である。
【図３２】第５の実施形態に係る印刷処理の例を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１２】
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を用いて説明する。図１は、一実施形態に係る情報処理システム１の一例のシステム構成を示す図である。
【００１３】
図１に示すように、本実施形態に係る情報処理システム１は、１台以上のクライアント装置１０と、１台以上の画像形成装置２０と、サーバ装置３０とを含み、これら装置はＬＡＮ（Local Area Network）等のネットワークＮを介して互いに通信可能に接続されている。
【００１４】
クライアント装置１０は、例えばＰＣ（パーソナルコンピュータ）、スマートフォン、タブレット端末等である。クライアント装置１０は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データから印刷データを作成した上で、印刷データを画像形成装置２０に送信する。又は、クライアント装置１０は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データをサーバ装置３０に送信する。
【００１５】
なお、印刷対象データとは、例えば、画像データや文書データ等の印刷可能な電子データである。また、印刷データとは、例えば、印刷対象データを、画像形成装置２０が印刷可能なＰＤＬ（Page Description Language）形式に変換した電子データである。
【００１６】
画像形成装置２０は、例えばプリンタ、印刷機能を備えたＭＦＰ（Multifunction Peripheral）等である。画像形成装置２０は、クライアント装置１０又はサーバ装置３０から受信した印刷データを印刷する。
【００１７】
サーバ装置３０は、例えばＰＣ等である。サーバ装置３０は、例えば、クライアント装置１０から受信した印刷対象データから印刷データを作成して、作成した印刷データを画像形成装置２０に送信する。
【００１８】
また、サーバ装置３０は、ファイルサーバとして機能しても良い。すなわち、サーバ装置３０は、例えば、クライアント装置１０から受信した印刷データを記憶しておき、画像形成装置２０からの要求に応じて、記憶した印刷データを要求元の画像形成装置２０に送信しても良い。
【００１９】
なお、以降では、１台以上のクライアント装置１０について、各々を区別するときは、「クライアント装置１０−１」、「クライアント装置１０−２」等と表す。同様に、１台以上の画像形成装置２０について、各々を区別するときは、「画像形成装置２０−１」、「画像形成装置２０−２」等と表す。
【００２０】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるクライアント装置１０、画像形成装置２０、及びサーバ装置３０のハードウェア構成について、図２及び図３を用いて説明する。
【００２１】
≪クライアント装置１０及びサーバ装置３０≫
図２は、一実施形態に係るクライアント装置１０及びサーバ装置３０の一例のハードウェア構成を示す図である。なお、クライアント装置１０及びサーバ装置３０は、同様のハードウェア構成を有しているため、以降では、クライアント装置１０のハードウェア構成について説明する。
【００２２】
図２に示すように、本実施形態に係るクライアント装置１０は、入力装置１０１と、表示装置１０２と、外部Ｉ／Ｆ１０３と、ＲＡＭ（Random Access Memory）１０４とを有する。また、クライアント装置１０は、ＲＯＭ（Read Only Memory）１０５と、ＣＰＵ（Central Processing Unit）１０６と、通信Ｉ／Ｆ１０７と、ＨＤＤ（Hard Disk Drive）１０８とを有する。これらのハードウェアは、バスＢで互いに接続されている。
【００２３】
入力装置１０１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１０２は、ディスプレイ等を含み、クライアント装置１０による処理結果を表示する。なお、入力装置１０１及び表示装置１０２の少なくとも一方は、必要なときにクライアント装置１０に接続して利用する形態であっても良い。
【００２４】
通信Ｉ／Ｆ１０７は、クライアント装置１０をネットワークＮに接続するインタフェースである。クライアント装置１０は、通信Ｉ／Ｆ１０７を介して通信を行うことができる。
【００２５】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１０８に格納されるプログラムやデータには、クライアント装置１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００２６】
なお、クライアント装置１０は、ＨＤＤ１０８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を有して良い。また、ＨＤＤ１０８は、格納しているプログラムやデータを所定のファイルシステムやＤＢにより管理している。
【００２７】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａ等がある。クライアント装置１０は、外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取りや書き込みを行うことができる。記録媒体１０３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２８】
ＲＯＭ１０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１０５には、ＯＳ設定、ネットワーク設定等のプログラムやデータ、及びクライアント装置１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）が格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２９】
ＣＰＵ１０６は、ＲＯＭ１０５やＨＤＤ１０８等の記憶装置からプログラムやデータをＲＡＭ１０４上に読み出し、当該プログラムやデータに基づく処理を実行することで、クライアント装置１０全体の制御やその他の機能を実現する演算装置である。
【００３０】
本実施形態に係るクライアント装置１０及びサーバ装置３０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３１】
≪画像形成装置２０≫
図３は、一実施形態に係る画像形成装置２０の一例のハードウェア構成を示す図である。
【００３２】
図３に示すように、本実施形態に係る画像形成装置２０は、コントローラ２０１と、操作パネル２０２と、外部Ｉ／Ｆ２０３と、通信Ｉ／Ｆ２０４と、プロッタ２０５を有する。また、コントローラ２０１は、ＣＰＵ２１１と、ＲＡＭ２２１と、ＲＯＭ２３１と、ＮＶＲＡＭ２４１と、ＨＤＤ２５１とを有する。
【００３３】
ＲＯＭ２３１は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ２２１は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ２４１は、例えば設定情報等を格納している。また、ＨＤＤ２５１は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３４】
ＣＰＵ２１１は、ＲＯＭ２３１やＮＶＲＡＭ２４１、ＨＤＤ２５１等からプログラムやデータ、設定情報等をＲＡＭ２２１上に読み出し、当該プログラムやデータに基づく処理を実行することで、画像形成装置２０全体の制御やその他の機能を実現する演算装置である。
【００３５】
操作パネル２０２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを有する。外部Ｉ／Ｆ２０３は、外部装置とのインタフェースである。外部装置には、記録媒体２０３ａ等がある。画像形成装置２０は、外部Ｉ／Ｆ２０３を介して記録媒体２０３ａの読み取りや書き込みを行うことができる。なお、記録媒体２０３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３６】
通信Ｉ／Ｆ２０４は、画像形成装置２０をネットワークＮに接続するインタフェースである。画像形成装置２０は、通信Ｉ／Ｆ２０４を介して通信を行うことができる。プロッタ２０５は、印刷データを印刷する印刷装置である。
【００３７】
本実施形態に係る画像形成装置２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３８】
＜クライアント装置１０のソフトウェア構成＞
次に、本実施形態に係るクライアント装置１０のソフトウェア構成について、図４を用いて説明する。図４は、クライアント装置１０の一例のソフトウェア構成を示す図である。
【００３９】
図４に示すように、本実施形態に係るクライアント装置１０は、アプリケーション３０１と、ＯＳ３０２と、プリンタドライバ３０３と、ストアデバイスアプリ３０４とを有する。
【００４０】
アプリケーション３０１は、例えば文書作成ソフト、画像閲覧・編集ソフト、ブラウザ等、ユーザの印刷指示に応じて、ＯＳ３０２に印刷の指示（要求）を行うことができるアプリケーションソフトである。アプリケーション３０１には、ストアアプリ３１１と、デスクトップアプリ３２１とが含まれる。
【００４１】
ストアアプリ３１１は、例えば、Ｗｉｎｄｏｗｓ（登録商標）８／ＷｉｎｄｏｗｓＲＴ及びそれ以降のバージョンのＷｉｎｄｏｗｓＯＳにアプリケーションを提供する「Ｗｉｎｄｏｗｓストア」から、入手可能なアプリケーションである。ストアアプリ３１１では、「ストアアプリ  ＵＩ」が用いられる。なお、Ｗｉｎｄｏｗｓ８及びＷｉｎｄｏｗｓ８．１では、ＯＳ３０２によって提供される「Ｍｏｄｅｒｎ  ＵＩ」又は「Ｍｅｔｒｏ  ＵＩ」とも称されるＵＩからストアアプリ３１１が呼び出される。
【００４２】
一方、デスクトップアプリ３２１は、例えば、Ｗｉｎｄｏｗｓ７以前のバージョンのＷｉｎｄｏｗｓＯＳにおいても使用可能なアプリケーションである。
【００４３】
ＯＳ３０２は、Ｗｉｎｄｏｗｓ８／ＷｉｎｄｏｗｓＲＴ及びそれ以降のバージョンのＷｉｎｄｏｗｓＯＳである。
【００４４】
プリンタドライバ３０３は、例えば、Ｖｅｒｓｉｏｎ４プリンタドライバ（以降では、「Ｖ４プリンタドライバ」と表す。）である。Ｖ４プリンタドライバとは、Ｗｉｎｄｏｗｓ８／ＷｉｎｄｏｗｓＲＴから採用されたアーキテクチャに基づくプリンタドライバである。以降では、プリンタドライバ３０３を「Ｖ４プリンタドライバ３０３」とも表す。
【００４５】
なお、Ｗｉｎｄｏｗｓ８以降のＷｉｎｄｏｗｓＯＳでは、Ｗｉｎｄｏｗｓ２０００からＷｉｎｄｏｗｓ７で使用されていたＶｅｒｓｉｏｎ３プリンタドライバ（以降では、「Ｖ３プリンタドライバ」と表す。）に加えて、Ｖ４プリンタドライバも使用可能である。
【００４６】
プリンタドライバ３０３は、拡張設定部３１３と、設定制御部３２３と、描画部３３３とを含む。
【００４７】
拡張設定部３１３は、プリンタ拡張とも称され、デスクトップアプリ３２１から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。
【００４８】
設定制御部３２３は、禁則スクリプトとも称され、例えば、印刷設定の組み合わせが正当であるか否かを検証する。拡張設定部３１３は、例えば、設定制御部３２３により正当でないと検証された印刷設定の組み合わせを非表示にすること等ができる。
【００４９】
また、設定制御部３２３は、アプリケーション３０１やＯＳ３０２等からの要求に応じて、プリンタドライバ３０３が設定可能な機能の情報を示すＰｒｉｎｔＣａｐａｂｉｌｉｔｙを返信する。更に、設定制御部３２３は、アプリケーション３０１やＯＳ３０２等からの要求に応じて、プリンタドライバ３０３に設定されている各種機能の設定値をＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇから取得し、取得した設定値を示すＰｒｉｎｔＴｉｃｋｅｔを返信する。また、設定制御部３２３は、ＰｒｉｎｔＴｉｃｋｅｔで示された設定値をＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇに保存する。
【００５０】
なお、ＯＳ３０２に返信されたＰｒｉｎｔＣａｐａｂｉｌｉｔｙやＰｒｉｎｔＴｉｃｋｅｔは、例えば、拡張設定部３１３が表示する印刷設定画面における各機能の現在値の表示、選択肢の表示等に利用される。
【００５１】
描画部３３３は、アプリケーション３０１において印刷指示が行われた印刷対象データから印刷データを作成する。
【００５２】
ストアデバイスアプリ３０４は、ストアアプリ３１１から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。なお、ストアデバイスアプリ３０４は、ストアアプリ３１１と同様に、「Ｗｉｎｄｏｗｓストア」から入手可能なアプリケーションである。
【００５３】
デスクトップアプリ３２１から印刷を行う場合、プリンタドライバ３０３は、拡張設定部３１３により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。一方で、ストアアプリ３１１から印刷を行う場合、プリンタドライバ３０３は、ストアデバイスアプリ３０４により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。
【００５４】
拡張設定部３１３及びストアデバイスアプリ３０４は、ベンダ独自の印刷設定画面を表示するＵＩ部３０５を構成する。
【００５５】
＜Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域＞
次に、Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域について、図５を用いて説明する。図５は、Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域について説明するための図である。
【００５６】
図５に示すように、拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＰｒｏｐｅｒｔｙＢａｇ４００と呼ばれる記憶領域にアクセスすることができる。なお、このような記憶領域へのアクセスは、ＯＳ３０２によって提供されるＡＰＩ（Application Programming Interface）を用いて行うことができる。
【００５７】
図５に示すように、ＰｒｏｐｅｒｔｙＢａｇ４００には、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０と、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０と、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０とが含まれる。
【００５８】
ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０は、Ｖ４プリンタドライバ３０３を作成するときに決定された構成情報等を記憶する記憶領域である。拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０から各種情報の読み出しが可能である。一方で、拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０に対して、情報の書き込みを行うことはできない。
【００５９】
ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０は、論理プリンタ（プリンタアイコン）毎の設定情報等を記憶する記憶領域である。拡張設定部３１３及びストアデバイスアプリ３０４は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０に対して、各種情報の読み出し及び書き込みが可能である。また、設定制御部３２３及び描画部３３３は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０に対して、各種情報の読み出しが可能である。
【００６０】
なお、論理プリンタとは、例えば、ＯＳ３０２のプリンタフォルダ等にプリンタアイコンとして表示される仮想的なプリンタである。例えば、クライアント装置１０の利用者は、１つの画像形成装置２０に対して、設定情報（例えば、用紙サイズや向き、印刷品質等）が異なる複数の論理プリンタを作成することができる。
【００６１】
ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０は、論理プリンタ毎に、ユーザ毎の設定情報等を記憶する記憶領域である。拡張設定部３１３、設定制御部３２３、及びストアデバイスアプリ３０４は、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０に対して、各種情報の読み出し及び書き込みが可能である。
【００６２】
また、拡張設定部３１３及び描画部３３３は、更に、独自記憶領域５００に対して、各種情報の読み出し及び書き込みが可能である。
【００６３】
独自記憶領域５００は、例えばレジストリやファイル等を用いて実現され、ＰｒｏｐｅｒｔｙＢａｇ４００とは異なる記憶領域である。独自記憶領域５００は、Ｖ４プリンタドライバ３０３を提供するベンダ等によって定義される。
【００６４】
ストアデバイスアプリ３０４は、ＯＳ３０２の課す制約により、ＰｒｏｐｅｒｔｙＢａｇ４００以外の記憶領域に対してアクセスすることはできない。また、設定制御部３２３は、上述したＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇ及びＰｒｏｐｅｒｔｙＢａｇ４００以外の記憶領域に対してアクセスすることはできない。すなわち、ストアデバイスアプリ３０４及び設定制御部３２３は、独自記憶領域５００に対して、各種情報の読み出しや書き込み等を行うことができない。
【００６５】
このことは、ストアアプリ３１１に課されている制約と同様であり、例えば、ストアデバイスアプリ３０４及び設定制御部３２３が、ＯＳ３０２が使用するレジストリ等を変更し、ＯＳ３０２の動作に悪影響を与えることを防ぐためである。このような技術は、「サンドボックス」等と称されている。
【００６６】
＜機能構成＞
（クライアント装置の機能構成）
図６は、一実施形態に係るクライアント装置の機能構成図である。
【００６７】
クライアント装置（情報処理装置）１０は、画像形成装置（画像処理装置）２０、サーバ装置３０等とネットワーク等を介して接続され、画像形成装置２０に印刷（画像処理）を要求するプリンタドライバを実行する情報処理装置である。
【００６８】
クライアント装置１０は、例えば、図２のＣＰＵ１０６でプログラムを実行することにより、デスクトップアプリ３２１、ＯＳ３０２、ＵＩ部３０５、描画部３３３、ランゲージモニタ６０１、ポートモニタ６０２、処理情報記憶部６０３、１つ以上の連携プログラム６０４、及び複数の処理実行部６０５等を実現している。このうち、デスクトップアプリ３２１、ＯＳ３０２、ＵＩ部３０５、及び描画部３３３は、図４に示すデスクトップアプリ３２１、ＯＳ３０２、ＵＩ部３０５、及び描画部３３３に対応している。
【００６９】
ランゲージモニタ６０１は、例えば、図２のＣＰＵ１０６等で実行されるＤＬＬ（Dynamic Link Library）等によって実現され、双方向通信に対応する画像形成装置２０から、例えば、印刷状態等を示す状態情報を受信する。
【００７０】
ポートモニタ６０２は、例えば、図２のＣＰＵ１０６等で実行されるＤＬＬ等によって実現され、プリンタポートの種類（ＵＳＢ、ＴＣＰ／ＩＰ等）に合わせて、印刷データの出力処理を行う。
【００７１】
連携プログラム６０４は、例えば、図２のＣＰＵ１０６等で実行され、クライアント装置１０で実行されるプリンタドライバ３０３と連携して、例えば、印刷データ（描画データ）の変更処理、読出処理、転送処理等の様々な拡張機能を提供するプログラムである。
【００７２】
連携プログラム６０４は、例えば、クライアント装置１０にインストールされたとき等に、クライアント装置１０のプログラム領域６０６に複数の処理実行部６０５を配置（例えばコピー）する。また、連携プログラム６０４は、複数の処理実行部６０５の各々が実行する処理に関する処理情報を、処理情報記憶部６０３に記憶する。
【００７３】
処理実行部６０５は、例えば、図２のＣＰＵ１０６で実行されるＤＬＬ等によって実現されるプラグインであり、描画部３３３等からの制御に従って、例えば、印刷データの変更処理、読出処理、又は転送処理等の様々な拡張機能を実行する。
【００７４】
処理情報記憶部（記憶部）６０３は、例えば、図５の独自記憶領域５００や、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０等によって実現され、複数の処理実行部６０５の各々が実行する処理に関する情報である処理情報を記憶する。独自記憶領域５００の一例としては、例えば、通常のＷｉｎｄｏｗｓアプリケーションで使用されるレジストリＨＫＬＭ（HKEY_LOCAL_MACHINE）等が用いられる。
【００７５】
続いて、いくつかの実施形態を例示して、クライアント装置１０の具体的な機能構成と、処理の流れについて説明する。
【００７６】
［第１の実施形態］
図７は、第１の実施形態に係る描画部、ＵＩ部及び連携プログラムの機能構成図である。
【００７７】
（描画部の機能構成）
描画部３３３は、例えば、図２のＣＰＵ１０６で実行されるプログラム（プリンタドライバ３０３）によって実現され、設定情報取得部７１１、描画データ生成部７１２、処理情報取得部７１３、及び要求部７１４等を含む。
【００７８】
設定情報取得部７１１は、例えば、デスクトップアプリ３２１から渡されるＰｒｉｎｔＴｉｃｋｅｔや、図５のＰｒｏｐｅｒｔｙＢａｇ４００に等に含まれる印刷設定情報を取得する。また、設定情報取得部７１１は、デスクトップアプリ３２１からＯＳ３０２を介して渡される、印刷処理の対象となる論理プリンタを指定する情報を取得する。
【００７９】
描画データ生成部７１２は、設定情報取得部７１１が取得した印刷設定情報に基づいて、印刷の対象となるデータを、画像形成装置２０で処理可能な印刷データ（描画データ）に変換する。
【００８０】
処理情報取得部７１３は、指定された論理プリンタに対応する処理情報を、処理情報記憶部６０３から取得する。第１の実施形態では、処理情報記憶部６０３には、論理プリンタＡの記憶領域７５１ａ、論理プリンタＢの記憶領域７５１ｂ、・・・等の論理プリンタの各々に対応する記憶領域（例えば、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０等）が含まれる。処理情報取得部７１３は、例えば、印刷処理の対象となる論理プリンタとして、論理プリンタＡが指定されている場合、論理プリンタＡの記憶領域７５１ａから処理情報を取得する。なお、処理情報の例については、図８、９を用いて後述する。
【００８１】
要求部７１４は、処理情報取得部７１３が取得した処理情報に基づいて、複数の処理実行部６０５のうち、少なくとも１つの処理実行部６０５に処理の実行を要求する。
【００８２】
（連携プログラムの機能構成）
クライアント装置１０は、例えば、図２のＣＰＵ１０６で連携プログラム６０４を実行することにより、処理情報管理部７２１、配置部７２２、及び処理部７２３等を実現している。
【００８３】
配置部７２２は、例えば、連携プログラム６０４がクライアント装置１０にインストールされたとき等に、様々な拡張機能を実行する複数の処理実行部６０５−１〜６０５−３を、クライアント装置のプログラム領域６０６に配置する。例えば、配置部７２２は、プリンタドライバ３０３の描画部３３３からアクセス可能なプログラム領域６０６に、複数の処理実行部６０５−１〜６０５−３をコピーして、プリンタドライバ３０３の描画部３３３からアクセスできるようにする。
【００８４】
なお、以下の説明の中で、複数の処理実行部６０５−１〜６０５−３のうち、任意の処理実行部６０５を示す場合、「処理実行部６０５」を用いる。また、図に示す処理実行部６０５の数は一例であり、処理実行部６０５の数は２つ以上の他の数であっても良い。
【００８５】
処理情報管理部７２１は、複数の処理実行部６０５−１〜６０５−３が実行する処理のうち、描画部３３３が実行を要求する処理に関する処理情報を、論理プリンタ毎の記憶領域に保存する。
【００８６】
処理部７２３は、連携プログラム６０４で実行する様々な処理、例えば、連携プログラム６０４の設定処理、ログの収集処理、他の連携プログラムとの調整処理等を実行する。
【００８７】
（処理実行部の機能構成）
処理実行部６０５は、例えば、図２のＣＰＵ１０６で実行されるプログラム（ＤＬＬ等）によって実現され、処理制御部７３１、及び処理部７３２等を含む。
【００８８】
処理部７３２は、例えば、印刷データに変更を加える変更処理（第１の処理）、印刷データから情報を読出する読出処理（第２の処理）、及び印刷データを転送する転送処理（第３の処理）等の処理を実行する。
【００８９】
処理制御部７３１は、描画部３３３からの処理要求を受付し、受付した処理要求に従って処理部７３２に処理を実行させる。
【００９０】
処理実行部６０５が実行する処理の例を表１に示す。
【００９１】
【表１】
2018088230.tif 000003
表１に示すように、処理実行部６０５が実行する処理は、例えば、変更（Modifi）、読出（Read）、又は転送（Transfer）の３つの処理種別に分けられる。
【００９２】
処理種別が「変更（Modify）」の処理（以下、変更処理と呼ぶ）は、処理内容として印刷データの変更を行う処理、例えば、カラー→モノクロ変換処理、認証処理、プレビュー処理、ユーザ名のマスク処理等が含まれる。
【００９３】
処理種別が「読出（Read）」の処理（以下、読出処理と呼ぶ）は、処理内容として印刷データの参照（情報の取得）を行う処理、例えば、ログ収集処理、課金予測処理等が含まれる。
【００９４】
処理種別「転送（Transfer）」の処理（以下、転送処理と呼ぶ）は、処理内容として、印刷データの転送を行う処理、例えば、共有フォルダへの保存処理、クラウドへのアップロード処理、プリンタドライバ３０３への印刷データの返却処理等が含まれる。
【００９５】
図８、９は、第１の実施形態に係る処理情報の例を示す図である。
【００９６】
図８（ａ）は、変更処理の処理情報８１０の一例のイメージを示している。変更処理の処理情報８１０には、処理実行部６０５の名前を示す情報８１１、処理実行部６０５が格納されたパスを示す情報（パス情報）８１２、及び処理実行部６０５の処理種別を示す情報８１３等が含まれている。図８（ａ）に示すように、変更処理の処理情報８１０の処理種別を示す情報８１３には、「modify」の文字列が含まれる。
【００９７】
また、図８（ｂ）は、読出処理の処理情報８２０の一例のイメージが示されており、読出処理の処理情報８２０の処理種別を示す情報には、「read」の文字列が含まれている。同様に、図８（ｃ）は、転送処理の処理情報８３０の一例のイメージが示されており、転送処理の処理情報８３０の処理種別を示す情報には、「transfer」の文字が含まれている。
【００９８】
図９（ａ）は、直列に実行する処理情報９１０の一例のイメージを示している。図１１（ａ）に示されるように、直列に実行される複数の処理情報（変更処理９１２、９１３）は、例えば、角括弧１１１１内にカンマ「，」を介して列記される。
【００９９】
また、図１１（ｂ）は、並列に実行する処理情報９２０の一例のイメージを示している。図１１（ｂ）に示されるように、並列に実行される複数の処理情報（読出処理９２２、９２４）の各々は、角括弧９２１、９２３で閉じられて、カンマ「，」を介して列記される。
【０１００】
このように、処理情報には、複数の処理に関する処理情報が含まれていても良い。また、処理情報には、直列に実行する情報と並列に実行する処理情報とが混在しているものであっても良い。
【０１０１】
図７に戻り機能構成の説明を続ける。
【０１０２】
（ＵＩ部の機能構成）
ＵＩ部３０５は、例えば、図４に示すように、ストアデバイスアプリ３０４や、プリンタドライバ３０３の拡張設定部３１３等を含み、プリンタドライバ３０３に関する設定を行う設定画面を表示させて、利用者による設定操作を設定情報に反映させる。また、本実施形態に係るＵＩ部３０５は、連携機能設定部７４１を含む。
【０１０３】
連携機能設定部７４１は、論理プリンタ毎の記憶領域に記憶された処理情報に対応する複数の処理の中から、論理プリンタで実行する処理を選択する設定画面を表示させて、利用者による設定操作を受付する。
【０１０４】
連携機能設定部７４１は、例えば、論理プリンタのアイコンを右クリックしたときに表示されるコンテキストメニューに表示される操作の一覧等から呼び出され、例えば、図１０に示すような設定画面を、表示装置１０２等に表示させる。
【０１０５】
図１０は、第１の実施形態に係る設定画面の例を示す図である。
【０１０６】
図１０（ａ）は、連携機能設定部７４１が表示する拡張機能の設定画面１０１０の例を示している。拡張機能の設定画面１０１０には、連携プログラム６０４に関する設定を行うための「ソリューション連携」ボタン１０１１が含まれる。利用者は、「ソリューション連携」ボタン１０１１を選択することにより、例えば、図１０（ｂ）に示すような拡張機能の選択画面１０２０を表示させることができる。
【０１０７】
図１０（ｂ）に示す拡張機能の選択画面１０２０には、複数の処理実行部６０５で実行可能な処理の一覧１０２１が表示され、利用者は各処理のチェックボックス１０２２により、処理を実行するか否かを選択することができる。図１０（ｂ）の例では、処理の名前が「データ監視」、「クラウド転送」の処理が実行され、「個人認証」の処理が実行されないように設定されていることが示されている。
【０１０８】
このように、本実施形態では、利用者は、図１０（ｂ）に示すような拡張機能の選択画面１０２０を用いて、複数の処理実行部６０５が実行する処理のうち、実行する処理を、論理プリンタ毎に選択することができる。
【０１０９】
（デスクトップアプリの機能構成）
デスクトップアプリ３２１は、例えば、文書作成、プレゼンテーション、ウェブブラウザ、メールクライアント等の一般的なアプリケーションである。デスクトップアプリ３２１は、例えば、図１１に示すような印刷操作の受付画面１１００を、表示装置１０２等の表示部に表示させて、印刷処理の要求とともに、印刷処理における論理プリンタの指定を受け付ける受付部７６１を有している。
【０１１０】
図１１は、第１の実施形態に係る印刷操作の受付画面の例を示す図である。図１１に示す印刷操作の受付画面１１００は、デスクトップアプリ３２１において、ユーザが印刷を行うときに表示される表示画面の一例である。
【０１１１】
図１１に示す印刷操作の受付画面１１００において、利用者は、論理プリンタの一覧１１０２を表示させるためのボタン１１０１を選択して、論理プリンタの一覧を表示させて、印刷を行う論理プリンタを選択することができる。また、利用者は、印刷ボタン１１０３を選択することにより、印刷処理の要求を行うことができる。受付部７６１は、印刷操作の受付画面１１００において、利用者によって入力された論理プリンタの指定と、印刷処理の要求とを受付する。
【０１１２】
＜処理の流れ＞
続いて、第１の実施形態に係る情報処理方法の処理の流れについて説明する。
【０１１３】
（印刷処理の例）
図１２は、第１の実施形態に係る印刷処理の例を示すフローチャートである。この処理は、利用者が、図１１に示すような印刷操作の受付画面１１００に印刷操作を行ったときに、クライアント装置１０で実行される印刷処理の例を示している。
【０１１４】
ステップＳ１２０１において、デスクトップアプリ３２１の受付部７６１が、利用者による印刷処理の要求、及び論理プリンタを指定する操作を受付すると、プリンタドライバ３０３の描画部３３３は、ステップＳ１２０２以降の処理を実行する。なお、例えば、図１１に示す印刷操作の受付画面１１００において、論理プリンタの指定操作を行わずに印刷ボタン１１０３が選択された場合、既定の論理プリンタが選択されたものとして処理を実行する。
【０１１５】
ステップＳ１２０２において、描画部３３３は、デスクトップアプリ３２１から、ＯＳ３０２を介して、印刷設定情報、及び論理プリンタを指定する情報を取得する。例えば、設定情報取得部７１１は、デスクトップアプリ３２１から渡される印刷の設定情報であるＰｒｉｎｔＴｉｃｋｅｔ等から印刷設定情報を取得する。
【０１１６】
ステップＳ１２０３において、描画部３３３の描画データ生成部７１２は、設定情報取得部７１１が取得した印刷設定情報に従って、印刷の対象となるデータを、画像形成装置２０で印刷可能な印刷データに変換する。
【０１１７】
ステップＳ１２０４において、描画部３３３の処理情報取得部７１３は、処理情報記憶部６０３に含まれる、指定された論理プリンタに対応する記憶領域（例えば、論理プリンタＡの記憶領域７５１ａ）に、処理情報があるかを判断する。例えば、処理情報取得部７１３は、指定された論理プリンタの情報を記憶するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０等に、図８、９に示す処理情報が記憶されているかを判断する。
【０１１８】
指定された論理プリンタに対応する記憶領域に処理情報がない場合、処理情報取得部７１３は、処理をステップＳ１２０８に移行させる。一方、指定された論理プリンタに対応する記憶領域に処理情報がある場合、処理情報取得部７１３は、処理をステップＳ１２０５に移行させる。
【０１１９】
ステップＳ１２０５に移行すると、処理情報取得部７１３は、指定された論理プリンタに対応する記憶領域（例えば、論理プリンタＡの記憶領域７５１ａ等）から、処理情報を取得する。
【０１２０】
ステップＳ１２０６に移行すると、描画部３３３の要求部７１４は、処理情報取得部７１３が取得した処理情報に従って、処理実行部６０５に処理を要求する。
【０１２１】
例えば、処理情報が、図８（ａ）に示すような変更処理の処理情報８１０である場合、要求部７１４は、処理実行部６０５が格納されたパスを示す情報８１２に従って、処理実行部６０５の一例である「Ａｐｌｕｇｉｎ．ｄｌｌ」に変更処理の実行を要求する。
【０１２２】
また、例えば、処理情報が、図９（ａ）に示すような直列に実行する処理情報９１０である場合、要求部７１４は、「Ａｐｌｕｇｉｎ．ｄｌｌ」に第１の変更処理を要求し、変更処理が完了した後、「Ｂｐｌｕｇｉｎ．ｄｌｌ」に第２の変更処理を要求する。
【０１２３】
さらに、処理情報が、図９（ｂ）に示すような並列に実行する処理情報９２０である場合、要求部７１４は、「１ｐｌｕｇｉｎ．ｄｌｌ」に第１の変更処理を要求し、第１の変更処理と並行して、「２ｐｌｕｇｉｎ．ｄｌｌ」に第２の変更処理を要求する。
【０１２４】
なお、ステップＳ１２０４、Ｓ１２０５の処理は、ステップＳ１２０３の処理と並行して行われるものであっても良い。
【０１２５】
また、ステップＳ１２０４〜Ｓ１２０６の処理は、ステップＳ１２０３で印刷データを生成する前に行われるものであっても良い。例えば、印刷データを生成する前に、印刷設定情報の変更を行う処理実行部６０５に処理の実行を要求するもの等であっても良い。
【０１２６】
さらに、ステップＳ１２０４〜Ｓ１２０６の処理は、印刷データの生成中に、例えば、１ページの印刷データの生成が終わる度に複数回実行する等、図１２に示す処理とは異なるタイミングで実行されるものであっても良い。
【０１２７】
ステップＳ１２０７において、描画部３３３は、印刷を実行する印刷データ（描画データ）があるかを判断する。
【０１２８】
例えば、ステップＳ１２０６において、処理実行部６０５から描画部３３３に印刷データが返却されない場合、一例として、処理実行部６０５により、印刷データがサーバ装置３０に転送された場合、描画部３３３は、印刷を実行する印刷データがないと判断する。この場合、描画部３３３は、処理を終了させる。
【０１２９】
一方、ステップＳ１２０６において、処理実行部６０５から描画部３３３に印刷データが返却された場合、描画部３３３は、印刷を実行する印刷データがあると判断する。この場合、描画部３３３は、ステップＳ１２０８において、印刷データ（描画データ）を画像形成装置２０に出力する。
【０１３０】
上記の処理により、プリンタドライバ３０３の描画部３３３は、複数の処理実行部６０５を用いて、印刷データに様々な処理（拡張機能）を実行させることができるようになる。
【０１３１】
このように、本実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバ３０３において、利用者の利便性を維持しつつ、プリンタドライバ３０３に独自の拡張機能を容易に追加することができるようになる。
【０１３２】
また、本実施形態によれば、プリンタドライバ３０３の再インストールやアップデート等を行うことなく、プリンタドライバ３０３に独自の拡張機能を容易に追加することができるようになる。なお、従来のＶ３プリンタドライバでは、ポートモニタを変更することにより、複数の拡張機能を利用することは可能であったが、異なるタイミングで導入された複数の拡張機能を利用することはできなかった。
【０１３３】
さらに、本実施形態によれば、１つのプリンタドライバ３０３に対して複数の論理プリンタを作成した際に、論理プリンタ毎に異なる拡張機能を組み合わせて実行することが可能となる。
【０１３４】
［第２の実施形態］
第２の実施形態では、処理情報記憶部６０３が、論理プリンタ毎の記憶領域（論理プリンタＡの記憶領域７５１ａ、論理プリンタＢの記憶領域７５１ｂ等）に加えて、プリンタドライバの記憶領域を有する場合の例について説明する。
【０１３５】
＜機能構成＞
図１３は、第２の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成図である。図１３に示す処理情報記憶部６０３には、図７に示す第１の実施形態に係る処理情報記憶部６０３に含まれる論理プリンタ毎の記憶領域に加えて、プリンタドライバの記憶領域１３０１が含まれている。なお、他の機能構成は、図７に示した第１の実施形態に係る機能構成と同様なので、ここでは第１の実施形態に係る機能構成との相違点を中心に説明を行う。
【０１３６】
プリンタドライバの記憶領域１３０１は、例えば、図５の独自記憶領域５００等によって実現され、複数の処理実行部６０５の各々が共通に実行する処理の処理情報を記憶する。独自記憶領域５００の一例として、前述したように、通常のＷｉｎｄｏｗｓアプリケーションで使用されるレジストリＨＫＬＭ等が用いられる。
【０１３７】
プリンタドライバの記憶領域１３０１に記憶された処理情報は、同じプリンタドライバ３０３に対応する全ての論理プリンタに反映されるので、利用者は、１つのプリンタドライバ３０３に対応する論理プリンタの各々に設定を行う手間を省くことができる。
【０１３８】
また、プリンタドライバ３０３の記憶領域１３０１は、プリンタドライバ３０３毎に存在し、処理情報もプリンタドライバ３０３毎に記憶される。従って、１つのプリンタドライバ３０３の記憶領域１３０１に記憶された処理情報は、１つのプリンタドライバ３０３に対応する、新たに作成される論理プリンタにも自動的に適用される。
【０１３９】
＜処理の流れ＞
図１４は、第２の実施形態に係る印刷処理の流れを示すフローチャートである。なお、図１４のステップＳ１２０１〜１２０３、及びステップＳ１２０６〜Ｓ１２０８の処理は、図１２に示す第１の実施形態に係る印刷処理と同様なので、ここでは第１の実施形態との相違点を中心に説明を行う。
【０１４０】
ステップＳ１４０１において、描画部３３３の処理情報取得部７１３は、処理情報記憶部６０３に含まれる、プリンタドライバ３０３に対応するプリンタドライバの記憶領域１３０１に、処理情報があるかを判断する。
【０１４１】
プリンタドライバの記憶領域１３０１に処理情報がない場合、処理情報取得部７１３は、処理をステップＳ１４０３に移行させる。一方、プリンタドライバの記憶領域１３０１に処理情報がある場合、処理情報取得部７１３は、処理をステップＳ１４０２に移行させる。
【０１４２】
ステップＳ１４０２に移行すると、処理情報取得部７１３は、プリンタドライバの記憶領域１３０１から、処理情報を取得する。
【０１４３】
ステップＳ１４０３に移行すると、描画部３３３の処理情報取得部７１３は、処理情報記憶部６０３に含まれる、指定された論理プリンタに対応する記憶領域（例えば、論理プリンタＡの記憶領域７５１ａ等）に、処理情報があるかを判断する。
【０１４４】
指定された論理プリンタに対応する記憶領域に処理情報がない場合、処理情報取得部７１３は、処理をステップＳ１４０５に移行させる。一方、指定された論理プリンタに対応する記憶領域に処理情報がある場合、処理情報取得部７１３は、処理をステップＳ１４０４に移行させる。
【０１４５】
ステップＳ１４０４に移行すると、処理情報取得部７１３は、指定された論理プリンタに対応する記憶領域から、処理情報を取得する。
【０１４６】
ステップＳ１４０５に移行すると、処理情報取得部７１３は、実行する処理情報があるかを判断する。例えば、ステップＳ１４０２、Ｓ１４０４のいずれかで処理情報を取得している場合、実行する処理情報があると判断する。
【０１４７】
実行する処理情報がない場合、処理情報取得部７１３は、処理をステップＳ１２０８に移行させる。一方、実行する処理情報がある場合、処理情報取得部７１３は、処理をステップＳ１２０６に移行させる。
【０１４８】
図１４に示す印刷処理により、プリンタドライバ３０３は、プリンタドライバの記憶領域１３０１に記憶された処理情報と、論理プリンタ毎の記憶領域に記憶された処理情報とに基づいて、処理実行部６０５に処理を要求することができるようになる。
【０１４９】
［第３の実施形態］
第３の実施形態では、処理情報記憶部６０３への処理情報の保存処理について説明する。
【０１５０】
＜機能構成＞
図１５は、第３の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成図である。
【０１５１】
図１５に示す処理情報記憶部６０３には、プリンタドライバの記憶領域１３０１、論理プリンタ毎の記憶領域７５１、及び連携プログラムの記憶領域１５１０が含まれる。
【０１５２】
このうち、プリンタドライバの記憶領域１３０１は、図１３に示す第２の実施形態に係るプリンタドライバの記憶領域１３０１に対応している。また、論理プリンタ毎の記憶領域７５１は、図１３に示す第２の実施形態に係る論理プリンタＡの記憶領域７５１ａ、論理プリンタＢの記憶領域７５１ｂ、・・・に対応している。
【０１５３】
新たに追加された連携プログラムの記憶領域１５０１は、例えば、連携プログラム６０４によって使用されるレジストリＨＫＬＭ等によって実現され、連携プログラム６０４が管理する処理実行部６０５の処理情報を記憶する。
【０１５４】
また、図１５に示すインストーラ１５２０は、連携プログラム６０４、又はプリンタドライバ３０３を、クライアント装置１０にインストールするときに、図２のＣＰＵ１０６によって実行されるプログラムである。なお、連携プログラム６０４をインストールするインストーラ１５２０と、プリンタドライバ３０３をインストールするインストーラ１５２０は、異なるプログラムであっても良いし、同じプログラムであっても良い。
【０１５５】
インストーラ１５２０は、インストール部１５２１、及び連携機能設定部１５２２を含む。
【０１５６】
インストール部１５２１は、連携プログラム６０４、又はプリンタドライバ３０３を、クライアント装置１０にインストールする。例えば、インストール部１５２１は、連携プログラム６０４をクライアント装置１０のＨＤＤ１０８等に保存して、実行できるようにＯＳ３０２に登録する。或いは、インストール部１５２１は、プリンタドライバ３０３をクライアント装置１０のＨＤＤ１０８等に保存して、実行できるようにＯＳ３０２に登録する。
【０１５７】
連携機能設定部１５２２は、インストール部１５２１が、連携プログラム６０４又はプリンタドライバ３０３を、クライアント装置１０にインストールするときに、連携機能の設定を受け付けるための設定画面を表示して、利用者の設定操作を受付する。
【０１５８】
なお、図１５に示す他の機能構成は、図１３に示す第２の実施形態に係る機能構成と同様である。
【０１５９】
＜処理の流れ＞
（連携プログラムのインストール処理）
図１６は、第３の実施形態に係る連携プログラムのインストール処理の例を示すフローチャートである。この処理は、インストーラ１５２０が、連携プログラム６０４をクライアント装置１０にインストールするときに、インストーラ１５２０及び連携プログラム６０４が実行する処理の例を示している。
【０１６０】
ステップＳ１６０１において、インストーラ１５２０のインストール部１５２１は、連携プログラム６０４をクライアント装置１０にインストールする。
【０１６１】
ステップＳ１６０２において、連携プログラム６０４の配置部７２２は、処理実行部６０５を、プログラム領域６０６に配置する。例えば、配置部７２２は、複数の処理実行部６０５−１〜６０５−３を、プログラム領域６０６（例えば、C:\ProgramFiles 等のディレクトリ）にコピーする。
【０１６２】
ステップＳ１６０３において、連携プログラム６０４の処理情報管理部は、プログラム領域６０６に配置された複数の処理実行部６０５−１〜６０５−３が実行する処理に関する処理情報を、連携プログラムの記憶領域１５１０（例えば、レジストリＨＫＬＭ等）に保存する。
【０１６３】
ステップＳ１６０４において、インストーラ１５２０の連携機能設定部１５２２は、クライアント装置１０にプリンタドライバ３０３がインストールされているかを判断する。
【０１６４】
クライアント装置１０にプリンタドライバ３０３がインストールされていない場合、連携機能設定部１５２２は、処理を終了させる。一方、クライアント装置１０にプリンタドライバ３０３がインストールされている場合、連携機能設定部１５２２は、処理をステップＳ１６０５に移行させる。
【０１６５】
ステップＳ１６０５に移行すると、インストーラ１５２０の連携機能設定部１５２２は、例えば、図１７（ａ）に示すような、論理プリンタ（プリンタアイコン）の一覧を、表示装置１０２等に表示させる。
【０１６６】
図１７（ａ）は、論理プリンタの一覧１７１１を表示する表示画面１７１０の一例のイメージを示している。表示画面１７１０には、クライアント装置１０にインストールされている論理プリンタの一覧１７１１が表示されている。利用者は、論理プリンタの一覧１７１１の中から、カーソル１７１２を移動させて１つの論理プリンタ（例えば、論理プリンタＢ）を選択し、「選択」ボタン１７１３を選択することにより、連携機能の設定を行う論理プリンタを選択することができる。また、利用者は、表示画面１７１０の「設定終了」ボタン１７１４を選択することにより、連携機能の設定を終了させることができる。
【０１６７】
ステップＳ１６０６において、インストーラ１５２０の連携機能設定部１５２２は、例えば、図１７（ａ）に示すような表示画面１７１０において、論理プリンタが選択されたか（「選択」ボタン１７１３が選択された）を判断する。
【０１６８】
論理プリンタが選択されていない場合、連携機能設定部１５２２は、処理をステップＳ１６０７に移行させる。一方、論理プリンタが選択された場合、連携機能設定部１５２２は、処理をステップＳ１６０８に移行させる。
【０１６９】
ステップＳ１６０７に移行すると、インストーラ１５２０の連携機能設定部１５２２は、例えば、図１７（ａ）に示すような表示画面１７１０において、「設定終了」ボタン１７１４が選択されたかを判断する。
【０１７０】
「設定終了」ボタン１７１４が選択された場合、連携機能設定部１５２２は、処理を終了させる。一方、「設定終了」ボタン１７１４が選択されていない場合、連携機能設定部１５２２は、処理をステップＳ１６０５に戻して、論理プリンタの一覧１７１１の表示を継続させる。
【０１７１】
ステップＳ１６０８に移行すると、インストーラ１５２０の連携機能設定部１５２２は、例えば、図１７（ｂ）に示すような連携機能の設定画面１７２０を、表示装置１０２等に表示させる。
【０１７２】
図１７（ｂ）は、連携機能の設定画面１７２０の一例のイメージを示している。連携機能の設定画面１７２０には、論理プリンタの一覧１７１１の中から選択された論理プリンタ（例えば、論理プリンタＢ）の複数の処理実行部６０５が実行する処理の名前１７２１の一覧が表示されている。また、設定画面１７２０には、処理毎に、各論理プリンタに共通に連携するか否かを設定するための設定欄１７２２、及び論理プリンタ毎に連携するか否かを設定するための設定欄１７２３が設けられている。
【０１７３】
ステップＳ１６０９において、インストーラ１５２０の連携機能設定部１５２２は、例えば、図１７（ｂ）に示すような連携機能の設定画面１７２０に対する設定操作を受付する。
【０１７４】
ステップＳ１６１０において、連携プログラム６０４の処理情報管理部７２１は、プリンタドライバ３０３と連携する処理の処理情報を、プリンタドライバの記憶領域１３０１に記憶する。図１７（ｂ）の例では、「ログ収集」処理は、各論理プリンタに共通に連携する設定が選択されている。この場合、処理情報管理部７２１は、「ログ収集」処理に関する処理情報を、図１５のプリンタドライバの記憶領域１３０１に記憶する。
【０１７５】
ステップＳ１６１１において、連携プログラム６０４の処理情報管理部７２１は、論理プリンタと連携する処理の処理情報を、論理プリンタ毎の記憶領域７５１に記憶する。図１７（ｂ）の例では、「クラウド転送」の処理は、論理プリンタ毎に連携する設定が選択されている。この場合、処理情報管理部７２１は、「クラウド転送」処理に関する処理情報を、論理プリンタ毎の記憶領域７５１の各々に記憶する。
【０１７６】
ステップＳ１６１１の処理が終了すると、連携プログラム６０４は、ステップＳ１６０５に戻って、同様の処理を再び実行する。
【０１７７】
（プリンタドライバのインストール処理）
図１８は、第３の実施形態に係るプリンタドライバのインストール処理の例を示すフローチャートである。この処理は、インストーラ１５２０が、プリンタドライバ３０３をクライアント装置１０にインストールするときに、インストーラ１５２０及び連携プログラム６０４が実行する処理の例を示している。
【０１７８】
ステップＳ１８０１において、インストーラ１５２０のインストール部１５２１は、プリンタドライバ３０３をクライアント装置１０にインストールする。
【０１７９】
ステップＳ１８０２において、インストーラ１５２０の連携機能設定部１５２２は、クライアント装置１０に連携プログラム６０４がインストールされているかを判断する。
【０１８０】
クライアント装置１０に連携プログラム６０４がインストールされていない場合、連携機能設定部１５２２は、処理を終了させる。一方、クライアント装置１０に連携プログラム６０４がインストールされている場合、連携機能設定部１５２２は、処理をステップＳ１８０３に移行させる。
【０１８１】
ステップＳ１８０３に移行すると、インストーラ１５２０の連携機能設定部１５２２は、図１５の連携プログラムの記憶領域１５１０から、処理情報を取得する。この処理情報には、例えば、図１６のステップＳ１６０３で保存された処理情報等が含まれる。
【０１８２】
ステップＳ１８０４において、インストーラ１５２０の連携機能設定部１５２２は、例えば、図１７に示すような設定画面を、表示装置１０２等に表示させる。
【０１８３】
ステップＳ１８０５において、インストーラ１５２０の連携機能設定部１５２２は、例えば、図１７に示すような設定画面に対する設定操作を受付する。
【０１８４】
ステップＳ１８０６において、連携プログラム６０４の処理情報管理部７２１は、プリンタドライバ３０３と連携する処理の処理情報を、プリンタドライバの記憶領域１３０１に記憶する。
【０１８５】
ステップＳ１８０７において、連携プログラム６０４の処理情報管理部７２１は、論理プリンタと連携する処理の処理情報を、論理プリンタ毎の記憶領域７５１に記憶する。
【０１８６】
このように、インストーラ１５２０は、プリンタドライバ３０３がインストールされていないクライアント装置１０、及びプリンタドライバ３０３がインストールされているクライアント装置１０のいずれにも連携プログラム６０４をインストールすることができる。また、インストーラ１５２０は、連携プログラム６０４がインストールされていないクライアント装置１０、及び連携プログラム６０４がインストールされているクライアント装置１０のいずれにもプリンタドライバ３０３をインストールすることができる。つまり、本実施形態によれば、クライアント装置１０における、プリンタドライバ３０３のライフサイクルと、連携プログラム６０４のライフサイクルとは一致していなくても良い。
【０１８７】
このライフサイクルとは、クライアント装置１０にプログラムがインストールされるタイミング、アンインストールされるタイミング、インストールされている期間等を示すものとする。つまり、本実施形態によれば、クライアント装置１０に、プリンタドライバ３０３がインストール又はアンインストールされるタイミングと、連携プログラム６０４がインストール又はアンインストールされるタイミングとが、異なるタイミングであっても良い。
【０１８８】
なお、上記の各処理により、図１７（ｂ）に示すような設定画面１７２０（第１の設定画面）で、各論理プリンタに共通に連携する設定が選択された処理は、プリンタドライバ３０３における論理プリンタの各々において、共通に実行される。
【０１８９】
また、図１７（ｂ）に示すような設定画面１７２０（第１の設定画面）で、論理プリンタ毎に連携する設定が選択された処理は、図１０（ｂ）に示すような拡張機能の選択画面１０２０（第２の設定画面）で、論理プリンタ毎に連携するか否かを選択することができる。
【０１９０】
なお、連携機能設定部１５２２は、第１の設定画面を表示させる第１の連携機能設定部の一例である。また、連携機能設定部７４１は、第２の設定画面を表示させる第２の連携機能設定部の一例である。
【０１９１】
［第４の実施形態］
第４の実施形態では、クライアント装置１０が、複数の処理実行部６０５が実行する処理の実行順序を決定する決定部を有する場合の例について説明する。
【０１９２】
＜機能構成＞
図１９は、第４の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成の一例を示す図である。
【０１９３】
図１９に示す処理情報記憶部６０３には、プリンタドライバの記憶領域１３０１、及び論理プリンタ毎の記憶領域７５１が含まれる。このうち、プリンタドライバの記憶領域１３０１は、図１３に示す第２の実施形態に係るプリンタドライバの記憶領域１３０１に対応している。また、論理プリンタ毎の記憶領域７５１は、図１３に示す第２の実施形態に係る論理プリンタＡの記憶領域７５１ａ、論理プリンタＢの記憶領域７５１ｂ、・・・に対応している。
【０１９４】
また、図１９に示す描画部３３３には、図１３に示す第２の実施形態に係る描画部３３３の機能構成に加えて、決定部１９０１が含まれている。
【０１９５】
第１〜３の実施形態では、処理情報記憶部６０３に記憶される処理情報が、例えば、図８に示すように単独の処理情報、又は、図９に示すように予め実行順序が定められている処理情報であるものとして説明を行った。しかし、処理情報記憶部６０３には、予め実行順序が定められていない複数の処理情報が記憶されているものであっても良い。
【０１９６】
決定部１９０１は、処理情報記憶部６０３に記憶された複数の処理情報に基づいて、複数の処理実行部６０５が実行する処理の実行順序を決定する。例えば、決定部１９０１は、表２に示すような実行順序、及び実行方法の情報に従って、複数の処理実行部６０５が実行する処理の実行順序を決定する。
【０１９７】
【表２】
2018088230.tif 000004
表２の例では、変更処理の実行順序は、読出処理及び転送処理より前であることが定められている。これは、読出処理では、変更処理を実行した後の情報を読み出しする必要があり、転送処理では、変更処理を実行した後の印刷データを転送する必要があるためである。また、変更処理の実行方法は直列に実行すること、すなわち、複数の処理を順次に実行することが定められている。これは、印刷データに全ての変更を反映させるためには、印刷データに対して順次に処理を実行する必要があるためである。
【０１９８】
また、表２の例では、読出処理の実行順序は、転送処理より前であり、変更処理より後であることが定められている。これは、読出処理は、変更処理を実行した後の情報を読み出しする必要があり、転送処理が行われると印刷データが削除されてしまう恐れがあるためである。また、読出処理の実行方法は、並列又は直列に実行すること、すなわち、複数の処理を並行して処理できることが定められている。これは、読出処理では、印刷データが変更されないので、複数の情報を並行して読出しても問題がないためである。
【０１９９】
さらに、表２の例では、転送処理の実行順序は、変更処理及び読出処理より後であることが定められている。これは、転送処理では、変更、読出が行われた印刷データを転送する必要があるためである。また、転送処理の実行方法は、並列又は直列に実行すること、すなわち、複数の処理を並行して処理できることが定められている。これは、転送処理では、印刷データの内容が変更されないので、複数の転送先に並行して印刷データを送信しても問題がないためである。
【０２００】
また、図１９に示すように、クライアント装置１０は、複数の連携プログラム６０４−１、６０４−２を実行することができる。
【０２０１】
上記以外の各機能構成は、図１３に示す第２の実施形態に係る各機能構成と同様である。
【０２０２】
＜処理の流れ＞
（印刷処理）
図２０は、第４の実施形態に係る印刷処理の例を示すフローチャートである。なお図２０のステップＳ１２０１〜１２０３、及びステップＳ１２０６〜Ｓ１２０８の処理は、図１２に示す第１の実施形態に係る印刷処理と同様である。また、図２０のステップＳ１４０１〜ステップＳ１４０５の処理は、図１４に示す第２の実施形態に係る印刷処理と同様である。ここでは第１の実施形態、及び第２の実施形態との相違点を中心に説明を行う。
【０２０３】
図２０のステップＳ１４０５において、実行する処理情報があると判断された場合、ステップＳ２００１において、描画部３３３の決定部１９０１は、取得した処理情報に基づいて、処理の実行順序を決定する。
【０２０４】
（実行順序の決定処理）
図２１は、第４の実施形態に係る実行順序の決定処理の例を示すフローチャートである。この処理は、図２０のステップＳ２００１で実行される処理の実行順序を決定する処理の一例を示している。
【０２０５】
ステップＳ２１０１において、描画部３３３の決定部１９０１は、図２０のステップＳ１４０１〜Ｓ１４０４で、処理情報取得部７１３が取得した処理情報の中に、変更処理があるかを判断する。例えば、決定部１９０１は、図８（ａ）に示すように、処理種別を示す情報８１３に「modify」の文字列を含む変更処理の処理情報８１０があるかを判断する。
【０２０６】
なお、処理情報取得部７１３が取得した処理情報には、ステップＳ１４０２で、プリンタドライバの記憶領域１３０１から取得した処理情報と、ステップＳ１４０４で、現在選択されている論理プリンタ毎の記憶領域７５１から取得した処理情報とが含まれる。
【０２０７】
ステップＳ１４０２に移行すると、処理情報取得部７１３は、プリンタドライバの記憶領域１３０１から、処理情報を取得する。
【０２０８】
ステップＳ１４０３に移行すると、描画部３３３の処理情報取得部７１３は、処理情報記憶部６０３に含まれる、指定された論理プリンタに対応する記憶領域（例えば、論理プリンタＡの記憶領域７５１ａ等）に、処理情報があるかを判断する。
【０２０９】
指定された論理プリンタに対応する記憶領域に処理情報がない場合、処理情報取得部７１３は、処理をステップＳ１４０５に移行させる。一方、指定された論理プリンタに対応する記憶領域に処理情報がある場合、処理情報取得部７１３は、処理をステップＳ１４０４に移行させる。
【０２１０】
ステップＳ１４０４に移行すると、処理情報取得部７１３は、指定された論理プリンタに対応する記憶領域から、処理情報を取得する。
【０２１１】
変更処理がない場合、決定部１９０１は、処理をステップＳ２１０３に移行させる。一方、変更処理がある場合、決定部１９０１は、処理をステップＳ２１０２に移行させる。
【０２１２】
ステップＳ２１０２に移行すると、決定部１９０１は、処理情報取得部７１３が取得した処理情報に含まれる変更処理を、他の処理種別（読出処理、転送処理）より前に実行するように実行順序を決定する。また、決定部１９０１は、複数の変更処理がある場合、複数の変更処理を直列に（順次に）実行するように、複数の変更処理の実行順序を決定する。なお、複数の変更処理の実行順序は、一例として、処理情報取得部７１３が取得した順序に従って決定する。
【０２１３】
ステップＳ２１０３に移行すると、描画部３３３の決定部１９０１は、処理情報取得部７１３が取得した処理情報の中に、読出処理があるかを判断する。例えば、決定部１９０１は、図８（ｂ）に示すように、処理種別を示す情報に「read」の文字列を含む読出処理の処理情報８２０があるかを判断する。
【０２１４】
読出処理がない場合、決定部１９０１は、処理をステップＳ２１０５に移行させる。一方、読出処理がある場合、決定部１９０１は、処理をステップＳ２１０４に移行させる。
【０２１５】
ステップＳ２１０４に移行すると、決定部１９０１は、処理情報取得部７１３が取得した処理情報に含まれる読出処理を、変更処理の後に実行するように処理順序を決定する。また、決定部１９０１は、複数の読出処理がある場合、複数の読出処理を並列又は直列に実行するように、複数の読出処理の実行順序を決定する。
【０２１６】
好ましくは、決定部１９０１は、複数の読出処理がある場合、複数の読出処理を並列に（並行して）実行するように、複数の読出処理の実行順序を決定する。
【０２１７】
ステップＳ２１０５に移行すると、描画部３３３の決定部１９０１は、処理情報取得部７１３が取得した処理情報の中に、転送処理があるかを判断する。例えば、決定部１９０１は、図８（ｃ）に示すように、処理種別を示す情報に「transfer」の文字列を含む転送処理の処理情報８３０があるかを判断する。
【０２１８】
転送処理がない場合、決定部１９０１は、処理を終了させる。一方、転送処理がある場合、決定部１９０１は、処理をステップＳ２１０６に移行させる。
【０２１９】
ステップＳ２１０６に移行すると、決定部１９０１は、処理情報取得部７１３が取得した処理情報に含まれる転送処理を、他の処理種別の処理（変更処理、読出処理）の後に実行するように処理順序を決定する。また、決定部１９０１は、複数の転送処理がある場合、複数の転送処理を並列又は直列に実行するように、複数の転送処理の実行順序を決定する。
【０２２０】
好ましくは、決定部１９０１は、複数の転送処理がある場合、複数の転送処理を並列に（並行して）実行するように、複数の読出処理の実行順序を決定する。
【０２２１】
上記の処理により、複数の処理実行部６０５が実行する処理の実行順序が決定される。
【０２２２】
（別の一例）
図２２は、第４の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成の別の一例を示す図である。図２２に示す機能構成は、図１５に示す第３の実施形態に係る機能構成に対応しており、連携プログラム６０４に決定部１９０１が含まれている。
【０２２３】
また、図２２に示すように、クライアント装置１０は、複数の連携プログラム６０４−１、６０４−２を実行することができる。
【０２２４】
図２２において、連携プログラム６０４の決定部１９０１は、例えば、図１６のステップＳ１６０７、Ｓ１６０８において、処理情報管理部７２１が、処理情報を処理情報記憶部６０３に記憶するときに、図２１に示すような実行順序の決定処理を実行する。
【０２２５】
また、連携プログラム６０４の決定部１９０１は、例えば、図１８のステップＳ１８０６、Ｓ１８０７において、処理情報管理部７２１が、処理情報を処理情報記憶部６０３に記憶するときに、図２１に示すような実行順序の決定処理を実行する。
【０２２６】
なお、例えば、インストーラ１５２０が、クライアント装置１０に連携プログラム６０４−２をインストールするときに、既にクライアント装置１０に連携プログラム６０４−１がインストールされている場合がある。このような場合、決定部１９０１は、処理情報記憶部６０３に記憶されている連携プログラム６０４−１の処理情報と、連携プログラム６０４−２の処理情報とを組み合わせて、図２１に示すような実行順序の決定処理を実行する。
【０２２７】
（利用シーンの一例）
図２３は、一実施形態に係る利用シーンの一例について説明するための図である。図２３において、クライアント装置１０には、２台の画像形成装置２０−１、２０−２が接続されているものとする。
【０２２８】
論理プリンタＡ２３０１は、プリンタドライバ３０３を用いて、画像形成装置２０−１でモノクロ印刷を行うための論理プリンタであるものとする。また、論理プリンタＢは、プリンタドライバ３０３を用いて、画像形成装置２０−３でカラー印刷を行うための論理プリンタであるものとする。
【０２２９】
連携プログラム６０４−１は、プリンタドライバ３０３と連携して、ログ収集を行うためのプログラムであり、クライアント装置１０のプログラム領域に、ログ収集を実行する処理実行部６０５−１を配置しているものとする。また、連携プログラム６０４−２は、プリンタドライバ３０３と連携して、ユーザ認証を行うためのプログラムであり、クライアント装置１０のプログラム領域に、ユーザ認証を実行する処理実行部６０５−２を配置しているものとする。
【０２３０】
上記の構成において、クライアント装置１０の利用者（又は管理者）は、プリンタドライバ３０３の全ての論理プリンタでログ収集を行いたい場合、処理実行部６０５−１の処理情報であるログ収集の処理情報２３１１を、プリンタドライバの記憶領域１３０１に保存する。例えば、利用者は、図１７（ｂ）に示すような連携機能の設定画面１７２０を用いて、「ログ収集」に対応する、「各論理プリンタに共通に連携するか否かを設定するための設定欄１７２３」を選択する。これにより、利用者は、論理プリンタ毎に設定を行わなくても、プリンタドライバ３０３の全ての論理プリンタでログ収集を行うことができるようになる。
【０２３１】
また、クライアント装置１０の利用者は、カラー印刷を行うときに、認証を行って印刷の可否を決定したい場合、処理実行部６０５−２の処理情報であるユーザ認証の処理情報２３１２を、論理プリンタＢの記憶領域７５１ｂに保存する。例えば、利用者は、図１０（ｂ）に示すような拡張機能の選択画面１０２０において、「個人認証」に対応するチェックボックス１０２２を選択する。これにより、利用者は、論理プリンタＢ２３０２を用いてカラー印刷を行うときに、選択的に認証処理を実行させることができるようになる。
【０２３２】
［第５の実施形態］
第１〜４の実施形態により、Ｖ４プリンタドライバであるプリンタドライバ３０３に、利用者の利便性を維持しつつ、独自の拡張機能を容易に追加することができるようになる。このとき、プリンタドライバ３０３に追加された拡張機能の設定を、どのように行うかという課題がある。
【０２３３】
例えば、Ｖ３プリンタドライバでは、前述したように、拡張機能を実現するベンダ独自のポートモニタを利用して独自の拡張機能を実現していた。この場合、ユーザは、例えば、図２４に示すようなポートモニタの設定画面２４００を用いて、独自の拡張機能の設定を行うことができる。
【０２３４】
しかし、ポートモニタの設定画面２４００は、ポートモニタに対して予め組み込まれた機能について設定を行うものであり、例えば、異なるタイミングで導入された他の拡張機能の設定を行うことはできないという問題がある。
【０２３５】
そこで、第５の実施形態では、プリンタドライバ３０３に追加された拡張機能の設定を行う好適な方法の例について説明する。
【０２３６】
＜機能構成＞
（クライアント装置の機能構成）
図２５は、第５の実施形態に係るクライアント装置の機能構成図である。本実施形態に係るクライアント装置１０のＵＩ部３０５は、処理情報記憶部６０３に記憶された処理情報に基づいて、処理実行部６０５が実行する拡張機能の設定画面を表示するデバイス設定表示部２５０１を有している。
【０２３７】
図２６は、第５の実施形態に係る処理実行部６０５の機能構成の例を示す図である。本実施形態に係る処理実行部６０５は、処理制御部７３１、処理部７３２に加えて、設定画面情報管理部２６０１、設定部２６０２、及び設定値管理部２６０３等を有している。
【０２３８】
設定画面情報管理部２６０１は、処理実行部６０５が実行する拡張機能の設定画面を表示するための情報（以下、設定画面情報と呼ぶ）を、所定の記憶領域（例えば、ファイル、レジストリ等）に記憶して管理する。
【０２３９】
設定画面情報には、デバイス設定表示部２５０１が、拡張機能の設定画面を構築するために用いる情報や、設定画面への操作に対する処理を定義する情報等が含まれる。例えば、設定画面情報には、操作ボタンの配置情報、操作イベントハンドラ、アイコン、用語情報、ヘルプ情報等が含まれる。
【０２４０】
設定値管理部２６０３は、処理実行部６０５が実行する拡張機能の設定値を、所定の記憶領域（例えば、ファイル、レジストリ等）に記憶して管理する。また、本実施形態に係る処理部７３２は、設定値管理部２６０３が管理する設定値に従って、処理実行部６０５が実行する拡張機能を実行する。
【０２４１】
上記の構成により、設定部２６０２は、ＵＩ部３０５のデバイス設定表示部２５０１からの要求に応じて、設定画面情報管理部２６０１が管理する設定画面情報を、デバイス設定表示部２５０１に提供する。また、設定部２６０２は、デバイス設定表示部２５０１から通知されるイベント通知（例えば、ユーザによる操作通知等）を受付し、受付した操作内容に応じて、設定値管理部２６０３が管理する設定値を変更する。
【０２４２】
一方、図２５に示すＵＩ部３０５のデバイス設定表示部２５０１は、処理情報記憶部６０３に記憶された処理情報を用いて、プログラム領域６０６に記憶された１つ以上の処理実行部６０５を特定し、特定した処理実行部６０５から設定画面情報を取得する。また、デバイス設定表示部２５０１は、取得した設定画面情報を用いて、１つ以上の処理実行部６０５が実行する拡張機能の設定を行う設定画面（拡張機能の設定画面）を表示する。
【０２４３】
デバイス設定表示部２５０１は、表示した設定画面において、処理実行部６０５に対する操作を受付すると、受付した操作内容を示すイベント通知を、処理実行部６０５に通知する。また、デバイス設定表示部２５０１は、表示した設定画面において、ＵＩ部３０５に対する操作（例えば、終了操作等）を受付すると、デバイス設定表示部２５０１で対応する処理を実行する。
【０２４４】
なお、図２４に示す第５の実施形態に係るクライアント装置１０の上記以外の機能構成は、例えば、図６に示す一実施形態に係るクライアント装置１０と同様である。
【０２４５】
＜処理の流れ＞
続いて、第５の実施形態に係る情報処理方法の処理の流れについて説明する。
【０２４６】
（デバイス設定画面の表示処理）
図２７は、第５の実施形態に係るデバイス設定画面の表示処理の例を示すシーケンス図である。この処理は、ＵＩ部３０５のデバイス設定表示部２５０１が、処理情報記憶部６０３に記憶された処理情報に基づいて、処理実行部６０５が実行する拡張機能の設定画面を表示する処理の例を示している。
【０２４７】
なお、図２７に示す処理の開始時点において、クライアント装置１０のプログラム領域６０６には、処理実行部６０５ａ〜６０５ｃが記憶されており、処理情報記憶部６０３には、処理実行部６０５ａ〜６０５ｃの処理情報が記憶されているものとする。
【０２４８】
ステップＳ２７０１において、アプリケーション３０１は、例えば、ユーザの操作等に応じて、デバイス設定画面の表示を要求する設定画面の表示要求を、ＯＳ３０２に通知する。
【０２４９】
ステップＳ２７０２において、ＯＳ３０２は、アプリケーション３０１から通知された設定画面の表示要求を、ＵＩ部３０５に通知する。なお、ＵＩ部３０５は、アプリケーション３０１がデスクトップアプリ３２１である場合、プリンタドライバ３０３の拡張設定部３１３であり、アプリケーション３０１がストアアプリ３１１である場合、ストアデバイスアプリ３０４である。
【０２５０】
ステップＳ２７０３において、ＵＩ部３０５は、例えば、図２８（ａ）に示すようなデバイス設定画面２８１０を、クライアント装置１０の表示装置１０２等に表示させる。本実施形態に係るデバイス設定画面２８１０には、拡張設定画面の表示操作を受付する「デバイスの拡張設定」ボタン２８１１が含まれる。ユーザは、デバイス設定画面２８１０に含まれる「デバイスの拡張設定」ボタン２８１１を選択することにより、拡張設定画面の表示操作を行うことができる。
【０２５１】
ステップＳ２７０４において、ＵＩ部３０５が、デバイス設定画面２８１０において、拡張設定画面の表示操作を受付すると、ＵＩ部３０５のデバイス設定表示部２５０１は、ステップＳ２７０５以降の処理を実行する。
【０２５２】
なお、ステップＳ２７０１〜Ｓ２７０４の処理は、拡張設定画面の表示操作を受付する処理の一例である。別の一例として、ユーザは、図２８（ｂ）に示すような、ＯＳ３０２のコントロールパネルのデバイスとプリンタ画面２８２０等から、拡張設定画面の表示操作を行うこともできる。
【０２５３】
例えば、ＯＳ３０２のシェル拡張機能により、論理プリンタ（プリンタアイコン）２８２１を右クリックしたときに表示されるメニュー２８２２に、「デバイスの拡張設定」の項目２８２３を追加する。ユーザは、この「デバイスの拡張設定」の項目２８２３を選択することにより、拡張設定画面の表示操作を行うものであっても良い。
【０２５４】
ステップＳ２７０５、Ｓ２７０６において、ＵＩ部３０５のデバイス設定表示部２５０１は、処理情報記憶部６０３に記憶された処理情報を取得する。この処理情報には、例えば、図８に示す処理情報８１０のように、処理実行部６０５が格納されたパスを示す情報（パス情報）８１２が含まれる。
【０２５５】
好ましくは、処理情報記憶部６０３に記憶された処理情報には、処理実行部６０５が拡張機能の設定画面を有しているか否かを示す情報が含まれる。
【０２５６】
なお、処理実行部６０５が実行する拡張機能には、拡張機能の設定画面を有する拡張機能と、拡張機能の設定画面を有していない拡張機能とがある。拡張機能の設定画面を有する拡張機能の例を、表３に示す。
【０２５７】
【表３】
2018088230.tif 000005
表３に示す拡張機能「印刷データ解析」のうち、課金予測、印刷プレビュー等の処理は、ダイアログ等の拡張機能の設定画面を表示させて、ユーザによる設定値の入力や、確認操作等を受付することができる。
【０２５８】
例えば、課金予測の処理では、両面、集約、カラー等の設定状態と、印刷に要するコスト等を表示するダイアログを、表示装置１０２に表示させて、ユーザに対して設定値の妥当性の判断を促し、必要に応じて設定値の変更を受付することができる。
【０２５９】
また、表３に示す拡張機能「印刷データ変更」のうち、認証情報の追加、カラー→グレースケール変換、ＰＤＦ変換等の処理は、ダイアログ等の拡張機能の設定画面を表示させて、ユーザによる設定値の入力や、確認操作等を受付することができる。
【０２６０】
例えば、認証情報の追加の処理では、認証情報の入力欄と、認証情報の追加を行うか否かを設定するチェックボックス等を表示するダイアログを、表示装置１０２に表示させて、ユーザに対して設定を促し、入力された設定値を受付することができる。
【０２６１】
さらに、表３に示す拡張機能「印刷データの転送」のうち、外部サーバへの印刷データの転送等の処理は、ダイアログ等の拡張機能の設定画面を表示させて、ユーザによる設定値の入力や、確認操作等を受付することができる。
【０２６２】
例えば、外部サーバへの印刷データの転送等の処理では、転送先のサーバ情報（サーバ名、ＩＰアドレス等）等を表示するダイアログを、表示装置１０２に表示させて、ユーザによる設定値の入力や、確認操作等を受付することができる。
【０２６３】
ステップＳ２７０７において、ＵＩ部３０５のデバイス設定表示部２５０１は、取得した処理情報を用いて、プログラム領域６０６に記憶された処理実行部６０５を特定する。
【０２６４】
好ましくは、デバイス設定表示部２５０１は、取得した処理情報を用いて、プログラム領域６０６に記憶された処理実行部６０５ａ〜６０５ｃのうち、拡張機能の設定画面を有する処理実行部６０５を特定する。
【０２６５】
ステップＳ２７０８〜Ｓ２７１３において、ＵＩ部３０５のデバイス設定表示部２５０１は、処理実行部６０５ａ〜６０５ｃから、処理実行部６０５が実行する拡張機能の設定画面を表示するための設定画面情報を取得する。
【０２６６】
好ましくは、ＵＩ部３０５のデバイス設定表示部２５０１は、プログラム領域６０６に記憶された処理実行部６０５ａ〜６０５ｃのうち、拡張機能の設定画面を有する処理実行部６０５から、設定画面情報を取得する。ここでは、一例として、処理実行部６０５ａ、６０５ｃが、拡張機能の設定画面を有しており、処理実行部６０５ｂは、拡張機能の設定画面を有していないものとして、以下の説明を行う。
【０２６７】
ステップＳ２７０８において、ＵＩ部３０５のデバイス設定表示部２５０１は、処理実行部６０５ａに対して、設定画面情報の取得を要求する。
【０２６８】
ステップＳ２７０９において、処理実行部６０５ａの設定部２６０２は、設定画面情報の要求を受付すると、設定画面情報管理部２６０１が管理する設定画面情報を取得する。
【０２６９】
ステップＳ２７１０において、処理実行部６０５ａの設定部２６０２は、取得した設定画面情報を、ＵＩ部３０５に送信する。
【０２７０】
同様に、ステップＳ２７１１において、ＵＩ部３０５のデバイス設定表示部２５０１は、処理実行部６０５ｃに対して、設定画面情報の取得を要求する。
【０２７１】
ステップＳ２７１２において、処理実行部６０５ｃの設定部２６０２は、設定画面情報の要求を受付すると、設定画面情報管理部２６０１が管理する設定画面情報を取得する。
【０２７２】
ステップＳ２７１３において、処理実行部６０５ｃの設定部２６０２は、取得した設定画面情報を、ＵＩ部３０５に送信する。
【０２７３】
ステップＳ２７１４において、ＵＩ部３０５のデバイス設定表示部２５０１は、例えば、図２９に示すようなデバイスの拡張設定画面２９００を、表示装置１０２等に表示させる。本実施形態に係るデバイスの拡張設定画面２９００には、プログラム領域６０８に記憶された処理実行部６０５が実行する拡張機能の設定を行うためのボタン、例えば、図２９の「ポートの構成」ボタン２９０１が含まれる。ユーザは、例えば、図２９に示すデバイスの拡張設定画面２９００から、「ポートの構成」ボタン２９０１を選択することにより、拡張機能の設定操作を行うことができる。
【０２７４】
ステップＳ２７１５において、ＵＩ部３０５のデバイス設定表示部２５０１は、拡張機能の設定操作を受付すると、ステップＳ２７１６以降の処理を実行する。
【０２７５】
ステップＳ２７１６において、ＵＩ部３０５のデバイス設定表示部２５０１は、例えば、図３０（ａ）に示すような、拡張機能の選択画面３０００を、表示装置１０２等に表示させる。
【０２７６】
図３０（ａ）の例では、拡張機能の選択画面３０００には、「名前」、「説明」、「連携する」等項目が表示されている。「名前」は、プログラム領域６０８に記憶された処理実行部６０５ａ〜６０５ｃの名前等を示す情報である。「説明」は、処理実行部６０５ａ〜６０５ｃが実行する拡張機能の概要を示すユーザ向けの情報である。「連携する」には、処理実行部６０５ａ〜６０５ｃが実行する拡張機能を利用するか否かを設定するチェックボックス３００１や、拡張機能の設定を行うための設定ボタン３００２、３００３等が含まれる。
【０２７７】
図３０（ａ）に示す拡張機能の選択画面３０００において、ユーザは、例えば、チェックボックス３００１を選択状態とすることにより、対応する拡張機能を利用することができる。ここで設定された情報は、例えば、論理プリンタに対応する記憶領域であるＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０等に記憶される。
【０２７８】
また、ユーザは、拡張機能「データ監視」に対応する設定ボタン３００２を選択することにより、例えば、図３０（ｂ）に示すようなデータ監視機能の設定画面３０１０を表示させることができる。また、ユーザは、拡張機能「クラウド転送」に対応する設定ボタン３００３を選択することにより、例えば、図３０（ｃ）に示すようなクラウド転送機能の設定画面３０２０を表示させることができる。
【０２７９】
なお、ＵＩ部３０５のデバイス設定表示部２５０１は、拡張機能の設定画面を有する処理実行部６０５が１つである場合、拡張機能の選択画面３０００の表示を省略して、拡張画面の設定画面を、表示装置１０２等に表示させるものであっても良い。
【０２８０】
ステップＳ２７１７において、ＵＩ部３０５のデバイス設定表示部２５０１は、例えば、図３０（ａ）に示すような拡張機能の選択画面３０００により、ユーザによる拡張機能の選択操作を受付する。
【０２８１】
ステップＳ２７１２において、ＵＩ部３０５のデバイス設定表示部２５０１は、選択された拡張機能の設定画面を、表示装置１０２等に表示させる。
【０２８２】
上記の処理により、ＵＩ部３０５は、プリンタドライバ３０３に追加された１つ以上の拡張機能の設定画面を表示させて、ユーザによる設定操作を受付することができるようになる。
【０２８３】
（拡張機能の設定処理）
図３１は、第５の実施形態に係る拡張機能の設定処理の例を示すシーケンス図である。なお、図３１に示す処理の開始時点において、図２６に示すデバイス設定画面の表示処理により、処理実行部６０５ａに対応する拡張機能の設定画面、例えば、図３０（ｂ）に示すデータ監視の設定画面３０１０が、表示装置１０２等に表示されているものとする。
【０２８４】
ステップＳ３１０１において、ＵＩ部３０５のデバイス設定表示部２５０１は、例えば、データ監視の設定画面３０１０に対するユーザの設定操作を受付する。
【０２８５】
ステップＳ３１０２において、ＵＩ部３０５のデバイス設定表示部２５０１は、受付した操作の操作対象を特定する。例えば、デバイス設定表示部２５０１は、受付した操作が、処理実行部６０５ａが実行するデータ監視機能の設定操作であるか、ＵＩ部３０５に対する操作（例えば、設定終了操作等）であるかを特定する。
【０２８６】
ここでは、ステップＳ３１０１において、データ監視の設定画面３０１０に対する設定操作が行われているので、デバイス設定表示部２５０１は、受付した操作が、データ監視機能の設定操作であると判断し、ステップＳ３１０３の処理を実行する。
【０２８７】
ステップＳ３１０３において、ＵＩ部３０５のデバイス設定表示部２５０１は、受付した操作内容を含むイベント通知を、処理実行部６０５ａに通知する。
【０２８８】
例えば、デバイス設定表示部２５０１は、図３０（ｂ）に示すデータ監視の設定画面３０１０において、入力されたポート名とＩＰアドレスとを含むイベント通知を、処理実行部６０５ａに通知する。
【０２８９】
ステップＳ３１０４において、処理実行部６０５ａの設定部２６０２は、イベント通知に含まれる操作内容を受付し、ステップＳ３１０５において、イベント通知を受付したことを示す応答メッセージをＵＩ部３０５に通知する。
【０２９０】
同様にして、ユーザは、処理実行部６０５ｃに対応する拡張機能の設定画面、例えば、図３０（ｃ）に示すクラウド転送の設定画面３０２０を表示させて、転送サーバ名、転送サーバアドレス等の設定値を設定することができる。
【０２９１】
ステップＳ３１０６において、ＵＩ部３０５のデバイス設定表示部２５０１は、例えば、ユーザによる設定終了操作を受付する。
【０２９２】
ステップＳ３１０７において、ＵＩ部３０５のデバイス設定表示部２５０１は、受付した操作の操作対象を特定する。ここでは、ステップＳ３１０６において、設定終了操作が行われているので、デバイス設定表示部２５０１は、ＵＩ部３０５に対する操作であると判断し、ステップＳ３１０８以降の処理を実行する。
【０２９３】
ステップＳ３１０８において、ＵＩ部３０５のデバイス設定表示部２５０１は、設定処理が終了したことを示す終了通知を、処理実行部６０５ａに送信する。
【０２９４】
ステップＳ３１０９において、処理実行部６０５ａの設定部２６０２は、終了通知を受付すると、例えば、ステップＳ３１０４等で受付した操作内容に応じた設定値を、設定値管理部２６０３が管理する設定値に反映させる（記憶させる）。例えば、設定部２６０２は、ステップＳ３１０４で受付したイベント通知に含まれていたポート名、ＩＰアドレス等の情報を、設定値管理部２６０３が管理する設定値に反映させる。
【０２９５】
ステップＳ３１１０において、処理実行部６０５ａの設定部２６０２は、設定処理を終了したことを示す応答メッセージを、ＵＩ部３０５に送信する。
【０２９６】
同様にして、ステップＳ３１１１において、ＵＩ部３０５のデバイス設定表示部２５０１は、設定処理が終了したことを示す終了通知を、処理実行部６０５ｃに送信する。
【０２９７】
ステップＳ３１１２において、処理実行部６０５ｃの設定部２６０２は、終了通知を受付すると、受付した操作内容に応じた設定値を、設定値管理部２６０３が管理する設定値に反映させる（記憶させる）。
【０２９８】
ステップＳ３１１２において、処理実行部６０５ｃの設定部２６０２は、設定処理を終了したことを示す応答メッセージを、ＵＩ部３０５に送信する。
【０２９９】
上記の処理により、ＵＩ部３０５は、プリンタドライバ３０３に追加された１つ以上の拡張機能の設定画面を表示させて、ユーザによる設定内容を処理実行部６０５が実行する処理に反映させることができるようになる。
【０３００】
（印刷処理）
図３２は、第５の実施形態に係る印刷処理の例を示すシーケンス図である。この処理は、図３１に示した拡張機能の設定処理で設定された設定値を用いて、処理実行部６０５が拡張機能を実行する場合の印刷処理の例を示している。
【０３０１】
なお、図３２に示す印刷処理の開始時点において、例えば、図３０（ａ）に示すような拡張機能の選択画面３０００により、処理実行部６０５ａが実行する拡張機能と、処理実行部６０５ｃが実行する拡張機能の連携が有効に設定されているものとする。また、処理実行部６０５ｂが実行する拡張機能の連携は無効に設定されているものとする。
【０３０２】
ステップＳ３２０１において、アプリケーション３０１は、例えば、ユーザの印刷操作等に応じて、ＯＳ３０２に印刷処理を要求する。
【０３０３】
ステップＳ３２０２において、ＯＳ３０２は、アプリケーション３０１からの印刷処理の要求に応じて、プリンタドライバ３０３の描画部３３３に印刷命令を通知する。
【０３０４】
ステップＳ３２０３において、描画部３３３の描画データ生成部７１２は、ＯＳ３０２からの印刷命令に応じて、印刷データを生成する。
【０３０５】
ステップＳ３２０４、Ｓ３２０５において、描画部３３３の処理情報取得部７１３は、処理情報記憶部６０３から、処理情報を取得する。
【０３０６】
ステップＳ３２０６において、描画部３３３の要求部７１４は、拡張機能を実行させる処理実行部６０５を特定する。例えば、要求部７１４は、図３０（ａ）に示すような拡張機能の選択画面３０００により、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０等に記憶された情報に基づいて、拡張機能を実行させる処理実行部６０５を特定する。ここでは、処理実行部６０５ａが実行する拡張機能と、処理実行部６０５ｃが実行する拡張機能を実行させるものとして、以下の説明を行う。
【０３０７】
ステップＳ３２０７において、描画部３３３の要求部７１４は、処理実行部６０５ａに、印刷データに対する所定の処理（例えば、データ監視機能）を要求する。
【０３０８】
ステップＳ３２０８において、処理実行部６０５ａの処理部７３２は、設定値管理部２６０３が管理する設定内容（設定値）を取得する。
【０３０９】
ステップＳ３２０９において、処理実行部６０５ａの処理部７３２は、取得した設定内容に従って、所定の処理を実行し、ステップＳ３２１０において、処理が完了したことを示す完了通知を、描画部３３３に送信する。
【０３１０】
同様にして、ステップＳ３２１１において、描画部３３３の要求部７１４は、処理実行部６０５ｃに、印刷データに対する所定の処理（例えば、クラウド転送機能）を要求する。
【０３１１】
ステップＳ３２１２において、処理実行部６０５ｃの処理部７３２は、設定値管理部２６０３が管理する設定内容（設定値）を取得する。
【０３１２】
ステップＳ３２１３において、処理実行部６０５ｃの処理部７３２は、取得した設定内容に従って、所定の処理を実行し、ステップＳ３２１４において、処理が完了したことを示す完了通知を、描画部３３３に送信する。
【０３１３】
上記の処理により、クライアント装置１０は、例えば、図３１に示した拡張機能の設定処理で設定された設定値を用いて、処理実行部６０５が拡張機能を実行する印刷処理を実行することができるようになる。
【０３１４】
なお、本実施形態は、第１〜４の実施形態と組み合わせて実施することができる。例えば、図３２に示す印刷処理に、第１〜４の実施形態に係る印刷処理を適用することができる。
【０３１５】
以上、本発明の各実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバ３０３において、利用者の利便性を維持しつつ、プリンタドライバ３０３に独自の拡張機能を容易に追加することができるようになる。
【符号の説明】
【０３１６】
１          情報処理システム
１０        クライアント装置（情報処理装置）
２０        画像形成装置（画像処理装置）
３０        サーバ装置
３０１      アプリケーション
３０２      ＯＳ
３０３      プリンタドライバ
３０４      ストアデバイスアプリ
３０５      ＵＩ部
３１１      ストアアプリ
３１３      拡張設定部
３２１      デスクトップアプリ
３２３      設定制御部
３３３      描画部
４００      ＰｒｏｐｅｒｔｙＢａｇ
４２０      ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ
６０３      処理情報記憶部
６０４      連携プログラム
６０５      処理実行部
７１３      処理情報取得部
７１４      要求部
７２１      処理情報管理部
７２２      配置部
７４１      連携機能設定部（第２の連携機能設定部）
７６１      受付部
１５１１    連携機能設定部（第１の連携機能設定部）
１９０１    決定部
２６０１    設定画面情報管理部
２６０２    設定部
２６０３    設定値管理部
【先行技術文献】
【特許文献】
【０３１７】
【特許文献１】特開２０１２−２２６５８２号公報
【図１】
2018088230.tif 000006
【図２】
2018088230.tif 000007
【図３】
2018088230.tif 000008
【図４】
2018088230.tif 000009
【図５】
2018088230.tif 000010
【図６】
2018088230.tif 000011
【図７】
2018088230.tif 000012
【図８】
2018088230.tif 000013
【図９】
2018088230.tif 000014
【図１０】
2018088230.tif 000015
【図１１】
2018088230.tif 000016
【図１２】
2018088230.tif 000017
【図１３】
2018088230.tif 000018
【図１４】
2018088230.tif 000019
【図１５】
2018088230.tif 000020
【図１６】
2018088230.tif 000021
【図１７】
2018088230.tif 000022
【図１８】
2018088230.tif 000023
【図１９】
2018088230.tif 000024
【図２０】
2018088230.tif 000025
【図２１】
2018088230.tif 000026
【図２２】
2018088230.tif 000027
【図２３】
2018088230.tif 000028
【図２４】
2018088230.tif 000029
【図２５】
2018088230.tif 000030
【図２６】
2018088230.tif 000031
【図２７】
2018088230.tif 000032
【図２８】
2018088230.tif 000033
【図２９】
2018088230.tif 000034
【図３０】
2018088230.tif 000035
【図３１】
2018088230.tif 000036
【図３２】
2018088230.tif 000037