(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
前記情報処理装置にインストールされている複数のデバイスドライバに対応する複数のオブジェクトの中から、出力装置が有する第１の機能に関する第１のデバイスドライバに対応する第１のオブジェクトと、前記出力装置が有する第２の機能に関する第２のデバイスドライバに対応する第２のオブジェクトとを自動的に選定する選定手段と、
前記選定手段によって選定された前記第１のオブジェクトと前記第２のオブジェクトとを割り当てた仮想デバイスオブジェクトを生成する生成手段と、
前記選定手段と前記生成手段とによって複数の出力装置に対応する複数の仮想デバイスオブジェクトが生成される場合、前記情報処理装置のオペレーティングシステムにより通常使用するオブジェクトとして管理されているオブジェクトに基づいて選択される１つの仮想デバイスオブジェクトを表示部に表示する表示手段と、
表示された前記仮想デバイスオブジェクトに対する指示を受け付ける受付手段と
を有し、
前記受付手段が前記仮想デバイスオブジェクトに対する指示を受け付けた際に、前記表示手段は、前記第１の機能と前記第２の機能のうちの１つに対する指示を受け付けるための情報を更に表示することを特徴とする情報処理装置。
【請求項２】
前記選定手段は、前記情報処理装置にインストールされている前記複数のデバイスドライバに対応する複数のオブジェクトそれぞれの出力ポート情報に基づいて、前記第１のオブジェクトと前記第２のオブジェクトとを自動的に選定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示手段は、前記選定手段と前記生成手段とによって複数の出力装置に対応する複数の仮想デバイスオブジェクトが生成され、かつ、前記情報処理装置のオペレーティングシステムにより通常使用するオブジェクトとして管理されているオブジェクトを含む仮想デバイスオブジェクトが無い場合、前記第１の機能に関する第１のオブジェクトのオブジェクト名に基づいて選択される１つの仮想デバイスオブジェクトを前記表示部に表示することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
情報処理装置であって、
前記情報処理装置にインストールされている複数のデバイスドライバに対応する複数のオブジェクトの中から、前記情報処理装置にインストールされている前記複数のデバイスドライバに対応する複数のオブジェクトそれぞれの出力ポート情報に基づいて、出力装置が有する第１の機能に関する第１のデバイスドライバに対応する第１のオブジェクトと、前記出力装置が有する第２の機能に関する第２のデバイスドライバに対応する第２のオブジェクトとを自動的に選定する選定手段と、
前記選定手段によって選定された前記第１のオブジェクトと前記第２のオブジェクトとを割り当てた仮想デバイスオブジェクトを生成する生成手段と、
前記生成手段にて生成された前記仮想デバイスオブジェクトを表示部に表示する表示手段と、
表示された前記仮想デバイスオブジェクトに対する指示を受け付ける受付手段と
を有し、
前記受付手段が前記仮想デバイスオブジェクトに対する指示を受け付けた際に、前記表示手段は、前記第１の機能と前記第２の機能のうちの１つに対する指示を受け付けるための情報を更に表示することを特徴とする情報処理装置。
【請求項５】
前記出力装置が有する前記第１の機能と前記第２の機能は、印刷機能とファクス送信機能であることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記表示手段は、前記表示部に表示された前記仮想デバイスオブジェクト上に出力対象のデータがドラッグ操作された際に、当該仮想デバイスオブジェクトに割り当てられた前記第１の機能と前記第２の機能とに関する出力機能を表示し、
前記情報処理装置は、当該表示されたアイコンのいずれかに前記出力対象のデータのドロップ操作がなされた場合に、当該ドロップ操作がなされたアイコンに対応する機能のデバイスドライバへ前記出力対象のデータの出力処理を指示する指示手段を更に備えることを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記表示手段は、前記表示部に表示された前記仮想デバイスオブジェクト上に出力対象のデータのドラッグ操作がユーザによりなされた際に、前記仮想デバイスオブジェクトに割り当てられた前記第１の機能と前記第２の機能のうち、前記ユーザが利用できる機能と前記ユーザが利用できない機能とを識別可能に表示することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
コンピュータを請求項１乃至７のいずれか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項９】
出力装置が有する複数の機能に対応する複数のデバイスドライバをインストール可能な情報処理装置における情報処理方法であって、
選定手段が、前記情報処理装置にインストールされている複数のデバイスドライバに対応する複数のオブジェクトの中から、前記出力装置が有する第１の機能に関する第１のデバイスドライバに対応する第１のオブジェクトと、前記出力装置が有する第２の機能に関する第２のデバイスドライバに対応する第２のオブジェクトとを自動的に選定する選定工程と、
生成手段が、前記選定工程で選定された前記第１のオブジェクトと前記第２のオブジェクトとを割り当てた仮想デバイスオブジェクトを生成する生成工程と、
表示手段が、前記選定工程と前記生成工程とによって複数の出力装置に対応する複数の仮想デバイスオブジェクトが生成される場合、前記情報処理装置のオペレーティングシステムにより通常使用するオブジェクトとして管理されているオブジェクトに基づいて選択される１つの仮想デバイスオブジェクトを表示部に表示する表示工程と、
受付手段が、表示された前記仮想デバイスオブジェクトに対する指示を受け付ける受付工程と
を有し、
前記受付工程で前記仮想デバイスオブジェクトに対する指示を受け付けた際に、前記表示工程にて、前記第１の機能と前記第２の機能のうちの１つに対する指示を受け付けるための情報を更に表示することを特徴とする情報処理方法。
【請求項１０】
出力装置が有する複数の機能に対応する複数のデバイスドライバをインストール可能な情報処理装置における情報処理方法であって、
選定手段が、前記情報処理装置にインストールされている複数のデバイスドライバに対応する複数のオブジェクトの中から、前記情報処理装置にインストールされている前記複数のデバイスドライバに対応する複数のオブジェクトそれぞれの出力ポート情報に基づいて、前記出力装置が有する第１の機能に関する第１のデバイスドライバに対応する第１のオブジェクトと、前記出力装置が有する第２の機能に関する第２のデバイスドライバに対応する第２のオブジェクトとを自動的に選定する選定工程と、
生成手段が、前記選定工程で選定された前記第１のオブジェクトと前記第２のオブジェクトとを割り当てた仮想デバイスオブジェクトを生成する生成工程と、
表示手段が、前記生成工程にて生成された前記仮想デバイスオブジェクトを表示部に表示する表示工程と、
受付手段が、表示された前記仮想デバイスオブジェクトに対する指示を受け付ける受付工程と
を有し、
前記受付工程で前記仮想デバイスオブジェクトに対する指示を受け付けた際に、前記表示工程にて、前記第１の機能と前記第２の機能のうちの１つに対する指示を受け付けるための情報を更に表示することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に対する出力を指示する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
ＰＣ（パーソナルコンピュータ）から複数の出力機能を有する画像処理装置への出力を実行する場合、出力対象の文書をアプリケーションで開き、出力の機能に対応したデバイスドライバを介して出力を指示することが一般的であった。ここで、画像処理装置への出力の利便性をより向上させるため、複数のデバイスのドライバを１の仮想デバイスとして統合する技術がある。
【０００３】
例として、ユーザからの統合指示により異なる複数のデバイスに対応するデバイスドライバを１の仮想デバイスとして統合し、その仮想デバイスからの出力を可能とすることで複数のデバイスへの分散印刷を容易にする技術がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２１５７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年の画像処理装置は印刷、ファクス、スキャンといった様々な機能を備える。そのため、一般的に目的に応じた各種デバイスドライバが存在し、ユーザは目的に応じて適するデバイスドライバを使用する。例えば、印刷するには印刷用のドライバ、ファクス送信するにはファクス送信用のドライバを使用する。そのため、特定の画像処理装置に対する各種デバイスドライバを仮想デバイスドライバとして統合し、その仮想デバイスドライバに対する各種出力指示をユーザから受け付けることでより容易に画像処理装置の機能を使用でき利便性の向上が見込める。
【０００６】
しかし、このような構成を実現するには、ＯＳ（オペレーティングシステム）にインストールされている複数のデバイスドライバから、出力に適する各種デバイスドライバを選定する必要がある。例えば、ある画像処理装置への出力に使用する印刷用のドライバとファクス送信用のドライバがインストールされている場合に、複数存在するドライバの中からその画像処理装置に対応する２つのドライバを選定しなければならない。そのため、ユーザの操作負荷が増大するおそれがあった。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、情報処理装置であって、前記情報処理装置にインストールされている複数のデバイスドライバに対応する複数のオブジェクトの中から、出力装置が有する第１の機能に関する第１のデバイスドライバに対応する第１のオブジェクトと、前記出力装置が有する第２の機能に関する第２のデバイスドライバに対応する第２のオブジェクトとを自動的に選定する選定手段と、前記選定手段によって選定された前記第１のオブジェクトと前記第２のオブジェクトとを割り当てた仮想デバイスオブジェクトを生成する生成手段と、前記選定手段と前記生成手段とによって複数の出力装置に対応する複数の仮想デバイスオブジェクトが生成される場合、前記情報処理装置のオペレーティングシステムにより通常使用するオブジェクトとして管理されているオブジェクトに基づいて選択される１つの仮想デバイスオブジェクトを表示部に表示する表示手段と、表示された前記仮想デバイスオブジェクトに対する指示を受け付ける受付手段とを有し、前記受付手段が前記仮想デバイスオブジェクトに対する指示を受け付けた際に、前記表示手段は、前記第１の機能と前記第２の機能のうちの１つに対する指示を受け付けるための情報を更に表示する。
【発明の効果】
【０００８】
本発明により、複数の機能を有する画像処理装置への各種出力指示をより容易に実行できる。
【図面の簡単な説明】
【０００９】
【図１】システムの構成例を示す図。
【図２】情報処理装置のハードウェア構成の例を示す図。
【図３】画像処理装置のハードウェア構成の例を示す図。
【図４】仮想デバイスアプリケーションのソフトウェア構成の例を示す図。
【図５】プリンタオブジェクトの管理画面及び仮想デバイスアプリケーションのＵＩ表示の一例を示す図。
【図６】仮想デバイスオブジェクトの構成の例を示す図。
【図７Ａ】仮想デバイスオブジェクトへの出力操作時のＵＩ表示の一例を示す図。
【図７Ｂ】仮想デバイスオブジェクトのＵＩ表示の一例を示す図。
【図７Ｃ】仮想デバイスオブジェクトへの出力操作時のＵＩ表示の一例を示す図。
【図７Ｄ】仮想デバイスオブジェクトのＵＩ表示の一例を示す図。
【図８】仮想デバイスオブジェクトの生成処理手順を示すフロー図。
【図９】仮想デバイスオブジェクトの選定処理手順を示すフロー図。
【図１０】仮想デバイスオブジェクトの画面表示制御手順を示すフロー図。
【図１１】デバイスオブジェクトとデバイスドライバの関係を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１１】
［システム構成］
図１は、本発明の一実施形態におけるデータ処理システムの構成例を示す図である。本例は、情報処理装置１００と画像処理装置１０１，１０２とがネットワーク１０３を介して通信可能なシステムである。図１において、情報処理装置１００は、画像処理装置１０１及び１０２に対して印刷やファクス送信を指示するユーザの使用するコンピュータである。画像処理装置１０１及び１０２は、プリンタ機能、ファクス機能、コピー機能、スキャナ機能、ファイル送信機能等を備える複合機が相当する。
【００１２】
なお、情報処理装置１００には、所定のＯＳ（オペレーティングシステム：不図示）がインストールされ、かつ、特定の機能処理を実行する各種のアプリケーション（不図示）もインストールされている。ここで、特定の機能処理とは、文書処理、表計算処理、プレゼンテーション処理、画像処理、図形処理等が含まれ、各アプリケーションはそれぞれ独自のデータ構造（ファイル構造）を備える。さらに、ＯＳは、各ファイルの識別子を参照して対応するアプリケーションに印刷指示を行える構成となっている。
【００１３】
また、情報処理装置１００には、画像処理装置１０２、１０３を利用するための仮想デバイスアプリケーションがインストール可能である。ここで、仮想デバイスアプリケーションは、画像処理装置に対する印刷やファクス送信等の出力指示を行う機能、画像処理装置の使用状態や出力ジョブの実行状況を表示する機能を備えている。ネットワーク１０３は、各種装置が接続されているＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であって、ネットワーク１０３を介して各種装置は情報の相互通信を行う。仮想デバイスアプリケーションの構成については、図４を用いて後述する。
【００１４】
［ハードウェア構成（情報処理装置）］
図２は、図１に示した情報処理装置１００のハードウェア構成の例を示す図である。図２において、情報処理装置１００は、キーボードやポインティングデバイスなどのユーザ操作入力を受信する入力デバイス２０５を備える。さらに、情報処理装置１００は、ユーザに視覚的な出力情報フィードバックを与える表示部２０２を備える。さらに、情報処理装置１００は、各種プログラムや実行情報を保管する記憶デバイスであるＲＡＭ２０３，ＨＤＤ（ハードディスクドライブ）やＦＤＤ（フレキシブルディスクドライブ）などの外部メモリ２０６，ＲＯＭ２０４を備える。
【００１５】
さらに、情報処理装置１００は、外部機器との通信を行うインタフェースデバイスＩ／Ｏ２０７を備え、プログラム実行を行うＣＰＵ２０１を備える。なお、情報処理装置１００と周辺機器との接続形態は、有線／無線を問わない。情報処理装置１００は、この外部機器接続Ｉ／Ｆを介して画像処理装置１０１、１０２と接続する。例えば、情報処理装置１００は、携帯端末であってもよく、この場合に、無線通信にて画像処理装置１０１と通信するようにしても構わない。
【００１６】
［ハードウェア構成（画像処理装置）］
図３は、図１に示した複数の出力機能を有する画像処理装置１０１及び１０２内のハードウェア構成の例を説明するブロック図である。なお、本例は、出力機能としてスキャナ機能と、印刷機能と、そしてファクス送信機能を有する複合機（ＭＦＰ：Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）の例を示す。以下の説明において、画像処理装置１０１を例に挙げて説明するが、本実施形態では、画像処理装置１０２も同様の構成とする。
【００１７】
図３において、Ｉ／Ｏ３０１は、ネットワーク１０３などの通信媒介を介して情報処理装置１００と接続している。Ｉ／Ｏ３０１は、複数の接続形態に対応するために複数個が搭載されていてもよい。画像処理装置１０１は、Ｉ／Ｏ３０１を通して、デバイスを識別するためのデバイスＩＤやスキャンイメージを情報処理装置１００に渡す。また、画像処理装置１０１は、情報処理装置１００より、各種の制御コマンドを受けて処理を行う。
【００１８】
Ｉ／Ｆ制御部３０２は、画像処理装置１０１に搭載されているスキャナやプリンタやまたはファクスなどの処理系に関して、これらを識別するためのデバイスＩＤを発行する制御を行う。ＲＡＭ３０３は、一次記憶装置で、Ｉ／Ｏ３０１で取得した制御コマンドなどの外部データや、スキャナエンジン３１３で読み取られたイメージを格納するに使用される。さらに、ＲＡＭ３０３は、プリンタコントローラ３１０で展開されたプリンタエンジン３０６に渡される前にイメージの格納などに使用される。
【００１９】
ＲＡＭ３０３の割り当て管理は、ＲＡＭ制御部３０４が行う。画像データ調歩回路３０５は、プリンタコントローラ３１０やスキャナエンジン３１３によって取り込まれたＲＡＭ制御部３０４に展開されたイメージをプリンタエンジン３０６の回転にあわせて出力する装置である。プリンタエンジン３０６は、紙などの出力メディアにイメージを現像する装置である。
【００２０】
メインコントローラ３０８は、エンジンＩ／Ｆ３０７によりプリンタエンジン３０６の各種制御を行い、画像処理装置１０１における制御の要となるモジュールである。例えばメインコントローラ３０８は、スキャナコントローラ３０９やプリンタコントローラ３１０やファクスコントローラ３１１に、Ｉ／Ｏ３０１経由で情報処理装置１００より受け取る制御言語の適切な振り分け処理を行う。さらに、メインコントローラ３０８は、それぞれのコントローラやユーザインタフェース３１２からの指示を受けて、プリンタエンジン３０６やスキャナエンジン３１３の制御を行う。メインコントローラ３０８と各種コントローラの間の制御インタフェースを統一することにより、一つの周辺機器に複数種類の制御コマンドを処理可能な拡張ボードが搭載可能になる。また、現在搭載されている拡張コントローラのデバイスＩＤを各コントローラより取得し、管理するのもメインコントローラ３０８が行う。
【００２１】
スキャナコントローラ３０９は、情報処理装置１００より受けたスキャン制御コマンドをメインコントローラ３０８が解釈可能な実行命令に分解する。また、スキャナコントローラ３０９は、スキャナエンジン３１３で読み取ったイメージをスキャン制御コマンドに変更する。プリンタコントローラ３１０は、情報処理装置１００より受けたページ記述言語をメインコントローラ３０８が解釈可能なページ記述言語の展開イメージなどを含む実行命令に分解する。展開イメージは、プリンタエンジン３０６へ送られ、用紙などの出力メディアに印刷される。
【００２２】
ファクスコントローラ３１１は、情報処理装置１００より受けたファクス制御言語をイメージに展開し不図示の公衆回線、又はインターネットを介して他のファクス装置やＩＰ−ＦＡＸへ転送する。ユーザインタフェース３１２は、メインコントローラ３０８の各種設定や、スキャナ機能やプリンタ機能や、そしてファクス機能を画像処理装置１０１で直接実行する際に、ユーザによる指示の入出力手段として使用される。スキャナエンジン３１３は、メインコントローラ３０８の指示により光学装置（不図示）を用いて印刷されたイメージを読み取り、電気信号に変換してメインコントローラ３０８に受け渡す。
【００２３】
［ソフトウェア構成図］
図４は、情報処理装置１００が有する仮想デバイスアプリケーション４００の機能構成の一例を示す図である。仮想デバイスアプリケーション４００は、ＯＳに管理されている複数のデバイスオブジェクトを仮想デバイスオブジェクトとしてまとめて表示し、出力を制御するためのアプリケーションである。
【００２４】
以下、用語を統一するために、画像処理装置の各機能に対してＯＳにインストール可能なドライバを「デバイスドライバ」と記載する。例えば、印刷用のプリンタドライバ、ファクス用のファクスドライバをまとめてデバイスドライバと記載する。また、本明細書において、「プリンタオブジェクト」とは、画像処理装置の各機能に対応して出力処理を行うためのデバイスドライバに対応するオブジェクトである。つまり、画像処理装置が複数の機能を有している場合には、各種機能それぞれに対応するためのデバイスドライバのプリンタオブジェクトがＯＳにて管理されていることとなる。さらに、同一のデバイスドライバであっても、異なる設定を行うことができる。この場合、同一のデバイスドライバに設定の異なる複数のプリンタオブジェクトが対応付けられることとなる。また、プリンタオブジェクトの情報として、デバイスドライバに対する設定値の組が定義されている。このプリンタオブジェクトの具体的な例については、図５を用いて後述する。なお、本願では、プリンタオブジェクトを単にオブジェクトと記載することもある。
【００２５】
また、本明細書において、「仮想デバイスオブジェクト」とは、複数の機能を有するプリンタ（複合機）のプリンタオブジェクトを仮想的に統合し、１つのオブジェクトとして表示される。この仮想デバイスオブジェクトの具体的な例については、図５を用いて後述する。
【００２６】
仮想デバイスアプリケーション４００は、入力管理部４０４、画面表示管理部４０５、プリンタオブジェクト情報取得部４０６、仮想デバイスオブジェクト管理部４０３、出力制御部４０１、出力管理部４０２から構成される。入力管理部４０４は、画面表示管理部４０５により表示された仮想デバイスアプリケーション４００のＧＵＩ（グラフィカルユーザインタフェース）を介して、ユーザによる入力デバイス２０５の操作を検知し、操作情報を取得する。画面表示管理部４０５は、仮想デバイスアプリケーション４００のＧＵＩとして、一例として示す図７Ａ〜図７Ｄのように仮想デバイスオブジェクトの表示や出力選択の表示等の画面表示制御を行う。
【００２７】
プリンタオブジェクト情報取得部４０６は、ＯＳにより管理されるプリンタオブジェクトの情報やプリンタオブジェクトに割り当てられているデバイスドライバの情報を取得する。また、プリンタオブジェクト情報取得部４０６は、プリンタオブジェクトに割り当てられているデバイスドライバと仮想デバイスアプリケーション４００との連携が可能か否かを判断する。より具体的には、仮想デバイスアプリケーション４００からデバイスドライバの機能を制御するためのＩＦ（インタフェース：不図示）が公開されている場合がある。ＩＦは、デバイスドライバのＳＤＫ（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）として公開されており、仮想デバイスアプリケーション４００との連携動作が保障されている。ここでの連携とは、例えば、データや命令のやり取りにより、それぞれが有する機能を提供して処理を実行することを指す。仮想デバイスアプリケーション４００は、ＩＦを介し、デバイスドライバとの間の制御を行うことができる。プリンタオブジェクト情報取得部４０６は、デバイスドライバにＩＦが備えられているか否かの確認により、デバイスドライバとの連携可能か否かを判定するものとする。
【００２８】
仮想デバイスオブジェクト管理部４０３は、図６で示すように仮想デバイスオブジェクトの構成情報を生成、管理する。より具体的には、仮想デバイスオブジェクト管理部４０３は、プリンタオブジェクト情報取得部４０６により取得したプリンタオブジェクトの情報を基に仮想デバイスオブジェクトの構成を構築する。また、仮想デバイスオブジェクト管理部４０３は、仮想デバイスオブジェクトの構成や仮想デバイスオブジェクトの機能設定等の設定情報を外部メモリ２０６に保存する設定ファイルに書き込むことや、設定ファイルから設定情報を読み込む等の制御を行う。
【００２９】
出力制御部４０１は、画像処理装置１０１へ出力の指示を行う。より具体的には、出力制御部４０１は、ユーザからの出力指示を入力管理部４０４を介して受け付けると、その出力指示に基づいて、対応するプリンタオブジェクトに割り当てられるデバイスドライバへ出力指示を行う。例えば、ユーザからの出力指示が印刷指示の場合、出力制御部４０１は、印刷用のデバイスドライバへ出力指示を行う。一方、ユーザからの出力指示がファクス送信の場合、出力制御部４０１は、ファクス送信用のデバイスドライバへ出力指示を行う。
【００３０】
指示を受け付けたデバイスドライバは、出力指示にて指定された文書ファイルを画像処理装置１０１で解釈可能な出力指示情報に変換する。ここで変換される「出力指示情報」とは、印刷出力の場合、印刷用のデータ形式（例えば、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）等）を指す。また、ファクス送信の場合、変換される出力指示情報は、ファクス送信用のデータ形式（例えば、ラスターデータ等）を指す。そして、デバイスドライバは、変換した出力指示情報を、ネットワーク１０３を介して対応する画像処理装置１０１へ送信する。
【００３１】
出力管理部４０２は、画像処理装置１０１と通信し、画像処理装置１０１のステータス情報や実行ジョブのステータス情報を取得する。ここで、プリンタオブジェクトに設定されている出力ポート（不図示）が、仮想デバイスアプリケーション４００のアプリケーション対応ポートである場合、出力管理部４０２は、この出力ポートを介して各種情報を取得する。ここで取得される情報としては、画像処理装置１０１のステータス情報（印刷可能、エラー等）や実行ジョブ（印刷、ファクス送信）のステータス情報（処理中、完了等）などが挙げられる。なお、アプリケーション対応ポートとは、特定のアプリケーションに用いられるように、予め固有に定義された出力ポートを指す。出力管理部４０２は、取得したステータス情報を画面表示管理部４０５へ渡す。そして、画面表示管理部４０５は、仮想デバイスオブジェクトのＧＵＩ上へ表示する（不図示）。なお、仮想デバイスオブジェクトのＧＵＩ上へ表示する情報は、ユーザがいずれの情報を表示するか設定できるように構成しても構わない。また、実行ジョブのステータス情報において、出力対象のファイル名を表示するようにしても構わない。
【００３２】
なお、仮想デバイスアプリケーション４００は、ウィジェット（Ｗｉｄｇｅｔ）やガジェット（Ｇａｄｇｅｔ）などと呼ばれる場合もある。
【００３３】
［プリンタオブジェクト管理画面および仮想デバイスアプリケーションの表示画面］
図５は、ＯＳのプリンタオブジェクトの管理画面と仮想デバイスアプリケーションの表示画面を模式的に示した図である。デスクトップ画面５００は、ＯＳによって表示され、ＯＳのプリンタオブジェクトの管理画面５０１、およびＯＳにて管理されているプリンタオブジェクト５０２それぞれを可視的に表している。プリンタオブジェクトの管理画面５０１には、ＯＳにインストールされているすべてのデバイスドライバに対応するプリンタオブジェクト５０２の一覧が表示される。デバイスドライバをＯＳにインストールすると、ＯＳは、そのデバイスドライバに対応するプリンタオブジェクト５０２として管理画面５０１へ表示する。
【００３４】
管理画面５０１において、プリンタオブジェクト５０２として、用途に応じたプリンタオブジェクトが存在する。具体的には、印刷指示データを画像処理装置へ送信する印刷用のプリンタオブジェクトや、ファクス送信指示データを画像処理装置へ送信するためのファクス送信用のプリンタオブジェクト等がある。つまり、物理的に１つの画像処理装置において、利用可能な複数の機能がある場合には、機能（デバイスドライバ）ごとに異なるプリンタオブジェクト５０２が表示されることとなる。さらに、１つのデバイスドライバに対して、複数の設定がある場合は、それぞれプリンタオブジェクト５０２として表示される。
【００３５】
また、仮想デバイスオブジェクト５０３は、仮想デバイスアプリケーション４００における仮想デバイスオブジェクトの表示状態を模式的に示している。仮想デバイスオブジェクト５０３は、ＯＳのデスクトップ上に表示され、ユーザからの出力対象のデータ（ファイル）に対する出力指示を受け付けることにより容易に所望の出力を実現できる。
【００３６】
図６は、本実施形態に係る仮想デバイスオブジェクト５０３の構成を概念的に示す図である。ここでは、仮想デバイスオブジェクト６０１には、特定の画像処理装置に対応する印刷用プリンタオブジェクト６０２及びファクス送信用プリンタオブジェクト６０３が割り当てられている。つまり、本実施形態に係る仮想デバイスオブジェクト６０１は、物理的に１つの画像処理装置にて実行可能な２つの異なる機能が、１つの仮想デバイスオブジェクトに割り当てられている。
【００３７】
ユーザによる印刷指示を仮想デバイスオブジェクト５０３が受け付けた場合、印刷用プリンタオブジェクトとして割り当てられているプリンタオブジェクト５０２を介して、出力が実行される。一方、ファクス送信の指示を仮想デバイスオブジェクト５０３が受け付けた場合、ファクス送信用プリンタオブジェクトとして割り当てられているプリンタオブジェクト５０２を介して、出力が実行される。また、本実施形態におけるシステム構成のように画像処理装置が複数存在する場合には、画像処理装置それぞれに一つの仮想デバイスオブジェクト５０３を生成できる構成となる。
【００３８】
［仮想デバイスアプリケーションの出力実行時の表示ＵＩ］
図７Ａは、仮想デバイスアプリケーション４００の出力実行時のＵＩ（ユーザインタフェース）を模式的に示した図である。７０１に示すように、仮想デバイスアプリケーション４００は、ユーザによる仮想デバイスオブジェクト上への出力対象のファイルのドラッグ操作を受け付けたとする。この場合、仮想デバイスアプリケーション４００は、７０２及び７０４のように、仮想デバイスオブジェクトの表示上に出力機能に対応するアイコンを表示する。ここでは、印刷用のプリンタオブジェクトに対応する「Ｐｒｉｎｔ」のアイコンと、ファクス送信用のプリンタオブジェクトに対応する「Ｆａｘ」のアイコンが選択可能な機能として表示されている。ユーザは、実行したい出力に対応するアイコンへファイルをドロップ操作することで所望の出力を実現可能とする。なお、このドラッグ操作が、仮想デバイスオブジェクトへのデータの出力指示の受付に相当する。また、その他にも出力対象のファイルを右クリックして仮想デバイスオブジェクトからの印刷メニューを選択することで出力指示の受付としても良い。なお、各プリンタオブジェクトと各デバイスドライバとの関係を図１１に示す。
【００３９】
仮想デバイスアプリケーション４００は、「Ｐｒｉｎｔ」のアイコン部分へのドロップ操作を受け付けると（７０２）、設定画面７０３のように印刷設定を指定するためのＵＩ画面を表示する。ここでユーザが印刷設定を指定することで、仮想デバイスアプリケーション４００は、対応する画像処理装置への印刷指示を実行する。具体的には、ドロップされたファイルと設定画面７０３において選択された印刷設定とが、仮想デバイスオブジェクト６０１の印刷用プリンタオブジェクト６０２に対応付けられている印刷用のデバイスドライバ１１０１へ通知される。そして、印刷用のデバイスドライバ１１０１が、ドロップされたファイルと印刷設定とに基づく印刷データを生成して画像処理装置へ送信することにより印刷が実行される。
【００４０】
また、仮想デバイスアプリケーション４００は、「Ｆａｘ」のアイコン部分へのドロップ操作を受け付けると（７０４）、設定画面７０５に示すようにファクス送信のための宛先指定画面を表示する。ここでユーザが宛先を指定し、実行操作を行うことで、仮想デバイスアプリケーション４００は、対応する画像処理装置へのファクス送信指示を実行する。具体的には、ドロップされたファイルと選択された宛先情報とが、仮想デバイスオブジェクト６０１のファクス送信用プリンタオブジェクト６０３に対応付けられているファクス用のデバイスドライバ１１０２へ通知される。そして、ファクス用のデバイスドライバ１１０２が、ドロップされたファイルと宛先情報とに基づくファクスデータを生成して画像処理装置へ送信することによりファクス処理が実行される。
【００４１】
設定画面７０３及び７０５で表示する各種設定用のＵＩは、特に限定せず、仮想デバイスアプリケーション４００で管理するＵＩを表示する構成であっても、対応するプリンタオブジェクトのＵＩを呼び出す構成であってもよい。
【００４２】
仮想デバイスアプリケーション４００に対して、ドロップ操作で選択可能な出力選択のためのアイコンとして、その他にも例えば印刷プレビューやＰＤＦ変換に関するアイコンを表示し、選択できるようにしてもよい。この場合の表示例を図７Ｂの７０６に示す。
【００４３】
また、図７Ｃに示すように、仮想デバイスアプリケーション４００は、印刷プレビュー部分（「Ｐｒｉｎｔ  Ｐｒｅｖｉｅｗ」のアイコン部分）へのドロップ操作を受け付けたとする（７０７）。この場合、仮想デバイスアプリケーション４００は、７０８に示すように文書ファイルの印刷プレビューを表示するＵＩ画面を表示する。ユーザは、その印刷プレビューを確認しながら印刷設定を変更し、印刷を実行できるようにしてもよい。印刷は、ＵＩ画面７０８を介して印刷指示を受け付けることにより、実現される。また、仮想デバイスアプリケーション４００は、ＰＤＦ変換部分（「Ｃｏｎｖｅｒｔ  ｔｏ  ＰＤＦ」のアイコン部分）へのドロップ操作を受け付けたとする。この場合、仮想デバイスアプリケーション４００は、文書ファイルをＰＤＦフォーマットのファイルへ変換する処理を行うように指示する。
【００４４】
また、仮想デバイスアプリケーション４００は、ライセンス認証によってアプリケーションの利用を制限する構成であってもよい。例えば、仮想デバイスアプリケーション４００が使用期限切れなどによりライセンスが有効でない場合に、図７Ｄの７０９に示すように使用できる機能を制限する。ここで仮想デバイスアプリケーション４００は、ユーザによる仮想デバイスオブジェクトへのファイルのドラッグ操作を受け付けると、ライセンスの有効／無効を確認する。そして、無効である機能が存在する場合には、使用不可を示す制御を行う。例えば、図７Ｄでは、無効化する機能が選択できないような表示として、機能を表すアイコンをグレーアウトするように変更している。その他にも、例えばアイコンを消すような制御を行っても構わない。
【００４５】
［仮想デバイスオブジェクトの生成処理フロー］
図８は、本実施形態を示す仮想デバイスアプリケーション４００の仮想デバイスオブジェクトの生成処理手順の一例を示すフローチャートである。本願発明は、仮想デバイスオブジェクトにより画像処理装置への各種出力を容易に実現可能とし、仮想デバイスオブジェクトを使用するための設定の負荷を軽減する。よって、仮想デバイスアプリケーション４００をＯＳにインストール後、複雑な設定手順を要さずに仮想デバイスオブジェクトを利用できることが望ましい。したがって、本フローで示す処理例は、仮想デバイスアプリケーション４００の初回起動時に、ＯＳにインストールされているデバイスドライバに対応するプリンタオブジェクトの情報を用いて自動的に仮想デバイスオブジェクトを生成する。なお、仮想デバイスアプリケーション４００の初回起動時に、仮想デバイスアプリケ−ションは少なくとも１つのデバイスドライバがインストールされているか否かを判定する。ここで、デバイスドライバが存在しない場合、図８に示す処理は実行されない。一方、仮想デバイスアプリケーション４００がユーザから仮想デバイスオブジェクトの追加指示を受け、かつ、デバイスドライバが存在しない場合、仮想デバイスアプリケーション４００がデバイスドライバのインストールを促すメッセージを表示する。
【００４６】
尚、本願のフローチャートの各ステップを示し、ＣＰＵ２０１がＲＯＭ２０４、外部メモリ２０６等に記憶された仮想デバイスアプリケーション４００、デバイスドライバ等をＲＡＭ２０３にロードして実行することで実現される。また、本処理は、情報処理装置１００において仮想デバイスアプリケーション４００が起動指示を受け付けて処理が実行されるものとする。なお、本処理は、新たなデバイスドライバがインストールされた際に実行されるようにしても構わない。
【００４７】
起動指示を受け付けると、まずＳ８０１で、プリンタオブジェクト情報取得部４０６は、ＯＳに対してインストールされているプリンタドライバに対応するプリンタオブジェクトの情報の取得を要求する。その応答により、プリンタオブジェクト情報取得部４０６は、ＯＳにインストールされている全てのプリンタドライバに対応するプリンタオブジェクトの情報を取得する。次に、Ｓ８０２で、仮想デバイスオブジェクト管理部４０３は、取得した全プリンタオブジェクトの情報の内、一つのプリンタオブジェクトの情報を処理対象とする。そして、仮想デバイスオブジェクト管理部４０３は、処理対象としたプリンタオブジェクト情報のプリンタオブジェクト名を指定し、処理対象に割り当てられているプリンタドライバのＩＦの初期化をプリンタオブジェクト情報取得部４０６に指示する。このとき、プリンタオブジェクト情報取得部４０６は、プリンタドライバＳＤＫ（不図示）を介することで初期化を試みる。ここでの「初期化」とは、プリンタドライバＳＤＫ（不図示）を介することでプリンタドライバのＩＦを呼び出し、プリンタドライバの構成情報の取得を試みる処理を指す。
【００４８】
Ｓ８０３で、初期化処理の処理結果をデバイスドライバＳＤＫ（不図示）より受け付けたプリンタオブジェクト情報取得部４０６は、初期化処理の成功もしくは失敗を判定する。そして、プリンタオブジェクト情報取得部４０６は、仮想デバイスオブジェクト管理部４０３へその結果を渡す。初期化処理が成功した場合には、ＩＦの呼び出しに成功し、構成情報を取得できる。一方、インストールされているデバイスドライバが仮想デバイスアプリケーションと連携していないなどにより、その呼び出しが不可の場合は、失敗となる。ここで初期化に成功した場合は、仮想デバイスアプリケーション４００と連携可能なプリンタオブジェクトと判定する（Ｓ８０３にてＹＥＳ）。一方、失敗した場合は、仮想デバイスアプリケーション４００と連携不可能なプリンタオブジェクトと判定する（Ｓ８０３にてＮＯ）。
【００４９】
連携不可能なプリンタオブジェクトであると判定された場合（Ｓ８０３にてＮＯ）、以降の判定処理を中止し、Ｓ８１６に進む。連携可能なプリンタオブジェクトであると判定された場合（Ｓ８０３にてＹＥＳ）、Ｓ８０４に進む。Ｓ８０４で、仮想デバイスオブジェクト管理部４０３は、処理対象のプリンタオブジェクト情報のアドレス情報を参照し、同一のアドレス情報を有するプリンタオブジェクトを含む仮想デバイスオブジェクトが既に生成されているか判定する。ここでのアドレス情報とは、例えば、画像処理装置のＩＰアドレス等が該当する。つまり、ここでの判定により、物理的に同一の画像処理装置に対する仮想デバイスオブジェクトが生成されているかを確認する。
【００５０】
既に同一の画像処理装置に対する仮想デバイスオブジェクトが存在する場合は（Ｓ８０４にてＹＥＳ）、Ｓ８０５へ進む。そして、仮想デバイスオブジェクト管理部４０３は、その仮想デバイスオブジェクトの情報へ処理対象のプリンタオブジェクトを追加対象の候補として追加する。一方、同一の画像処理装置に対する仮想デバイスオブジェクトが存在しない場合は（Ｓ８０４にてＮＯ）、Ｓ８０６に進み、仮想デバイスオブジェクト管理部４０３は、仮想デバイスオブジェクトの情報を新規に作成する。そして、仮想デバイスオブジェクト管理部４０３は、新規に生成した仮想デバイスオブジェクトの情報へ処理対象のプリンタオブジェクトを追加する。
【００５１】
続いて、Ｓ８０７において、仮想デバイスオブジェクト管理部４０３は、プリンタオブジェクト情報取得部４０６へ指示し、処理対象のプリンタオブジェクトに割り当てられているデバイスドライバがファクス送信用のデバイスドライバか否かを判定させる。具体的には、プリンタオブジェクト情報取得部４０６は、デバイスドライバＳＤＫ（不図示）を介してデバイスドライバの情報を参照することでこの判定を実行する。ここで、ファクス送信用のデバイスドライバではなく印刷用のデバイスドライバと判定された場合（Ｓ８０７にてＮＯ）、Ｓ８０８へ進む。一方、ファクス送信用のデバイスドライバと判定された場合（Ｓ８０７にてＹＥＳ）、Ｓ８１２へ進む。
【００５２】
Ｓ８０８で、仮想デバイスオブジェクト管理部４０３は、仮想デバイスオブジェクトに既に印刷用のプリンタオブジェクトが割り当てられているか否かを判定する。印刷用のプリンタオブジェクトが割り当てられていない場合（Ｓ８０８にてＮＯ）は、Ｓ８１１へ進む。そして、Ｓ８１１にて、仮想デバイスオブジェクト管理部４０３は、処理対象のプリンタオブジェクトを追加対象の仮想デバイスオブジェクトの印刷用プリンタオブジェクトとして割り当てる。
【００５３】
既に印刷用のプリンタオブジェクトが割り当てられている場合（Ｓ８０８にてＹＥＳ）、Ｓ８０９へ進む。Ｓ８０９で、仮想デバイスオブジェクト管理部４０３は、既に割り当て済みのプリンタオブジェクトの情報の出力ポート情報を参照し、処理対象のプリンタオブジェクトの出力ポート情報と比較する。具体的には、仮想デバイスオブジェクト管理部４０３は、出力管理部４０２に指示し、出力ポートがアプリケーションの対応ポートか否か判定させる。
【００５４】
ここで、出力ポートの情報は、ＯＳによりその種類ごとに管理される（不図示）。例えば、一般的な出力ポートであるＳｔａｎｄａｒｄ  ＴＣＰ／ＩＰポートの場合、同種（Ｓｔａｎｄａｒｄ  ＴＣＰ／ＩＰ）のポートがＯＳによりグループ化されて管理される。アプリケーション対応ポートも同様にして、予め指定され、ＯＳによりグループ化された状態で管理される。ここでの判定は、ＯＳの管理情報を参照し、処理対象のプリンタオブジェクトの出力ポートがアプリケーション対応ポートのグループに含まれるか否かで判定できる。つまり、出力管理部４０２は、各出力ポートのうち、アプリケーション対応ポートのグループに含まれるものはアプリケーション対応ポート、含まれないものは非アプリケーション対応ポートと判定する。
【００５５】
Ｓ８１０で、仮想デバイスオブジェクト管理部４０３は、処理対象のプリンタオブジェクトの出力ポートが、既に仮想デバイスオブジェクトに割り当て済みのプリンタオブジェクトの出力ポートより優先して使用されるか否か判定する。これは、割り当て済みのプリンタオブジェクトの出力ポートが非アプリケーション対応ポートであり、処理対象の出力ポートがアプリケーション対応ポートの場合に、処理対象の出力ポートを優先と判定する。それ以外は、優先と判定しない。これはすなわち、同一のデバイスドライバに対する複数のプリンタオブジェクトのうち、所定の出力ポートの設定がなされたプリンタオブジェクトを用いることを意味する。なお、アプリケーション対応ポートは、例えば、画像処理装置１０１、１０２のステータスや画像処理装置１０１、１０２における印刷データの処理状況を取得できるポートである。このアプリケーション対応ポートのプリンタオブジェクトを優先することで、仮想デバイスアプリケーションは、仮想デバイスオブジェクトに対してプリンタのステータスや印刷データの処理状況を表示することができる。一方、Ｓｔａｎｄａｒｄ  ＴＣＰ／ＩＰポートでは、印刷データの処理状況までは取得できないので、アプリケーション対応ポートのプリンタオブジェクトが優先される。この処理により、例えば仮想デバイスアプリケーションを利用する上で好ましい出力ポートが決まっている場合に、仮想デバイスアプリケーションをより効果的に利用することができる。また、そのための選定をユーザが行う必要もなくなるため、ユーザの操作性が向上する。
【００５６】
処理対象のプリンタオブジェクトの出力ポートを優先と判定しない場合（Ｓ８１０にてＮＯ）、仮想デバイスオブジェクト管理部４０３は、処理対象のプリンタオブジェクトを追加対象の仮想デバイスオブジェクトの印刷用プリンタオブジェクトとして割り当てない。そして、処理はＳ８１６へ進む。一方、処理対象のプリンタオブジェクトの出力ポートを優先と判定する場合は（Ｓ８１０にてＹＥＳ）、仮想デバイスオブジェクト管理部４０３は、処理対象のプリンタオブジェクトを追加対象の仮想デバイスオブジェクトの印刷用プリンタオブジェクトとして割り当てる。そして、処理はＳ８１６へ進む。Ｓ８０９〜Ｓ８１１の処理により、印刷用プリンタオブジェクトとしての割り当て候補が複数存在する場合に、その出力ポートで優先付けをすることで、よりアプリケーションの機能に適したプリンタオブジェクトを選定できる。
【００５７】
一方、処理対象のプリンタオブジェクトがファクス送信用である場合（Ｓ８０７にてＹＥＳ）、Ｓ８１２へ進む。そして、Ｓ８１２にて、仮想デバイスオブジェクト管理部４０３は、仮想デバイスオブジェクトに既にファクス送信用のプリンタオブジェクトが割り当てられているか否かを判定する。割り当てられていない場合は（Ｓ８１２にてＮＯ）、Ｓ８１５へ進み、仮想デバイスオブジェクト管理部４０３は、処理対象のプリンタオブジェクトを追加対象の仮想デバイスオブジェクトのファクス送信用のプリンタオブジェクトとして割り当てる。
【００５８】
既にファクス送信用のプリンタオブジェクトが仮想デバイスオブジェクトに割り当てられている場合（Ｓ８１２にてＹＥＳ）、Ｓ８１３へ進む。Ｓ８１３で、Ｓ８０９と同様に、仮想デバイスオブジェクト管理部４０３は、既に仮想デバイスオブジェクトに割り当て済みのプリンタオブジェクトの出力ポートの情報を参照し、処理対象のプリンタオブジェクトの出力ポート情報と比較する。そして、Ｓ８１４で、仮想デバイスオブジェクト管理部４０３は、Ｓ８１０と同様に、処理対象のプリンタオブジェクトの出力ポートが割り当て済みのプリンタオブジェクトの出力ポートより優先して使用されるか否か判定する。ここで優先と判定しない場合は（Ｓ８１４にてＮＯ）、仮想デバイスオブジェクト管理部４０３は、処理対象のプリンタオブジェクトを追加対象の仮想デバイスオブジェクトのファクス送信用のプリンタオブジェクトとして割り当てずに、Ｓ８１６へ進む。一方、優先と判定する場合は（Ｓ８１４にてＹＥＳ）、仮想デバイスオブジェクト管理部４０３は、処理対象のプリンタオブジェクトを追加対象の仮想デバイスオブジェクトのファクス送信用のプリンタオブジェクトとして割り当て、Ｓ８１６へ進む。Ｓ８１３〜Ｓ８１５の処理により、ファクス送信用のプリンタオブジェクトとしての割り当て候補が複数存在する場合に、その出力ポートで優先付けをすることで、よりアプリケーションの機能に適したプリンタオブジェクトを選定できる。
【００５９】
Ｓ８１６で、仮想デバイスオブジェクト管理部４０３は、Ｓ８０１で取得した全てのプリンタオブジェクト情報を処理対象として処理済みか否か判定する。全て処理済みである場合（Ｓ８１６にてＹＥＳ）、本フローの処理を完了とし、処理を終了する。全て処理済みでない場合は（Ｓ８１６にてＮＯ）、Ｓ８０２へ進み、仮想デバイスオブジェクト管理部４０３は、未処理のプリンタオブジェクトの情報を新たに処理対象とし、処理を繰り返す。
【００６０】
本処理は、仮想デバイスアプリケーションの初回起動時にユーザにより利用を推奨する仮想デバイスオブジェクトの自動生成を前提としている。そのため、本実施形態では、アプリケーションと連携可能なプリンタオブジェクトを選定し、選定された連携可能なプリンタオブジェクトを仮想デバイスオブジェクトに割り当てる対象とする。連携可能なプリンタオブジェクトを選定することで、仮想デバイスアプリケーションとの密な連携動作が可能である。
【００６１】
なお、仮想デバイスオブジェクトに割り当てられるプリンタオブジェクトは、必ずしも連携可能を要するものに限定されるものではない。例えば、自動生成の対象としなくとも、ユーザによるプリンタオブジェクトの選択手段（不図示）を設け、その選択操作によって仮想デバイスオブジェクトの構成を構築できる構成であっても良い。
【００６２】
以上の処理により、ＯＳにインストール済みのデバイスドライバに対応するプリンタオブジェクトの中から、仮想デバイスアプリケーションでの利用に適した印刷用及びファクス送信用のプリンタオブジェクトを選定する。そして、選定したプリンタオブジェクトを統合した仮想デバイスオブジェクトを生成する。これにより、ユーザは複雑な設定手順を要さずに仮想デバイスアプリケーション４００における仮想デバイスオブジェクト機能を利用できる。なお、複数のデバイス用に複数のプリンタオブジェクトが図５の管理画面５０１上で管理されている場合、図８に示す処理を実行することで複数の仮想デバイスオブジェクトが生成される。仮想デバイスアプリケーションは、この複数の仮想デバイスオブジェクトから適切な仮想デバイスオブジェクトを１つ選択し、表示する。その選択処理を図９を用いて説明する。
【００６３】
［推奨（デフォルト）の仮想デバイスオブジェクトの選定処理フロー］
図９は、ユーザへ対して利用を推奨する仮想デバイスオブジェクトの選定処理手順の一例を示すフローチャートである。本処理は、図８でのフローにより生成された複数の仮想デバイスオブジェクトの内、ユーザに対して利用を推奨する一つの仮想デバイスオブジェクトを選定する処理である。本実施形態では、仮想デバイスアプリケーション４００をＯＳにインストール後、推奨する一つの仮想デバイスオブジェクトを選定し、自動で表示する。これにより、図８の処理と合わせてユーザは、煩雑な操作をすることなく、すぐに仮想デバイスアプリケーション４００が提供する機能を利用できる。
【００６４】
本フローで示す処理は、仮想デバイスアプリケーション４００の初回起動時で、かつ、図８の処理完了後に実行される。本処理は、生成された仮想デバイスオブジェクトの中から、推奨する一つの仮想デバイスオブジェクトを設定するものである。また、本処理は、仮想デバイスオブジェクト管理部４０３で管理される情報を基に、仮想デバイスオブジェクト管理部４０３によって実行される。
【００６５】
Ｓ９０１で、仮想デバイスオブジェクト管理部４０３は、図８の処理により生成済みの全ての仮想デバイスオブジェクトの情報を参照する。Ｓ９０２で、仮想デバイスオブジェクト管理部４０３は、Ｓ９０１にて参照した仮想デバイスオブジェクトの情報から、印刷用及びファクス送信用の双方のプリンタオブジェクトが割り当てられている仮想デバイスオブジェクトを検索する。さらに、Ｓ９０３で、仮想デバイスオブジェクト管理部４０３は、印刷用及びファクス送信用の双方のプリンタオブジェクトが割り当てられている仮想デバイスオブジェクトが存在するか判定する。双方のプリンタオブジェクトが割り当てられている仮想デバイスオブジェクトが存在する場合に（Ｓ９０３にてＹＥＳ）、Ｓ９０４へ進む。存在しない場合は（Ｓ９０３にてＮＯ）、Ｓ９１０へ進む。
【００６６】
Ｓ９０４で、仮想デバイスオブジェクト管理部４０３は、印刷用及びファクス送信用の双方のプリンタオブジェクトが割り当てられている仮想デバイスオブジェクトが複数存在するか判定する。双方のプリンタオブジェクトが割り当てられている仮想デバイスオブジェクトが複数存在しない場合は（Ｓ９０４にてＮＯ）、Ｓ９０９へ進む。そして、Ｓ９０９にて、仮想デバイスオブジェクト管理部４０３は、取得した仮想デバイスオブジェクトを推奨の仮想デバイスオブジェクトとし、処理を終了する。印刷用及びファクス送信用の双方のプリンタオブジェクトが割り当てられている仮想デバイスオブジェクトが複数存在する場合は（Ｓ９０４にてＹＥＳ）、Ｓ９０５へ進む。Ｓ９０５では、仮想デバイスオブジェクト管理部４０３は、各仮想デバイスオブジェクトに割り当てられているプリンタオブジェクトの情報を参照し、設定された出力ポートのうちアプリケーション対応ポートが割り当てられているものがあるかを判定する。
【００６７】
出力ポートにアプリケーション対応ポートが割り当てられているプリンタオブジェクトを含む仮想デバイスオブジェクトが存在する場合（Ｓ９０５にてＹＥＳ）、Ｓ９０６へ進む。Ｓ９０６で、仮想デバイスオブジェクト管理部４０３は、アプリケーション対応ポートのプリンタオブジェクトを含む仮想デバイスオブジェクトが複数存在するか判定する。ここで複数存在しない場合は（Ｓ９０６にてＮＯ）、Ｓ９０９へ進み、仮想デバイスオブジェクト管理部４０３は、その仮想デバイスオブジェクトを推奨の仮想デバイスオブジェクトとし、処理を終了する。出力ポートにアプリケーション対応ポートが割り当てられているプリンタオブジェクトを含む仮想デバイスオブジェクトが存在しない場合（Ｓ９０５にてＮＯ）、Ｓ９０７へ進む。
【００６８】
出力ポートにアプリケーション対応ポートが割り当てられているプリンタオブジェクトを含む仮想デバイスオブジェクトが複数存在する場合は（Ｓ９０６にてＹＥＳ）、Ｓ９０７へ進む。Ｓ９０７で、仮想デバイスオブジェクト管理部４０３は、各仮想デバイスオブジェクトに割り当てられているプリンタオブジェクトの情報を参照し、通常使用するプリンタオブジェクトを含む仮想デバイスオブジェクトが存在するか判定する。ここで通常使用するプリンタオブジェクトとは、ＯＳ（不図示）によって管理される情報であって、出力処理時にデフォルトで指定されるプリンタオブジェクトを示す。一般的には、ユーザによる使用頻度の高いプリンタオブジェクト、つまり、通常使用を示す属性が対応付けられたプリンタオブジェクトが相当する。
【００６９】
通常使用するプリンタオブジェクトを含む仮想デバイスオブジェクトが存在する場合（Ｓ９０７にてＹＥＳ）、Ｓ９０９へ進む。そして、Ｓ９０９にて、仮想デバイスオブジェクト管理部４０３は、通常使用するプリンタオブジェクトを含む仮想デバイスオブジェクトを推奨の仮想デバイスオブジェクトとし、処理を終了する。
【００７０】
通常使用するプリンタオブジェクトを含む仮想デバイスオブジェクトが存在しない場合（Ｓ９０７にてＮＯ）、Ｓ９０８へ進む。そして、Ｓ９０８にて、仮想デバイスオブジェクト管理部４０３は、複数の仮想デバイスオブジェクトの中から一つの仮想デバイスオブジェクトを選定する。この場合は、既に以前の処理において推奨の区別がつかない場合であり、ここでの仮想デバイスオブジェクトの選定は、特に限定しない。例えば、印刷用のプリンタオブジェクト名のソート順で最初のプリンタオブジェクトを含む仮想デバイスオブジェクトを選定するようにしても良い。そのほかの条件を用いて、優先度を判定しても構わない。または、Ｓ９０７の処理に残った仮想デバイスオブジェクトを表示し、ユーザが選択するようにしても良い。そして、Ｓ９０９へ進み、仮想デバイスオブジェクト管理部４０３は、Ｓ９０８で選定された仮想デバイスオブジェクトを推奨する仮想デバイスオブジェクトとする。
【００７１】
次にＳ９０３で印刷用及びファクス送信用の双方のプリンタオブジェクトが割り当てられている仮想デバイスオブジェクトが存在しない場合（Ｓ９０３にてＮＯ）について説明する。この場合、Ｓ９１０にて、仮想デバイスオブジェクト管理部４０３は、各仮想デバイスオブジェクトに割り当てられているプリンタオブジェクトの情報を参照し、出力ポートにアプリケーション対応ポートが割り当てられているか否かを判定する。
【００７２】
出力ポートにアプリケーション対応ポートが割り当てられているプリンタオブジェクトを含む仮想デバイスオブジェクトが存在する場合（Ｓ９１０にてＹＥＳ）、Ｓ９１１へ進む。Ｓ９１１で、仮想デバイスオブジェクト管理部４０３は、アプリケーション対応ポートのプリンタオブジェクトを含む仮想デバイスオブジェクトが複数存在するか判定する。複数存在しない場合は（Ｓ９１１にてＮＯ）、Ｓ９１４へ進み、仮想デバイスオブジェクト管理部４０３は、その仮想デバイスオブジェクトを推奨の仮想デバイスオブジェクトとし、処理を終了する。出力ポートにアプリケーション対応ポートが割り当てられているプリンタオブジェクトを含む仮想デバイスオブジェクトが存在しない場合（Ｓ９１０にてＮＯ）、Ｓ９１２へ進む。
【００７３】
出力ポートにアプリケーション対応ポートが割り当てられているプリンタオブジェクトを含む仮想デバイスオブジェクトが複数存在する場合は（Ｓ９１１にてＹＥＳ）、Ｓ９１２へ進む。Ｓ９１２で、仮想デバイスオブジェクト管理部４０３は、各仮想デバイスオブジェクトに割り当てられているプリンタオブジェクト情報を参照し、通常使用するプリンタオブジェクトを含む仮想デバイスオブジェクトが存在するか判定する。通常使用するプリンタオブジェクトを含む仮想デバイスオブジェクトが存在する場合（Ｓ９１２にてＹＥＳ）、Ｓ９１４へ進む。そして、Ｓ９１４にて、仮想デバイスオブジェクト管理部４０３は、通常使用するプリンタオブジェクトを含む仮想デバイスオブジェクトを推奨の仮想デバイスオブジェクトとし、処理を終了する。
【００７４】
通常使用するプリンタオブジェクトを含む仮想デバイスオブジェクトが存在しない場合（Ｓ９１２にてＮＯ）、Ｓ９１３へ進む。そして、Ｓ９１３にて、仮想デバイスオブジェクト管理部４０３は、複数の仮想デバイスオブジェクトの中から一つの仮想デバイスオブジェクトを選定する。この場合は、既に以前の処理において推奨の区別がつかない場合であり、ここでの判定は、上述のＳ９０８と同様の処理で１つの仮想デバイスオブジェクトを選択する。次にＳ９１４へ進み、仮想デバイスオブジェクト管理部４０３は、Ｓ９１３で選定した仮想デバイスオブジェクトを推奨する仮想デバイスオブジェクトとし、処理を終了する。
【００７５】
［出力画面の表示処理フロー］
図６を用いて述べたように、本実施形態において、仮想デバイスオブジェクトは、印刷用のプリンタオブジェクトとファクス送信用のプリンタオブジェクトから構成される。ユーザによる印刷指示を受け付けた場合に、印刷用として割り当てられているデバイスドライバを使用して印刷処理を実行する。一方、ファクス送信指示を受け付けた場合は、ファクス送信用として割り当てられているデバイスドライバを使用してファクス送信処理を実行する。
【００７６】
ここで、ＯＳにインストール済みのデバイスドライバの状況によっては、印刷用とファクス送信用のうち、片方のみが利用可能である場合が考えられる。このような場合に出力画面の表示処理において、実行できる出力処理をユーザが認識できるようにＧＵＩで表示することでより利便性が高まる。
【００７７】
図１０は、仮想デバイスオブジェクトに割り当てられているプリンタオブジェクトに応じた出力画面の表示制御の処理手順の一例を示すフローチャートである。本フローで示す処理例は、仮想デバイスオブジェクトへの出力操作の受け付け時に実行される。ここで、出力操作とは、例えば図７Ａで示すように仮想デバイスオブジェクトへのファイルのドラッグ操作に該当する（７０１）。
【００７８】
ユーザからの出力操作を受け付けた入力管理部４０４は、画面表示管理部４０５へ出力画面の表示を指示する。その指示を受けた画面表示管理部４０５は、出力指示を受け付けた仮想デバイスオブジェクトに関して仮想デバイスオブジェクト管理部４０３へ出力の可否を問い合わせる。これにより、本処理フローが開始される。
【００７９】
Ｓ１００１で、仮想デバイスオブジェクト管理部４０３は、出力操作を受け付けた仮想デバイスオブジェクトの情報を参照し、利用可能な印刷用のプリンタオブジェクトが割り当てられているか否か判定する。利用可能な印刷用のプリンタオブジェクトが割り当てられている場合には（Ｓ１００１にてＹＥＳ）、Ｓ１００２で、仮想デバイスオブジェクト管理部４０３は、該仮想デバイスオブジェクトの印刷出力を“可”とする。利用可能な印刷用のプリンタオブジェクトが割り当てられていない場合には（Ｓ１００１にてＮＯ）、Ｓ１００３で、仮想デバイスオブジェクト管理部４０３は、該仮想デバイスオブジェクトの印刷出力を“不可”とする。
【００８０】
さらに、Ｓ１００４で、仮想デバイスオブジェクト管理部４０３は、該仮想デバイスオブジェクトの情報を参照し、利用可能なファクス送信用のプリンタオブジェクトが割り当てられているか否かを判定する。利用可能なファクス送信用のプリンタオブジェクトが割り当てられている場合には（Ｓ１００４にてＹＥＳ）、Ｓ１００５で、仮想デバイスオブジェクト管理部４０３は、該仮想デバイスオブジェクトのファクス送信出力を“可”とする。利用可能なファクス送信用の割り当てられていない場合には（Ｓ１００４にてＮＯ）、Ｓ１００６で、仮想デバイスオブジェクト管理部４０３は、該仮想デバイスオブジェクトのファクス送信出力を“不可”とする。
【００８１】
次にＳ１００７で、仮想デバイスオブジェクト管理部４０３は、上記判定処理の結果を画面表示管理部４０５へ渡し、出力画面の表示を指示する。指示を受けた画面表示管理部４０５は、印刷及びファクス送信出力の可否情報を参照し、出力画面を表示する。このとき、印刷またはファクス送信出力不可の場合は、該当する出力選択表示を出力画面上の表示でＧＵＩの操作を無効として表示する。これは、ＧＵＩ上の表示をグレーアウト表示にすることや、非表示にすることであり、ユーザの出力操作を受け付けないことを識別可能に表示することを指す。一方、出力可の場合は、該当する出力選択表示を出力画面上の表示でＧＵＩの操作を有効として表示する。
【００８２】
なお、図７を用いてＧＵＩを説明した際に述べたように、さらに認証情報を用いて、表示の可否を判定するようにしても構わない。
【００８３】
また、本実施形態では、印刷用とファクス送信用の双方のデバイスドライバが割り当てられている場合でも、いずれか一方のみが割り当てられている場合でも、仮想デバイスオブジェクトの表示は同じであった。しかし、割り当てられたデバイスドライバの数や種類に応じて、仮想デバイスオブジェクトの表示を変更するようにしても構わない。
【００８４】
以上、本発明により、複数の機能を有する画像処理装置への各種出力指示をより容易に実行できるための仮想デバイスオブジェクトをユーザの指示を要さずに自動的に生成することができる。また、そのための構成を容易に実現できる。
【００８５】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005975666.tif 000002
【図２】
0005975666.tif 000003
【図３】
0005975666.tif 000004
【図４】
0005975666.tif 000005
【図５】
0005975666.tif 000006
【図６】
0005975666.tif 000007
【図７Ａ】
0005975666.tif 000008
【図７Ｂ】
0005975666.tif 000009
【図７Ｃ】
0005975666.tif 000010
【図８】
0005975666.tif 000011
【図９】
0005975666.tif 000012
【図１０】
0005975666.tif 000013
【図１１】
0005975666.tif 000014
【図７Ｄ】
0005975666.tif 000015