(57)【要約】【課題】  プラグインの管理を容易にする。【解決手段】  プラグインとして画像形成装置１０１に追加される画像処理プラグインアプリケーション３０３は、自身と同時に実行することができない他の画像処理プラグインアプリケーション３０３の情報を排他情報３２８として保持する。そして、プラグイン接続ライブラリ３１４が排他情報３２８の内容の変更を行う。【選択図】  図３
2018129611.tif 000002
【特許請求の範囲】
【請求項１】
画像を形成するための処理を行う少なくとも１つの第１のアプリケーションを記憶する記憶手段と、
前記第１のアプリケーションの少なくとも１つと、プラグインとして追加された第２のアプリケーションとを相互に関連付けて管理する管理手段と、を有し、
前記管理手段は、前記第２のアプリケーションによる処理の実行を更に管理することを特徴とする画像形成装置。
【請求項２】
前記管理手段は、前記第２のアプリケーションによる処理の実行が可能または不可能になる要因を示す情報と、前記第２のアプリケーションの実行が可能または不可能になる条件を示す情報との少なくとも何れか一方を管理情報として管理することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記第２のアプリケーションが追加される際に、当該第２のアプリケーションに付加されている前記管理情報を記憶媒体に記憶する記憶手段を更に有することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記管理手段は、前記第２のアプリケーションに対する前記管理情報に基づいて、当該第２のアプリケーションにより実行される処理と同時に実行することができない他のアプリケーションの処理を特定することを特徴とする請求項２または３に記載の画像形成装置。
【請求項５】
前記管理手段は、同時に処理を実行することができない複数の前記第２のアプリケーションに対する前記管理情報の少なくとも何れか１つを変更することを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記管理手段は、前記同時に処理を実行することができない複数の前記第２のアプリケーションに対する前記管理情報の更新のタイミングに基づいて、変更する前記管理情報を決定することを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記第１のアプリケーションにより実行される処理の設定を選択する部分と、当該第１のアプリケーションと相互に関連付けられて前記管理手段により管理される前記第２のアプリケーションにより実行される処理の設定を選択する部分とを含む第１の画面を表示する表示手段と、
前記管理情報に基づいて、前記第１のアプリケーションにより実行される処理の設定を選択する部分と、前記第２のアプリケーションにより実行される処理の設定を選択する部分との少なくとも何れか一方の表示形態を決定する決定手段と、を更に有することを特徴とする請求項２〜６の何れか１項に記載の画像形成装置。
【請求項８】
前記管理手段または前記第１のアプリケーションが、前記決定手段を有することを特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記決定手段は、前記第１のアプリケーションにより実行される処理の設定と、前記第２のアプリケーションにより実行される処理の設定とを同時に実行することができない場合、当該第１のアプリケーションにより実行される処理の設定を選択することができない表示形態に、当該第１のアプリケーションにより実行される処理の設定を選択する部分の表示形態を決定することを特徴とする請求項７または８に記載の画像形成装置。
【請求項１０】
前記管理情報は、前記第２のアプリケーションによる処理の実行が可能または不可能になる要因を示す情報として、当該第２のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報を含むことを特徴とする請求項２〜９の何れか１項に記載の画像形成装置。
【請求項１１】
前記第２のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報は、当該第２のアプリケーションと異なる他の前記第２のアプリケーションを示す情報であることを特徴とする請求項１０に記載の画像形成装置。
【請求項１２】
前記第２のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報は、プラグインではないアプリケーションにより実行される処理を示す情報であることを特徴とする請求項１０に記載の画像形成装置。
【請求項１３】
前記管理情報は、前記第２のアプリケーションの実行が可能または不可能になる条件を示す情報として、前記第２のアプリケーションの実行が可能または不可能になるための、前記第１のアプリケーションの設定および前記画像形成装置の構成の条件を示す情報を含むことを特徴とする請求項２〜１２の何れか１項に記載の画像形成装置。
【請求項１４】
前記管理情報に基づいて、前記第２のアプリケーションによる処理の実行を妨げる前記第１のアプリケーションの処理の設定を、当該第２のアプリケーションによる処理の実行ができるように変更する第１の変更手段を更に有することを特徴とする請求項２〜１３の何れか１項に記載の画像形成装置。
【請求項１５】
前記第１のアプリケーションにより実行される処理の設定を選択する部分と、当該第１のアプリケーションと相互に関連付けられて前記管理手段により管理される前記第２のアプリケーションにより実行される処理の設定を選択する部分とを含む第１の画面を表示する表示手段を更に有し、
前記表示手段は、前記第２のアプリケーションにより実行される処理の設定を選択する部分がユーザにより選択されると、当該第２のアプリケーションによる処理の実行を妨げる前記第１のアプリケーションの処理の設定を、当該第２のアプリケーションによる処理の実行ができるように変更されたことを示す情報を更に表示することを特徴とする請求項１４に記載の画像形成装置。
【請求項１６】
前記第１のアプリケーションにより実行される処理の設定を選択する部分と、当該第１のアプリケーションと相互に関連付けられて前記管理手段により管理される前記第２のアプリケーションにより実行される処理の設定を選択する部分とを含む第１の画面を表示する表示手段を更に有し、
前記表示手段は、前記第１のアプリケーションにより実行される処理の設定と前記第２のアプリケーションにより実行される処理の設定とを同時に実行することができない場合、当該第２のアプリケーションにより実行される処理の設定を選択する部分がユーザにより選択されると、当該処理が実行できないことを示す情報を更に表示することを特徴とする請求項１〜１５の何れか１項に記載の画像形成装置。
【請求項１７】
前記第１のアプリケーションにより実行される処理の設定を選択する部分と、当該第１のアプリケーションと相互に関連付けられて前記管理手段により管理される前記第２のアプリケーションにより実行される処理の設定を選択する部分とを含む第１の画面を表示する表示手段と、
前記第２のアプリケーションによる処理の実行を妨げる前記第１のアプリケーションの処理の設定を、当該第２のアプリケーションによる処理の実行ができるように変更する第２の変更手段とを更に有し、
前記表示手段は、前記第１のアプリケーションにより実行される処理の設定と前記第２のアプリケーションにより実行される処理の設定とを同時に実行することができない場合に、当該第２のアプリケーションにより実行される処理の設定を選択する部分がユーザにより選択されると、当該第１のアプリケーションにより実行される処理の設定を変更するか否かを選択するための第２の画面を更に表示し、
前記第２の変更手段は、前記第２の画面に対し、前記第１のアプリケーションの設定を変更することがユーザにより選択されると、当該第１のアプリケーションによる処理の設定を変更することを特徴とする請求項１〜１５の何れか１項に記載の画像形成装置。
【請求項１８】
画像を形成するための処理を行う少なくとも１つの第１のアプリケーションを記憶する記憶工程と、
前記第１のアプリケーションの少なくとも１つと、プラグインとして追加された第２のアプリケーションとを相互に関連付けて管理する管理工程と、を有し、
前記管理工程は、前記第２のアプリケーションによる処理の実行が可能または不可能になる要因および条件の少なくとも何れか一方を更に管理することを特徴とする画像形成装置の制御方法。
【請求項１９】
請求項１〜１７の何れか１項に記載の画像形成装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成装置の制御方法、およびプログラムに関し、特に、画像処理を行うアプリケーションを画像形成装置に追加するために用いて好適なものである。
【背景技術】
【０００２】
画像形成装置に関する技術として、画像形成装置で提供されていない画像処理を含む各種ジョブを実行するために、新規の画像処理を含むアプリケーションをプラグインとして作成する技術が知られている。また、プラグインの機能の排他を実現するための技術についても提案されている（特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−９８９４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の画像処理装置は、プラグインの追加のタイミングに同期して、プラグインを含む機能の排他表を別途ダウンロードする構成をとる。その結果、機能の排他表は、プラグインの開発に伴い常に管理される必要があり、別々の開発者が複数のプラグインを同時に並行して開発するような状況では管理が難しくなる可能性がある。
本発明は、このような問題点に鑑みてなされたものであり、プラグインの管理を容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の画像形成装置は、画像を形成するための処理を行う少なくとも１つの第１のアプリケーションを記憶する記憶手段と、前記第１のアプリケーションの少なくとも１つと、プラグインとして追加された第２のアプリケーションとを相互に関連付けて管理する管理手段と、を有し、前記管理手段は、前記第２のアプリケーションによる処理の実行を更に管理することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、プラグインの管理を容易に行うことができる。
【図面の簡単な説明】
【０００７】
【図１】画像形成システムの構成を示す図である。
【図２】画像形成装置の構成を示す図である。
【図３】画像処理装置のソフトウェアの構造の第１の例を示す図である。
【図４】デバイス制御アプリケーションの画面情報を示す図である。
【図５】画像処理プラグインアプリケーションの画面情報を示す図である。
【図６】排他情報を保存する際の処理を示すフローチャートである。
【図７】図６のＳ６０７を示すフローチャートである。
【図８】メインメニュー画面を示す図である。
【図９】コピーアプリケーションのメイン画面を示す図である。
【図１０】画像処理設定画面を示す図である。
【図１１】画像処理個別設定画面を示す図である。
【図１２】画像処理設定画面の表示処理の第１の例を示すフローチャートである。
【図１３】ジョブ実行時の制御を示すフローチャートである。
【図１４】画像処理装置のソフトウェアの構造の第２の例を示す図である。
【図１５】使用可否判断情報の構成を示す図である。
【図１６】画像処理設定画面の表示処理の第２の例を示すフローチャートである。
【図１７】画像処理装置のソフトウェアの構造の第３の例を示す図である。
【図１８】画像処理設定画面の表示処理の第３の例を示すフローチャートである。
【図１９】拡張画像処理アイコンが有効化された画面処理設定画面を示す図である。
【図２０】補正メッセージ画面を示す図である。
【図２１】警告メッセージ画面を示す図である。
【図２２】機能選択画面を示す図である。
【発明を実施するための形態】
【０００８】
以下、実施形態について図面を用いて説明する。
（第１の実施形態）
図１は、画像形成システムの構成の一例を示す図である。画像形成システムは、画像形成装置１０１、１０２をはじめとする複数の画像形成装置と、情報処理端末１０３、１０４と、サーバ１０５とを有する。これらは、ネットワーク１０６を介して相互に接続されて、相互に通信可能な状態である。画像形成装置１０１、１０２をはじめとする複数の画像形成装置は、同じ構成で実現することができる。そこで、以下、複数の画像形成装置を代表して画像形成装置１０１について説明を行い、その他の画像形成装置の詳細な説明を省略する。。尚、ここでいうネットワーク１０６は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＩｎｔｅｒｎｅｔ等、画像形成システム内の装置が相互に通信できる方式であれば、どのようなものであってもよい。
【０００９】
画像形成装置１０１は、例えば、情報処理端末１０３、１０４からの画像データの印刷依頼を受信して画像を印刷することや、自装置内のスキャナを用いて画像を読み取ることや、読み取った画像を印刷することが可能である。また、画像形成装置１０１は、情報処理端末１０３、１０４から受信した印刷データを保存することや、自装置内のスキャナで読み取った画像を情報処理端末１０３、１０４に送信することが可能である。更に、画像形成装置１０１は、サーバ１０５を用いて画像処理を行うことや、サーバ１０５に格納されている文書に対して印刷を行うことが可能である。その他、画像形成装置１０１は、例えば、ＭＦＰ（Multifunction Peripheral）が有する公知の機能を実現することができる。尚、画像形成装置１０１は、コピー機能等の画像を形成する機能を有する装置であれば、ＭＦＰに限定されない。
【００１０】
図２は、画像形成装置１０１の構成の一例を示す図である。
画像形成装置１０１は、コントローラ２０１、プリンタ２０２、スキャナ２０３、および操作部２０４を有する。コントローラ２０１は、ＣＰＵ２１１、ＲＡＭ２１２、ＨＤＤ２１３、ネットワークＩ／Ｆ２１４、プリンタＩ／Ｆ２１５、スキャナＩ／Ｆ２１６、操作部Ｉ／Ｆ２１７、および拡張Ｉ／Ｆ２１８を有する。ＣＰＵ２１１は、ＲＡＭ２１２、ＨＤＤ２１３、ネットワークＩ／Ｆ２１４、プリンタＩ／Ｆ２１５、スキャナＩ／Ｆ２１６、操作部Ｉ／Ｆ２１７、および拡張Ｉ／Ｆ２１８とデータを授受することが可能である。また、ＣＰＵ２１１は、ＨＤＤ２１３から読み出した命令をＲＡＭ２１２に展開し、ＲＡＭ２１２に記憶されている命令を実行する。
【００１１】
ＨＤＤ２１３には、ＣＰＵ２１１で実行可能な命令、画像形成装置１０１で使用する設定値、ユーザから依頼された処理に関するデータ等を記憶しておくことが可能である。ＲＡＭ２１２は、ＣＰＵ２１１がＨＤＤ２１３から読み出した命令を一時的に格納するための領域であり、命令の実行に必要な各種のデータを記憶しておくことが可能である。
【００１２】
ネットワークＩ／Ｆ２１４は、画像形成システム内の装置とネットワーク通信を行うためのＩ／Ｆ（インターフェース）である。ネットワークＩ／Ｆ２１４は、データ受信を行ったことをＣＰＵ２１１に伝達することや、ＲＡＭ２１２上のデータをネットワーク１０６に送信することが可能である。プリンタＩ／Ｆ２１５は、ＣＰＵ２１１から送信された印刷データをプリンタ２０２に送信することや、プリンタ２０２から受信したプリンタの状態をＣＰＵ２１１に伝達することが可能なＩ／Ｆである。スキャナＩ／Ｆ２１６は、ＣＰＵ２１１から送信された画像読み取り指示をスキャナ２０３に送信しスキャナ２０３から受信した画像データをＣＰＵ２１１に伝達することや、スキャナ２０３から受信した状態をＣＰＵ２１１に伝達することが可能なＩ／Ｆである。
【００１３】
操作部Ｉ／Ｆ２１７は、操作部２０４から入力されたユーザからの指示をＣＰＵ２１１に伝達することや、ユーザが操作するための画面情報を操作部２０４に伝達することが可能なＩ／Ｆである。拡張Ｉ／Ｆ２１８は、画像形成装置１０１に外部機器を接続することを可能とするＩ／Ｆである。拡張Ｉ／Ｆ２１８は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）形式のＩ／Ｆを具備する。この場合、拡張Ｉ／Ｆ２１８は、ＵＳＢメモリ等の外部記憶装置と接続され、外部記憶装置に対してデータの読み取り・書き込みを行うことが可能である。
【００１４】
プリンタ２０２は、プリンタＩ／Ｆ２１５から受信した画像データを用紙に印刷することや、プリンタ２０２の状態をプリンタＩ／Ｆ２１５に伝達することが可能である。スキャナ２０３は、スキャナＩ／Ｆ２１６から受信した画像読み取り指示に従って、スキャナ２０３に置かれた用紙を読み取りデジタル化してスキャナＩ／Ｆ２１６に伝達することや、スキャナ２０３の状態をスキャナＩ／Ｆ２１６に伝達することが可能である。操作部２０４は、画像形成装置１０１に対する操作をユーザに行わせるためのＩ／Ｆである。操作部２０４は、例えば、タッチパネルを有する液晶画面を具備し、液晶画面に操作画面を表示することによりユーザに操作画面を提供すると共に、この液晶画面に対するユーザによる操作を受け付ける。
【００１５】
図３は、画像形成装置１０１のＨＤＤ２１３に記憶されたプログラムに係るソフトウェアの構造の一例を示す模式的な階層図である。尚、ＨＤＤ２１３に記憶されたプログラムは、ＣＰＵ２１１によって処理される。また、図３において、一部の例外を除いて、下位の階層が提供するサービスを上位の階層が利用する関係になっている。
【００１６】
図３において最下層は、オペレーティングシステム３１６であり、プログラムの実行の管理やメモリの管理等を行うための階層である。オペレーティングシステム３１６の中には、プリンタ制御ドライバ３１７、スキャナ制御ドライバ３１８、およびネットワークＩ／Ｆ制御ドライバ３１９が組み込まれる。オペレーティングシステム３１６は、これらが連携することにより機能する。プリンタ制御ドライバ３１７は、プリンタＩ／Ｆ２１５を介してプリンタ２０２を制御するためのソフトウェアである。スキャナ制御ドライバ３１８は、スキャナＩ／Ｆ２１６を介してスキャナ２０３を制御するためのソフトウェアである。ネットワークＩ／Ｆ制御ドライバ３１９は、ネットワークＩ／Ｆ２１４を制御するためのソフトウェアである。
【００１７】
最下層から２段目の層であるデバイス制御ライブラリ３０９は、後述の単独機能プラグインアプリケーション３０２またはデバイス制御アプリケーション３０４と静的あるいは動的にリンクされる。更にデバイス制御ライブラリ３０９は、各アプリケーションプログラムによる指示に応じて、オペレーティングシステム３１６を制御する。また、各デバイス制御ライブラリ３０９は、プラグイン接続ライブラリ３１４および画像処理ライブラリ３１５に対して画像処理を依頼する。画像処理を依頼する一連のフローの一例については後述する。
【００１８】
次に、デバイス制御ライブラリ３０９の制御の一例について説明する。
プリントライブラリ３１０は、プリンタ制御ドライバ３１７の機能を利用してプリントジョブの制御を行うためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を提供するライブラリである。ここでのプリントジョブとは、画像形成装置１０１のＨＤＤ２１３に保存されている印刷データを印刷することや、ネットワークＩ／Ｆ２１４を通して情報処理端末１０３、１０４から受信した印刷データを印刷するといった一連の処理を表す。
コピーライブラリ３１１は、スキャナ制御ドライバ３１８およびプリンタ制御ドライバ３１７の機能を利用して、コピージョブの制御を行うためのＡＰＩを提供するライブラリである。ここでのコピージョブとは、スキャナ２０３でスキャンした画像データをプリンタ２０２で印刷する一連の処理を表す。
【００１９】
スキャン保存ライブラリ３１２は、スキャナ制御ドライバ３１８の機能を利用してスキャン保存ジョブの制御を行うためのＡＰＩを提供するライブラリである。ここでのスキャン保存ジョブとは、スキャナ２０３でスキャンした画像データを印刷データまたは汎用フォーマットに変換した後、ＨＤＤ２１３または拡張Ｉ／Ｆ２１８に接続されているＵＳＢ等の外部記憶装置に保存する一連の処理を表す。尚、前述の汎用フォーマットとは、例えば、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）といったデータフォーマットを表す。前述の汎用フォーマットは、その他のデータフォーマット（例えば、ＴＩＦＦ（Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）やＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ））であってもよい。
【００２０】
スキャン送信ライブラリ３１３は、スキャナ制御ドライバ３１８およびネットワークＩ／Ｆ制御ドライバ３１９の機能を利用してスキャン送信ジョブの制御を行うためのＡＰＩを提供するライブラリである。ここでのスキャン送信ジョブとは、スキャナ２０３でスキャンした画像データを汎用フォーマットに変換した後、ネットワークＩ／Ｆ２１４を通してファイルサーバに送信したり、電子メールに添付して送信したりする一連の処理を表す。
【００２１】
管理ライブラリ３３０は、画像形成装置１０１の構成に関する情報を保持・管理するためのライブラリである。本実施形態では、画像形成装置１０１の構成としては、印刷済みの用紙に対してステープルやパンチ穴を付与するためのフィニッシャーや、ソフトウェアライセンスにより有効化された機能の一覧等を指すものとする。しかしながら、画像形成装置１０１全体として管理すべき情報であれば、画像形成装置１０１の構成に関する情報は、これらに限らない。
【００２２】
最下層から２段目の層には、更にプラグイン接続ライブラリ３１４および画像処理ライブラリ３１５が存在する。
画像処理ライブラリ３１５は、ＣＰＵ２１１によって実行される様々な画像処理を実行するためのＡＰＩを提供するライブラリである。様々な画像処理とは、画像形成装置１０１に入力された画像データを汎用フォーマットに変換する処理や、工場出荷時より常駐で利用可能な処理を表す。工場出荷時より常駐で利用可能な処理としては、例えば、シャープネス処理やページ集約等がある。尚、画像処理ライブラリ３１５のそれぞれは、固有の画像処理名３２６を保有する。例えば、シャープネス機能を持つ画像処理ライブラリ３１５の画像処理名３２６には、Ｓｈａｒｐｎｅｓｓが設定される。画像処理名３２６は、デバイス制御ライブラリ３０９が画像処理ライブラリ３１５を呼び分けるための識別子として利用される。
【００２３】
プラグイン接続ライブラリ３１４は、デバイス制御ライブラリ３０９からの画像処理の実行依頼に応じて、画像形成装置１０１にインストールされている画像処理プラグインアプリケーション３０３に対し実行指示を行うライブラリである。プラグイン接続ライブラリ３１４は、画像処理プラグインアプリケーション３０３に対し、静的または動的にリンクしている。プラグイン接続ライブラリ３１４は、後述するデバイス制御アプリケーション３０４ともリンクしており、実行可能な画像処理プラグインアプリケーション３０３のリストをデバイス制御アプリケーション３０４に伝達することも可能である。本実施形態では、例えば、デバイス制御アプリケーション３０４を用いることにより第１のアプリケーションの一例が実現される。また、本実施形態では、例えば、画像処理プラグインアプリケーション３０３を用いることにより第２のアプリケーションの一例が実現される。また、本実施形態では、例えば、プラグイン接続ライブラリ３１４を用いることにより、第１のアプリケーションの少なくとも１つと、プラグインとして追加された第２のアプリケーションとを相互に関連付けて管理する管理手段の一例が実現される。
【００２４】
最上層は、プラグインアプリケーション３０１およびデバイス制御アプリケーション３０４によって成り立つアプリケーション層である。デバイス制御アプリケーション３０４は、デバイス制御ライブラリ３０９の各ＡＰＩをコールすることによって様々な機能を提供する。尚、デバイス制御アプリケーション３０４は、ＨＤＤ２１３に書き込まれている常駐のアプリケーションであり、ファームのバージョンアップにより、その機能を拡張することが可能である。各デバイス制御アプリケーション３０４は、それぞれ画面情報３２２、３２３、３２４、３２５を有する。ＣＰＵ２１１は、操作部Ｉ／Ｆ２１７を通して操作部２０４にそれぞれの画面情報を表示する。また、各デバイス制御アプリケーション３０４は、プラグイン接続ライブラリ３１４に対して、画像処理プラグインアプリケーション３０３の画像処理名３２１および画面情報３２７の取得の依頼を行うことが可能である。この処理は、後述するデバイス制御アプリケーション３０４の画面に対して、画像形成装置１０１にインストールされている画像処理プラグインアプリケーション３０３を有効化するための画面情報を表示する処理のために利用される。
【００２５】
次に、デバイス制御アプリケーション３０４の画面情報３２２、３２３、３２４、３２５の内容の一例について、図４を用いて説明する。図４は、デバイス制御アプリケーション３０４の画面情報３２２、３２３、３２４、３２５の具体的な内容の一例を示す図である。
例えば、画面情報３２２には、起動用アイコン４０２、メイン画面４０３、依存画面４０５、および設定画面４０４の夫々の画面を表示するために用いる画面情報が含まれる。画面情報３２３、３２４、３２５についても同様である。以下、起動用アイコン４０２、メイン画面４０３、依存画面４０５、および設定画面４０４を総称して、デバイス制御アプリケーション画面４０１と呼ぶ。
【００２６】
起動用アイコン４０２は、画像形成装置１０１の起動後に操作部２０４に表示されるトップ画面に表示されるアイコンである。ＣＰＵ２１１は、起動用アイコン４０２の押下を検知すると、それぞれのアイコンに応じたデバイス制御アプリケーション３０４に対して起動指示を行う。メイン画面４０３は、画像形成装置１０１の起動指示後に表示されるデバイス制御アプリケーション３０４のトップ画面である。設定画面４０４は、それぞれのジョブに対して画像処理を設定する際に用いられる画面である。
【００２７】
依存画面４０５は、各デバイス制御アプリケーション３０４に固有の設定を行う画面である。例えば、依存画面４０５は、スキャン送信アプリケーション３０８における宛先設定を行う画面や、コピーアプリケーション３０６における印刷設定を行う画面を指す。ＣＰＵ２１１は、画面情報３２２、３２３、３２４、３２５に対するユーザの操作による設定を検知すると、その設定の内容をＲＡＭ２１２に書き込む。各デバイス制御アプリケーション３０４はこの段階で、必要に応じて各ジョブの設定に画像処理名を設定する。尚、各デバイス制御アプリケーション３０４は、ユーザが操作部２０４を押下することによる画像処理の選択に基づいて各ジョブの設定に画像処理名を設定したり、各ジョブに必要な画像処理の画像処理名を自動で各ジョブに設定したりすることも可能である。
【００２８】
また、デバイス制御アプリケーション３０４のみならずデバイス制御ライブラリ３０９が、各ジョブの設定に画像処理名を設定することも可能である。例えば、各デバイス制御ライブラリ３０９は、オペレーティングシステム３１６を制御するにあたり、必要な画像処理がある場合に画像処理名を設定する。尚、デバイス制御アプリケーション３０４およびデバイス制御ライブラリ３０９は、画像処理名を、複数設定することも、設定しないことも可能である。ＣＰＵ２１１は、操作部２０４に対するユーザの操作に基づいてジョブの実行の開始を検知すると、各デバイス制御ライブラリ３０９のＡＰＩをコールすることによりジョブを開始させる。尚、ジョブの設定方法、および画像処理の設定方法の具体例については後述する。
【００２９】
次に、各デバイス制御アプリケーション３０４の一例について説明する。プリントアプリケーション３０５は、プリントライブラリ３１０のＡＰＩをコールすることによりプリントジョブを実行する。コピーアプリケーション３０６は、コピーライブラリ３１１のＡＰＩをコールすることによりコピージョブを実行する。スキャン保存アプリケーション３０７は、スキャン保存ライブラリ３１２のＡＰＩをコールすることによりスキャン保存ジョブを実行する。スキャン送信アプリケーション３０８は、スキャン送信ライブラリ３１３のＡＰＩをコールすることによりスキャン送信ジョブを実行する。
【００３０】
次に、プラグインアプリケーション３０１の一例について説明する。プラグインアプリケーション３０１は、常駐アプリケーションであるデバイス制御アプリケーション３０４とは別に、プラグインとして、画像形成装置１０１に対しインストールおよびアンインストールすることが可能なアプリケーションである。プラグインアプリケーション３０１は、単独機能プラグインアプリケーション３０２と、画像処理プラグインアプリケーション３０３とを有する。各プラグインアプリケーション３０１には、それぞれの動作に必要なプログラムがパッケージングされている。各プラグインアプリケーション３０１は、リモートＵＩ（ＵｓｅｒＩｎｔｅｒｆａｃｅ）等によって、画像形成装置１０１にインストールされる。尚、リモートＵＩとは、外部の情報処理端末１０３においてＷｅｂブラウザからネットワークＩ／Ｆ２１４を経由して画像形成装置１０１にアクセスし、画像形成装置１０１の状況の確認、印刷ジョブの操作、および各種設定等を行うことができる仕組みである。また、各プラグインアプリケーション３０１は、それぞれ個別に起動および停止を行うことが可能である。
【００３１】
次に、単独機能プラグインアプリケーション３０２の一例について説明する。単独機能プラグインアプリケーション３０２は、アプリケーション自体が画面情報３２０を持っており、デバイス制御ライブラリ３０９のＡＰＩをコールすることで常駐のデバイス制御アプリケーション３０４とは別の機能や画面をユーザに提供することができる。例えば、ある画像データをコピーすると共にスキャンして送信する機能等、複数の機能を組み合わせることも可能である。また、単独機能プラグインアプリケーション３０２は、画面情報３２０に対する画像処理の設定を検知すると、当該画像処理に対応する画像処理名をジョブに設定する。尚、単独機能プラグインアプリケーション３０２は、ユーザからの明示的な設定がなくても、単独機能プラグインアプリケーション３０２がデフォルトで実現したい画像処理の画像処理名を設定することも可能である。
【００３２】
次に、画像処理プラグインアプリケーション３０３の一例について説明する。画像処理プラグインアプリケーション３０３は、特定の画像処理を提供するアプリケーションである。特定の画像処理とは、画像処理ライブラリ３１５とは別に画像形成装置１０１において拡張される画像処理を表す。例えば、特定の画像処理には、入力画像に対するフォーマットの変換、斜行補正、およびＯＣＲ（ｏｐｔｉｃａｌ  ｃｈａｒａｃｔｅｒ  ｒｅｃｏｇｎｉｔｉｏｎ）後の翻訳データの生成といった処理等が含まれる。また、画像処理プラグインアプリケーション３０３は、それ自体が画像処理の機能を持っていなくてもよい。例えば、サーバ１０５が、画像処理のプログラムを管理し、画像処理プラグインアプリケーション３０３が、ネットワークＩ／Ｆ２１４を通し、サーバ１０５に対して画像処理の指示を送信することで、画像処理を実現することも可能である。各画像処理プラグインアプリケーション３０３は、それらの画像処理の内容を識別するための識別子として画像処理名３２１を保持する。例えば、斜行補正を行う画像処理プラグインアプリケーション３０３の場合、画像処理名３２１として"ＴｉｌｔＣｏｒｒｅｃｔ"が設定される。画像処理名３２１は固有であり、同じ画像処理名３２１を持つ複数の画像処理プラグインアプリケーション３０３は、画像形成装置１０１のＨＤＤ２１３には存在しない。つまり、画像形成装置１０１に既にインストールされた画像処理プラグインアプリケーション３０３の画像処理名３２１と同じ画像処理名の画像処理プラグインアプリケーション３０３を画像形成装置１０１にインストールすることはできない。
【００３３】
また、画像処理プラグインアプリケーション３０３は、他の画像処理プラグインアプリケーション３０３との排他関係が記載されている排他情報３２８を保持する。表１に排他情報３２８の内容の一例を示す。
【００３４】
【表１】
2018129611.tif 000003
【００３５】
排他情報３２８には、画像処理プラグイン名、排他関係の有無、および情報の更新日が含まれる。表１を例に挙げると、この排他情報３２８を保持している画像処理プラグインアプリケーション３０３は、「プラグインＡ」および「プラグインＤ」とは排他関係が有り、「プラグインＢ」とは排他関係が無いことになる。本実施形態では、例えば、排他情報３２８により、第２のアプリケーションによる処理の実行が可能または不可能になる要因を示す情報の一例が実現される。また、例えば、排他情報３２８により、第２のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報と、当該第２のアプリケーションと異なる他の第２のアプリケーションを示す情報の一例が実現される。
【００３６】
各デバイス制御ライブラリ３０９は、プラグイン接続ライブラリ３１４に対して画像処理を依頼する際、画像処理名および処理の詳細なパラメータをジョブに設定する。プラグイン接続ライブラリ３１４は、ジョブに設定された画像処理名を元に画像処理プラグインアプリケーション３０３に対し処理依頼を行う。尚、プラグイン接続ライブラリ３１４が画像処理プラグインアプリケーション３０３に対して処理依頼を行う部分は、図３において、下位モジュールが上位モジュールに対してコールすることが可能な唯一の箇所である。画像処理プラグインアプリケーション３０３は、プラグインアプリケーション３０１の説明で示した通り、リモートＵＩ等によって画像形成装置１０１にインストールされ、起動することで、画像形成装置１０１により認識される。また、画像処理プラグインアプリケーション３０３は、画面情報３２７を保持する。
【００３７】
図５は、画像処理プラグインアプリケーション３０３の画面情報３２７の具体的な内容の一例を示す図である。画面情報３２７には、画像処理アイコン５０１および画像処理個別設定画面５０２の画像情報が含まれる。画面情報３２７は、デバイス制御アプリケーション３０４の起動時において、デバイス制御アプリケーション画面４０１を生成するのに用いられる。尚、デバイス制御アプリケーション画面４０１の具体的な生成方法の一例については後述する。画像処理プラグインアプリケーション３０３は、各画像処理アイコン５０１および画像処理個別設定画面５０２を画像データとして保持する構成を採用することができる。また、画像処理プラグインアプリケーション３０３は、各画像処理アイコン５０１および画像処理個別設定画面５０２を文字データとして保持しておき、実際の画面の生成時に、動的に画面を生成する構成を採用することができる。文字データとしては、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）や、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等が挙げられる。また、画像処理アイコン５０１および画像処理個別設定画面５０２の構成についてはこれ以外でも構わない。
【００３８】
以下に、プラグインアプリケーション３０１のインストールから起動、停止、アンインストールまでの一連の流れの一例を示す。
ＣＰＵ２１１は、プラグインアプリケーション３０１のインストールを検知すると、当該プラグインアプリケーション３０１の情報をＨＤＤ２１３に保存する。次に、ＣＰＵ２１１は、プラグインアプリケーション３０１に対する開始指示を検知すると、当該プラグインアプリケーション３０１に対する起動指示を行う。プラグインアプリケーション３０１は、起動している間、各プログラムの内容を実行する事が可能である。次に、ＣＰＵ２１１は、プラグインアプリケーション３０１に対する停止指示を検知すると、当該プラグインアプリケーション３０１に対して停止指示を行う。更にＣＰＵ２１１は、プラグインアプリケーション３０１に対するアンインストール指示を検知すると、ＨＤＤ２１３に保存されたプラグインアプリケーション３０１の情報を削除する。尚、これらの指示は、リモートＵＩや操作部２０４から行うことが可能だが、これ以外でも構わない。
【００３９】
また、画像処理プラグインアプリケーション３０３のインストール時には、以上の処理に加えて、ＣＰＵ２１１は、画像処理プラグインアプリケーション３０３に同梱されている排他情報３２８をＨＤＤ２１３に保存する。本実施形態では、例えば、このような排他情報３２８のＨＤＤ２１３への保存により、第２のアプリケーションが追加される際に、当該第２のアプリケーションに付加されている管理情報を記憶媒体に記憶する記憶手段の一例が実現される。
【００４０】
ここで、図６のフローチャートを参照しながら、排他情報３２８をＨＤＤ２１３に保存する際の画像形成装置１０１の処理の一例を説明する。尚、図６のフローチャートで示す処理は、ＣＰＵ２１１が画像形成装置１０１のＨＤＤ２１３に格納されたプラグイン接続ライブラリ３１４を利用することによって実行されるものとする。また、ここでは前述の表１のような排他情報３２８を保持する「プラグインＣ」というプラグイン名の画像処理プラグインアプリケーション３０３がインストールされることとする。
【００４１】
プラグイン接続ライブラリ３１４は、画像処理プラグインアプリケーション３０３のインストール時に、そのプラグイン名と、それに紐づいた排他情報３２８との登録を受け付ける（Ｓ６０１）。次に、プラグイン接続ライブラリ３１４は、Ｓ６０１で登録された排他情報３２８に、排他関係にあるプラグイン名の記載があるか否かを判定する（Ｓ６０２）。本実施形態では、例えば、Ｓ６０２の処理により、管理手段が、第２のアプリケーションに対する管理情報に基づいて、当該第２のアプリケーションにより実行される処理と同時に実行できない他のアプリケーションの処理を特定することの一例が実現される。
【００４２】
この判定の結果、プラグイン名の記載がある場合、処理はＳ６０３へ進み、記載がない場合、処理はＳ６０３〜Ｓ６０６を省略して後述するＳ６０７に進む。「プラグインＣ」の排他情報３２８として表１のような排他情報３２８が登録された場合、排他関係にある画像処理プラグインアプリケーション３０３として「プラグインＡ」および「プラグインＤ」の記載があるので、処理は、Ｓ６０３に進む。次に、プラグイン接続ライブラリ３１４は、その排他関係にある画像処理プラグインアプリケーション３０３に紐づいて保存されている排他情報３２８を参照する（Ｓ６０３）。ここでは、「プラグインＡ」の排他情報３２８が、以下の表２のようなものであるとする。
【００４３】
【表２】
2018129611.tif 000004
【００４４】
次に、プラグイン接続ライブラリ３１４は、その排他情報３２８に、Ｓ６０１で登録を受け付けた画像処理プラグインアプリケーション３０３（ここでは「プラグインＣ」）との排他関係の情報の記載がないか否かを判定する（Ｓ６０４）。この判定の結果、排他関係にある画像処理プラグインアプリケーション３０３の排他情報３２８に、登録を受け付けた画像処理プラグインアプリケーション３０３との排他関係の情報の記載がない場合、処理はＳ６０６へ進む。表２の例では、「プラグインＣ」の排他情報３２８に排他関係にある画像処理プラグインアプリケーション３０３として記載されている「プラグインＡ」の排他情報３２８には「プラグインＣ」との排他関係の情報の記載がない。このため、処理はＳ６０５を省略してＳ６０６へ進む。
【００４５】
一方、排他関係にある画像処理プラグインアプリケーション３０３の排他情報３２８に、Ｓ６０１で登録を受け付けた画像処理プラグインアプリケーション３０３との排他関係の情報の記載がある場合、処理はＳ６０５へ進む。そして、プラグイン接続ライブラリ３１４は、その排他関係の情報における更新日が、Ｓ６０１で登録を受け付けた排他情報３２８に記載されている更新日よりも古いか否かを判定する。この判定の結果、更新日が古い場合、処理はＳ６０６へ進み、古くない場合、処理はＳ６０６を省略して後述するＳ６０７へ進む。
【００４６】
Ｓ６０６に進むと、プラグイン接続ライブラリ３１４は、排他関係にある画像処理プラグインアプリケーション３０３に紐づいて保存されている排他情報３２８の内容を、Ｓ６０１で登録を受け付けた排他情報３２８の記載と一致するように修正する。そして、処理はＳ６０７に進む。表２の例では、「プラグインＡ」の排他情報３２８は、表１の「プラグインＣ」の排他情報３２８の内容と一致するように、以下の表３のように修正される。本実施形態では、例えば、Ｓ６０６の処理により、管理手段が、同時に処理を実行することができない複数の第２のアプリケーションに対する管理情報の少なくとも何れか１つを変更することが実現される。また、例えば、「プラグインＣ」、「プラグインＡ」の排他情報３２８の「プラグインＡ」、「プラグインＣ」の更新日により、同時に処理を実行することができない複数の第２のアプリケーションに対する管理情報の更新のタイミングの一例が実現される。また、例えば、プラグイン接続ライブラリ３１４が、「プラグインＡ」の排他情報３２８を変更すると決定することにより、管理手段が、変更する管理情報を決定することの一例が実現される。
【００４７】
【表３】
2018129611.tif 000005
【００４８】
Ｓ６０７に進むと、プラグイン接続ライブラリ３１４は、Ｓ６０１で登録を受け付けた画像処理プラグインアプリケーション３０３の排他情報３２８の中身を修正する。この処理の詳細の一例については後述する。最後に、プラグイン接続ライブラリ３１４は、Ｓ６０６、Ｓ６０７で修正した排他情報３２８をＨＤＤ２１３に保存する（Ｓ６０８）。この時、プラグイン接続ライブラリ３１４は、画像処理プラグインアプリケーション３０３ごとに排他情報３２８を異なる領域に保存しても良いこととする。本実施形態では、例えば、Ｓ６０６、Ｓ６０７の処理により、管理手段が、同時に処理を実行することができない複数の第２のアプリケーションに対する管理情報の少なくとも何れか１つを変更することの一例が実現される。
【００４９】
次に、図７のフローチャートを参照しながら、図６のＳ６０７の詳細の一例を説明する。尚、図７のフローチャートで示す処理は、ＣＰＵ２１１が画像形成装置１０１のＨＤＤ２１３に格納されたプラグイン接続ライブラリ３１４を利用することによって実行されるものとする。
初めに、プラグイン接続ライブラリ３１４は、ＨＤＤ２１３に保存されている、登録済みの全ての画像処理プラグインアプリケーション３０３に紐づいた排他情報３２８を参照する（Ｓ７０１）。次に、プラグイン接続ライブラリ３１４は、Ｓ６０１で登録を受け付けた画像処理プラグインアプリケーション３０３のプラグイン名の記載がある排他情報３２８が、Ｓ７０１で参照した排他情報３２８から検出されたか否か判定する（Ｓ７０２）。本実施形態では、例えば、Ｓ７０２の処理により、管理手段が、第２のアプリケーションに対する管理情報に基づいて、当該第２のアプリケーションにより実行される処理と同時に実行することができない他のアプリケーションの処理を特定することが実現される。
【００５０】
この判定の結果、排他情報３２８が検出された場合、処理はＳ７０３へ進み、検出されなかった場合、図７のフローチャートによる処理は終了する。ここでは、「プラグインＤ」という名前の画像処理プラグインアプリケーション３０３に紐づいた、表４のような排他情報３２８が検出されたこととする。
【００５１】
【表４】
2018129611.tif 000006
【００５２】
表４の例では、「プラグインＤ」の排他情報３２８には、「プラグインＣ」との排他関係の情報の記載があるため、処理はＳ７０３へ進む。尚、このとき、複数の排他情報３２８が検出された場合は、次のＳ７０３、Ｓ７０４、Ｓ７０５、Ｓ７０６の処理はそれぞれの排他情報３２８に対して繰り返し行われる。Ｓ７０３に進むと、プラグイン接続ライブラリ３１４は、Ｓ６０１で登録を受け付けた画像処理プラグインアプリケーション３０３に紐づく排他情報３２８を参照する。次に、プラグイン接続ライブラリ３１４は、Ｓ７０３で参照した排他情報３２８に、Ｓ７０２で検出された排他情報３２８に紐づく画像処理プラグインアプリケーション３０３のプラグイン名の記載がないか否かを判定する（Ｓ７０４）。この判定の結果、プラグイン名の記載がある場合、処理はＳ７０５へ進み、記載がない場合、処理はＳ７０５を省略して後述するＳ７０６へ進む。
【００５３】
Ｓ７０５に進むと、プラグイン接続ライブラリ３１４は、Ｓ７０３で参照した排他情報３２８とＳ７０２で検出された排他情報３２８とのそれぞれに記載されている更新日を比較する。そして、プラグイン接続ライブラリ３１４は、Ｓ７０２で検出された排他情報３２８の方がＳ７０３で参照した排他情報３２８よりも、更新日が新しいか否か判定する（Ｓ７０５）。この判定の結果、更新日が新しい場合、処理はＳ７０６へ進み、新しくない場合、図７のフローチャートによる処理は終了する。
【００５４】
表１（Ｓ７０３で参照した排他情報３２８）と表４（Ｓ７０２で検出された排他情報３２８）の例では、表４の更新日の方が表１の「プラグインＤ」の更新日よりも新しいため、処理はＳ７０６へ進む。
Ｓ７０６に進むと、プラグイン接続ライブラリ３１４は、Ｓ６０１で登録を受け付けた排他情報３２８の中身を、Ｓ７０２で検出された排他情報３２８の記載と一致するように修正する（Ｓ７０６）。表１の排他情報３２８は、表４の排他情報３２８の内容と一致するように、以下の表５のように修正される。本実施形態では、例えば、Ｓ７０６の処理により、管理手段が、同時に処理を実行することができない複数の第２のアプリケーションに対する管理情報の少なくとも何れか１つを変更することが実現される。また、例えば、「プラグインＣ」、「プラグインＤ」の排他情報３２８の「プラグインＤ」、「プラグインＣ」の更新日により、同時に処理を実行することができない複数の第２のアプリケーションに対する管理情報の更新のタイミングの一例が実現される。また、例えば、プラグイン接続ライブラリ３１４が、「プラグインＣ」の排他情報３２８を変更すると決定することにより、管理手段が、変更する管理情報を決定することの一例が実現される。
【００５５】
【表５】
2018129611.tif 000007
【００５６】
次に、画像形成装置１０１の起動時の処理の一例について説明する。
図８は、操作部２０４に表示されるメインメニュー画面８０１の一例を示す図である。ＣＰＵ２１１は、画像形成装置１０１の起動時に、ＨＤＤ２１３からメインメニューを構成するデバイス制御アプリケーション３０４を取得する。更に、ＣＰＵ２１１は、このデバイス制御アプリケーション３０４のデバイス制御アプリケーション画面４０１から、起動用アイコン４０２を取得し、メインメニュー画面８０１に表示する。プリントアイコン８０２、コピーアイコン８０３、スキャン保存アイコン８０４、およびスキャン送信アイコン８０５は、起動用アイコン４０２である。メインメニュー画面８０１には、常駐のデバイス制御アプリケーション３０４の他にも、単独機能プラグインアプリケーション３０２用のアイコン８０６を表示することが可能である。この場合、ＣＰＵ２１１は、画像形成装置１０１の起動時に、プラグインアプリケーション３０１から、単独機能プラグインアプリケーション３０２の画面情報３２０として、単独機能プラグインアプリケーション３０２用のアイコン８０６を取得する。そして、ＣＰＵ２１１は、単独機能プラグインアプリケーション３０２用のアイコン８０６をメインメニュー画面８０１に表示する。単独機能プラグインアプリケーション３０２用のアイコン８０６は、単独機能プラグインアプリケーション３０２の画面情報３２０に含まれている。ＣＰＵ２１１は、単独機能プラグインアプリケーション３０２用のアイコン８０６の押下を検知すると、単独機能プラグインアプリケーション３０２を起動する。
【００５７】
次に、デバイス制御アプリケーション３０４が自身のデバイス制御アプリケーション画面４０１に対し、画像処理プラグインアプリケーション３０３を有効化するための画面情報を挿入するまでの一連の流れの一例を説明する。ここでは、デバイス制御アプリケーション３０４の具体例として、コピーアプリケーション３０６を用いる。まず、コピーアプリケーション３０６の画面構成の一例について説明する。尚、以下では、まず、図９、図１０および図１１において、コピーアプリケーション３０６の画面構成について説明する。その後、図１２において、デバイス制御アプリケーション画面４０１に対し画像処理プラグインアプリケーション３０３を有効化する画面を挿入するフローの説明を行う。
【００５８】
図９は、コピーアプリケーション３０６のメイン画面９０１の一例を示す図である。依存画面９０２は、図４を用いて説明した依存画面４０５に相当する画面であり、コピーアプリケーション３０６に特化した設定画面である。依存画面９０２は、印刷の倍率設定や部数設定といった、コピージョブに特化した設定を行うための画面である。設定ボタン９０３は、コピージョブに対する画像処理を指定する設定画面を表示するためのボタンである。
【００５９】
図１０は、設定ボタン９０３が押下されると表示される画像処理設定画面１００１の一例を示す図である。画像処理設定画面１００１には、各画像処理を設定するためのアイコン１００２、１００３、１００４、１００５、１００６、１００７が表示される。尚、アイコン１００２、１００３、１００４、１００５は、コピーアプリケーション３０６の設定画面４０４に含まれる画像処理のアイコンである。また、拡張画像処理アイコン１００６、１００７は、プラグインとして追加された画像処理プラグインアプリケーション３０３の画像処理アイコン５０１である。前述したように、コピーアプリケーション３０６の画面情報３２３に含まれるアイコンと、画像処理プラグインアプリケーション３０３の画面情報３２７に含まれるアイコンとは、同じ画像処理設定画面１００１に表示される。従って、プラグインとして追加された画像処理の設定も、通常のデバイス制御アプリケーション３０４のデバイス制御アプリケーション画面４０１の中で設定することが可能となる。尚、拡張画像処理アイコン１００７にはハッチングが施されている。これは、現在のアプリケーションの設定ではこの拡張画像処理アイコン１００７を選択できないが、他の画像処理の設定を変更することで選択できるようになることを示唆する表示形態である。
【００６０】
図１１は、プラグインとして追加された画像処理プラグインアプリケーション３０３に対する画像処理個別設定画面５０２の一例を示す図である。画像処理個別設定画面５０２は、拡張画像処理設定１１０１、キャンセルボタン１１０２、および設定ボタン１１０３を有する。ユーザは、拡張画像処理設定１１０１に対する操作を行うことにより、画像処理プラグインアプリケーション３０３により拡張される画像処理に対する設定を個別に行うことができる。拡張画像処理設定１１０１には、この設定に必要なチェックボックスやスライダ等を表示される。キャンセルボタン１１０２は、拡張画像処理設定１１０１に対して入力された項目をキャンセルするためのボタンである。設定ボタン１１０３は、拡張画像処理設定１１０１に対して入力された項目を設定するためのボタンである。
【００６１】
図１２は、デバイス制御アプリケーション３０４が、画像処理設定画面１００１を表示する際の処理の一例を示すフローチャートである。以下に、コピーアプリケーション３０６の起動を例に挙げ、デバイス制御アプリケーション３０４内の画像処理設定画面１００１を表示する際のフローについて説明する。尚、図１２のフローチャートで示す処理は、画像形成装置１０１のＨＤＤ２１３に格納されたコピーアプリケーション３０６のプログラムにより制御されるものであり、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行されるものとする。
【００６２】
コピーアプリケーション３０６は、画像処理設定画面１００１の表示要求を受信すると、画像処理ライブラリ３１５により実現可能な画像処理に対応するアイコンを表示する（Ｓ１２０１）。図１０に示した例では、Ｓ１２０１で表示されるアイコンは、アイコン１００２、１００３、１００４、１００５である。本実施形態では、例えば、Ｓ１２０１の処理により、表示手段の一例が実現される。また、例えば、画像処理設定画面１００１により第１の画面の一例が実現される。また、例えば、アイコン１００２〜１００５により、第１のアプリケーションにより実行される処理の設定を選択する部分の一例が実現される。
【００６３】
次に、コピーアプリケーション３０６は、プラグイン接続ライブラリ３１４に問い合わせ、画面情報３２７を含んだ画像処理プラグインアプリケーション３０３のリストを取得する（Ｓ１２０２）。次に、コピーアプリケーション３０６は、Ｓ１２０２で取得したリストに含まれる画像処理プラグインアプリケーション３０３のうち、未選択のものを１つ選択する。Ｓ１２０４〜Ｓ１２０８の処理は、プラグイン接続ライブラリ３１４の機能を利用し、Ｓ１２０３で選択された画像処理プラグインアプリケーション３０３について行われる。
【００６４】
まず、コピーアプリケーション３０６は、Ｓ１２０３で選択した画像処理プラグインアプリケーション３０３の画面情報３２７と当該画像処理プラグインアプリケーション３０３の表示形態とを取得する（Ｓ１２０４）。具体的にコピーアプリケーション３０６は、リスト内の要素を指定すると共に、メイン画面４０３や依存画面４０５で設定された設定内容と現在有効になっている画像処理プラグインアプリケーション３０３の一覧とをプラグイン接続ライブラリ３１４に入力する。
【００６５】
プラグイン接続ライブラリ３１４は、それらの情報と、ＨＤＤ２１３に保存されている排他情報３２８の内容とに基づいて、Ｓ１２０３で選択した画像処理プラグインアプリケーション３０３が使用可能であるかどうかを判断する。そして、プラグイン接続ライブラリ３１４は、その判断の結果に基づいて、表示形態を決定し、画像処理プラグインアプリケーション３０３から取得した画面情報３２７と表示形態とをコピーアプリケーション３０６に返却する。本実施形態では、このようにしてプラグイン接続ライブラリ３１４が表示形態を決定することにより、決定手段の一例が実現される。
【００６６】
本実施形態では、画像処理プラグインアプリケーション３０３の表示形態を以下のように三つ定義するものとする。一つ目は、ユーザが選択可能な"可視状態（表示）"である。二つ目は、現在のデバイス制御アプリケーション３０４の状態では選択できないがユーザによる設定の変更により使用可能となり得る"選択不可状態（グレーアウト）"である。三つ目は、現在の装置の状態ではユーザの操作に関わらず使用不可能な"不可視状態（非表示）"である。本実施形態では、これら三つを表示形態として定義するが、他に適切な表示形態があれば、その表示形態が追加されても構わない。
【００６７】
次に、コピーアプリケーション３０６は、Ｓ１２０４で返却された表示形態の内容を確認する（Ｓ１２０５）。Ｓ１２０５において、プラグイン接続ライブラリ３１４から"非表示"の表示形態が返却された場合、コピーアプリケーション３０６は、以下のようにする。即ち、コピーアプリケーション３０６は、プラグイン接続ライブラリ３１４から返却された画面情報３２７に含まれるアイコンを表示することなく、後述するＳ１２０９に処理を進める。Ｓ１２０５において、プラグイン接続ライブラリ３１４から"グレーアウト"の表示形態が返却された場合、コピーアプリケーション３０６は、以下の処理を行う（Ｓ１２０６）。即ち、コピーアプリケーション３０６は、ユーザによる選択が不可能な形態で、プラグイン接続ライブラリ３１４から返却された画面情報３２７に含まれるアイコンを画像処理設定画面１００１に表示する（Ｓ１２０６）。図１０の拡張画像処理アイコン１００７が"グレーアウト"に対応する表示形態を示す。本実施形態では、例えば、拡張画像処理アイコン１００６、１００７により、第２のアプリケーションにより実行される処理の設定を選択する部分の一例が実現される。また、例えば、Ｓ１２０６の処理により、表示手段の一例が実現される。
【００６８】
Ｓ１２０５において、プラグイン接続ライブラリ３１４から"表示"の表示形態が返却された場合、コピーアプリケーション３０６は、拡張画像処理アイコン１００６の押下の検知時に直ちに画像処理個別設定画面５０２を表示する必要がある。そこで、コピーアプリケーション３０６は、Ｓ１２０３で選択された画像処理プラグインアプリケーション３０３の画像処理個別設定画面５０２の情報を取得する（Ｓ１２０７）。次に、コピーアプリケーション３０６は、プラグイン接続ライブラリ３１４から返却された画面情報３２７に含まれる拡張画像処理アイコンを、ユーザによる選択が可能な形態で画像処理設定画面１００１に表示する（Ｓ１２０８）。本実施形態では、例えば、Ｓ１２０８の処理により、表示手段の一例が実現される。
【００６９】
次に、コピーアプリケーション３０６は、Ｓ１２０２で取得したリストに含まれる画像処理プラグインアプリケーション３０３のリストに含まれる全ての画像処理プラグインアプリケーション３０３を選択したか否かを判定する（Ｓ１２０９）。この判定の結果、全ての画像処理プラグインアプリケーション３０３を選択していない場合、処理は、Ｓ１２０３に戻り、全ての画像処理プラグインアプリケーション３０３が選択されるまでＳ１２０３〜Ｓ１２０９の処理が繰り返し実行される。そして、全ての画像処理プラグインアプリケーション３０３についてＳ１２０３〜Ｓ１２０８の処理が実行されると、図１２のフローチャートによる処理は終了する。
【００７０】
以上の処理により、コピーアプリケーション３０６は、画像処理設定画面１００１に、画像処理プラグインアプリケーション３０３の画像処理アイコン５０１（拡張画像処理アイコン１００６、１００７）を挿入することができる。尚、プラグイン接続ライブラリ３１４からコピーアプリケーション３０６に表示形態を直接返却しなくてもよい。例えば、画像処理プラグインアプリケーション３０３が使用できるかどうかの情報をもとにコピーアプリケーション３０６が画像処理プラグインアプリケーション３０３の表示形態を判断してもよい。
【００７１】
次に、デバイス制御アプリケーション３０４におけるユーザによる設定に関する画像形成装置１０１の処理の一例について説明する。
ＣＰＵ２１１は、コピーアプリケーション３０６のメイン画面９０１において、依存画面９０２での設定を検知すると、当該設定の内容をＲＡＭ２１２に書き込む。依存画面９０２については、それぞれのボタンの押下に応じて別画面に遷移し、遷移した画面で設定が行われるようにしてもよい。ＣＰＵ２１１は、設定ボタン９０３の押下を検知すると、コピーアプリケーション３０６の画像処理設定画面１００１を表示する。ＣＰＵ２１１は、画像処理アイコン１００２〜１００５および拡張画像処理アイコン１００６の何れかの押下を検知すると、それぞれのアイコンに紐づいている画像処理に対して、画像処理個別設定画面が存在するか否かを判断する。画像処理個別設定画面とは、各画像処理に対する詳細を設定することが可能な画面であり、図１１に示した画像処理個別設定画面５０２も含められる。画像処理個別設定画面は、各画像処理アイコンに対し、詳細な設定が必要な場合のみ存在する。
【００７２】
ＣＰＵ２１１は、画像処理アイコン１００２〜１００５および拡張画像処理アイコン１００６のうち押下されたアイコンに対し画像処理個別設定画面が存在しない場合、画像処理名として当該アイコンに対応する画像処理名を設定し、ＲＡＭ２１２に書き込む。一方、画像処理アイコン１００２〜１００５および拡張画像処理アイコン１００６のうち押下されたアイコンに対し画像処理個別設定画面が存在する場合、ＣＰＵ２１１は、当該アイコンに対応する画像処理個別設定画面を表示する。拡張画像処理アイコン１００６が押下された場合を例として挙げると、ＣＰＵ２１１は、図１１に示した画像処理個別設定画面５０２を表示する。
【００７３】
ＣＰＵ２１１は、拡張画像処理設定１１０１に対するユーザの操作を検知すると、その操作の内容を設定情報としてＲＡＭ２１２に書き込む。ＣＰＵ２１１は、キャンセルボタン１１０２の押下を検知すると、ＲＡＭ２１２に書き込んだ設定情報を破棄し、画像処理設定画面１００１を表示する。一方、ＣＰＵ２１１は、設定ボタン１１０３の押下を検知すると、ＲＡＭ２１２に書き込んだ設定情報を読み出す。そして、ＣＰＵ２１１は、画像処理名として、画像処理設定画面１００１に対して押下されたアイコンに対応する画像処理名を設定した上で、ＲＡＭ２１２に書き込み、画像処理設定画面１００１を表示する。このとき、操作部２０４は、画像処理設定画面１００１で押下されたアイコンの色を変化させたり、有効化表示をしたりするのが好ましい。拡張画像処理設定１１０１（画像処理プラグインアプリケーション３０３による画像処理の設定）が有効化されたことをユーザに認識させることができるからである。ユーザは、以上の操作を所望の設定が完了するまで行い、ＣＰＵ２１１は、その都度ＲＡＭ２１２に設定情報を追加で書き込む。つまり、ユーザが複数の画像処理を設定した場合には、画像処理名は複数設定されることになる。また、画像処理設定画面１００１において、設定の更新ごとに動的にアイコンの選択可否を制御できることが好ましい。従って、ＣＰＵ２１１は、画像処理の設定をＲＡＭ２１２に書き込む毎に、図１２のフローチャートによる処理を実施する。
【００７４】
次に、ジョブ実行時のフローの一例について、コピーアプリケーション３０６を例に挙げて説明する。図１３は、ジョブ実行時の画像形成装置１０１の制御の一例を示すフローチャートである。図１３のフローチャートで示す処理に係るプログラムは画像形成装置１０１のＨＤＤ２１３に格納されており、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行されるものとする。
【００７５】
まず、デバイス制御アプリケーション３０４は、コピージョブの実行指示を検知する（Ｓ１３０１）。そして、デバイス制御アプリケーション３０４は、コピーライブラリ３１１のＡＰＩをコールし、更にコピーライブラリ３１１がスキャナ制御ドライバ３１８に対してスキャン指示を行う。スキャナ制御ドライバ３１８は、スキャナ２０３からスキャンした画像データを、コピーライブラリ３１１に送信する。
【００７６】
コピーライブラリ３１１は、コピーアプリケーション３０６で設定された設定情報をＲＡＭ２１２から取得すると、設定情報に含まれる画像処理名のうち未選択の画像処理名を１つ選択する（Ｓ１３０２）。以下のＳ１３０３〜Ｓ１３０６の処理は、Ｓ１３０２で選択された画像処理について行われる。
【００７７】
次に、コピーライブラリ３１１は、Ｓ１３０２で選択した画像処理名の画像処理が、画像処理ライブラリ３１５で処理可能であるか否かを判定する（Ｓ１３０３）。具体的にコピーライブラリ３１１は、設定情報に含まれる画像処理名と等しい画像処理名３２６を持つ画像処理ライブラリ３１５が存在するか否かを画像処理ライブラリ３１５に問い合わせることにより、Ｓ１３０３の判定を行う。この判定の結果、Ｓ１３０２で選択した画像処理名の画像処理が、画像処理ライブラリ３１５で処理可能である場合、コピーライブラリ３１１は、画像処理ライブラリ３１５のＡＰＩをコールして、画像処理を実行する（Ｓ１３０６）。
【００７８】
一方、Ｓ１３０２で選択した画像処理名の画像処理が、画像処理ライブラリ３１５で処理可能でない場合、コピーライブラリ３１１は、プラグイン接続ライブラリ３１４のＡＰＩをコールする（Ｓ１３０４）。プラグイン接続ライブラリ３１４は、Ｓ１３０２で選択された画像処理名に一致する画像処理名を、画像処理プラグインアプリケーション３０３の画像処理名３２１から探索する。そして、プラグイン接続ライブラリ３１４は、探索した画像処理名３２１に紐づく画像処理プラグインアプリケーション３０３のＡＰＩをコールし、画像処理を実行する（Ｓ１３０５）。このとき、画像処理プラグインアプリケーション３０３は、画像処理個別設定画面５０２に対して入力された設定値の情報をそれぞれの画像処理に反映する。
【００７９】
次に、コピーライブラリ３１１は、コピーアプリケーション３０６で設定された設定情報に含まれる画像処理名の全てを選択したか否かを判定する（Ｓ１３０７）。この判定の結果、全ての画像処理名を選択していない場合、処理は、Ｓ１３０２に戻る。そして、全ての画像処理名が選択されるまで、Ｓ１３０２〜Ｓ１３０７の処理が繰り返し実行される。そして、全ての画像処理名の画像処理が終了すると、コピーライブラリ３１１は、プリンタ制御ドライバ３１７に対し印刷指示を送信する。プリンタ制御ドライバ３１７は、プリンタＩ／Ｆ２１５より、プリンタ２０２に対し印刷指示を送信する。プリンタ２０２は、当該印刷指示に基づいて印刷を実行する。以上によりコピージョブが完結する（Ｓ１３０７）。
【００８０】
以上のように本実施形態では、プラグインとして画像形成装置１０１に追加される画像処理プラグインアプリケーション３０３は、自身と同時に実行することができない他の画像処理プラグインアプリケーション３０３の情報を排他情報３２８として保持する。そして、プラグイン接続ライブラリ３１４が排他情報３２８の内容の変更を行う。例えば、プラグイン接続ライブラリ３１４は、排他の関係にある複数の画像処理プラグインアプリケーション３０３の排他情報３２８について、更新日が相対的に新しい排他情報３２８に合わせて更新日が相対的に古い排他情報３２８を変更する。また、プラグイン接続ライブラリ３１４は、排他情報３２８に基づいて、画像処理プラグインアプリケーション３０３が使用可能であるかどうかを判断する。そして、デバイス制御アプリケーション３０４は、この判断の結果に基づく表示形態で、当該画像処理プラグインアプリケーション３０３に対する拡張画像処理アイコン１００６を画像処理設定画面１００１に表示する。従って、画像処理を行うためのプラグインを開発する際、各プラグインの開発者はプラグインに直接関連するジョブに関連する排他の制御のみを考慮すればよくなり、システムの開発効率が向上する。よって、プラグイン同士の排他の管理を容易にすることができる。また、プラグインとして追加された新規の画像処理同士の排他関係を考慮した上で、プラグインの使用可否を判断し、その結果に応じて表示状態を切り替えることが可能になる。よって、ユーザは、プラグインとして追加された新規の画像処理と、既存の画像処理とを意識して使い分けることなく、所望のジョブを実行することが可能となるため、利便性が向上する。
【００８１】
（第２の実施形態）
次に、第２の実施形態を説明する。第１の実施形態では、プラグイン接続ライブラリ３１４が、画像処理プラグインアプリケーション３０３の排他情報３２８を適宜修正しながら利用することで、画像処理プラグインアプリケーション３０３のアイコンの表示形態を切り替える。しかしながら、画像処理プラグインアプリケーション３０３のアイコンの表示形態は、排他情報３２８だけなく、デバイス制御アプリケーション３０４の設定や現在の機器構成によっても、変化することが考えられる。本実施形態では、プラグイン接続ライブラリ３１４が、デバイス制御アプリケーション３０４の設定および現在の機器構成を受け取り、画像処理プラグインアプリケーション３０３の表示形態をデバイス制御アプリケーション３０４に返却する。このように本実施形態と第１の実施形態とでは、排他情報に代えて後述する使用可否情報を用いる点と、画像処理プラグインアプリケーション３０３のアイコンの表示形態に係る処理とが主として異なる。従って、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図１３に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００８２】
図１４は、本実施形態の画像形成装置１０１のソフトウェアの構造の一例を示す模式的な階層図である。本実施形態では、画像処理プラグインアプリケーション３０３には、排他情報３２８の代わりに、所与の入力をもとにプラグイン自身の使用可否を判断するための使用可否判断情報３２８が紐づけられる。使用可否判断情報３２８には、画像処理プラグインアプリケーション３０３の使用が可能となるための、デバイス制御アプリケーション３０４の設定や機器構成等の条件が記載されている。使用可否判断情報３２８は、第１の実施形態で説明した排他情報３２８と同じように、画像処理プラグインアプリケーション３０３のインストール時に登録を受け付け、ＨＤＤ２１３に保存される。尚、画像処理プラグインアプリケーション３０３の使用が不可能になるための、デバイス制御アプリケーション３０４の設定や機器構成等の条件が、使用可否判断情報３２８に記載されていてもよい。本実施形態では、例えば、使用可否判断情報３２８により、第２のアプリケーションの実行が可能または不可能になる条件を示す情報の一例が実現される。また、例えば、使用可否判断情報３２８により、第２のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報と、プラグインではないアプリケーションにより実行される処理を示す情報の一例が実現される。
【００８３】
デバイス制御アプリケーション３０４において、画像処理設定画面１００１を表示する際の処理は第１の実施形態と同様であり、図１２のフローチャートにより実現される。このとき、第１の実施形態では、Ｓ１２０４の処理において、排他情報３２８を利用する。これに対し、本実施形態では、Ｓ１２０４の処理において、排他情報３２８を利用せずに使用可否判断情報３２８を利用する。
【００８４】
Ｓ１２０４において、コピーアプリケーション３０６は、Ｓ１２０３で選択した画像処理プラグインアプリケーション３０３の画面情報３２７と当該画像処理プラグインアプリケーション３０３の表示形態とを取得する。具体的にコピーアプリケーション３０６は、リスト内の要素を指定すると共に、メイン画面４０３や依存画面４０５に対する設定の内容をプラグイン接続ライブラリ３１４に入力する。これに対応して、本実施形態では、まず、プラグイン接続ライブラリ３１４は、管理ライブラリ３３０から現在の機器構成を取得する。そして、画像処理プラグインアプリケーション３０３は、プラグイン接続ライブラリ３１４から受信した情報と、ＨＤＤ２１３に保存してある使用可否判断情報３２８とに基づいて、画像処理プラグインアプリケーション３０３自身の使用可否を判断する。そして、画像処理プラグインアプリケーション３０３は、その結果に基づいて自身の表示形態を判断し、プラグイン接続ライブラリ３１４に出力する。プラグイン接続ライブラリ３１４は、画面情報３２７と共に、画像処理プラグインアプリケーション３０３の表示形態をコピーアプリケーション３０６に返却する。
【００８５】
本実施形態では、デバイス制御アプリケーション３０４の設定や現在の機器構成をもとにして、画像処理プラグインアプリケーション３０３の表示形態を決定し、呼び出し元に返却することが可能になる。尚、使用可否判断情報３２８と排他情報３２８との双方を用いて、画像処理プラグインアプリケーション３０３の使用可否を判断するようにしてもよい。例えば、プラグイン接続ライブラリ３１４は、使用可否判断情報３２８からでは使用が可能である場合でも、排他情報３２８からでは使用が可能でない場合、画像処理プラグインアプリケーション３０３の使用が可能でないと判断してもよい。
【００８６】
（第３の実施形態）
次に、第３の実施形態を説明する。第２の実施形態では、画像処理プラグインアプリケーション３０３が、デバイス制御アプリケーション３０４の設定および現在の機器構成を取得し、自身の表示形態を返却する場合について説明したが、表示形態を直接返却しない場合も考えられる。本実施形態では、プラグイン接続ライブラリ３１４が、画像処理プラグインアプリケーション３０３の表示形態を直接返却せず、デバイス制御アプリケーション３０４が、プラグイン接続ライブラリ３１４から返却された情報に基づいて、表示形態を判断する。このように本実施形態と第１、第２の実施形態とは、画像処理プラグインアプリケーション３０３のアイコンの表示形態に係る処理が主として異なる。従って、本実施形態の説明において、第１、第２の実施形態と同一の部分については、図１〜図１４に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００８７】
図１５は、本実施形態における使用可否判断情報３２８の構成の一例を示す図である。本実施形態では、使用可否判断情報３２８は、以下の２つの情報を含む。一つ目は、機器構成条件情報１５０１である。機器構成条件情報１５０１は、所与の機器構成で画像処理プラグインアプリケーション３０３が使用可能であるか否かを判断するための情報である。二つ目は、アプリケーション設定条件情報１５０２である。アプリケーション設定条件情報１５０２は、所与のデバイス制御アプリケーション３０４の設定で画像処理プラグインアプリケーション３０３が使用可能であるか否かを判断するための情報である。
【００８８】
図１６は、デバイス制御アプリケーション３０４が、画像処理設定画面１００１を表示する際の処理の一例を示すフローチャートである。以下に、コピーアプリケーション３０６の起動を例に挙げ、デバイス制御アプリケーション３０４内の画像処理設定画面１００１を表示する際のフローについて説明する。尚、図１６のフローチャートで示す処理は、画像形成装置１０１のＨＤＤ２１３に格納されたコピーアプリケーション３０６のプログラムにより制御されるものであり、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行されるものとする。
【００８９】
コピーアプリケーション３０６は、画像処理設定画面１００１の表示要求を受信すると、画像処理ライブラリ３１５により実現可能な画像処理に対応するアイコンを表示する（Ｓ１６０１）。Ｓ１６０１で表示されるアイコンは、図１０に示した例ではアイコン１００２、１００３、１００４、１００５である。本実施形態では、例えば、Ｓ１６０１の処理により、表示手段の一例が実現される。
【００９０】
次に、コピーアプリケーション３０６は、プラグイン接続ライブラリ３１４に問い合わせ、画面情報３２７を含んだ画像処理プラグインアプリケーション３０３のリストを取得する（Ｓ１６０２）。次に、コピーアプリケーション３０６は、Ｓ１６０２で取得したリストに含まれる画像処理プラグインアプリケーション３０３のうち、未選択のものを１つ選択する。Ｓ１６０４〜Ｓ１６０８の処理は、プラグイン接続ライブラリ３１４の機能を利用し、Ｓ１６０３で選択された画像処理プラグインアプリケーション３０３について行われる。
【００９１】
まず、コピーアプリケーション３０６は、Ｓ１６０３で選択した画像処理プラグインアプリケーション３０３が、現在の機器構成で使用可能であるか否かを判定する（Ｓ１６０４）。このとき、プラグイン接続ライブラリ３１４は、管理ライブラリ３３０から現在の機器構成を取得する。また、プラグイン接続ライブラリ３１４は、使用可否判断情報３２８を取得する。そして、コピーアプリケーション３０６は、現在の機器構成と、使用可否判断情報３２８に含まれる機器構成条件情報１５０１とに基づいて、Ｓ１６０３で選択した画像処理プラグインアプリケーション３０３の使用可否を判定する。この判定の結果、画像処理プラグインアプリケーション３０３が使用可能でない場合、処理は、後述するＳ１６０９に進む。一方、画像処理プラグインアプリケーション３０３が使用可能である場合、コピーアプリケーション３０６は、Ｓ１６０３で選択した画像処理プラグインアプリケーション３０３に対応する画面情報３２７を取得する（Ｓ１６０５）。
【００９２】
次に、コピーアプリケーション３０６は、Ｓ１６０３で選択した画像処理プラグインアプリケーション３０３が現在のアプリケーション設定で使用可能であるか否かを判定する（Ｓ１６０６）。具体的には、コピーアプリケーション３０６は、Ｓ１６０３で選択した画像処理プラグインアプリケーション３０３が現在のアプリケーション設定で使用可能か否かをプラグイン接続ライブラリ３１４に問い合わせる。このとき、コピーアプリケーション３０６は、現在のコピーアプリケーション３０６の設定情報をプラグイン接続ライブラリ３１４に送信する。これに対応してプラグイン接続ライブラリ３１４は、現在のコピーアプリケーション３０６の設定情報と、使用可否判断情報３２８に含まれるアプリケーション設定条件情報１５０２とに基づき、当該画像処理プラグインアプリケーションの使用可否を判定する。
【００９３】
この判定の結果、画像処理プラグインアプリケーション３０３が現在のアプリケーション設定で使用可能でない場合、コピーアプリケーション３０６は、拡張画像処理アイコンの表示形態を、ユーザによる選択が不可能な形態に決定する。そして、コピーアプリケーション３０６は、ユーザによる選択が不可能な形態で、拡張画像処理アイコンを画像処理設定画面１００１に表示する（Ｓ１６０７）。図１０に示す例では、拡張画像処理アイコン１００７が、ユーザによる選択を不可能とする表示形態の一例である。本実施形態では、このようにしてコピーアプリケーション３０６が表示形態を決定することにより、決定手段の一例が実現される。また、本実施形態では、例えば、Ｓ１６０７の処理により、表示手段の一例が実現される。
【００９４】
一方、画像処理プラグインアプリケーションが現在のアプリケーション設定で使用可能である場合、コピーアプリケーション３０６は、拡張画像処理アイコンの表示形態を、ユーザによる選択が可能な形態に決定する。そして、コピーアプリケーション３０６は、ユーザによる選択が可能な形態で、拡張画像処理アイコンを画像処理設定画面１００１に表示する（Ｓ１６０８）。本実施形態では、このようにしてコピーアプリケーション３０６が表示形態を決定することにより、決定手段の一例が実現される。また、本実施形態では、例えば、Ｓ１６０８の処理により、表示手段の一例が実現される。
【００９５】
次に、コピーアプリケーション３０６は、Ｓ１６０２で取得したリストに含まれる画像処理プラグインアプリケーション３０３のリストに含まれる全ての画像処理プラグインアプリケーション３０３を選択したか否かを判定する（Ｓ１６０９）。この判定の結果、全ての画像処理プラグインアプリケーション３０３を選択していない場合、処理は、Ｓ１６０３に戻り、全ての画像処理プラグインアプリケーション３０３が選択されるまでＳ１６０３〜Ｓ１６０９の処理が繰り返し実行される。そして、全ての画像処理プラグインアプリケーション３０３についてＳ１６０３〜Ｓ１６０８の処理が実行されると、図１６のフローチャートによる処理は終了する。
【００９６】
以上の処理により、コピーアプリケーション３０６の画像処理設定画面１００１に、画像処理プラグインアプリケーション３０３の画像処理アイコン５０１を挿入することができる。
本実施形態で示した方法で画像処理プラグインアプリケーション３０３の画像処理アイコン５０１の表示形態を決定することにより、デバイス制御アプリケーション３０４側の都合で表示形態を制御することが可能になる。例えば、画像形成装置１０１の管理者向けのデバイス制御アプリケーション３０４の場合、機器構成を変更することで有効化される機能の確認が必要である可能性がある。このような場合でも、画像処理プラグインアプリケーション３０３側の制御を変えずに表示形態を柔軟に制御することが可能となる。
【００９７】
（第４の実施形態）
次に、第４の実施形態を説明する。第２の実施形態では、画像処理プラグインアプリケーション３０３が、デバイス制御アプリケーション３０４の設定および現在の機器構成を取得し、自身の表示状態を返却する場合について説明した。しかしながら、この他にも、画像処理プラグインアプリケーション３０３の設定に応じて、従来の画像処理の使用可否を切り替えることが有効な場面がある。そこで、本実施形態では、画像処理プラグインアプリケーション３０３の設定を考慮した上で、従来の画像処理の使用可否を切り替える。従来の画像処理とは、画像形成装置１０１のＨＤＤ２１３に常時格納されている画像処理プログラムであり、ファームの更新においてのみ追加可能な画像処理を指す。このように本実施形態と、第１〜第３の実施形態とは、画像処理の使用可否の判断に係る処理が主として異なる。従って、本実施形態の説明において、第１〜第３の実施形態と同一の部分については、図１〜図１６に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００９８】
図１７は、本実施形態の画像形成装置１０１のソフトウェアの構造の一例を示す模式的な階層図である。本実施形態では、画像処理プラグインアプリケーション３０３は、従来の画像処理との排他関係が記載されている表６のような従来画像処理排他情報３６０を保持しているものとする。前述したように従来の画像処理とは、画像形成装置１０１のＨＤＤ２１３に常時格納されている画像処理プログラムであり、ファームの更新においてのみ追加可能な画像処理を指す。
【００９９】
【表６】
2018129611.tif 000008
【０１００】
従来画像処理排他情報３６０には、排他対象の従来の画像処理が記載されている。表６を例に挙げると、この従来画像処理排他情報３６０を保持している画像処理プラグインアプリケーション３０３は、「画像処理Ａ」および「画像処理Ｃ」と排他関係があることを表す。ＣＰＵ２１１は、画像処理プラグインアプリケーション３０３のインストール時に、従来画像処理排他情報３６０をＨＤＤ２１３に書き込む。本実施形態では、例えば、従来画像処理排他情報３６０により、第２のアプリケーションによる処理の実行が可能または不可能になる要因を示す情報の一例が実現される。また、例えば、従来画像処理排他情報３６０により、第２のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報と、プラグインではないアプリケーションにより実行される処理を示す情報の一例が実現される。
【０１０１】
図１８は、デバイス制御アプリケーション３０４が、画像処理設定画面１００１を表示する際の処理の一例を示すフローチャートである。図１８は、従来の画像処理に対するアイコンの表示の切り替え処理を示したフローチャートである。以下に、コピーアプリケーション３０６の起動を例に挙げ、画像処理設定画面１００１を表示する際のフローについて説明する。尚、図１８のフローチャートで示す処理は、画像形成装置１０１のＨＤＤ２１３に格納されたプログラムにより制御されるものであり、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行されるものとする。
【０１０２】
コピーアプリケーション３０６は、画像処理設定画面１００１の表示要求を受信すると、ＲＡＭ２１２に書き込まれた設定済み画像処理プラグインアプリケーション３０３のリストを取得する（Ｓ１８０１）。そして、コピーアプリケーション３０６は、プラグイン接続ライブラリ３１４に、ＲＡＭ２１２から取得した設定済み画像処理プラグインアプリケーション３０３のリストを入力する。次に、コピーアプリケーション３０６は、設定済み画像処理プラグインアプリケーション３０３のリストから、未選択の設定済み画像処理プラグインアプリケーションを１つ選択する（Ｓ１８０２）。設定済み画像処理プラグインアプリケーション３０３は、画像処理個別設定画面５０２により既に設定がなされている画像処理プラグインアプリケーション３０３を指す。
【０１０３】
次に、プラグイン接続ライブラリ３１４は、Ｓ１８０２で選択した設定済み画像処理プラグインアプリケーション３０３についての従来画像処理排他情報３６０をＨＤＤ２１３から取得する（Ｓ１８０３）。次に、プラグイン接続ライブラリ３１４は、Ｓ１８０３で取得した従来画像処理排他情報３６０に含まれる従来の画像処理のうち、未選択の画像処理を１つ選択する（Ｓ１８０４）。次に、プラグイン接続ライブラリ３１４は、Ｓ１８０２で選択した設定済み画像処理プラグインアプリケーション３０３と、Ｓ１８０４で選択した従来の画像処理とを比較する（Ｓ１８０５）。そして、プラグイン接続ライブラリ３１４は、Ｓ１８０２で選択した設定済み画像処理プラグインアプリケーション３０３による画像処理と、Ｓ１８０４で選択した従来の画像処理とが排他の関係にあるか否かを判定する（Ｓ１８０６）。この判定は、Ｓ１８０３で取得された従来画像処理排他情報３６０に基づいて行われる。本実施形態では、例えば、Ｓ１８０５の処理により、管理手段が、第２のアプリケーションに対する管理情報に基づいて、当該第２のアプリケーションにより実行される処理と同時に実行できない他のアプリケーションの処理を特定することの一例が実現される。
【０１０４】
この判定の結果、排他の関係にないと判断した場合（Ｓ１８０６）、プラグイン接続ライブラリ３１４は、以下の処理を行う。即ち、プラグイン接続ライブラリ３１４は、ユーザによる選択が可能な形態で、Ｓ１８０２で選択した設定済み画像処理プラグインアプリケーションの従来の画像処理を設定するためのアイコンを表示する旨をコピーアプリケーション３０６に返却する。コピーアプリケーション３０６は、ユーザによる選択が可能な形態で、Ｓ１８０２で選択した設定済み画像処理プラグインアプリケーションの従来の画像処理を設定するためのアイコンを画像処理設定画面１００１に表示する（Ｓ１８０９）。
【０１０５】
一方、排他の関係にある場合（Ｓ１８０６）、プラグイン接続ライブラリ３１４は、表示設定を判定する（Ｓ１８０７）。表示設定は、ＨＤＤ２１３に保存されている設定であり、例えば、画像形成装置１０１の管理者等が操作部２０４を用いて設定する。本実施形態では、表示設定として、第１の実施形態で説明した"可視状態（表示）"、"選択不可状態（グレーアウト）"、および"不可視状態（非表示）"の何れかが設定されるものとする。
【０１０６】
そして、プラグイン接続ライブラリ３１４は、表示設定に応じて、排他となる従来の画像処理を設定するためのアイコンに対し、非表示、グレーアウト（Ｓ１８０８）、および選択可能な形で表示（Ｓ１８０９）の何れかの表示形態を決定する。プラグイン接続ライブラリ３１４は、このようにして決定した表示形態をコピーアプリケーション３０６に返却する。コピーアプリケーション３０６は、プラグイン接続ライブラリ３１４から受信した表示形態に応じて、従来の画像処理を設定するためのアイコンの表示を切り替える（Ｓ１８０８、Ｓ１８０９）。本実施形態では、このようにしてプラグイン接続ライブラリ３１４が表示形態を決定することにより、決定手段の一例が実現される。また、本実施形態では、例えば、Ｓ１８０８、Ｓ１８０９の処理により、表示手段の一例が実現される。
【０１０７】
そして、プラグイン接続ライブラリ３１４は、Ｓ１８０３で取得した従来画像処理排他情報３６０に含まれる従来の画像処理の全てを選択したか否かを判定する（Ｓ１８１０）。この判定の結果、従来の画像処理の全てを選択していない場合、処理は、Ｓ１８０４に戻る。そして、従来の画像処理の全てについてＳ１８０４〜Ｓ１８０９の処理が終了すると、Ｓ１８０２で選択された設定済み画像処理プラグインアプリケーションに対する処理が完了する。そして、プラグイン接続ライブラリ３１４は、設定済み画像処理プラグインアプリケーション３０３のリストから、全ての設定済み画像処理プラグインアプリケーションを選択したか否かを判定する（Ｓ１８１１）。この判定の結果、全ての設定済み画像処理プラグインアプリケーションを選択していない場合、処理は、Ｓ１８０２に戻る。そして、全ての設定済み画像処理プラグインアプリケーションについてＳ１８０２〜Ｓ１８１０の処理が終了すると、図１８のフローチャートによる全ての処理が終了する。
【０１０８】
以上のように本実施形態では、画像処理プラグインアプリケーション３０３に対する設定に応じて、画像形成装置１０１に常時格納されている画像処理（従来の画像処理）の設定を行うためのアイコンの表示形態を決定する。従って、アプリケーションに対するプラグインの設定の内容に応じて、従来の画像処理の使用の可否を切り替えることが可能となるため、ユーザの利便性が向上する。尚、本実施形態において、第２の実施形態で説明した使用可否判断情報３２８を用いた図１２のフローチャートによる処理を図１８のフローチャートと組み合わせて行うようにしてもよい。
【０１０９】
（第５の実施形態）
次に、第５の実施形態を説明する。第２の実施形態では、画像処理プラグインアプリケーション３０３が、デバイス制御アプリケーション３０４の設定および現在の機器構成を取得し、自身の表示状態を返却する場合について説明した。その他にも、ユーザによって既に設定された内容とは組み合わせられない画像処理の選択を不可能にするのではなく、ユーザにより画像処理を選択させたうえで、当該画像処理が有効となるように他のアプリケーションの設定を変更することも可能である。本実施形態では、このような場合について説明する。このように本実施形態と第１〜第４の実施形態では、画像処理の使用可否の判断に係る処理が主として異なる。従って、本実施形態の説明において、第１〜第４の実施形態と同一の部分については、図１〜図１８に付した符号と同一の符号を付す等して詳細な説明を省略する。
【０１１０】
本実施形態では、デバイス制御アプリケーション３０４としてコピーアプリケーション３０６を例に挙げて説明を行う。尚、本実施形態においては、プラグイン接続ライブラリ３１４は、Ｓ１２０４において常に表示形態を"表示"で返却するものとする。
本実施形態では、プラグイン接続ライブラリ３１４は、画像処理設定画面１００１を表示中に拡張画像処理アイコン１００６の押下を検知するタイミングに関連付けて、必要に応じて以下の処理を行う。即ち、プラグイン接続ライブラリ３１４は、拡張画像処理アイコン１００６に対応する画像処理プラグインアプリケーション３０３を妨げるコピーアプリケーション３０６の設定の変更を実行する。
【０１１１】
具体的にプラグイン接続ライブラリ３１４は、拡張画像処理アイコン１００６に対応する画像処理個別設定画面５０２が存在しない場合、以下の処理を行う。即ち、プラグイン接続ライブラリ３１４は、拡張画像処理アイコン１００６の押下を検知したタイミングで、直ちに現在のコピーアプリケーション３０６の設定情報を取得する。一方、拡張画像処理アイコン１００６に対応する画像処理個別設定画面５０２が存在する場合、プラグイン接続ライブラリ３１４は、当該画像処理個別設定画面５０２を表示する。そして、プラグイン接続ライブラリ３１４は、設定ボタン１１０３の押下を検知したタイミングで現在のコピーアプリケーション３０６の設定情報を取得する。
【０１１２】
そして、プラグイン接続ライブラリ３１４は、現在のコピーアプリケーション３０６の設定情報に基づいて、コピーアプリケーション３０６の設定の内容を確認する。プラグイン接続ライブラリ３１４は、使用可否判断情報３２８に基づいて、コピーアプリケーション３０６の設定の内容の中に、拡張画像処理アイコン１００６に対応する画像処理プラグインアプリケーション３０３の実行を妨げる設定があるか否かを判定する。この判定の結果、現在のコピーアプリケーション３０６の設定の中に、拡張画像処理アイコン１００６に対応する画像処理プラグインアプリケーション３０３の実行を妨げる設定があれば、プラグイン接続ライブラリ３１４は、以下の処理を行う。即ち、プラグイン接続ライブラリ３１４は、現在のコピーアプリケーション３０６の設定を変更し、変更したコピーアプリケーション３０６の設定の内容を返却する。これに対応し、コピーアプリケーション３０６は、変更された設定の内容に従い画像処理個別設定画面を含むデバイス制御アプリケーション画面４０１の内容を再描画する。本実施形態では、以上のようにしてプラグイン接続ライブラリ３１４が、コピーアプリケーション３０６の設定を変更することにより、第１の変更手段の一例が実現される。
【０１１３】
以上のように本実施形態では、画像処理プラグインアプリケーション３０３の実行を妨げる設定がコピーアプリケーション３０６になされている場合、当該実行が妨げられないようにコピーアプリケーション３０６の設定を変更する。従って、ユーザが頻繁に設定する機能など、予めユーザによる選択を不可能にしてしまうことで利便性が低下してしまう機能を実現することが可能となる。
【０１１４】
（第６の実施形態）
次に、第６の実施形態を説明する。第５の実施形態では、プラグイン接続ライブラリ３１４は、現在のコピーアプリケーション３０６の設定の内容では使用できない機能であっても、機能が選択された際に、この機能が動作可能になるようにコピーアプリケーション３０６の設定を変更する。しかしながら、これに限らず、プラグイン接続ライブラリ３１４は、デバイス制御アプリケーション３０４の変更後の設定が、ユーザが変更可能な設定であるか否かの情報をさらに付与してデバイス制御アプリケーション３０４に返却してもよい。本実施形態では、このような場合について説明する。このように本実施形態と第１〜第５の実施形態では、画像処理の設定に係る処理が主として異なる。従って、本実施形態の説明において、第１〜第５の実施形態と同一の部分については、図１〜図１８に付した符号と同一の符号を付す等して詳細な説明を省略する。
【０１１５】
本実施形態では、デバイス制御アプリケーション３０４としてコピーアプリケーション３０６を例に挙げて説明を行う。また、本実施形態では、拡張画像処理アイコン１００６に対応する画像処理が、製本面付け機能と排他である場合を例に挙げて説明する。
本実施形態では、プラグイン接続ライブラリ３１４は、コピーアプリケーション３０６に、コピーアプリケーション３０６の変更後の設定の内容を返却する際、各設定内容の表示形態を併せて返却するものとする。本実施形態では、設定内容の表示形態は、第１の実施形態で説明した"可視状態（表示）"、"選択不可状態（グレーアウト）"、および"不可視状態（非表示）"の何れかから選択されるものとする。プラグイン接続ライブラリ３１４は、製本面付け機能を無効として、コピーアプリケーション３０６の設定の内容を加工すると共に、製本面付けの表示形態を"グレーアウト"として設定し、コピーアプリケーション３０６に返信する。これに対応し、コピーアプリケーション３０６は、変更された設定の内容に従い、画像処理個別設定画面を含むデバイス制御アプリケーション画面４０１の内容を再描画する。本実施形態では、このようにしてプラグイン接続ライブラリ３１４が表示形態を決定することにより、決定手段の一例が実現される。
【０１１６】
図１９は、拡張画像処理アイコン１００６に対応する画像処理が有効化された後の画像処理設定画面１００１の状態の一例を示す図である。コピーアプリケーション３０６による再描画の結果、製本面付け機能に対応するアイコン１９０２が選択不可能な形態で表示される。このため、ユーザは、製本面付け機能に対し設定の変更を行うことはできない。よって、適切な設定でコピー処理を行うことが可能となる。本実施形態では、アイコン１９０２の表示形態が選択不可能な形態とされることにより、第１のアプリケーションにより実行される処理の設定を選択することができない表示形態に、当該処理の設定を選択する部分の表示形態が決定されることの一例が実現される。
【０１１７】
（第７の実施形態）
次に、第７の実施形態を説明する。第５の実施形態では、プラグイン接続ライブラリ３１４は、現在のコピーアプリケーション３０６の設定の内容では使用できない機能であっても、機能が選択された際に、この機能が動作可能になるようにコピーアプリケーション３０６の設定を変更する。このような場合において、特定の機能を有効化するために既に存在する設定を補正するだけではなく、補正すべき情報をユーザに提示する形態としてもよい。本実施形態では、このような場合について説明する。このように本実施形態と第１〜第６の実施形態では、画像処理の設定に係る情報を表示する点が主として異なる。従って、本実施形態の説明において、第１〜第６の実施形態と同一の部分については、図１〜図１９に付した符号と同一の符号を付す等して詳細な説明を省略する。
【０１１８】
本実施形態で示す処理は、画像形成装置１０１のＨＤＤ２１３に格納されたデバイス制御アプリケーション３０４のプログラムにより制御されるものであり、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行されるものとする。
本実施形態では、拡張画像処理アイコン１００６に対応する画像処理が、アイコン１００２に対応する製本面付け機能と排他である場合を例に挙げて説明する。また、製本面付け設定が既になされているものとする。デバイス制御アプリケーション３０４は、画像処理設定画面１００１を表示中に拡張画像処理アイコン１００６の押下を検知すると、プラグイン接続ライブラリ３１４に対して、現在の自身の設定と、押下されたアイコンの画像処理名３２１とを送信する。
【０１１９】
プラグイン接続ライブラリ３１４は、ＨＤＤ２１３に保存されている排他情報３２８および従来画像処理排他情報３６０と、デバイス制御アプリケーション３０４から受信した現在の設定とを比較し、現在の設定に対し補正を実施すべきか否かを判定する。この判定の結果、補正を実施する必要がない場合、プラグイン接続ライブラリ３１４は、押下された拡張画像処理アイコン１００６に対応する画像処理を有効化する。一方、補正を実施する必要がある場合、コピーアプリケーション３０６は、デバイス制御アプリケーション３０４の現在の設定を補正する必要があることを示す補正メッセージ画面を生成して画像処理設定画面１００１に対してポップアップで表示する。
【０１２０】
図２０は、操作部２０４に表示される補正メッセージ画面の一例を示す図である。補正メッセージ画面は、画像処理設定画面１００１の拡張画像処理アイコン１００６が押下されると画像処理設定画面１００１に対してポップアップで表示される。補正メッセージ表示画面は、補正メッセージ２００１およびＯＫボタン２００２を含む。デバイス制御アプリケーション３０４は、ユーザによるＯＫボタン２００２の押下を検知すると、補正メッセージ２００１に記載の内容に従い、以下の処理を行う。即ち、デバイス制御アプリケーション３０４は、デバイス制御アプリケーション３０４の現在の設定を補正した上で、操作部２０４に画像処理設定画面１００１を表示する。尚、画像処理設定画面１００１において、補正後のアイコン１００２は、アイコンの色を変更する等、設定が有効化されたことをユーザが認識できるように表示する形態とするのが望ましい。本実施形態では、例えば、補正メッセージ２００１により、第２のアプリケーションによる処理の実行を妨げる第１のアプリケーションの処理の設定を、当該第２のアプリケーションによる処理の実行ができるように変更されたことを示す情報の一例が実現される。
【０１２１】
以上のように本実施形態では、拡張画像処理アイコン１００６に対応する画像処理を有効化すると共に、当該有効化に伴い補正をする必要がある場合には、デバイス制御アプリケーション３０４の現在の設定を補正する。そして、そのことを示す補正メッセージ２００１を表示する。従って、ユーザは、拡張画像処理アイコン１００６に対応する画像処理時に、どのような機能が補正されたのかを知ることが可能となるため、ユーザビリティを向上することができる。
【０１２２】
（第８の実施形態）
次に、第８の実施形態を説明する。第５の実施形態では、プラグイン接続ライブラリ３１４は、現在のコピーアプリケーション３０６の設定の内容では使用できない機能であっても、機能が選択された際に、この機能が動作可能になるようにコピーアプリケーション３０６の設定を変更する。一方で、画像処理プラグインアプリケーション３０３の機能として、コピーアプリケーション３０６の設定の変更が必要な機能が設定された場合、当該機能と排他となるコピーアプリケーション３０６の設定の内容を警告メッセージとして表示してもよい。この場合、コピーアプリケーション３０６の設定を変更しなくてもよい。本実施形態では、このような場合について説明する。このように本実施形態と第１〜第７の実施形態では、画像処理の設定に係る情報を表示する点が主として異なる。従って、本実施形態の説明において、第１〜第７の実施形態と同一の部分については、図１〜図２０に付した符号と同一の符号を付す等して詳細な説明を省略する。
【０１２３】
本実施形態で示す処理は、画像形成装置１０１のＨＤＤ２１３に格納されたデバイス制御アプリケーション３０４のプログラムにより制御されるものであり、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行されるものとする。
【０１２４】
本実施形態では、拡張画像処理アイコン１００６に対応する画像処理が、アイコン１００２に対応する製本面付機能と排他である場合を例に挙げて説明する。また、製本面付け設定が既になされているものとする。デバイス制御アプリケーション３０４は、画像処理設定画面１００１を表示中に拡張画像処理アイコン１００６の押下を検知すると、プラグイン接続ライブラリ３１４に対して、現在の自身の設定と、押下されたアイコンの画像処理名３２１とを送信する。プラグイン接続ライブラリ３１４は、ＨＤＤ２１３に保存されている排他情報３２８および従来画像処理排他情報３６０と、デバイス制御アプリケーション３０４から受信した現在の設定とを比較する。
【０１２５】
そして、プラグイン接続ライブラリ３１４は、デバイス制御アプリケーション３０４の現在の設定に対し、押下された拡張画像処理アイコン１００６に対応する画像処理の有効化が可能か否かを判定する。この判定の結果、押下された拡張画像処理アイコン１００６に対応する画像処理の有効化が可能である場合、プラグイン接続ライブラリ３１４は、当該画像処理を有効化する。一方、押下された拡張画像処理アイコン１００６に対応する画像処理の有効化が不可能である場合、プラグイン接続ライブラリ３１４は、警告メッセージ画面を生成して画像処理設定画面１００１に対してポップアップで表示する。
【０１２６】
図２１は、操作部２０４に表示される警告メッセージ画面の一例を示す図である。警告メッセージ表示画面は、画像処理設定画面１００１の拡張画像処理アイコン１００６が押下されると画像処理設定画面１００１に対してポップアップで表示される。警告メッセージ画面は、警告メッセージ２１０１およびＯＫボタン２１０２を含む。デバイス制御アプリケーション３０４は、ユーザによるＯＫボタン２１０２の押下を検知すると、操作部２０４に画像処理設定画面１００１を表示する。本実施形態では、例えば、警告メッセージ２１０１により、第２のアプリケーションにより実行される処理が実行できないことを示す情報の一例が実現される。
【０１２７】
以上のように本実施形態では、デバイス制御アプリケーション３０４の設定により、拡張画像処理アイコン１００６に対応する画像処理を有効化が可能でない場合、そのことを示す情報を表示する。従って、ユーザは、画像処理プラグインアプリケーション３０３の機能の設定時に、当該機能と、デバイス制御アプリケーション３０４のどの機能とが排他であるかを知ることが可能となる。このため、ユーザビリティを向上することができる。
【０１２８】
（第９の実施形態）
次に、第９の実施形態を説明する。第７および第８の実施形態では、画像処理プラグインアプリケーション３０３の機能として、現在のデバイス制御アプリケーション３０４の設定の内容では使用できない機能の設定の選択時に補正メッセージ２００１または警告メッセージ２１０１を表示する。このようにすることで、変更後のデバイス制御アプリケーション３０４の設定の情報や、選択した画像処理プラグインアプリケーション３０３の機能と排他の関係にあるデバイス制御アプリケーション３０４の機能をユーザに提示する。このような場面において、デバイス制御アプリケーション３０４の機能を変更するか否かをユーザに選択させてもよい。本実施形態では、このような場合について説明する。このように本実施形態と第１〜第８の実施形態では、画像処理の設定に係る情報を表示する点が主として異なる。従って、本実施形態の説明において、第１〜第８の実施形態と同一の部分については、図１〜図２１に付した符号と同一の符号を付す等して詳細な説明を省略する。
【０１２９】
本実施形態で示す処理は、画像形成装置１０１のＨＤＤ２１３に格納されたデバイス制御アプリケーション３０４のプログラムにより制御されるものであり、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行されるものとする。
本実施形態では、拡張画像処理アイコン１００６に対応する画像処理が、アイコン１００２に対応する製本面付機能と排他である場合を例に挙げて説明する。また、製本面付け設定が既になされているものとする。デバイス制御アプリケーション３０４は、画像処理設定画面１００１を表示中に拡張画像処理アイコン１００６の押下を検知すると、プラグイン接続ライブラリ３１４に対して、現在の自身の設定と、押下されたアイコンの画像処理名３２１とを送信する。
【０１３０】
プラグイン接続ライブラリ３１４は、ＨＤＤ２１３に保存されている排他情報３２８および従来画像処理排他情報３６０と、デバイス制御アプリケーション３０４から受信した現在の設定とを比較する。そして、プラグイン接続ライブラリ３１４は、押下された拡張画像処理アイコン１００６に対応する画像処理と排他の関係になる、デバイス制御アプリケーション３０４の現在の設定が存在するか否かを判定する。この判定の結果、排他となる設定が存在しない場合、プラグイン接続ライブラリ３１４は、押下された拡張画像処理アイコン１００６に対応する画像処理を有効化する。一方、排他となる設定が存在する場合、プラグイン接続ライブラリ３１４は、機能選択画面を生成して画像処理設定画面１００１に対してポップアップで表示する。
【０１３１】
図２２は、操作部２０４に表示される機能選択画面の一例を示す図である。機能選択画面は、画像処理設定画面１００１に対して拡張画像処理アイコン１００６が押下されると画像処理設定画面１００１に対してポップアップで表示される。機能選択画面は、補正選択メッセージ２２０１、適用ボタン２２０２、および不適用ボタン２２０３を含む。本実施形態では、例えば、機能選択画面により、第２の画面の一例が実現される。
【０１３２】
デバイス制御アプリケーション３０４は、ユーザによる適用ボタン２２０２の押下を検知すると、補正選択メッセージ２２０１に記載された内容に従い、以下の処理を行う。即ち、デバイス制御アプリケーション３０４は、デバイス制御アプリケーション３０４の現在の設定を補正した上で、操作部２０４に画像処理設定画面１００１を表示する。尚、画像処理設定画面１００１において、補正後のアイコン１００２は、アイコンの色を変更する等、設定が有効化されたことをユーザが認識できるように表示する形態とするのが望ましい。本実施形態では、例えば、デバイス制御アプリケーション３０４が、デバイス制御アプリケーション３０４の現在の設定を補正することにより、第２の変更手段の一例が実現される。
【０１３３】
一方、不適用ボタン２２０３の押下を検知すると、デバイス制御アプリケーション３０４は、デバイス制御アプリケーション３０４の現在の設定を補正せず、操作部２０４に画像処理設定画面１００１を表示する。
以上のように本実施形態では、拡張画像処理アイコン１００６に対応する画像処理と排他の関係にあるコピーアプリケーション３０６の設定を変更するか否かをユーザに選択させる。従って、ユーザは、拡張画像処理アイコン１００６に対応する画像処理と排他の関係となる設定がデバイス制御アプリケーション３０４に存在する場合、当該設定を補正するか否かを選択することが可能となる。このため、ユーザビリティが向上する。
【０１３４】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１３５】
（その他の実施例）
本発明は、前述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１３６】
１０１〜１０２：画像形成装置、１０３〜１０４：情報処理端末、１０５：サーバ、１０６：ネットワーク
【図１】
2018129611.tif 000009
【図２】
2018129611.tif 000010
【図３】
2018129611.tif 000011
【図４】
2018129611.tif 000012
【図５】
2018129611.tif 000013
【図６】
2018129611.tif 000014
【図７】
2018129611.tif 000015
【図８】
2018129611.tif 000016
【図９】
2018129611.tif 000017
【図１０】
2018129611.tif 000018
【図１１】
2018129611.tif 000019
【図１２】
2018129611.tif 000020
【図１３】
2018129611.tif 000021
【図１４】
2018129611.tif 000022
【図１５】
2018129611.tif 000023
【図１６】
2018129611.tif 000024
【図１７】
2018129611.tif 000025
【図１８】
2018129611.tif 000026
【図１９】
2018129611.tif 000027
【図２０】
2018129611.tif 000028
【図２１】
2018129611.tif 000029
【図２２】
2018129611.tif 000030