(57)【要約】【課題】  呼出元プログラム手段からの呼び出しに応答して画像処理に関する画面表示を行うためのプログラム、情報処理装置、および画像処理システムを提供すること。【解決手段】  本プログラムは、コンピュータを、呼び出しに対応して、画像処理に関する画面を表示する画面表示手段１３４、呼出元プログラム手段を特定する呼出元特定手段１３２、呼出元特定手段１３２により特定された呼出元プログラム手段の終了を監視する呼出元監視手段１３６、および呼出元監視手段１３６により呼出元プログラム手段の終了が検知された場合に、画面表示手段１３４が表示する画面を終了させる終了処理手段１３６、として機能させるためのプログラムである。画面表示手段１３４、呼出元特定手段１３２、呼出元監視手段および終了処理手段１３４は、呼出元プログラム手段１５０とは異なる実行単位で動作するよう構成されている。【選択図】  図３
2015043127.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
呼び出しに対応して、画像処理に関する画面を表示する画面表示手段、
呼出元プログラム手段を特定する呼出元特定手段、
前記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段、および
前記呼出元監視手段により前記呼出元プログラム手段の終了が検知された場合に、前記画面表示手段が表示する画面を終了させる終了処理手段、
として機能させるためのプログラムであり、前記画面表示手段、前記呼出元特定手段、前記呼出元監視手段および前記終了処理手段は、前記呼出元プログラム手段とは異なる実行単位で動作するよう構成されている、プログラム。
【請求項２】
前記画面がモーダルで開かれる場合に、前記呼出元プログラム手段の実行単位で表示された親画面を、制限状態とする制限処理手段、および
前記画面がモーダルで開かれた場合に、前記画面が終了する際に前記親画面の制限状態を解除する終了時解除処理手段
としてさらに機能させる、請求項１に記載のプログラム。
【請求項３】
前記画面表示手段の実行単位の終了を監視する画面監視手段、および
前記画面監視手段により前記画面表示手段の実行単位の終了が検知された場合であって、前記親画面が制限状態にある場合に、前記親画面の制限状態を解除する終了検知時解除処理手段
としてさらに機能させる、請求項２に記載のプログラム。
【請求項４】
前記画面監視手段および前記終了検知時解除処理手段は、前記画面表示手段の実行単位とは異なる実行単位で動作するよう構成されている、請求項３に記載のプログラム。
【請求項５】
前記プログラムは、画像処理装置のドライバ・プログラムのユーザ・インタフェースを提供する実行形式のファイルとして提供され、前記呼出元プログラム手段は、前記ドライバ・プログラムの呼出元となるアプリケーションのプロセスである、請求項１〜４のいずれか１項に記載のプログラム。
【請求項６】
呼び出しに対応して、画像処理に関する画面を表示する画面表示手段と、
呼出元プログラム手段を特定する呼出元特定手段と、
前記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段と、
前記呼出元監視手段により前記呼出元プログラム手段の終了が検知された場合に、前記画面表示手段が表示する画面を終了させる終了処理手段と
を含み、前記画面表示手段、前記呼出元特定手段、前記呼出元監視手段および前記終了処理手段は、前記呼出元プログラム手段とは異なる実行単位で動作する、情報処理装置。
【請求項７】
コンピュータを、
呼び出しに対応して、画像処理に関する画面を表示する画面表示手段、
呼出元プログラム手段を特定する呼出元特定手段、
前記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段、および
前記呼出元監視手段により前記呼出元プログラム手段の終了が検知された場合に、前記画面表示手段が表示する画面を終了させる終了処理手段、
として機能させるためのプログラムと、
前記プログラムが動作するコンピュータから送信されたデータに対し画像処理を施す画像処理装置と
を含み、前記画面表示手段、前記呼出元特定手段、前記呼出元監視手段および前記終了処理手段は、前記コンピュータ上で、前記呼出元プログラム手段とは異なる実行単位で動作するよう構成されている、画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面表示のためのプログラムに関し、より詳細には、プログラム手段からの呼び出しに応答して画像処理に関する画面表示を行うためのプログラム、情報処理装置および画像処理システムに関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）２０００からＷｉｎｄｏｗｓ（登録商標）７までのＷｉｎｄｏｗｓ（登録商標）系のオペレーティング・システム（ＯＳ）においては、バージョン３（以下、Ｖ３と参照する。）プリンタ・ドライバと呼ばれるプリンタ・ドライバ・アーキテクチャが採用されている。一方、Ｗｉｎｄｏｗｓ（登録商標）８からは、従来のＶ３プリンタ・ドライバに加えて、バージョン４（以下、Ｖ４と参照する。）プリンタ・ドライバと呼ばれる、新しいプリンタ・ドライバ・アーキテクチャが採用されている。Ｖ４プリンタ・ドライバ・アーキテクチャでは、デスクトップと、ＭｏｄｅｒｎスタイルＵＩ（User Interface）との両方で、カスタマイズされたユーザ・インタフェースがサポートされている。
【０００３】
ここで、プリンタ・ドライバの印刷設定画面ＵＩの提供形式に着目する。Ｖ３プリンタ・ドライバでは、プリンタＵＩは、ＤＬＬ（Dynamic Link Library）形式で提供される。したがって、Ｖ３プリンタ・ドライバの印刷設定画面は、印刷アプリケーションにロードされ、印刷アプリケーションのプロセス上で動作することになる。このため、印刷アプリケーションのプロセスが手動で終了されたり、または強制終了したりすれば、印刷設定画面は、自動的に閉じられる。
【０００４】
一方で、Ｖ４プリンタ・ドライバ・アーキテクチャは、デスクトップのカスタマイズＵＩが実行可能（ＥＸＥ：Executable）形式で提供されるという点で、Ｖ３アーキテクチャとは異なっている。このとき、Ｖ４アーキテクチャの印刷設定画面は、親プロセスとは別プロセスで動作する。このため、親プロセスが手動で終了されたり、または強制終了したりしても、印刷設定画面が終了しない場合があった。
【０００５】
つまり、Ｖ４プリンタ・ドライバは、上記提供形式の相違により、Ｖ３アーキテクチャの場合と異なる振る舞いとなってしまい、ユーザの利便性が損なわれる可能性があった。例えば、印刷アプリケーションが終了して意味の無くなった印刷設定画面が表示され続けるといった問題があった。
【０００６】
呼び出し元画面と呼び出し先画面とが別プロセスの場合に、モーダルな画面表示を実現する従来技術として、特開２００８−２９３１４８号公報（特許文献１）が知られている。特許文献１では、ダウンロード元ブラウザ画面とプレビュー画面が別プロセスとなる場合でも、ダウンロード元ブラウザ画面を入力排他状態にし、プレビュー画面をダウンロード元ブラウザ画面より常に前面に表示させることを目的とした技術を開示する。特許文献１の従来技術では、呼び出し元画面が呼び出し先画面を一定時間間隔で監視し、呼び出し先画面が終了していないかつダイアログ化されていない場合に入力排他状態にしている。
【０００７】
上記特許文献１の従来技術では、特定の場合に呼び出し元画面を入力排他状態にすることができるが、ブラウザに関する技術であり、またダウンロード元ブラウザ画面が終了した場合にプレビュー画面を終了させられるものではなかった。また、上記特許文献１の従来技術は、呼び出し元画面と呼び出し先画面の内部動作を提供者が自由に変更できることが前提となっている。印刷アーキテクチャにおいては、プリンタ・ドライバのデスクトップのカスタマイズＵＩの内部動作は、プリンタ・ドライバの提供者側で自由に変更できる。しかしながら、呼び出し元のアプリケーションの内部動作は、通常、プリンタ・ドライバの提供者側では変更できないという制約がある。
【０００８】
したがって、印刷設定画面が、呼び出し元アプリケーションのプロセスとは異なるプロセスで動作している場合において、アプリケーションのプロセスが手動で終了または強制終了した場合に、表示画面を適切に終了させることができる技術の開発が望まれていた。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記従来技術における不充分な点に鑑みてなされたものであり、本発明は、表示画面が、その呼び出し元とは異なる実行単位で動作している場合においても、呼び出し元の実行単位の状態に依存させて表示画面を終了させることができるプログラム、情報処理装置および画像処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では、上記課題を解決するために、下記特徴を有するプログラムを提供する。本プログラムは、コンピュータを、
呼び出しに対応して、画像処理に関する画面を表示する画面表示手段、
呼出元プログラム手段を特定する呼出元特定手段、
上記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段、および
上記呼出元監視手段により呼出元プログラム手段の終了が検知された場合に、上記画面表示手段が表示する画面を終了させる終了処理手段、
として機能させるためのプログラムであり、
上記画面表示手段、呼出元特定手段、呼出元監視手段および終了処理手段が、上記呼出元プログラム手段とは異なる実行単位で動作するよう構成されている。
【発明の効果】
【００１１】
上記構成により、表示画面が、その呼び出し元とは異なる実行単位で動作している場合においても、呼び出し元の実行単位の状態に依存させて表示画面を終了させることができるようになる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態によるプリントシステムの概略構成図。
【図２】Ｖ４プリンタ・ドライバのアーキテクチャの概略を説明する図。
【図３】本実施形態におけるホスト装置上で動作するソフトウェア・コンポーネントを示すブロック図。
【図４】本実施形態によるホスト装置が実行する、モーダル・ウィンドウで印刷設定する場合の各機能部の基本動作を説明するシーケンス図。
【図５】本実施形態によるドライバ・イベント処理部が実行する、モーダル・ウィンドウで印刷設定する場合の処理を示すアクティビティ図。
【図６】アプリケーションから印刷設定画面が呼び出された場合の典型的なコンピュータ画面を示す図。
【図７】本実施形態による（Ａ）アプリケーション監視部および（Ｂ）プリンタ拡張監視部が実行する処理を示すアクティビティ図。
【図８】本実施形態によるホスト装置が実行する、モードレス・ウィンドウで印刷設定する場合の各機能部の基本動作を説明するシーケンス図。
【図９】本実施形態によるドライバ・イベント処理部が実行する、モードレス・ウィンドウで印刷設定する場合の処理を示すアクティビティ図。
【図１０】本実施形態による汎用コンピュータ装置のハードウェア構成図。
【発明を実施するための形態】
【００１３】
以下、本実施形態について説明するが、本実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の説明では、プログラムおよび情報処理装置として、プリンタ・ドライバ、および該プリンタ・ドライバを動作させているホスト装置を一例として説明する。
【００１４】
図１は、本実施形態によるプリントシステム１００の概略構成を示す図である。図１に示すようにプリントシステム１００は、ネットワーク１０２を介して相互に接続されるホスト装置１１０と、画像形成装置１８０とを含む。ホスト装置１１０は、パーソナル・コンピュータ、ワークステーションなどの汎用コンピュータなどとして構成される。画像形成装置１８０は、レーザプリンタや複合機などのプリント機能を備える画像処理装置として構成される。ネットワーク１０２は、例示的には、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）プロトコル・スタックによる有線や無線のＬＡＮ（Local Area Network）などとして構成される。
【００１５】
ホスト装置１１０は、本実施形態によるプリンタ・ドライバがインストールされ、該ドライバを動作させており、画像形成装置１８０に対し、ネットワーク１０２を介して、印刷データとともに印刷要求を送信するホストである。画像形成装置１８０は、ネットワーク１０２を介したホスト装置１１０からの印刷要求に応答して、受信した印刷データに従い、画像形成処理を実行する周辺機器である。
【００１６】
なお、図１に示すプリントシステム１００では、ホスト装置１１０および画像形成装置１８０は、ネットワーク１０２を介して直接接続されているが、これは一例であり、図１に示す実施形態に限定されるものではない。例えば、画像形成装置１８０に接続するプリントサーバをネットワーク１０２上に設け、ホスト装置１１０からプリントサーバを経由して画像形成装置１８０に印刷要求を行う実施形態としてもよい。また、ＬＡＮに代えて例えばＵＳＢなどのバスを介してホスト装置１１０および画像形成装置１８０を接続する実施形態としてもよい。
【００１７】
ホスト装置１１０は、Ｗｉｎｄｏｗｓ（登録商標）８などのオペレーティング・システム（ＯＳ）を動作させており、バージョン４（以下、Ｖ４と参照する。）プリンタ・ドライバと呼ばれる、プリンタ・ドライバ・アーキテクチャをサポートしている。
【００１８】
図２は、Ｖ４プリンタ・ドライバのアーキテクチャの概略を説明する図である。Ｖ４アーキテクチャ２００では、ＸＰＳＤｒｖアーキテクチャと同様のレンダリング・アーキテクチャを採用している。典型的には、ＸＰＳ（XML（eXtensible Markup Language） Paper Specification）からデバイス用のＰＤＬ（Page Description Language）をレンダリングするＸＰＳフィルタ２１４が使用される。また、詳細な説明は省略するが、Ｖ４アーキテクチャでは、簡素化された構成２２６がサポートされ、バージョン３よりも簡素なデバイス接続２３０がサポートされる。これにより、双方向スキーマを介した双方向通信およびＷＳＤ（Web Services for Devices）の使用をしたプリンタデバイス２４０との通信が可能とされている。
【００１９】
ユーザ・インタフェースに関しては、Ｖ４プリンタ・ドライバ・モデルでは、Ｗｉｎｄｏｗｓ（登録商標）デスクトップと、ＭｏｄｅｒｎスタイルＵＩの両方でカスタマイズされたユーザ・インタフェースがサポートされる。これらのプリンタＵＩ２２０は、本質的に大きくことなるので、２つの別々のアプリケーション２２２，２２４として実装される。プリンタ拡張（Printer Extension）２２２は、デスクトップでＶ４プリンタ・ドライバの印刷設定およびプリンタ通知を提供する。ベンダは、ベンダ独自のプリンタ拡張２２２を提供することにより、ベンダ独自の印刷設定画面をユーザに提供することが可能である。なお、プリンタ拡張２２２がベンダから提供されない場合は、ＯＳ標準の印刷設定画面が提供されることになる。Ｍｏｄｅｒｎスタイル・デバイス・アプリケーション２２４は、ＭｏｄｅｒｎスタイルＵＩでＶ４プリンタ・ドライバの印刷設定およびプリンタ通知を提供する。
【００２０】
図３は、本実施形態におけるホスト装置１１０上で動作するソフトウェア・コンポーネントを示すブロック図である。まず、ホスト装置１１０上には、ＯＳ１１２が動作している。図３には、さらにＯＳ１１２上で動作するソフトウェア・コンポーネントとして、プリンタ・ドライバ１２０と、アプリケーション１５０と、通信部１５２とが示されている。
【００２１】
アプリケーション１５０は、ワードプロセッサやスプレッドシート、プレゼンテーション、ドロー、フォトレタッチ、ブラウザ、文書ビューアなどの印刷機能を備えた各種アプリケーションである。アプリケーション１５０は、ユーザによる起動指示に応答して、当該アプリケーション１５０のプログラムがＣＰＵに読み出され、メモリ上に展開され、ＯＳ上でプロセスとして起動する。アプリケーション１５０は、ユーザ操作に応答して、プリンタ・ドライバ１２０を呼び出して印刷設定画面を表示させ、また、印刷設定に基づく印刷命令をプリンタ・ドライバ１２０に発行する。通信部１５２は、各種通信プロトコルと、ランゲージ・モニタやポートモニタ、ポートドライバなどとを含み構成され、接続される画像形成装置１８０との通信を制御する。
【００２２】
プリンタ・ドライバ１２０は、本実施形態によるプログラムが提供する画像処理ドライバである。プリンタ・ドライバ１２０は、アプリケーション１５０からの印刷命令に応答して、印刷データを生成し、画像形成装置１８０に印刷要求と共に印刷データを送信する機能を提供する。プリンタ・ドライバ１２０は、より具体的には、印刷データの描画を行ってプリンタ用のコマンドを付与する機能を担うレンダリング１２２と、プリンタＵＩ１２６とを含み構成される。レンダリング１２２は、標準のまたは独自のＸＰＳフィルタ１２４を備える。
【００２３】
上記プリンタＵＩ１２６は、印刷設定用のＧＵＩ（Graphical User Interface）を提供する機能を担っている。プリンタＵＩ１２６は、Ｖ４アーキテクチャにおいては、Ｍｏｄｅｒｎスタイル・デバイス・アプリケーション１２８と、プリンタ拡張１３０とを含み構成される。Ｍｏｄｅｒｎスタイル・デバイス・アプリケーション１２８は、Ｍｏｄｅｒｎスタイル・アプリケーションで印刷がなされた場合の印刷設定画面を提供する。Ｍｏｄｅｒｎスタイル・デバイス・アプリケーション１２８は、アプリケーションを定義するコンポーネントを格納するＷｉｎｄｏｗｓ（登録商標）ストア・アプリ・パッケージ（ＡＰＰＸ）として提供される。
【００２４】
これに対して、プリンタ拡張１３０は、デスクトップ・アプリケーションで印刷がなされた場合の印刷設定画面を提供する。プリンタ拡張２２２は、典型的には、実行可能形式（ＥＸＥ）で提供される。
【００２５】
Ｖ４プリンタ・ドライバは、デスクトップ用のカスタマイズＵＩが実行可能形式（ＥＸＥ）で提供されるという点で、Ｖ３アーキテクチャとは異なっている。それに伴い、Ｖ４アーキテクチャの印刷設定画面は、その呼出元のプロセスとは別のプロセスで実行される点で、呼出元アプリケーションにロードされて呼出元と同一プロセスで動作するＶ３アーキテクチャの印刷設定画面とは異なっている。このため、Ｖ４プリンタ・ドライバは、上記提供形式の相違により、Ｖ３アーキテクチャの場合と異なる振る舞いとなってしまい、ユーザの利便性が損なわれる可能性があった。
【００２６】
例えば、親プロセスが手動で終了されたり、または強制終了されたりしても、印刷設定画面が終了せず、意味の無くなった印刷設定画面が表示され続ける場合があった。また、モーダル・ウィンドウとして印刷設定画面が開かれた場合でも、ユーザにより親プロセスのウィンドウが操作されてしまう場合や、ビジー状態を発生させてしまう場合があった。
【００２７】
そこで、本実施形態では、アプリケーションのプロセスが手動で終了または強制終了された場合でも、印刷設定画面を適切に終了させることができるよう構成されたプリンタ拡張１３０を含む、プリンタ・ドライバ１２０を提供する。さらに、好ましい実施形態では、プリンタ拡張１３０は、モーダル・ウィンドウとして印刷設定画面が開かれている間、親プロセスのウィンドウを入力が排他制御される制限状態に移行させるよう構成されている。
【００２８】
本実施形態によるプリンタ拡張１３０は、より詳細には、印刷設定画面を開くための処理を行うドライバ・イベント処理部１３２と、印刷設定部１３４と、アプリケーション監視部１３６と、プリンタ拡張監視部１３８とを含む。
【００２９】
ドライバ・イベント処理部１３２は、ドライバ・イベント（DriverEvent）の発生に応答して呼び出されて、印刷設定部１３４を呼び出して、モーダル・ウィンドウとして、またはモードレス・ウィンドウとして、印刷設定画面を開く。印刷設定部１３４は、ユーザが印刷処理の設定を行うためＵＩである印刷設定画面を表示し、本実施形態による画面表示手段を提供する。
【００３０】
ここで、モーダル・ウィンドウとは、所定の親ウィンドウの子ウィンドウとして生成され、ユーザが当該子ウィンドウに対して適切に応答しない限り制御が親ウィンドウに戻されないユーザ・インタフェース設計になっているウィンドウをいう。モーダル・ウィンドウを呼び出すプロセスとモーダル・ウィンドウのプロセスとが同一の場合は、当該プロセスが終了すると、モーダル・ウィンドウは、自動的に閉じられるという性質を有する。ダイアログ形式のモーダル・ウィンドウは、モーダル・ダイアログと呼ばれる。
【００３１】
これに対して、モードレス・ウィンドウとは、所定の親ウィンドウの子ウィンドウとして生成されるが、子ウィンドウを閉じなくても制御を親ウィンドウに戻せるユーザ・インタフェース設計になっているウィンドウをいう。子ウィンドウを開いた後でもユーザによる親ウィンドウに対する操作が制限されないので、ユーザは任意の操作を任意のタイミングで行える。モードレス・ウィンドウを呼び出すプロセスとモードレス・ウィンドウのプロセスとが同一の場合は、プロセスが終了すると、モードレス・ウィンドウは、自動的に閉じられるという性質を有する。
【００３２】
ドライバ・イベント処理部１３２は、印刷設定画面を開く際に、呼出元アプリケーション１５０のプロセスを特定し、アプリケーション監視部１３６を呼び出す。なお、本実施形態において、プロセスとは、メモリ上に生成された動作中のプログラムの実体（インスタンス）である実行単位をいう。あるアプリケーションが複数起動されている場合には、同一アプリケーションのプロセスが複数存在し得るが、ここでは、当該プリンタ拡張１３０の呼出元である特定のプロセスが識別される。ドライバ・イベント処理部１３２は、本実施形態における呼出元特定手段を提供する。
【００３３】
アプリケーション監視部１３６は、モーダル・ウィンドウとして開かれる場合およびモードレス・ウィンドウとして開かれる場合の両方で、ドライバ・イベント処理部１３２により起動される。アプリケーション監視部１３６は、呼出元のアプリケーション１５０のプロセスの有無を監視している。アプリケーション監視部１３６は、呼出元アプリケーション１５０のプロセスの終了を検知した場合には、それに依存させて印刷設定画面を閉じるために、当該プリンタ拡張１３０のプロセスを終了させる。アプリケーション監視部１３６は、本実施形態における呼出元監視手段および終了処理手段を提供する。
【００３４】
上記のドライバ・イベント処理部１３２、印刷設定部１３４およびアプリケーション監視部１３６は、呼出元アプリケーション１５０のプロセスとは異なるプロセスで動作するよう構成されている。
【００３５】
モーダル・ウィンドウとして印刷設定画面が開かれる場合には、ドライバ・イベント処理部１３２は、さらに、呼出元アプリケーション１５０のプロセスで表示された親ウィンドウ画面を、画面に対する入力が排他制御される制限状態に移行させる。同時に、印刷設定画面が終了する際に、親ウィンドウ画面の制限状態を解除する制御が行われる。ドライバ・イベント処理部１３２は、モーダル・ウィンドウとして印刷設定画面を開く場合に、本実施形態における制限処理手段および終了時解除処理手段を提供する。なお、印刷設定画面がモーダル・ウィンドウとして開かれるか、モードレス・ウィンドウとして開かれるかは、プリンタ拡張１３０の実行モードに依存する。具体的には、プリンタＵＩが起動される際に呼び出されるonDriverEvent関数の引数でeventArgs.WindowModalのフラグを取得することにより判別される。なお、ここで、関数名および引数名は、任意に設定可である。ドライバ・イベント処理部１３２は、実行モードを示すWindowModalプロパティが「true」の場合に、モーダル・ウィンドウで開く処理を実行する。
【００３６】
プリンタ拡張監視部１３８は、モーダル・ウィンドウとして印刷設定画面が開かれる場合に、プリンタ拡張１３０のプロセス自体の強制終了などに対処するべく起動される。プリンタ拡張監視部１３８は、プリンタ拡張１３０のプロセス自体の強制終了に対応するため、ドライバ・イベント処理部１３２、印刷設定部１３４およびアプリケーション監視部１３６が動作するものとは異なるプロセスのアプリケーションとして起動される。プリンタ拡張監視部１３８は、典型的には、印刷設定画面を提供するプリンタ拡張１３０のアプリケーションで起動時の引数を変更してものとされる。
【００３７】
プリンタ拡張監視部１３８は、動作中のプリンタ拡張１３０のプロセスの有無を監視し、そのプロセスの終了を検知する。プリンタ拡張１３０のプロセスの終了が検知された場合であって、未だ親ウィンドウ画面が制限状態にある場合には、プリンタ拡張監視部１３８は、親ウィンドウ画面の制限状態を解除する。これにより、印刷設定画面を提供しているプリンタ拡張１３０のプロセス自体が強制終了した場合でも、親ウィンドウ画面の制限状態を解除することを可能としている。ひいては、制限状態に移行させたプロセスの終了に伴い親ウィンドウ画面をユーザが操作できなくなるというような不具合の発生を防止し、ユーザは処理を継続することが可能となる。プリンタ拡張監視部１３８は、本実施形態における画面監視手段および終了検知時解除処理手段を構成する。
【００３８】
以下、図４〜図７を参照しながら、モーダル・ウィンドウとして印刷設定画面を開く場合のプリンタ・ドライバの動作について説明する。図４は、本実施形態によるホスト装置１１０が実行する、モーダル・ウィンドウで印刷設定する場合の各機能部の基本動作を説明するシーケンス図である。
【００３９】
図４に示す処理は、アプリケーション１５０に対するユーザ操作により印刷設定画面の呼び出し指示が行われたことに応答して、ステップＳ１００から開始される。ステップＳ１００では、アプリケーション１５０は、ＯＳ１１２に対し、当該プリンタ・ドライバ１２０を指定して印刷設定画面を開く指令を行い、ステップＳ１０１では、ＯＳ１１２からプリンタ拡張１３０に印刷設定画面を開く指令が伝達される。ステップＳ１０２では、ＯＳ１１２を介した印刷設定画面を開く指令に応答して、プリンタ拡張１３０は、ドライバ・イベント処理部１３２を呼び出し、ドライバ・イベント処理を開始させる。
【００４０】
ステップＳ１０３では、ドライバ・イベント処理部１３２は、呼出元アプリケーション１５０を特定する。ステップＳ１０４では、ドライバ・イベント処理部１３２は、特定された呼出元を指定してアプリケーション監視部１３６を生成（create）する。アプリケーション監視部１３６は、ステップＳ１０４での生成に応答して起動し、ステップＳ１０５では、指定された呼出元アプリケーション１５０の監視を開始する。
【００４１】
ドライバ・イベント処理部１３２は、アプリケーション監視部１３６を生成させると、ステップＳ１０６で、モーダル・ウィンドウとしての印刷設定画面の親となる呼出元アプリケーション１５０の親ウィンドウ画面を制限状態に移行させる。特定の実施形態では、制限状態として、ウィンドウ画面の輝度が通常よりも低い半輝度状態にすることができる。
【００４２】
ステップＳ１０７では、ドライバ・イベント処理部１３２は、プリンタ拡張監視部１３８を生成（create）する。プリンタ拡張監視部１３８は、ステップＳ１０７での生成に応答して起動し、ステップＳ１０８では、プリンタ拡張１３０の監視を開始する。
【００４３】
ステップＳ１０９では、ドライバ・イベント処理部１３２は、印刷設定部１３４を呼び出して、モーダル・ウィンドウとして印刷設定画面を開く。ユーザにより印刷設定画面での設定が終わり、制御が戻されると、ステップＳ１１０では、ドライバ・イベント処理部１３２は、親ウィンドウ画面の制限状態を解除する。特定の実施形態では、親ウィンドウ画面が半輝度となっていた状態を全輝度の状態に戻す。これにより、親ウィンドウ画面に再び制御が戻されたような振る舞いとなる。
【００４４】
図４は、モーダル・ウィンドウで印刷設定する場合の正常に行われた場合の処理の流れを説明している。印刷設定画面が正常に終了した後は、ドライバ・イベント処理部１３２からプリンタ拡張１３０へ制御が戻され、プリンタ拡張１３０は終了する。アプリケーション監視部１３６およびプリンタ拡張監視部１３８も、適時終了することになる。このように、印刷設定画面が表示されている間、呼び出し元であるアプリケーション１５０のウィンドウを半輝度状態とすることによって、親ウィンドウ画面への入力を制限し、モーダル・ウィンドウが実現される。
【００４５】
図５、図７（Ａ）および図７（Ｂ）は、それぞれ、ドライバ・イベント処理部１３２、アプリケーション監視部１３６およびプリンタ拡張監視部１３８が実行する処理の詳細を説明するアクティビティ図である。
【００４６】
図５に示すアクティビティ図は、ドライバ・イベント処理部１３２が実行する処理を示す。図５に示す処理は、ドライバ・イベント処理が呼び出されたことに応答して、ステップＳ２００から開始される。ステップＳ２０１では、ドライバ・イベント処理部１３２は、直接の親ウィンドウ画面のハンドルと、そのプロセスとを取得する。ステップＳ２０２では、直接の親ウィンドウ画面があるか否かに応じて処理を分岐させる。ステップＳ２０２で、直接の親ウィンドウ画面があれば、ステップＳ２０３へ処理が分岐される。ステップＳ２０３では、ドライバ・イベント処理部１３２は、親ウィンドウ画面の元となるウィンドウ画面を取得し、ステップＳ２０４へ進められる。親ウィンドウ画面の元となるウィンドウ画面とは、モーダル・ウィンドウとして印刷設定画面を開いた場合に、印刷設定画面の親として、子である印刷設定画面が開かれている間、入力を制限しておくことが望ましい最上位のウィンドウ画面をいう。
【００４７】
図６は、アプリケーションから印刷設定画面が呼び出された場合の典型的なコンピュータ画面を示す図である。アプリケーションによっては、図６に示すように、印刷設定画面３２０の直接の親ウィンドウ画面３１０に対し、さらにその元となるウィンドウ画面３００が存在する場合がある。モーダル・ウィンドウで印刷設定画面を開く場合は、この例では、この直接の親ウィンドウ画面３１０およびさらにその元となるウィンドウ画面３００の両方の画面の入力を制限することが望ましい。
【００４８】
一方、ステップＳ２０２で、直接の親ウィンドウ画面がなければ、ステップＳ２０４へ直接処理が分岐される。これは、呼出元アプリケーション１５０が、ＵＩを有していないアプリケーションである場合が該当し、この場合は、モーダル・ウィンドウで印刷設定画面を開く場合でも、制限すべき対象の画面が存在しない。
【００４９】
ステップＳ２０４では、ドライバ・イベント処理部１３２は、アプリケーション監視部１３６を起動する。ステップＳ２０５では、ドライバ・イベント処理部１３２は、親ウィンドウ画面の元となるウィンドウ画面が輝度表示されているか否かを判定する。ステップＳ２０５で、該当ウィンドウ画面が輝度表示されていると判定された場合（ＹＥＳ）は、ステップＳ２０６へ処理を分岐させる。ステップＳ２０６では、ドライバ・イベント処理部１３２は、親ウィンドウ画面の元となるウィンドウ画面を半輝度表示とする。ステップＳ２０７では、ドライバ・イベント処理部１３２は、プリンタ拡張監視部１３８を起動する。ステップＳ２０８では、ドライバ・イベント処理部１３２は、印刷設定画面をモーダル・ウィンドウとして開く。一方、ステップＳ２０５で、親ウィンドウ画面の元となるウィンドウ画面が輝度表示されていない判定された場合（ＮＯ）は、ステップＳ２０８へ直接処理を分岐させる。
【００５０】
ステップＳ２０９では、印刷設定画面が強制終了されたか否かで処理を分岐させる。ユーザによる印刷設定画面での印刷設定が正常に終了すると、ドライバ・イベント処理部１３２に制御が戻される。印刷設定画面が正常に終了しており、強制終了されていない場合（ステップＳ２０９：ＮＯ）は、ステップＳ２１０で、ドライバ・イベント処理部１３２は、親ウィンドウ画面の元となるウィンドウ画面を輝度表示に戻し、ステップＳ２１１で本処理を終了させる。一方、印刷設定画面が強制終了された場合は、当該ドライバ・イベント処理部１３２も強制終了することとなる。このため、印刷設定画面が強制終了された場合（ステップＳ２０９：ＮＯ）は、輝度表示を解除できずに、ステップＳ２１１で本処理が終了する。
【００５１】
なお、アプリケーション監視部１３６およびプリンタ拡張監視部１３８の起動時には、監視や終了処理に必要な情報が適宜渡される。監視や終了処理に必要な情報としては、現在のプロセスのプロセスＩＤ、親ウィンドウ画面のプロセスのプロセスＩＤ、親ウィンドウ画面の元となるウィンドウ画面のハンドル、および親ウィンドウ画面の元となるウィンドウ画面が輝度状態から半輝度状態に変更されたか否かを示す情報などが含まれる。
【００５２】
図７（Ａ）に示すアクティビティ図は、アプリケーション監視部１３６が実行する処理を示す。図７（Ａ）に示す処理は、ドライバ・イベント処理部１３２により起動されたことに応答して、ステップＳ３００から開始される。ステップＳ３０１では、アプリケーション監視部１３６は、呼出元アプリケーション１５０の監視を開始させ、例えば定期的に、呼出元アプリケーション１５０のプロセスの有無を確認する。
【００５３】
ステップＳ３０２では、アプリケーション監視部１３６は、呼出元アプリケーション１５０のプロセスの強制終了が発生していないかを判定する。ステップＳ３０２で、呼出元のプロセスの強制終了が発生していないと判定された場合（ＮＯ）は、ステップＳ３０３へ処理が分岐される。ステップＳ３０３では、アプリケーション監視部１３６は、呼出元アプリケーション１５０が正常に終了したか否かで処理を分岐させる。未だ終了されていない場合（ステップＳ３０３：ＮＯ）は、ステップＳ３０１へ処理が戻され、監視が継続される。一方、正常に終了されている場合（ステップＳ３０３：ＹＥＳ）は、ステップＳ３０５へ処理が分岐され、当該処理が終了する。
【００５４】
一方、ステップＳ３０２で、呼出元アプリケーション１５０のプロセスが無く、強制終了が発生したと判定される場合（ＹＥＳ）は、ステップＳ３０４へ処理が分岐される。ステップＳ３０４では、アプリケーション監視部１３６は、呼出元アプリケーション１５０の終了に依存させて印刷設定画面を閉じるべく、プリンタ拡張１３０を終了させ、ステップＳ３０５で、本処理が終了する。
【００５５】
図７（Ｂ）に示すアクティビティ図は、プリンタ拡張監視部１３８が実行する処理を示す。図７（Ｂ）に示す処理は、ドライバ・イベント処理部１３２により起動されたことに応答して、ステップＳ４００から開始される。上述したようにプリンタ拡張監視部１３８は、プリンタ拡張１３０とは別プロセスとして起動される。ステップＳ４０１では、プリンタ拡張監視部１３８は、プリンタ拡張１３０の監視を開始させ、例えば定期的に、プリンタ拡張１３０のプロセスの有無を確認する。
【００５６】
ステップＳ４０２では、プリンタ拡張監視部１３８は、親ウィンドウ画面の元となるウィンドウ画面が半輝度表示にされ、かつ、プリンタ拡張１３０の強制終了が発生していないかを判定する。ステップＳ４０２で、親ウィンドウ画面の元となるウィンドウ画面が半輝度表示にされ、かつ、プリンタ拡張１３０のプロセスの強制終了が発生していると判定される場合（ＹＥＳ）は、ステップＳ４０４へ処理が分岐される。
【００５７】
ステップＳ４０４では、プリンタ拡張監視部１３８は、親ウィンドウ画面の元となるウィンドウ画面のハンドルを用いて、該ウィンドウを輝度状態に戻し、ステップＳ４０５で、本処理を終了させる。親ウィンドウ画面の元となるウィンドウ画面が半輝度表示にされ、かつ、プリンタ拡張１３０のプロセスの強制終了されてしまった場合は、図５に示したステップＳ２１０の処理が行われない。そこで、本実施形態では、プリンタ拡張監視部１３８が、プリンタ拡張１３０のプロセスとは別のプロセスとして起動し、プリンタ拡張１３０の強制終了を検知した際に、ドライバ・イベント処理部１３２の代わりに元となるウィンドウ画面を半輝度状態から輝度表示に戻すこととしている。
【００５８】
一方、親ウィンドウ画面の元となるウィンドウ画面が半輝度状態ではない場合、または強制終了されていない場合（ステップＳ４０２：ＮＯ）は、ステップＳ４０３へ処理が分岐される。ステップＳ４０３では、プリンタ拡張１３０が正常に終了したか否かで処理が分岐される。未だ終了されていない場合（ステップＳ４０３：ＮＯ）は、ステップＳ４０１へ処理が戻され、監視が継続する。一方、正常に終了されている場合（ステップＳ４０３：ＹＥＳ）は、ステップＳ４０５へ処理が分岐され、当該処理が終了する。
【００５９】
以下、図８、図９および図７（Ａ）を参照しながら、モードレス・ウィンドウとして印刷設定画面を開く場合のプリンタ・ドライバの動作について説明する。図８は、本実施形態によるホスト装置１１０が実行する、モードレス・ウィンドウで印刷設定する場合の各機能部の基本動作を説明するシーケンス図である。
【００６０】
図８に示す処理は、アプリケーション１５０に対するユーザ操作により印刷設定画面の呼び出し指示が行われたことに応答して、ステップＳ５００から開始される。ステップＳ５００では、アプリケーション１５０は、ＯＳ１１２に対し、印刷設定画面を開く指令を行い、ステップＳ５０１では、ＯＳ１１２からプリンタ拡張１３０に印刷設定画面を開く指令が伝達される。ステップＳ５０２では、プリンタ拡張１３０は、ドライバ・イベント処理部１３２を呼び出し、ドライバ・イベント処理を開始させる。
【００６１】
ステップＳ５０３では、ドライバ・イベント処理部１３２は、呼出元アプリケーション１５０を特定する。ステップＳ５０４では、ドライバ・イベント処理部１３２は、特定された呼出元を指定してアプリケーション監視部１３６を生成（create）する。アプリケーション監視部１３６は、ステップＳ５０４での生成に応答して起動し、ステップＳ５０５では、呼出元アプリケーション１５０の監視を開始する。ステップＳ５０６では、ドライバ・イベント処理部１３２は、印刷設定部１３４を呼び出して、モードレス・ウィンドウとして印刷設定画面を開く。印刷設定画面が正常に終了した後は、アプリケーション監視部１３６は、適時終了することになる。
【００６２】
図９は、ドライバ・イベント処理部１３２が実行する処理の詳細を説明するアクティビティ図である。なお、モードレス・ウィンドウで印刷設定画面を開く場合のアプリケーション監視部１３６が実行する処理は、図７（Ａ）に示したものと同一であるため、説明を割愛する。
【００６３】
図９に示す処理は、ドライバ・イベント処理が呼び出されたことに応答して、ステップＳ６００から開始される。ステップＳ６０１では、ドライバ・イベント処理部１３２は、親ウィンドウ画面のハンドルと、そのプロセスとを取得する。ステップＳ６０２では、ドライバ・イベント処理部１３２は、アプリケーション監視部１３６を起動する。ステップＳ６０３では、ドライバ・イベント処理部１３２は、印刷設定画面をモードレス・ウィンドウとして開き、ステップＳ６０４で本処理を終了させる。
【００６４】
なお、アプリケーション監視部１３６の起動時には、監視や終了処理に必要な情報が適宜渡される。監視や終了処理に必要な情報としては、ここでは、現在のプロセスのプロセスＩＤ、親ウィンドウのプロセスのプロセスＩＤなどが含まれる。アプリケーション監視部１３６は、モーダル・ウィンドウの場合と同様に、呼出元アプリケーション１５０が強制終了したことに応答して、印刷設定画面を閉じるべくプリンタ拡張１３０のプロセスを終了させる。
【００６５】
なお、モードレス・ウィンドウの場合は、プリンタ拡張１３０が強制終了されても、親ウィンドウ画面に制御が戻るだけなので、アプリケーション監視部１３６を別プロセスで起動することは要さない。しかしながら、アプリケーション監視部１３６を別プロセスで起動することを妨げるものではない。
【００６６】
以下、図１０を参照しながら、上述までの実施形態におけるホスト装置１１０のハードウェア構成について説明する。ホスト装置１１０は、典型的には、汎用コンピュータ装置として構成される。図１０は、本実施形態による汎用コンピュータ装置のハードウェア構成を示す図である。
【００６７】
汎用コンピュータ装置１１０は、デスクトップ型のパーソナル・コンピュータ、ワークステーションなどとして構成されている。汎用コンピュータ装置１１０は、ＣＰＵ（Central Processing Unit）１２と、ＣＰＵ１２とメモリとの接続を担うノースブリッジ１４と、サウスブリッジ１６とを含む。サウスブリッジ１６は、上記ノースブリッジ１４と専用バスまたはＰＣＩバスを介して接続され、ＰＣＩバスやＵＳＢなどのＩ／Ｏとの接続を担う。
【００６８】
ノースブリッジ１４には、ＣＰＵ１２の作業領域を提供するＲＡＭ（Random Access Memory）１８と、映像信号を出力するグラフィックボード２０とが接続される。グラフィックボード２０には、アナログＲＧＢ、ＨＤＭＩ（High-Definition Multimedia Interface；ＨＤＭＩおよびHigh-Definition Multimedia Interfaceは登録商標または商標である）、ＤＶＩ（Digital Visual Interface）などの映像出力インタフェースを介してディスプレイ５０に接続される。
【００６９】
サウスブリッジ１６には、ＰＣＩ（Peripheral Component Interconnect）２２、ＬＡＮポート２４、ＩＥＥＥ１３９４、ＵＳＢ（Universal Serial Bus）ポート２８、補助記憶装置３０、オーディオ入出力３２、シリアルポート３４が接続される。補助記憶装置３０は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などであり、コンピュータ装置を制御するためのＯＳ１１２、上記プリンタ・ドライバ１２０のプログラムや各種システム情報や各種設定情報を格納する。ＬＡＮポート２４は、汎用コンピュータ装置１１０を有線および無線でネットワーク１０２に接続させるインタフェース機器である。ＵＳＢポート２８には、キーボード５２およびマウス５４などの入力装置が接続され、操作者からの各種指示の入力を受け付けるためのユーザ・インタフェースを提供する。
【００７０】
本実施形態による汎用コンピュータ装置１１０は、ＲＯＭや補助記憶装置３０からプログラムを読み出し、ＲＡＭ１８が提供する作業空間に展開することにより、ＣＰＵ１２の制御の下、上述した各機能部および各処理を実現する。なお、汎用コンピュータ装置１１０のハードウェア構成について説明したが、画像形成装置１８０についても、画像形成処理、画像読取処理、ファクシミリ送受信処理など特定の用途に応じたハードウェアを備える他、ＣＰＵおよびＲＡＭ等などのハードウェアを備える点では共通しており、同様な構成とすることができる。
【００７１】
以上説明した実施形態によれば、印刷設定画面が開かれた場合に、呼出元アプリケーション１５０のプロセスが手動で終了または強制終了したときに、それに依存させて印刷設定画面を閉じることができるようになる。ひいては、強制終了が発生した場合に設定しても意味のない印刷設定画面が開いたままになることが防げ、ユーザの操作性を向上させることができる。
【００７２】
また、印刷設定画面がモーダル・ウィンドウとして開かれた場合に、さらに、呼出元アプリケーション１５０の元となるウィンドウ画面を入力排他状態にすることができるようになる。ひいては、呼出元アプリケーションのプロセスがビジー状態になってしまうことを防止し、ユーザの操作性を向上させることができる。
【００７３】
上記構成によれば、Ｖ４プリンタ・ドライバ・モデルのような、表示画面がその呼び出し元とは異なる実行単位で動作するようなアーキテクチャにおいても、プリンタＵＩが呼出元アプリケーションのプロセスで動作するＶ３アーキテクチャの場合と同様な振る舞いを実現することが可能となる。ひいては、上記アーキテクチャのプリンタ・ドライバのユーザの利便性を向上させることができる。
【００７４】
したがって、上述した実施形態によれば、表示画面が、その呼び出し元とは異なる実行単位で動作している場合においても、呼び出し元の実行単位の状態に依存させて表示画面を終了させることができるプログラム、情報処理装置、および画像処理システムを提供することができる。
【００７５】
なお、上記機能部は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスク、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。また、上記説明では、ホスト装置１１０と画像形成装置１８０とを含み構成されるプリントシステムについて説明したが、上記プリンタ・ドライバおよび画像形成装置を含むシステムとして提供されてもよい。
【００７６】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７７】
１００…プリントシステム、１０２…ネットワーク、１１０…ホスト装置、１１２…ＯＳ、１２０…プリンタ・ドライバ、１２２，２１２…レンダリング、１２４，２１４…ＸＰＳフィルタ、１２６，２２０…プリンタＵＩ、１２８，２２４…Ｍｏｄｅｒｎスタイル・デバイス・アプリケーション、１３０，２２２…プリンタ拡張、１３２…ドライバ・イベント処理部、１３４…印刷設定部、１３６…アプリケーション監視部、１３８…プリンタ拡張監視部、１５０，２０２…アプリケーション、１５２…通信部、１８０…画像形成装置、２００…Ｖ４アーキテクチャ、２２６…構成、２３０…デバイス接続、２４０…プリンタ、３００…元となるウィンドウ、３１０…直接の親ウィンドウ、３２０…印刷設定画面、１２…ＣＰＵ、１４…ノースブリッジ、１６…サウスブリッジ、１８…ＲＡＭ、２０…グラフィックボード、２２…ＰＣＩ、２４…ＬＡＮポート、２６…ＩＥＥＥ１３９４ポート、２８…ＵＳＢポート、３０…補助記憶装置、３２…オーディオ入出力、３４…シリアルポート、５２…キーボード、５４…マウス
【先行技術文献】
【特許文献】
【００７８】
【特許文献１】特開２００８−２９３１４８号公報
【図１】
2015043127.tif 000003
【図２】
2015043127.tif 000004
【図３】
2015043127.tif 000005
【図４】
2015043127.tif 000006
【図５】
2015043127.tif 000007
【図６】
2015043127.tif 000008
【図７】
2015043127.tif 000009
【図８】
2015043127.tif 000010
【図９】
2015043127.tif 000011
【図１０】
2015043127.tif 000012