(57)【要約】【課題】  タッチパネル用に最適化されたユーザーインターフェースを含むオペレーティングシステムで、タッチパネル用に最適化されたユーザーインターフェース上では、マウス用のユーザーインターフェースしか持たないプリンタードライバーは操作性が低下する。【解決手段】  アプリケーションによって印刷設定項目の名称と選択肢の表示の仕方を異ならせる。あるいは、アプリケーションがいずれの実行環境で実行されているかによって表示の制御を変える。【選択図】  図１１
2013077284.tif 000002
【特許請求の範囲】
【請求項１】
第１アプリケーションがプリンタードライバーの印刷設定画面を表示する指示をした場合に印刷設定項目の名称及び前記印刷設定項目の選択肢を同時に表示して、第２アプリケーションが前記プリンタードライバーの印刷設定画面を表示する指示をした場合には、第１印刷設定項目の名称が指示されたことに応じて前記第２印刷設定項目の名称を消してさらに前記第１印刷設定項目の選択肢を表示して、第２印刷設定項目の名称が指示されたことに応じて前記第１印刷設定項目の名称を消してさらに前記第２印刷設定項目の選択肢を表示する制御手段を有することを特徴とする情報処理装置。
【請求項２】
前記第１アプリケーションと前記第２アプリケーションの実行環境は異なることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記プリンタードライバーからダイアログリソーステンプレートを受け取り、前記ダイアログリソーステンプレートを読み込むことにより、前記第２アプリケーションが呼び出す前記プリンタードライバーの印刷設定画面を表示することを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記ダイアログリソーステンプレート内に記載されているＣＯＭＢＯＢＯＸ及びＬＩＳＴＢＯＸをＲＡＤＩＯＢＵＴＴＯＮに変換することで、前記第２アプリケーションが呼び出す前記プリンタードライバーの印刷設定画面を表示することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御手段は、前記第２アプリケーションが呼び出す前記プリンタードライバーの印刷設定画面を表示して、かつ前記プリンタードライバーからウィンドウを作成する命令を受け取った場合に、オペレーティングシステムの画面を第２実行環境から第１実行環境に切り替えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御手段は、前記プリンタードライバーからウィンドウ終了メッセージを受け取った場合に、前記オペレーティングシステムの画面を前記第１実行環境から前記第２実行環境に切り替えることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
コントロールの種類と前記コントロールに対応する機能のＩＤが含まれているレイアウト情報をプリンタードライバーから受け取って、
前記プリンタードライバーを呼び出したアプリケーションが第１実行環境で実行されているか又は前記アプリケーションが前記第１実行環境とは異なる実行環境である第２実行環境で実行されているかを判定して、
前記アプリケーションが前記第１実行環境で実行されている場合には前記レイアウト情報に基づいてユーザーインターフェースを表示して、前記アプリケーションが前記第２実行環境で実行されている場合には前記レイアウト情報に記載されたコントロールを前記第２実行環境のユーザーインターフェースのコントロールに置換して表示する制御手段を有することを特徴とする情報処理装置。
【請求項８】
コンピュータを、
第１アプリケーションがプリンタードライバーの印刷設定画面を表示する指示をした場合に印刷設定項目の名称及び前記印刷設定項目の選択肢を同時に表示して、第２アプリケーションが前記プリンタードライバーの印刷設定画面を表示する指示をした場合には、第１印刷設定項目の名称が指示されたことに応じて前記第２印刷設定項目の名称を消してさらに前記第１印刷設定項目の選択肢を表示して、第２印刷設定項目の名称が指示されたことに応じて前記第１印刷設定項目の名称を消してさらに前記第２印刷設定項目の選択肢を表示する制御手段として機能させることを特徴とするプログラム。
【請求項９】
前記第１アプリケーションと前記第２アプリケーションの実行環境は異なることを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記制御手段は、前記プリンタードライバーからダイアログリソーステンプレートを受け取り、前記ダイアログリソーステンプレートを読み込むことにより、前記第２アプリケーションが呼び出す前記プリンタードライバーの印刷設定画面を表示することを特徴とする請求項８又は請求項９に記載のプログラム。
【請求項１１】
前記制御手段は、前記ダイアログリソーステンプレート内に記載されているＣＯＭＢＯＢＯＸ及びＬＩＳＴＢＯＸをＲＡＤＩＯＢＵＴＴＯＮに変換することで、前記第２アプリケーションが呼び出す前記プリンタードライバーの印刷設定画面を表示することを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記制御手段は、前記第２アプリケーションが呼び出す前記プリンタードライバーの印刷設定画面を表示して、かつ前記プリンタードライバーからウィンドウを作成する命令を受け取った場合に、オペレーティングシステムの画面を第２実行環境から第１実行環境に切り替えることを特徴とする請求項８乃至１１のいずれか１項に記載のプログラム。
【請求項１３】
前記制御手段は、前記プリンタードライバーからウィンドウ終了メッセージを受け取った場合に、前記オペレーティングシステムの画面を前記第１実行環境から前記第２実行環境に切り替えることを特徴とする請求項１２に記載のプログラム。
【請求項１４】
コンピュータを、
コントロールの種類と前記コントロールに対応する機能のＩＤが含まれているレイアウト情報をプリンタードライバーから受け取って、
前記プリンタードライバーを呼び出したアプリケーションが第１実行環境で実行されているか又は前記アプリケーションが前記第１実行環境とは異なる実行環境である第２実行環境で実行されているかを判定して、
前記アプリケーションが前記第１実行環境で実行されている場合には前記レイアウト情報に基づいてユーザーインターフェースを表示して、前記アプリケーションが前記第２実行環境で実行されている場合には前記レイアウト情報に記載されたコントロールを前記第２実行環境のユーザーインターフェースのコントロールに置換して表示する制御手段として機能させることを特徴とするプログラム。
【請求項１５】
第１アプリケーションがプリンタードライバーの印刷設定画面を表示する指示をした場合に印刷設定項目の名称及び前記印刷設定項目の選択肢を同時に表示して、第２アプリケーションが前記プリンタードライバーの印刷設定画面を表示する指示をした場合には、第１印刷設定項目の名称が指示されたことに応じて前記第２印刷設定項目の名称を消してさらに前記第１印刷設定項目の選択肢を表示して、第２印刷設定項目の名称が指示されたことに応じて前記第１印刷設定項目の名称を消してさらに前記第２印刷設定項目の選択肢を表示する制御工程を有することを特徴とする制御方法。
【請求項１６】
コントロールの種類と前記コントロールに対応する機能のＩＤが含まれているレイアウト情報をプリンタードライバーから受け取って、
前記プリンタードライバーを呼び出したアプリケーションが第１実行環境で実行されているか又は前記アプリケーションが前記第１実行環境とは異なる実行環境である第２実行環境で実行されているかを判定して、
前記アプリケーションが前記第１実行環境で実行されている場合には前記レイアウト情報に基づいてユーザーインターフェースを表示して、前記アプリケーションが前記第２実行環境で実行されている場合には前記レイアウト情報に記載されたコントロールを前記第２実行環境のユーザーインターフェースのコントロールに置換して表示する制御工程を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示する端末に適した形にプリンタードライバーのユーザーインターフェースをレイアウトし直すための、オペレーティングシステムのプログラムに関する。
【背景技術】
【０００２】
プリンタードライバーは詳細な印刷設定を行うために、専用のユーザーインターフェースを持っている。アプリケーションを使って印刷するときに、ユーザーが詳細な設定を行うためのボタンを押すと、オペレーティングシステムを介して、プリンタードライバーのユーザーインターフェースが呼び出される。メーカーや機種ごとに操作が異なると使いにくいので、プリンタードライバーのユーザーインターフェースは、タブ形式のプロパティシートになる仕様となっている。プリンタードライバーはオペレーティングシステムに従い、タブごとにページを追加して、ユーザーインターフェースを作成しなければならない。
【０００３】
近年、従来のポインティングデバイス向けのユーザーインターフェースだけではなく、タッチパネルでも操作が行い易いユーザーインターフェースに変更可能なオペレーティングシステムが登場している。オペレーティングシステムのユーザーインターフェースが変わると、プリンタードライバーのユーザーインターフェースも変更しなければならないので、新しいプリンタードライバーが必要になる。
【０００４】
しかし、すでに発売されたすべてのプリンターに対して新しいプリンタードライバーを作るのは大変で、用意できるまでプリンターを利用できなくなってしまう。そこで、従来のプリンタードライバーも動作させて互換性を保つために、新しいユーザーインターフェースから、従来のユーザーインターフェースを、画面を切り替えて呼び出せるよう構成されているオペレーティングシステムがある。
【０００５】
また、従来のユーザーインターフェースを表示するのではなく、新しいユーザーインターフェースを動的に構築することもできる。複数のレイアウト定義ファイルを持ち、表示する機器にあわせて、どのレイアウトにするかを選択する方法がある（特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３３１３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、画面を切り替えて従来のユーザーインターフェースを表示する方法では、タッチパネルに適さない画面が表示されるので、突然操作がやりにくくなるという問題がある。また、複数のレイアウトを持って選択する方法では、プリンタードライバーに複数のレイアウトを持たせなければならないので、従来のプリンタードライバーをそのまま使用することができない。ユーザーインターフェースの部品を並び替え、拡縮、移動する方法では、部品そのものがタッチパネルに適さないものであったときは、レイアウトを変更しても操作性が低下する。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明に係る情報処理装置は、
第１アプリケーションがプリンタードライバーの印刷設定画面を表示する指示をした場合に印刷設定項目の名称及び前記印刷設定項目の選択肢を同時に表示して、第２アプリケーションが前記プリンタードライバーの印刷設定画面を表示する指示をした場合には、第１印刷設定項目の名称が指示されたことに応じて前記第２印刷設定項目の名称を消してさらに前記第１印刷設定項目の選択肢を表示して、第２印刷設定項目の名称が指示されたことに応じて前記第１印刷設定項目の名称を消してさらに前記第２印刷設定項目の選択肢を表示する制御手段を有することを特徴とする。
【０００９】
上記の目的を達成するための本発明に係る他の情報処理装置は、
コントロールの種類と前記コントロールに対応する機能のＩＤが含まれているレイアウト情報をプリンタードライバーから受け取って、
前記プリンタードライバーを呼び出したアプリケーションが第１実行環境で実行されているか又は前記アプリケーションが前記第１実行環境とは異なる実行環境である第２実行環境で実行されているかを判定して、
前記アプリケーションが前記第１実行環境で実行されている場合には前記レイアウト情報に基づいてユーザーインターフェースを表示して、前記アプリケーションが前記第２実行環境で実行されている場合には前記レイアウト情報に記載されたコントロールを前記第２実行環境のユーザーインターフェースのコントロールに置換して表示する制御手段を有することを特徴とする。
【発明の効果】
【００１０】
本発明により、従来のプリンタードライバーであっても、新しいタッチパネルに適したユーザーインターフェースを表示することができるので、途中で操作が困難になることがない。また、新しいプリンタードライバーを用意しなくても、使いやすいユーザーインターフェースを表示することが可能である。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態としての、コンピューターシステムのハードウェアとソフトウェアのブロック構成図である。
【図２】本発明の一実施形態としての、クライアントとサーバー、そしてプリンターが接続されたネットワークの構成図である。
【図３】本発明の一実施形態としての、一般的なコンピューターを用いた印刷処理システムのブロック構成図である。
【図４】本発明の一実施形態としての、ＸＰＳ印刷処理システムのブロック構成図である。
【図５】本発明の一実施形態としての、印刷設定であるＤＥＶＭＯＤＥ構造体のデータ構造を示したブロック構成図である。
【図６】本発明の一実施形態としての、ＸＰＳ印刷処理システムで使用される印刷設定であるＸＭＬ形式のプリントチケットの一例である。
【図７】本発明の一実施形態としての、プリンタードライバーのユーザーインターフェースである。
【図８】本発明の一実施形態としての、プリンタードライバーのユーザーインターフェースを呼び出すときのブロック構成図である。
【図９】本発明の一実施形態としての、プリンタードライバーが持つユーザーインターフェースを構築するためのダイアログリソーステンプレートである。
【図１０】本発明の一実施形態としての、オペレーティングシステムが作成するタッチパネル用の新しいユーザーインターフェース用のプリンタードライバーのユーザーインターフェースである。
【図１１】本発明の一実施形態としての、オペレーティングシステムがプリンタードライバーのユーザーインターフェースを呼び出すときのフローチャートである。
【図１２】本発明の一実施形態としての、オペレーティングシステムがプリンタードライバーから受け取ったダイアログリソーステンプレートを読み替えるフローチャートである。
【図１３】本発明の一実施形態としての、オペレーティングシステムがプリンタードライバーの初期化ロジックにおいて、ＣＯＭＢＯＢＯＸやＬＩＳＴＢＯＸを読み替える際のフローチャートである。
【図１４】本発明の一実施形態としての、オペレーティングシステムが第二階層を開くときのボタンが押されたときのフローチャートである。
【図１５】本発明の一実施形態としての、オペレーティングシステムが持つ、従来のコントロールである。
【図１６】本発明の一実施形態としての、第１実行環境と第２実行環境を示す図である。
【発明を実施するための形態】
【００１２】
図１は本発明の実施形態を示す一般的なコンピューターを用いたシステムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。
【００１３】
ＣＰＵ１０１（制御手段）は主記憶装置１０２のＲＯＭ１０２１あるいはＲＡＭ１０２２あるいは補助記憶装置１０５に格納されたプログラムに従って装置全体の制御を行う。ＲＡＭ１０２２はＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。補助記憶装置１０５はオペレーティングシステム（ＯＳ）１０５３やアプリケーションソフト１０５１等を記録する。キーボード１０３１やマウスなどに代表されるポインティングデバイス１０３２、タッチパネル１０３３などの入力機器は、入力Ｉ／Ｆ１０３を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０４は、データを外部に出力するためのインターフェースであり、モニタ１０４１やプリンター１０４２などの出力機器に対してデータを出力する。プリンター１０４２とは直接接続されるローカルＩ／Ｏのみならず、通信Ｉ／Ｆ１０６を通じて接続されるネットワーク１０６１を通して接続されていてもよい。また、１０７は共通データシステムバスで、Ｉ／Ｆやモジュール間でデータのやりとりを行う。
【００１４】
加えて、ＣＰＵ１０１が補助記憶装置１０５に記憶されているプログラムに基づき処理を実行することによって、図３及び図４に示されるコンピューターのソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。
【００１５】
図２は本発明の実施の形態におけるネットワーク１０６１の環境を簡略した図である。印刷を行う文書や画像を作成するクライアントコンピュータ２０１／２０２が単体もしくは複数ネットワークに接続されている。また、クライアントのユーザーやプリンターを管理するサーバーコンピュータ２０３が接続されていることもある。プリンター２０４／２０５が単体もしくは複数ネットワークに接続されており、プリンター２０５のように物理的に接続されていても実際には使用できないオフライン状態であることもある。
【００１６】
ネットワークにはＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの小規模から大規模までのネットワークがあり、これらの機器がすべてのネットワークに接続されている。クラウドなど、サーバーやプリンターがインターネットを越えて接続されていてもかまわない。
【００１７】
図３において、一般的なコンピューターを用いた印刷処理システムを示す。アプリケーション１０５１と、プリンタードライバー１０５２、オペレーティングシステム１０５３は、図１の補助記憶装置１０５に格納されている。グラフィックスエンジン３０２、プリントマネージャ３０６はオペレーティングシステム１０５３に含まれるモジュールである。ユーザーはキーボード１０３１やマウス１０３２などといった入力装置を使用して、出力装置のモニタ１０４１に映し出されたアプリケーションプログラム１０５１を使用して作成した文書３０１の印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と３つの処理を順番に行うことで実行される。
【００１８】
まずは、プリンターの選択として、印刷を実行するプリンター１０４２に対応したプリンタードライバー１０５２を選択する。次に印刷設定３０１２の作成を行う。文書の印刷設定３０１２はプリンタードライバー１０５２のコンフィギュレーションモジュール３０４によって初期値が作成される。作成された印刷設定３０１２をアプリケーション１０５１もしくはプリンタードライバー１０５２のユーザーインターフェースを使用してユーザーが望む最終印刷結果になるように変更して設定を行う。たとえば、出力する用紙サイズの変更、両面印刷、白黒印刷を行なうといった設定である。プリンタードライバー１０５２のユーザーインターフェースは、コンフィギュレーションモジュール３０４が提供する。
【００１９】
ここでプリンタードライバー１０５２には後述する第１環境用ドライバー１６０４と第２環境用ドライバー１６０６の２種類がある。どちらで処理を行うかによって印刷の流れが変わるが、ここでは両者で共通する印刷の流れについて説明する。
【００２０】
印刷設定３０１２はＲＡＭ１０２２上に確保されるが、保存する形式はバイナリのデータ構造体であったり、マークアップ言語のＸＭＬであったりする。この形態はプリンタードライバー１０５２やオペレーティングシステム１０５３の仕様によって異なる。印刷設定３０１２は文書印刷のたびに作成する。
【００２１】
しかし、プリンター１０４２のオプション機器構成や、ユーザーごとの環境設定など設定を保持しておきたいものは、プリンタードライバー１０５２がオペレーティングシステム１０５３のレジストリデータベース３０８に保存する。印刷設定３０１２のユーザーごとのデフォルト値はオペレーティングシステム１０５３のプリントマネージャ３０６が、レジストリデータベース３０８に保存する。最後にプリンタードライバー１０５２は描画データの変換を行う。
【００２２】
印刷設定３０１２が作成し終わったら、ユーザーによって印刷処理が実行され、アプリケーション１０５１はオペレーティングシステム１０５３に印刷処理を通知する。オペレーティングシステム１０５３はグラフィックスエンジン３０２を通じて、指定されたプリンタードライバー１０５２への描画を行う。
【００２３】
印刷設定３０１２でレイアウト処理が指定されている場合は、処理がプリンタードライバー１０５２のレンダリングモジュール３０３に進む前に一時的なスプールファイル３０７を作成し、レイアウトモジュール３０９を起動する。レイアウト処理とは用紙の順番を入れ替えたり、一枚の用紙に複数ページを貼り付けたりする処理を指す。レイアウトモジュール３０９はレイアウトを変更した後、プリンタードライバー１０５２への描画を再度行う。描画データが送られてきたプリンタードライバー１０５２はレンダリングモジュール３０３によって、プリンターが理解できるデータ言語すなわちプリンター制御言語に変換する。
【００２４】
このとき印刷設定３０１２も、プリンター制御言語として変換する。レンダリングモジュール３０３、コンフィギュレーションモジュール３０４はともに複数の種類のプリンター１０４２に対して共通のモジュールであることが多く、機種ごとの違いは機種依存データファイル３０５に記述されている。レンダリングモジュール３０３、コンフィギュレーションモジュール３０４は適宜、この機種依存データファイル３０５を参照する。変換されたデータはスプールファイル３０７として逐次保存していく。
【００２５】
プリントマネージャ３０６はスプールファイル３０７を取得し、印刷ジョブファイルとして印刷処理のスケジュール管理を行う。プリンターが印刷できる状態になったら、プリントマネージャ３０６はＩ／Ｏモジュール３１０を介してプリンター１０４２に順次印刷ジョブデータを送信する。印刷ジョブデータとは印刷ジョブファイルの中身である。このようにして、アプリケーションからの印刷データがプリンター制御言語に変換されて印刷を行う。ここで印刷データとは描画データと印刷設定を含むものを意味する。
【００２６】
文書３０１の印刷設定３０１２を作成するには、アプリケーションによって印刷設定３０１２を直接書き換えるか、プリンタードライバー１０５２のコンフィギュレーションモジュール３０４が提供するユーザインタフェース（図７）を使用する。
【００２７】
印刷設定３０１２はＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、ＤＥＶＭＯＤＥ構造体と呼ばれる図５の構造をしている。ＤＥＶＭＯＤＥ構造体はオペレーティングシステムで公開定義されている標準の設定領域５０１と、プリンタードライバーが拡張した設定領域５０２に分けられている。標準の設定領域５０１には、用紙サイズや給紙段の切り替え、カラー白黒の切り替えなど印刷の基本的な設定の値がある。拡張した設定領域５０２には、プリンターのオプションに応じた排紙機能や、細かい色調整機能などの値がある。アプリケーションは各プリンタードライバー１０５２が持つ拡張設定を知ることはできないので、直接印刷設定を書き換えることができるのは、システムで定義されている標準の設定領域５０１だけとなる。
【００２８】
そこで、アプリケーションはプリンタードライバー１０５２のユーザーインターフェースを表示させて、拡張された印刷設定５０２をユーザーに行わせるのが一般的である。コンフィギュレーションモジュール３０４はユーザーインターフェースだけではなく、アプリケーションプログラムインタフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）も提供している。
【００２９】
そのため、ユーザーインターフェースを表示せずに拡張された印刷設定５０２を外部から設定することも可能である。しかし、コンフィギュレーションモジュール３０４のＡＰＩを使用する場合はアプリケーションがプリンタードライバー１０５２ごとに対応しなければならないので、一般的なアプリケーションは標準の設定領域５０１のみ変更を行う。
【００３０】
もうひとつ、本発明を適用できる別の印刷システムを説明する。図３はＧＤＩ印刷システムと呼ばれるのに対し、図４はＸＰＳ印刷システムのブロック構成図である。
【００３１】
ＸＰＳ印刷システムはＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎと呼ばれる文書ファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。ＸＰＳ印刷システムもＧＤＩ印刷システムと同じく、オペレーティングシステム１０５３上で動作している。プリントマネージャ３０６、ＧＤＩｔｏＸＰＳ変換モジュール４０５、フィルタパイプラインマネージャ４０９はオペレーティングシステム１０５３に含まれるモジュールである。プリンタードライバー１０５２とフィルタパイプラインマネージャ４０９の各フィルタは、図１の補助記憶装置１０５にプリンタードライバー１０５２として格納されている。フィルタパイプラインマネージャ４０９はオペレーティングシステムに含まれるが、各フィルタはプリンタードライバー１０５２のモジュールである。
【００３２】
ＧＤＩ印刷アプリケーション４０１とＸＰＳ印刷アプリケーション４０２は、図１の補助記憶装置１０５にアプリケーション１０５１として格納されている。ユーザーはキーボード１０３１やマウス１０３２などといった入力装置を使用して、出力装置のモニタ１０４１に映し出されたＧＤＩ印刷アプリケーションプログラム４０１（以下、ＧＤＩアプリと略す）、もしくはＸＰＳ印刷アプリケーションプログラム４０２（以下、ＸＰＳアプリと略す）から印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と３つの処理を順番に行うことで実行する。
【００３３】
まずは、印刷したいプリンター１０４２の選択をする。これは、印刷を実行するプリンター１０４２に対応したプリンタードライバー１０５２を選択することと同義である。次に印刷設定を作成する。印刷設定はアプリケーションが印刷設定用のメモリを確保し、アプリケーションかプリンタードライバーのコンフィギュレーションモジュール３０４が、機種依存ファイル３０５を利用して設定データを埋めるという形で行われる。
【００３４】
ＧＤＩアプリ４０１では印刷設定データとしてバイナリのＤＥＶＭＯＤＥ構造体４０３を用い、ＸＰＳアプリ４０２ではマークアップ言語のＸＭＬで記載されたプリントチケット４０４を用いる。ＤＥＶＭＯＤＥ構造体４０３もプリントチケット４０４も、図５の構造のように、オペレーティングシステムが定義する標準領域とプリンタードライバーが独自で定義する拡張領域を持つ。
【００３５】
また、プリントチケット４０４は、図６にあるようなＸＭＬ形式で記述された印刷設定情報であるので、標準領域と拡張領域は名前空間によって記載が分かれている。名前空間とは図６のｐｓｆ，ｐｓｋ，ｘｓｄといった記載である。詳しくは公知の仕様であるので、ここでは割愛する。また、省略と記載した部分には名前空間の定義が記載される。
【００３６】
このＤＥＶＭＯＤＥ構造体４０３もしくはプリントチケット４０４が印刷設定を保持しており、アプリケーションが直接書き換えることで印刷設定を変更する。プリンター１０４２に依存した専用の設定は、コンフィギュレーションモジュール３０４が持つプリンタードライバー１０５２のユーザインタフェース（図７）を表示して行う。プリンタードライバー１０５２は、ユーザーインターフェースを介してユーザーにより入力された設定に従い、ＤＥＶＭＯＤＥ構造体４０３もしくはプリントチケット４０４のプリンター１０４２に依存した設定を変更する。
【００３７】
印刷設定とは具体的に、出力する用紙サイズを「Ａ４」にする、両面印刷を行う、カラーと白黒を切り替える、給紙段を指定するなどといった印刷を行うのに必要なデータのことを指す。
【００３８】
プリントチケット４０４は印刷設定がＸＭＬ形式で記述されているので、ＸＰＳアプリ４０２がすべての設定値を直接変更して書き換えることは容易だが、従来のようにプリンタードライバー１０５２のユーザーインターフェースを使って設定変更してもかまわない。
【００３９】
印刷設定は文書印刷のたびに作成するが、プリンター１０４２のオプション機器や、ユーザーごとの環境設定など設定を保持しておきたいものは、ユーザーインターフェースがオペレーティングシステムのレジストリデータベース３０８に保存する。印刷設定のユーザーごとのデフォルト値はオペレーティングシステムのプリントマネージャ３０６が、レジストリデータベース３０８に保存する。最後にプリンタードライバー１０５２は描画データの変換を行う。印刷設定が確定したら、ユーザーはアプリケーションから印刷処理を実行する。
【００４０】
ＧＤＩアプリ４０１から印刷する場合は、プリンタードライバーの形態を取るＧＤＩｔｏＸＰＳ変換モジュール４０５に描画データが送られ、ＸＰＳスプールファイル４０７が作成される。このときＧＤＩｔｏＸＰＳ変換モジュール４０５はコンフィギュレーションモジュール３０４を呼び出し、印刷設定をＤＥＶＭＯＤＥ構造体４０３からプリントチケット４０４に変換する。
【００４１】
ＸＰＳアプリ４０２から印刷する場合は、ＸＰＳファイルをＸＰＳアプリ自身が生成するのと、オペレーティングシステムがＸＰＳアプリからの描画命令に応じてＸＰＳファイルを生成するのと２通りの方法がある。どちらの方法であっても、印刷の途中でＸＰＳスプールファイル４０７を生成する。このようにＸＰＳ印刷システムは、印刷時に必ずＸＰＳスプールファイル４０７を生成するのが特徴である。
【００４２】
ＸＰＳスプールファイル４０７が生成されたら、プリントフィルタパイプラインプロセスに処理が渡される。プリントフィルタパイプラインプロセスは複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル４１３でフィルタの数や順番を制御する。プリントフィルタパイプラインプロセスで動作するフィルタパイプラインマネージャはフィルタコンフィギュレーションファイル４１３に従って、この実施例では設定フィルタ４１０、レイアウトフィルタ４１１、レンダラフィルタ４１２の順に処理を行う。フィルタはプリンタードライバー１０５２の構成によって、数や種類が異なる。印刷処理はＸＰＳスプールファイル４０７をフィルタに受け渡すことで行われ、フィルタがそれぞれＸＰＳスプールファイル４０７を加工し次のフィルタに渡していくことで処理が進む。最後にはプリンターが理解できるデータ言語であるプリンター制御言語（以下、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）と略す）となって出力される。
【００４３】
もちろんプリンター１０４２がＸＰＳスプールファイル４０７を直接読み込んで印刷できるＸＰＳダイレクトプリンタであれば、すべてのフィルタをスルーして印刷してもよい。
【００４４】
設定フィルタ４１０ではプリントチケット４０４を読み込んで印刷に必要なデータをプリントチケット４０４に書き込む処理を行う。レイアウトフィルタ４１１では倍率の変更や製本の面付けレイアウトやスタンプなどレイアウトに関する処理を行う。レイアウトフィルタ４１１では、ＸＰＳスプールファイル４０７に含まれる印刷設定プリントチケット４０４に従って動作する。そのため、たとえば面付けの設定がプリントチケット４０４に存在しないときは、レイアウトフィルタ４１１は何も動作せずスルーして、次のフィルタにＸＰＳスプールファイル４０７をそのまま渡す。
【００４５】
最後のレンダラフィルタ４１２では、ＸＰＳスプールファイル４０７をレンダリングしてＰＤＬに変換する。ＰＤＬデータは印刷処理のスケジュール管理を行うプリントマネージャ３０６で管理され、キュー（待ち行列）に印刷ジョブが次々と登録される。プリンター１０４２が印刷できる状態になったら、キューに登録した順にＰＤＬデータをＩ／Ｏモニタ３１０を通して送信する。
【００４６】
このようにして、アプリケーションからの印刷データをプリンター制御言語に変換することがプリンタードライバーの主な役目であり、印刷処理が行われる。
【００４７】
（２つの実行環境）
図１６は新しいユーザーインターフェース（タッチパネル用）と従来のユーザーインターフェース（キーボードやマウス用）の実行環境を図に示したものである。
【００４８】
新しいユーザーインターフェースは第１実行環境（ＷｉｎＲＴ）１６０８によって実現され、従来のユーザーインターフェースは第２実行環境（Ｗｉｎ３２）１６０９によって実現される。すなわち、新しいユーザーインターフェースと従来のユーザーインターフェースを提供する実行環境は異なっている。
【００４９】
図１６において、第１環境用ドライバーＵＩ１６１２は、第１環境用のプリンタードライバーである第１環境用ドライバー１６０４を設定するためのユーザーインターフェース（印刷設定画面）を提供するソフトウェアである。同様に第２環境用ドライバーＵＩ１６１３は、第２環境用のプリンタードライバーである第２環境用ドライバー１６０６を設定するためのユーザーインターフェース（印刷設定画面）を提供する。そして、第１環境用アプリケーション１６０５及び第２環境用アプリケーション１６０７はプリンタードライバーに印刷指示をするワードプロセッサ等の一般的なアプリケーションである。
【００５０】
そして、第１環境用アプリケーション１６０５及び第１環境用ドライバー１６０４は第１環境実行基本ソフトウェア１６０２上で動作する。これにより第１実行環境（ＷｉｎＲＴ）１６０８を構成する。一方、第２環境用アプリケーション１６０７及び第２環境用ドライバー１６０６、第２環境用ドライバーＵＩ１６１３は第２環境実行基本ソフトウェア１６０３上で動作する。これにより第２実行環境（Ｗｉｎ３２）１６０９を構成する。これらの２つの実行環境はいずれもオペレーティングシステムカーネル１６０１上で実行されている。
【００５１】
ここで、第１環境用ドライバーＵＩ１６１２はオペレーティングシステムカーネル１６０１上で動作する。その際に第１環境用ドライバーＵＩ１６１２が第１実行環境（ＷｉｎＲＴ）１６０８で動作する際はタッチパネル用のユーザーインターフェースを提供する。また、第１環境用ドライバーＵＩ１６１２が第２実行環境（Ｗｉｎ３２）１６０９で動作する際はキーボードやマウス用のユーザーインターフェースを提供する。
【００５２】
なお、オペレーティングシステム１０５３とは第１環境実行基本ソフトウェア１６０２及び第２環境実行基本ソフトウェア１６０３、オペレーティングシステムカーネル１６０１を合わせたものを指す。以降のフローチャートでオペレーティングシステム１０５３が処理を行う場合はこれらのソフトウェアのいずれかが動作することにより処理を実現するものとする。
【００５３】
ここで第１環境用アプリケーション１６０５から第２環境用ドライバー１６０６を選択して印刷する場合の処理の流れについて説明する。最初にユーザーは第１環境用アプリケーション１６０５から第２環境用ドライバー１６０６を選択して、印刷を指示する。その後、第１環境用アプリケーション１６０５が生成した描画データ１６１０を第１環境実行基本ソフトウェア１６０２が受け取る。
【００５４】
この際に図３や図４を用いて説明した印刷の流れと異なる点を説明する。まず、第１環境実行基本ソフトウェア１６０２は受け取った描画データ１６１０を第２環境実行基本ソフトウェア１６０３に送信する。これにより第１実行環境（ＷｉｎＲＴ）１６０８から第２実行環境（Ｗｉｎ３２）１６０９へ描画データ１６１０が送信される。そして、第２環境実行基本ソフトウェア１６０３が、ユーザーにより選択された第２環境用ドライバー１６０６を起動し、描画データ１６１０を第２環境用ドライバー１６０６へ渡すことで印刷データが生成される。
【００５５】
もうひとつの印刷の方法は第２環境用アプリケーション１６０７が第２環境用ドライバー１６０６を選択して印刷を行う方法である。この方法では第２環境用アプリケーション１６０７が描画データ１６１１を、第２環境実行基本ソフトウェア１６０３を介して第２環境用ドライバー１６０６に送信する。この方法の印刷の流れについては図３及び図４を用いて説明をしたものと同一であるので説明は割愛する。
【００５６】
なお、図１６に示すように第２環境用ドライバーＵＩ１６１３は第１実行環境（ＷｉｎＲＴ）１６０８では動作しない。このような環境において、本明細書は第２環境用ドライバーＵＩ１６１３で設定可能な設定項目を第１実行環境（ＷｉｎＲＴ）１６０８用に変換することで、第２環境用ドライバー１６０６のユーザーインターフェース（印刷設定画面）を提供する方法を説明する。
【００５７】
ここまでの図１６を用いた説明では、わかりやすくするためにドライバーとドライバーＵＩを分けて説明したが、以降の説明では特に区別せず、ドライバーとドライバーＵＩの両方又はどちらか一方によって実現されるソフトウェアをプリンタードライバーと呼ぶ。
【００５８】
（印刷設定）
次にプリンタードライバー１０５２のユーザーインターフェースを使用して印刷設定を行う処理について、図８のブロック図と図１１のフローチャートを用いて説明する。
【００５９】
オペレーティングシステム１０５３は、アプリケーション１０５１からプリンタードライバー１０５２を使用するためのＡＰＩを呼び出される（Ｓ１１０１）。オペレーティングシステム１０５３は、プリントマネージャ３０６を通して、アプリケーション１０５１から渡されたＤＥＶＭＯＤＥ構造体４０３を、プリンタードライバー１０５２のコンフィギュレーションモジュール３０４に渡す（Ｓ１１０２）。オペレーティングシステム１０５３は、アプリケーション１０５１からＡＰＩを通じて、プリンタードライバー１０５２のユーザーインターフェースを表示するフラグが渡されたかどうかを確認する（Ｓ１１０３）。
【００６０】
ユーザーインターフェースを表示するときは、オペレーティングシステム１０５３はプリンタードライバー１０５２を呼び出して、ユーザーインターフェースを構築する準備を行う。
【００６１】
まず、オペレーティングシステム１０５３のプリントマネージャ３０６は、ＣＰＳＵＩ（Ｃｏｍｍｏｎ  Ｐｒｏｐｅｒｔｙ  Ｓｈｅｅｔ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）８０１を呼び出す。ＣＰＳＵＩ８０１は、プロパティシートと呼ばれるタブ図１５（ｋ）を持ったユーザーインターフェースのうち、ベースとなる土台を作成する。土台は図７でいうところの、ＯＫボタンやキャンセルボタンが配置されている部分である。
【００６２】
次に、オペレーティングシステム１０５３のＣＰＳＵＩ８０１は、それぞれのタブの中にあるプロパティシートページを作るために、プリンタードライバー１０５２のコンフィギュレーションモジュール３０４から、ダイアログリソーステンプレート（図９）を受け取る（Ｓ１１０４）。
【００６３】
ダイアログリソーステンプレートは印刷設定以外の一般的なアプリケーションによっても使われているダイアログを生成するためのバイナリファイルである。通常コンフィギュレーションモジュール３０４が読み込まれるのと同時か事後的に、コンフィギュレーションモジュール３０４がダイアログリソーステンプレートを補助記憶装置１０５からＲＡＭ１０２２に読み出す。ＣＰＵ１０１はダイアログリソーステンプレートに基づいて以降の処理を行う。またオペレーティングシステム１０５３からＡＰＩ等で呼び出されるとダイアログリソーステンプレートを渡すことができるように、コンフィギュレーションモジュール３０４はダイアログリソーステンプレートを有している。オペレーティングシステムはダイアログリソーステンプレートをレイアウト情報として読み込みＧＵＩを生成する。
【００６４】
オペレーティングシステム１０５３はキーボードやマウスを使用する従来のＵＩと同時に新しいタッチパネル用のユーザーインターフェースを表示することもあり得る。これは例えば縦に画面を分割して、左に新しいタッチパネル用のユーザーインターフェースを、右に従来のユーザーインターフェースを表示することによって実現できる。
【００６５】
よってアプリケーションは、アプリケーション自身が、従来のマウス用のユーザーインターフェースによって起動されているのか、新しいタッチパネル用のユーザーインターフェースによって起動されているのかを把握する必要がある。これを実現するためには、アプリケーションが起動された際に、アプリケーションをどちらのユーザーインターフェースで起動しているのかを示す情報をオペレーティングシステム１０５３がアプリケーションに渡す方法が考えられる。あるいはアプリケーション自身がどちらのユーザーインターフェースで起動されたかをオペレーティングシステム１０５３に問い合わせてもよい。
【００６６】
ここでは、オペレーティングシステム１０５３はプリンタードライバー１０５２を呼び出したアプリケーションが新しいユーザーインターフェース上で実行されているか否かを判定する（Ｓ１１０５）。
【００６７】
すなわち、オペレーティングシステム１０５３はアプリケーションが第１環境用アプリケーション１６０５であるか第２環境用アプリケーション１６０７であるかを判定する。
【００６８】
呼び出したアプリケーションが従来のユーザーインターフェース上で実行されていれば、オペレーティングシステム１０５３は、受け取ったダイアログリソーステンプレートに従い、記載されたままのコントロールを配置してユーザーインターフェースを作成する（Ｓ１１０６）。
【００６９】
本明細書においてコントロールとは図１５に記載の各オブジェクトを意味する。
【００７０】
呼び出したアプリケーションが新しいユーザーインターフェース上で実行されているのであれば、オペレーティングシステム１０５３は、新しいタッチパネル用のユーザーインターフェースに対応したプリンタードライバー１０５２であるかどうか判定する（Ｓ１１０７）。
【００７１】
すなわち、オペレーティングシステム１０５３はプリンタードライバー１０５２が第１環境用ドライバー１６０４であるか第２環境用ドライバー１６０６であるかを判定する。
【００７２】
なお、プリンタードライバー１０５２を呼び出したアプリケーションは新しいユーザーインターフェース上で実行されているか否かを判定せずに、新しいタッチパネル用のユーザーインターフェースが表示されているか否かによって判定してもよい。あるいは新しいタッチパネル用の画面か、キーボードやマウスを使用する従来の画面のいずれかのみを表示できるように構成されている場合は、画面がどちらであるかに基づいて判定してもよい。
【００７３】
プリンタードライバー１０５２のインストールの際に、プリンタードライバー１０５２はオペレーティングシステム１０５３にユーザーインターフェースがマウス用であるかタッチパネル用であるかをあらかじめ登録する。そこで、オペレーティングシステム１０５３は、ユーザーインターフェースが新しいタッチパネル用としてプリンタードライバーが登録されているかどうかを判定することができる。
【００７４】
なお、本明細書では以上のように新しいタッチパネル用のユーザーインターフェースに対応したプリンタードライバー１０５２であるかどうか判定する例を示したが、これによらず常にＳ１１０９以降の処理を実行するように構成しても構わない。例えば強制実行モードといった必ずＳ１１０９以降の処理を実行するモードなどを備えて、強制実行モードである場合は必ずＳ１１０９以降の処理を実行するといった方法が考えられる。
【００７５】
本明細書のように新しいタッチパネル用のユーザーインターフェースに対応したプリンタードライバー１０５２であるかどうかを判定するメリットについて述べる。この場合、新しいタッチパネル用のユーザーインターフェースに対応したプリンタードライバー１０５２が従来の画面用にダイアログリソーステンプレートを備えていたとしても、タッチパネル用のユーザーインターフェースによって印刷の設定を行うことができる。ゆえにユーザーはそれがダイアログリソーステンプレートから新しいタッチパネル用のユーザーインターフェースに変換されたものであるのか、あるいはプリンタードライバー１０５２によるものであるかを意識せずに使うことができる。
【００７６】
ダイアログリソーステンプレートは従来の画面用なので、プリンタードライバー１０５２が新しいタッチパネル用のユーザーインターフェースを持っていれば、オペレーティングシステム１０５３はそれを起動する（Ｓ１１０８）。すなわち、第１環境用ドライバーＵＩ１６１２を持っていればオペレーティングシステム１０５３は第１環境用ドライバーＵＩ１６１２を起動する。
【００７７】
ダイアログリソーステンプレートしか持たないプリンタードライバー１０５２（第２環境用ドライバー１６０６）であれば、オペレーティングシステム１０５３は、ダイアログリソーステンプレートに記述されたコントロールを読み替えてユーザーインターフェースを構築する（Ｓ１１０９）。詳細な説明は図１２に後述する。
【００７８】
そして、オペレーティングシステム１０５３は、プリンタードライバー１０５２のユーザーインターフェースの初期化プログラムを呼び出す（Ｓ１１１０）。
【００７９】
初期化が終了すると、オペレーティングシステム１０５３は、プリンタードライバー１０５２のウィンドウメッセージを呼び出す（Ｓ１１１１）。ユーザーの操作に応じて、オペレーティングシステム１０５３はプリンタードライバー１０５２に、その都度ウィンドウメッセージを送信する。プリンタードライバー１０５２は、ウィンドウメッセージを処理して、またオペレーティングシステム１０５３に処理を戻す形になる。ユーザーの操作でユーザーインターフェースの終了が指示されると、オペレーティングシステム１０５３はウィンドウ終了メッセージを受け取り、ユーザーインターフェースの処理を終了する（Ｓ１１１２）。
【００８０】
そして、オペレーティングシステム１０５３は、プリンタードライバー１０５２から、ユーザーインターフェースを操作することで変更された、印刷設定のＤＥＶＭＯＤＥ構造体４０３を取得する（Ｓ１１１３）。オペレーティングシステム１０５３は、変更されたＤＥＶＭＯＤＥ構造体４０３をアプリケーション１０５１に返すこと（Ｓ１１１４）で、ユーザーインターフェースによって変更された印刷設定を反映させることができる。
【００８１】
ダイアログリソーステンプレートは、プロパティシートページに配置するコントロールの種類、属性、位置、プログラムと連携するためのＩＤが記載されている。たとえば、図９の６行目は、コントロールの種類がＣＯＭＢＯＢＯＸ、ＩＤがＩＤＣ＿ＣＢ＿ＰＲＯＦＩＬＥ、位置が６０，４，９０，１００、それ以外が属性を表している。
【００８２】
ＩＤはコントロールを特定するためにコントロールに付されている。例えばこのＩＤを用いてコンフィギュレーションモジュール３０４がＣＯＭＢＯＢＯＸの候補の追加や現在選択されている値の取得を行う。
【００８３】
コントロールはオペレーティングシステム１０５３が持つユーザーインターフェースの部品で、代表的な部品として以下のものがある。
【００８４】
ＴＥＸＴは文字列を表示するものであり、文字の配置の仕方でＬＴＥＸＴ、ＲＴＥＸＴ、ＣＴＥＸＴの３つが存在する。図１５（ａ）はＣＯＭＢＯＢＯＸで、相互に排他的な一覧から選択できるものである。図１５（ｂ）はＣＨＥＣＫＢＯＸで、明白に異なる２つの選択肢から選択できるものである。図１５（ｃ）はＥＤＩＴＴＥＸＴで、テキストまたは数値の表示・入力・編集ができる。図１５（ｄ）はＰＵＳＨＢＵＴＴＯＮで、アクションを実行できるものである。図１５（ｅ）はＬＩＳＴＢＯＸで、常に表示されている一覧からアイテムを選択できる。図１５（ｆ）はＣＯＮＴＲＯＬのＷＣ＿ＬＩＳＴＶＩＥＷで、単一もしくは複数選択のデータコレクションの表示と操作ができる。図１５（ｇ）はＣＯＮＴＲＯＬのＴＲＡＣＫＢＡＲ＿ＣＬＡＳＳで、連続的な値の範囲から選択できる。図１５（ｈ）はＣＯＮＴＲＯＬのＵＰＤＯＷＮ＿ＣＬＡＳＳで、関連づけられたＥＤＩＴＴＥＸＴ内の値を１単位ずつ変更できる。図１５（ｉ）はＣＯＮＴＲＯＬのＷＣ＿ＴＲＥＥＶＩＥＷで、単一もしくは複数選択の階層型コレクションの表示と操作ができる。これらのコントロールを持ったダイアログテンプレートリソースを、オペレーティングシステム１０５３は、プロパティシートごとにプリンタードライバー１０５２から受け取って、ユーザーインターフェースを構築する。
【００８５】
次にプリンタードライバー１０５２から渡されたダイアログリソーステンプレートを、オペレーティングシステム１０５３が、どのようにタッチパネル用のユーザーインターフェースに読み替えるかを、Ｓ１１０９の処理内である図１２のフローチャートを使用して説明する。
【００８６】
前述のようにプリンタードライバー１０５２のコンフィギュレーションモジュール３０４はダイアログリソーステンプレートを有している。オペレーティングシステム１０５３は、プリンタードライバー１０５２から渡されたダイアログリソーステンプレートを１行ずつ読み込み、コントロールを１つ取得する（Ｓ１２０１）。オペレーティングシステム１０５３は、すべてのコントロールを読み込むまで処理を続ける（Ｓ１２０２）。
【００８７】
読み込んだコントロールがＴＥＸＴであったときは（Ｓ１２０３）、オペレーティングシステム１０５３は次のコントロールを読み込んで調査を行う。
【００８８】
次のコントロールもＴＥＸＴだったとき（Ｓ１２０４）は、オペレーティングシステム１０５３は、ＲＡＭ１０２２を読み込み、他のコントロールと関連づけられていないＴＥＸＴだと判断する。そしてオペレーティングシステム１０５３は情報として表示するＴＥＸＴとしてコントロールを配置する（Ｓ１２０５）。
【００８９】
以降、オペレーティングシステム１０５３はコントロールを関連付ける際はＲＡＭ１０２２に関連付けを保存する。関連付けられているか否かを判断する際は、オペレーティングシステム１０５３がＲＡＭ１０２２を読み出すことにより判断する。
【００９０】
ＴＥＸＴの次が他のコントロールだったときは、オペレーティングシステム１０５３は、ＴＥＸＴを第一階層の選択肢の１つとして位置づけ、列挙する。第一階層とは、ユーザーインターフェースを開いたときに最初に表示されるページを指し、選択肢やボタンを押すことで画面が切り替わると、第二階層、第三階層と階層をたどる形で表示される。このようにして、第一階層はＴＥＸＴの選択肢が並んだ形で配置が行われる（図１０（ａ））。
【００９１】
本明細書ではこれらのＴＥＸＴを印刷設定項目の名称と呼ぶ。
【００９２】
図１０（ａ）であれば第一階層のＴＥＸＴ（印刷設定項目の名称）を選択することにより個々の設定を行う画面である図１０（ｂ）に進むことができる。その際に図１０（ａ）の画面は図１０（ｂ）に置き換えられて表示される。置き換えるとはすなわち、図１０（ｂ）を図１０（ａ）と同じ領域に上書きで表示することで、図１０（ｂ）の表示後は図１０（ａ）を表示しないことで画面遷移することを意味する。具体的には図１０（ｂ）の画面では図１０（ａ）で表示していたＴＥＸＴ（印刷設定項目の名称）を画面上から消す（非表示にする）。その代わりに図１０（ｂ）ではＲＡＤＩＯＢＵＴＴＯＮを並べることで印刷設定項目の選択肢を表示する。
【００９３】
図１０（ａ）では印刷設定項目の選択肢を表示せずに、印刷設定項目の名称を表示する。また、図１０（ｂ）では印刷設定項目の名称を表示せずに、印刷設定項目の選択肢を表示する。これによりモニタ１０４１が小さい機器であっても、表示する情報が少なくて済むことで、印刷設定項目の名称及び印刷設定項目の選択肢のフォントサイズを大きくすることができ、見易いユーザーインターフェースを提供することができる。  なお、印刷設定項目の選択肢をＣＯＭＢＯＢＯＸ又はＬＩＳＴＢＯＸを用いて表示する場合には、当然ながら選択肢の全てが同時に表示されるわけではない。
【００９４】
オペレーティングシステム１０５３は、Ｓ１２０４で見つけた次のコントロールを、配置したＴＥＸＴの選択肢として関連づけておく（Ｓ１２０７）。
【００９５】
オペレーティングシステム１０５３は、読み込んだコントロールがＣＯＭＢＯＢＯＸもしくはＬＩＳＴＢＯＸであったときは（Ｓ１２０８）、ＲＡＤＩＯＢＵＴＴＯＮとしてコントロールを変更する候補に設定する（Ｓ１２０９）。
【００９６】
オペレーティングシステム１０５３は、取得したコントロールがＳ１２０７でＴＥＸＴに関連づけられたコントロールであるかどうかを判定する（Ｓ１２１０）。
【００９７】
関連づけられたコントロールであれば、オペレーティングシステム１０５３は第二階層にコントロールを配置する（Ｓ１２１１）。関連づけられたコントロールでなければ、第一階層にコントロールを配置する（Ｓ１２１２）。
【００９８】
このようにして、ダイアログリソーステンプレートのコントロールを読み替えてユーザーインターフェースを構築する。
【００９９】
タッチパネル用のユーザーインターフェースでは、ダイアログリソーステンプレートに記載された配置する位置座標や、フォントの種類や大きさなどは一切関知しない。
位置については、従来のコントロールを配置するスペースが少ないので同じレイアウトにすることはできない。スクロールバーなどを使用して、同じレイアウトを維持したとしても、著しく操作がしづらくなるだけである。
【０１００】
したがって、コントロールの配置に関しては、上から１つのラインに沿って順番に並べる形をとる。
【０１０１】
配置する順番については、ダイアログリソーステンプレートを読み込んだコントロールの順番とする。
【０１０２】
また、フォントの種類や大きさをそのまま使用すると、表示が小さくなりすぎるので、タッチパネルのような小さいモニタにおいては、文字を認識することが困難になる。そこで、タッチパネル用のユーザーインターフェースで用いられているデフォルトのフォントとサイズをそのまま使用する。タッチパネル用ユーザーインターフェースでは、画面全体にプロパティシートページを表示し、フォントも大きいので、機能名とコントロールが同時に並ぶと操作がしにくい。
【０１０３】
そこで、第一階層においては機能名だけを列挙し、名前をクリックすると、その機能のコントロールを使って選択できるようにしている。また、ＣＯＭＢＯＢＯＸやＬＩＳＴＢＯＸはタッチパネルでタッチしてそれぞれの項目を選ぶことのできる範囲が認識しにくいので、ＲＡＤＩＯＢＵＴＴＯＮに変更することで、タッチ位置の明確化を行っている。
【０１０４】
本明細書ではこのようにＣＯＭＢＯＢＯＸやＬＩＳＴＢＯＸをＲＡＤＩＯＢＵＴＴＯＮに変更する例を説明したが、ＣＯＭＢＯＢＯＸやＬＩＳＴＢＯＸをそのまま表示するように構成しても構わない。
【０１０５】
ＯＷＮＥＲＤＲＡＷという、プログラムによって描画するコントロールもある。ＯＷＮＥＲＤＲＡＷは、プリンタードライバー１０５２（第２環境用ドライバー１６０６）が描画してしまうので、別のコントロールやフォントなどに置き換えることができない。そこで、描画領域だけ確保したコントロールを配置し、そこに描画する。
【０１０６】
次に、Ｓ１２０９のＲＡＤＩＯＢＵＴＴＯＮに変換する候補に設定されたコントロールを実際にＲＡＤＩＯＢＵＴＴＯＮに変換する際のフローを、Ｓ１１１０の処理内である図１３のフローチャートを使って以下に記載する。
【０１０７】
なお、図１３及び図１４の説明で述べるプリンタードライバー１０５２は第２環境用ドライバー１６０６を指すものとする。
【０１０８】
オペレーティングシステム１０５３は、プリンタードライバー１０５２のユーザーインターフェースの初期化を呼び出す（Ｓ１３０１）。
【０１０９】
オペレーティングシステム１０５３が、初期化中にプリンタードライバー１０５２から、ＣＯＭＢＯＢＯＸかＬＩＳＴＢＯＸに対して、選択肢の項目を追加するための命令が呼び出されたかどうかを判定する（Ｓ１３０２）。選択肢の項目を追加するための命令が呼び出されたら、オペレーティングシステム１０５３はＲＡＤＩＯＢＵＴＴＯＮを並べる（Ｓ１３０３）。
【０１１０】
このようにして作成されたユーザーインターフェースが図１０（ｂ）となる。オペレーティングシステム１０５３は、プリンタードライバー１０５２のユーザーインターフェースの初期化が終了したら（Ｓ１３０４）、次の処理へ進む。
【０１１１】
ＲＡＤＩＯＢＵＴＴＯＮを並べる順番については、オペレーティングシステム１０５３は、プリンタードライバー１０５２から選択肢の項目を追加する命令が来た順番とする。
【０１１２】
ただし、オペレーティングシステム１０５３は、項目の文字列を判定し、用紙サイズであると判断した文字列が３つ以上追加されたら、用紙サイズを選択するＲＡＤＩＯＢＵＴＴＯＮと判定する。
【０１１３】
用紙サイズであると判断するための文字列は、「Ａ３」「Ａ４」「Ａ５」「Ｂ３」「Ｂ４」「Ｂ５」「レター」「レジャー」「１１ｘ１７」「エグゼクティブ」「はがき」「封筒」である。３つ以上である理由は、「Ａ４」と「レター」だけが列挙されるデフォルト用紙の選択のようなコントロールと区別するためである。
【０１１４】
オペレーティングシステム１０５３は、用紙サイズであると判定したら、ＲＡＤＩＯＢＵＴＴＯＮに関連づけられた第一階層のＴＥＸＴを、一番上に来るように並び替える。これは、用紙サイズを選択するコントロールは、ユーザーにとって優先順位が高いことから、一番上の目立つ位置に移動させるためである。
【０１１５】
次に、プリンタードライバー１０５２のユーザーインターフェースが持つ、従来のユーザーインターフェース画面の第二階層・第三階層を開くときのフローを、Ｓ１１１１の処理内である図１４のフローチャートを使って説明する。
【０１１６】
従来のユーザーインターフェース画面の第二階層・第三階層とはすなわち図７のページオプションといったボタンによって呼び出される画面を示す。
【０１１７】
オペレーティングシステム１０５３は、プリンタードライバー１０５２からＰＵＳＨＢＵＴＴＯＮが押されたことを通知される（Ｓ１４０１）。
【０１１８】
ＰＵＳＨＢＵＴＴＯＮが押されたあと、オペレーティングシステム１０５３はプリンタードライバー１０５２からダイアログリソーステンプレートを受け取るかどうかを判定する（Ｓ１４０２）。ダイアログリソーステンプレートを受け取るかどうかの判定はオペレーティングシステム１０５３がダイアログリソーステンプレートを受け取るためのＡＰＩを呼び出されたか否かによって判断することができる。
【０１１９】
オペレーティングシステム１０５３は、ダイアログリソーステンプレートを受け取ったときは、第一階層と同様にダイアログリソーステンプレートを解析して、タッチパネル用の新しいユーザーインターフェースを構築する（Ｓ１４０３）。この際、構築された新しいユーザーインターフェースのコントロールのＩＤにはダイアログリソーステンプレートで指定されたコントロールのＩＤがそのまま使用される。これによりコンフィギュレーションモジュール３０４はＵＩが変更されてもＩＤによりコントロールを特定することが可能となる。
【０１２０】
オペレーティングシステム１０５３が、ダイアログリソーステンプレートを受け取らなかったときは、プリンタードライバー１０５２からウィンドウを作成する命令が来るかどうかを判定する（Ｓ１４０４）。
【０１２１】
プリンタードライバー１０５２からウィンドウを作成する命令が来たときは、第二階層を開く処理であると判断し、オペレーティングシステム１０５３は画面をタッチパネル用のユーザーインターフェースから、キーボードやマウス用の従来のユーザーインターフェース画面に切り替える（Ｓ１４０５）。
【０１２２】
従来の画面に切り替えることで、プリンタードライバー１０５２がダイアログ以外に作成している従来のウィンドウも、表示することができるようになる。
【０１２３】
オペレーティングシステム１０５３はプリンタードライバー１０５２のユーザーインターフェースの初期化を呼び出し（Ｓ１４０６）、ウィンドウメッセージを呼び出して（Ｓ１４０７）、第二階層の処理を始める。
【０１２４】
印刷設定であるＤＥＶＭＯＤＥ構造体４０３は、すでにプリンタードライバー１０５２に渡してあり（Ｓ１１０２）、プリンタードライバー１０５２をアンロードしているわけでもないので、そのまま印刷設定を引き継ぐことができる。
【０１２５】
オペレーティングシステム１０５３は、プリンタードライバー１０５２のユーザーインターフェースからウィンドウ終了メッセージを受け取ったら（Ｓ１４０８）、ユーザーインターフェースの終了処理に入る。
【０１２６】
オペレーティングシステム１０５３は、現在の画面がキーボードやマウス用の従来のユーザーインターフェース画面かどうかを判定し（Ｓ１４０９）、従来のユーザーインターフェース画面なら、タッチパネル用の新しいユーザーインターフェース画面に切り替える（Ｓ１４１０）。
【０１２７】
以上のように、オペレーティングシステム１０５３が、プリンタードライバー１０５２が持つ従来のユーザーインターフェース用のダイアログリソーステンプレートを使って、タッチパネル用の新しいユーザーインターフェース画面を構築する。
【０１２８】
これにより、ユーザーはどのプリンタードライバーを使用しても、タッチパネル用に最適化したユーザーインターフェースを使用することができる。
【０１２９】
また、第二階層や第三階層のように、プリンタードライバーが独自で作成しているユーザーインターフェースについては、従来の画面に切り替えることで問題なく表示できる。
【０１３０】
さらに、元のレイアウトにとらわれず、タッチパネルに適したコントロールと配置を使用したユーザーインターフェースを構築することで、操作感覚を統一することが可能となる。
【０１３１】
なお、図１１のＳ１１０５の説明ではアプリケーションが第１実行環境で実行されているか又は第２実行環境で実行されているかによって制御を行う例を示した。これに限らず、２つのアプリケーションが両方第１実行環境又は第２実行環境に存在し、Ｓ１１０５ではその２つのアプリケーションのうち、どちらのアプリケーションであるかを判定することで、表示するユーザーインターフェースを異ならせても良い。
【０１３２】
また、本発明は、以下の処理を実行することによっても実現される。
【０１３３】
即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１３４】
１０４２  プリンター
１０５１  アプリケーション
１０５２  プリンタードライバー
１０５３  オペレーティングシステム
３０４  コンフィギュレーションモジュール
３０５  機種依存データファイル
３０６  プリントマネージャ（スプーラ）
３０８  レジストリデータベース
４０３  ＤＥＶＭＯＤＥ構造体
４０４  プリントチケット
８０１  ＣＰＳＵＩ
【図１】
2013077284.tif 000003
【図２】
2013077284.tif 000004
【図３】
2013077284.tif 000005
【図４】
2013077284.tif 000006
【図５】
2013077284.tif 000007
【図６】
2013077284.tif 000008
【図７】
2013077284.tif 000009
【図８】
2013077284.tif 000010
【図９】
2013077284.tif 000011
【図１０】
2013077284.tif 000012
【図１１】
2013077284.tif 000013
【図１２】
2013077284.tif 000014
【図１３】
2013077284.tif 000015
【図１４】
2013077284.tif 000016
【図１５】
2013077284.tif 000017
【図１６】
2013077284.tif 000018