JP5972436B2 - Information processing apparatus, information processing method, and program - Google Patents

Information processing apparatus, information processing method, and program Download PDF

Info

Publication number
JP5972436B2
JP5972436B2 JP2015150518A JP2015150518A JP5972436B2 JP 5972436 B2 JP5972436 B2 JP 5972436B2 JP 2015150518 A JP2015150518 A JP 2015150518A JP 2015150518 A JP2015150518 A JP 2015150518A JP 5972436 B2 JP5972436 B2 JP 5972436B2
Authority
JP
Japan
Prior art keywords
application
database
identifier
user interface
printer driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015150518A
Other languages
Japanese (ja)
Other versions
JP2015232896A (en
Inventor
章弘 三井
章弘 三井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015150518A priority Critical patent/JP5972436B2/en
Publication of JP2015232896A publication Critical patent/JP2015232896A/en
Application granted granted Critical
Publication of JP5972436B2 publication Critical patent/JP5972436B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、アプリケーションが実行するプロセスとは異なるプロセスで、プリンタードライバーのユーザーインターフェースを起動する情報処理装置、情報処理方法、及びプログラムに関するものである。   The present invention relates to an information processing apparatus, an information processing method, and a program for starting a user interface of a printer driver in a process different from a process executed by an application.

プリンタードライバーは詳細な印刷設定を行うために、専用のユーザーインターフェースを持っている。アプリケーションはオペレーティングシステムを介してプリンタードライバーのユーザーインターフェースを表示するが、プリンタードライバーはアプリケーションのプロセス内でロードされている。アプリケーションと同一プロセスでユーザーインターフェースを表示するので、印刷設定データの相互通信が容易であり、ユーザーインターフェース操作中はアプリケーションの操作を止めるモーダルダイアログになる。このようにアプリケーションとプリンタードライバーが一体化したように扱うことができるのが、同一プロセス実行のメリットである。しかし、プリンタードライバーのユーザーインターフェースに不具合があってクラッシュした場合、アプリケーションと同一プロセスであるがために、アプリケーションまで巻き込んでクラッシュしてしまう。   The printer driver has a dedicated user interface for performing detailed print settings. The application displays the user interface of the printer driver via the operating system, but the printer driver is loaded in the application process. Since the user interface is displayed in the same process as the application, the print setting data can be easily communicated with each other, and a modal dialog for stopping the operation of the application is displayed during the user interface operation. The merit of executing the same process is that the application and the printer driver can be handled in an integrated manner. However, if the user interface of the printer driver is faulty and crashes, it crashes with the application because it is the same process as the application.

プリンタードライバーだけでなくアプリケーションも含めて、同一プロセスの問題に対処するために、サンドボックスと呼ばれる異なるプロセスで動作させるシステムが存在する。複数のウェブページが同時に閲覧できるタブを持ちそれぞれのタブを別プロセスで動作させるブラウザや、ファイルを開くたびに別のプロセスで起動するアプリケーションなどが知られている。また、プリンタードライバーであっても、アプリケーションの描画データをプリンター言語に変換するレンダリング部を別プロセスにしたり、デバイスと双方向通信してステータスを逐次監視するアプリケーションを別プロセスで起動したりするものがある(特許文献1)。   In order to deal with the problem of the same process, including not only printer drivers but also applications, there are systems that operate in different processes called sandboxes. There are known browsers in which a plurality of web pages can be viewed at the same time, browsers that operate each tab in a separate process, and applications that are started in a separate process each time a file is opened. Some printer drivers also use a separate process for the rendering unit that converts the drawing data of the application into the printer language, or launches an application that uses two-way communication with the device to monitor the status sequentially. Yes (Patent Document 1).

しかし、プリンタードライバーのユーザーインターフェースについては、別プロセスで起動する対策が難しい。オペレーティングシステムがベースとなるユーザーインターフェースを構築し、プリンタードライバーはそのベース上に追加するシステムになっているからである。そこで、アプリケーションがプリンタードライバーのユーザーインターフェースを呼び出す際に別のサービスを起動し、サービスがプリンタードライバーのユーザーインターフェースを表示する方法がある(特許文献2)。また、プリンタードライバーのユーザーインターフェースをダミーで開いたあとにすぐ閉じて、そのあとで別プロセスを起動する方法が知られている。   However, it is difficult for the user interface of the printer driver to be activated in a separate process. This is because a user interface based on the operating system is constructed, and the printer driver is added to the base. Therefore, there is a method in which another service is started when an application calls the user interface of the printer driver, and the service displays the user interface of the printer driver (Patent Document 2). Also, a method is known in which a printer driver user interface is opened with a dummy and then immediately closed, and then another process is started.

特許第4661939Japanese Patent No. 4661939 特開平11−143664号公報JP 11-143664 A

しかしながら、アプリケーションが別のサービスを起動する方法では、すべてのアプリケーションがこの呼び出し方に対応するように変更を加えなければならない。また、ダミーのユーザーインターフェースを開く方法では、一度ユーザーインターフェースを閉じるという余計な動作が入り、ユーザーにとってはわずらわしい。ほかにも、オペレーティングシステムがユーザーインターフェースを提供し、そこにプリンタードライバーがユーザーインターフェースを後からシートとして追加する場合は、正しく動作しなくなってしまう。   However, in the way that an application invokes another service, all applications must be modified to accommodate this invocation. In addition, the method of opening the dummy user interface is troublesome for the user because an extra operation of closing the user interface once is entered. In addition, if the operating system provides a user interface and the printer driver adds the user interface as a sheet later, it will not work correctly.

上記課題を解決するために本発明の情報処理装置は、
プリンタードライバーをインストールするために必要な情報であるセットアップファイルに記載された識別子をデータベースに追加する追加手段と、
第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、印刷設定のユーザーインターフェースを表示する第2のアプリケーションを起動しない制御を行い、前記第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにあることを条件として、前記第2のアプリケーションを前記第1のアプリケーションとは異なるプロセスで起動する制御手段と、を有することを特徴とする。
また、上記課題を解決するために本発明の他の情報処理装置は、
印刷設定のユーザーインターフェースを表示する第1のアプリケーションと、
データベースに追加される識別子が記載された、プリンタードライバーをインストールするために必要な情報であるセットアップファイルと、を有し、
前記セットアップファイルに記載された前記識別子は取得されて前記データベースに追加され、
第2のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、前記第1のアプリケーションは起動せず、前記第2のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにあることを条件として、前記第1のアプリケーションは前記第2のアプリケーションとは異なるプロセスで起動されることを特徴とする。
In order to solve the above problems, an information processing apparatus of the present invention provides:
An additional means for adding the identifier described in the setup file, which is information necessary for installing the printer driver, to the database;
On the condition that the user interface of the printer driver is called from the first application and the identifier is not in the database, control is performed so as not to start the second application that displays the user interface for print settings. Control means for starting the second application in a process different from the first application on condition that the user interface of the printer driver is called from one application and the identifier is in the database; It is characterized by having.
In order to solve the above problem, another information processing apparatus of the present invention
A first application for displaying a print settings user interface;
A setup file, which is information necessary for installing the printer driver, in which an identifier to be added to the database is described;
The identifier described in the setup file is acquired and added to the database;
On the condition that the user interface of the printer driver is called from a second application and the identifier is not in the database, the first application does not start, and the user of the printer driver from the second application The first application is started in a different process from the second application, provided that an interface is invoked and the identifier is in the database.

本発明により、アプリケーションと別のプロセスでプリンタードライバーのユーザーインターフェースが起動するので、アプリケーションまで巻き込んでクラッシュすることがなくなる。   According to the present invention, the user interface of the printer driver is activated in a process different from that of the application, so that the application is not involved and crashed.

本発明の一実施形態としての、コンピューターシステムのハードウェアとソフトウェアのブロック構成図である。It is a block block diagram of the hardware and software of a computer system as one Embodiment of this invention. 本発明の一実施形態としての、クライアントとサーバー、そしてプリンターが接続されたネットワークの構成図である。1 is a configuration diagram of a network in which a client, a server, and a printer are connected as an embodiment of the present invention. FIG. 本発明の一実施形態としての、一般的なコンピューターを用いた印刷処理システムのブロック構成図である。1 is a block configuration diagram of a print processing system using a general computer as an embodiment of the present invention. FIG. 本発明の一実施形態としての、XPS印刷処理システムのブロック構成図である。1 is a block configuration diagram of an XPS print processing system as an embodiment of the present invention. FIG. 本発明の一実施形態としての、印刷設定であるDEVMODE構造体のデータ構造を示したブロック構成図である。FIG. 3 is a block configuration diagram illustrating a data structure of a DEVMODE structure that is a print setting according to an embodiment of the present invention. 本発明の一実施形態としての、XPS印刷処理システムで使用される印刷設定であるXML形式のプリントチケットの一例である。6 is an example of an XML format print ticket that is a print setting used in the XPS print processing system according to an embodiment of the present invention. 本発明の一実施形態としての、プリンタードライバーのユーザーインターフェースである。2 is a user interface of a printer driver as one embodiment of the present invention. 本発明の一実施形態としての、アプリケーションプロセスとは異なるアドバンスドUIアプリケーションのプロセスでユーザーインターフェースが動作しているときのブロック構成図である。FIG. 5 is a block configuration diagram when a user interface is operating in an advanced UI application process different from an application process according to an embodiment of the present invention. 本発明の一実施形態としての、プリンタードライバーにアドバンスドUIアプリケーションのCLSIDが追加された、セットアップインフォメーションファイルの一例である。6 is an example of a setup information file in which an advanced UI application CLSID is added to a printer driver as an embodiment of the present invention. 本発明の一実施形態としての、オペレーティングシステムが、プリンタードライバーをインストールするときのフローチャートである。6 is a flowchart when an operating system installs a printer driver as an embodiment of the present invention. 本発明の一実施形態としての、アドバンスドUIアプリケーションのインストーラーが、アドバンスドUIアプリケーションをインストールするときのフローチャートである。6 is a flowchart when an advanced UI application installer installs an advanced UI application according to an embodiment of the present invention. 本発明の一実施形態としての、オペレーティングシステムが、プリンタードライバーのユーザーインターフェースを開くときのフローチャートである。6 is a flowchart when the operating system opens the user interface of the printer driver as an embodiment of the present invention. 本発明の一実施形態としての、COMプロキシがCOMスタブを呼び出してプロセス間通信を行うときのフローチャートである。It is a flowchart when a COM proxy calls a COM stub and performs interprocess communication as one Embodiment of this invention. 本発明の一実施形態としての、COMスタブがCOMプロキシから呼び出されてプロセス間通信を行うときのフローチャートである。It is a flowchart when a COM stub is called from a COM proxy and performs interprocess communication as one embodiment of the present invention. 本発明の一実施形態としての、アドバンスドUIアプリケーションが動作するときのフローチャートである。6 is a flowchart when an advanced UI application operates as an embodiment of the present invention. 本発明の一実施形態としての、プリントマネージャが、アドバンスドUIアプリケーションを呼び出すときのAPI呼び出しの一例、アドバンスドUIアプリケーションが、プリントマネージャにインターフェースを渡すときのAPI呼び出しの一例である。FIG. 6 illustrates an example of an API call when the print manager calls an advanced UI application, and an example of an API call when the advanced UI application passes an interface to the print manager as an embodiment of the present invention. 本発明の一実施形態としての、XPS印刷システムにおいて、アドバンスドUIアプリケーションが、フィルタパイプラインマネージャにデータを渡すときのブロック構成図である。FIG. 6 is a block configuration diagram when an advanced UI application passes data to a filter pipeline manager in the XPS printing system as one embodiment of the present invention. 本発明の一実施形態としての、XPS印刷システムにおいて、アドバンスドUIアプリケーションが、フィルタパイプラインマネージャにデータを渡すときのフローチャートである。7 is a flowchart when an advanced UI application passes data to a filter pipeline manager in the XPS printing system as one embodiment of the present invention. 本発明の一実施形態としての、プリンタードライバーにおいて、共有プリンターを利用するための、オペレーティングシステムのユーザーインターフェースである。2 is an operating system user interface for using a shared printer in a printer driver according to an embodiment of the present invention; 本発明の一実施形態としての、アドバンスドUIアプリケーションがあるプリンタードライバーにおいて、共有プリンターを禁止するオペレーティングシステムのユーザーインターフェースである。FIG. 6 is a user interface of an operating system that prohibits a shared printer in a printer driver having an advanced UI application according to an embodiment of the present invention. FIG. 本発明の一実施形態としての、オペレーティングシステムが、共有プリンターのユーザーインターフェースを表示するときのフローチャートである。6 is a flowchart when an operating system displays a user interface of a shared printer as an embodiment of the present invention. 本発明の一実施形態としての、アドバンスドUIアプリケーションがあるプリンタードライバーにおいて、ジョブの設定確認を行うときのオペレーティングシステムのユーザーインターフェースである。5 is a user interface of an operating system when checking job settings in a printer driver having an advanced UI application according to an embodiment of the present invention. 本発明の一実施形態としての、アドバンスドUIアプリケーションがあるプリンタードライバーにおいて、デバイスの設定を行うときのオペレーティングシステムのユーザーインターフェースである。5 is a user interface of an operating system when setting a device in a printer driver having an advanced UI application according to an embodiment of the present invention. 本発明の一実施形態としての、オペレーティングシステムが、プリンタードライバーのユーザーインターフェースを表示するときのフローチャートである。6 is a flowchart when an operating system displays a user interface of a printer driver as an embodiment of the present invention. 本発明の一実施形態としての、オペレーティングシステムが、アドバンスドUIアプリケーションを含んだプリンタードライバーをインストールするときのフローチャートである。6 is a flowchart when an operating system installs a printer driver including an advanced UI application according to an embodiment of the present invention. 本発明の一実施形態としての、プリンタードライバーにアドバンスドUIアプリケーションが含まれた、セットアップインフォメーションファイルの一例である。6 is an example of a setup information file in which an advanced UI application is included in a printer driver as an embodiment of the present invention.

[実施例1]
以下、本発明を実施するための最良の形態について図面を用いて説明する。
図1は本発明の実施形態を示す一般的なコンピューターを用いたシステムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。
[Example 1]
The best mode for carrying out the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram of a system using a general computer showing an embodiment of the present invention. Unless otherwise specified, as long as the functions of the present invention are executed, a system that is connected and processed via a network, whether it is a single function or a system composed of a plurality of devices. However, it goes without saying that the present invention can be applied.

CPU101は主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105はオペレーティングシステム(OS)1053やアプリケーションソフト1051等を記録する。キーボード1031やマウス・タッチパネルなどに代表されるポインティングデバイス1032などの入力機器は、入力I/F103を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力I/F104は、データを外部に出力するためのインターフェースであり、モニタ1041やプリンター1042などの出力機器に対してデータを出力する。プリンター1042とは直接接続されるローカルI/Oのみならず、通信I/F106を通じて接続されるネットワーク1061を通して接続されていてもよい。また、107は共通データシステムバスで、モジュール間でそれぞれのデータのやりとりを行う。   The CPU 101 controls the entire apparatus according to a program stored in the ROM 1021 or the RAM 1022 of the main storage device 102 or the auxiliary storage device 105. The RAM 1022 is also used as a work area when the CPU 101 performs various processes. The auxiliary storage device 105 records an operating system (OS) 1053, application software 1051, and the like. An input device such as a pointing device 1032 typified by a keyboard 1031 and a mouse / touch panel is a device for the user to give various instructions to the computer through the input I / F 103. The output I / F 104 is an interface for outputting data to the outside, and outputs data to an output device such as a monitor 1041 or a printer 1042. The printer 1042 may be connected not only through the local I / O directly connected but also through the network 1061 connected through the communication I / F 106. Reference numeral 107 denotes a common data system bus for exchanging data between modules.

図2は本発明の実施の形態におけるネットワーク1061の環境を簡略した図である。印刷を行う文書や画像を作成するクライアントコンピュータ201/202が単体もしくは複数ネットワークに接続されている。また、クライアントのユーザーやプリンターを管理するサーバーコンピュータ203が接続されていることもある。プリンター204/205が単体もしくは複数ネットワークに接続されており、プリンター205のように物理的に接続されていても実際には使用できないオフライン状態であることもある。ネットワークにはPAN(Personal Area Network)、LAN(LocalArea Network)、MAN(Metropolitan Area Network)、WAN(WIDe Area Network)などの小規模から大規模までのネットワークがあり、これらの機器がすべてのネットワークに接続されている。クラウドなど、サーバーやプリンターがインターネットを越えて接続されていてもかまわない。   FIG. 2 is a simplified diagram of the environment of the network 1061 according to the embodiment of the present invention. Client computers 201/202 for creating documents and images to be printed are connected to a single network or a plurality of networks. Also, a server computer 203 that manages client users and printers may be connected. In some cases, the printer 204/205 is connected to a single network or a plurality of networks, and even when physically connected like the printer 205, the printer 204/205 is in an offline state that cannot be actually used. There are small to large networks such as PAN (Personal Area Network), LAN (Local Area Network), MAN (Metropolitan Area Network), and WAN (WIDe Area Network). It is connected. Servers and printers such as the cloud may be connected over the Internet.

図3において、一般的なコンピューターを用いた印刷処理システムを示す。アプリケーション1051と、プリンタードライバー1052、オペレーティングシステム1053は、図1の補助記憶装置105に格納されている。グラフィックスエンジン302、プリントマネージャ306はオペレーティングシステム1053に含まれるモジュールである。ユーザーはキーボード1031やマウス1032などといった入力装置を使用して、出力装置のモニタ1041に映し出されたアプリケーションプログラム1051を使用して作成した文書301の印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行される。まずは、プリンターの選択として、印刷を実行するプリンター1042に対応したプリンタードライバー1052を選択する。次に印刷設定3012の作成を行う。文書の印刷設定3012はプリンタードライバー1052のコンフィギュレーションモジュール304によって初期値が作成される。作成された印刷設定3012をアプリケーション1051もしくはプリンタードライバー1052のユーザーインターフェースを使用してユーザーが望む最終印刷結果になるように変更して設定を行う。たとえば、出力する用紙サイズを変更したり、両面印刷、白黒印刷を行なうといった設定である。プリンタードライバー1052のユーザーインターフェースは、コンフィギュレーションモジュール304かアドバンスドUIアプリケーション(ユーザーインターフェースアプリケーション)311のどちらかが提供する。印刷設定3012はRAM1022上に確保されるが、保存する形式はバイナリのデータ構造体であったり、マークアップ言語のXMLであったりする。この形態はプリンタードライバー1052やオペレーティングシステム1053の仕様によって異なる。印刷設定3012は文書印刷のたびに作成する。しかしながら、プリンター1042のオプション機器構成や、ユーザーごとの環境設定など設定を保持しておきたいものは、プリンタードライバー1052がオペレーティングシステム1053のレジストリデータベース308に保存する。印刷設定3012のユーザーごとのデフォルト値はオペレーティングシステム1053のプリントマネージャ306が、レジストリデータベース308に保存する。最後に描画データの変換を行う。印刷設定3012が作成し終わったら、ユーザーによって印刷処理が実行され、オペレーティングシステム1053に印刷処理を通知する。オペレーティングシステム1053はグラフィックスエンジン302を通じて、指定されたプリンタードライバー1052への描画を行う。印刷設定3012でレイアウト処理が指定されている場合は、プリンタードライバー1052のレンダリングモジュール303に行く前に一時的なスプールファイル307を作成し、レイアウトモジュール309を起動する。レイアウト処理とは用紙の順番を入れ替えたり、一枚の用紙に複数ページを貼り付けたりする処理を指す。レイアウトモジュール309はレイアウトを変更した後、プリンタードライバー1052への描画を再度行う。描画データが送られてきたプリンタードライバー1052はレンダリングモジュール303によって、プリンターが理解できるデータ言語すなわちプリンター制御言語に変換する。このとき印刷設定3012も、プリンター制御言語として変換する。レンダリングモジュール303、コンフィギュレーションモジュール304はともに複数の種類のプリンター1042に対して共通のモジュールであることが多く、機種ごとの違いは機種依存データファイル305に記述されている。レンダリングモジュール303、コンフィギュレーションモジュール304は適宜、この機種依存データファイル305を参照する。変換されたデータはスプールファイル307として逐次保存していく。プリントマネージャ306はスプールファイル307を取得し、印刷ジョブファイルとして印刷処理のスケジュール管理を行う。プリンターが印刷できる状態になったら、プリントマネージャ306はI/Oモジュール310を介してプリンター1042に印刷ジョブデータを送信する。このようにして、アプリケーションからの印刷データがプリンター言語に変換されて印刷を行う。   FIG. 3 shows a print processing system using a general computer. The application 1051, the printer driver 1052, and the operating system 1053 are stored in the auxiliary storage device 105 in FIG. The graphics engine 302 and the print manager 306 are modules included in the operating system 1053. The user uses an input device such as a keyboard 1031 and a mouse 1032 to execute print processing of the document 301 created using the application program 1051 displayed on the monitor 1041 of the output device. The printing process is executed by sequentially performing three processes, printer selection, print setting creation, drawing data conversion, and the like. First, as a printer selection, the printer driver 1052 corresponding to the printer 1042 that executes printing is selected. Next, the print setting 3012 is created. An initial value of the document print setting 3012 is created by the configuration module 304 of the printer driver 1052. Using the user interface of the application 1051 or the printer driver 1052, the created print setting 3012 is changed and set so that the final print result desired by the user is obtained. For example, the output paper size can be changed, duplex printing or monochrome printing can be performed. The user interface of the printer driver 1052 is provided by either the configuration module 304 or the advanced UI application (user interface application) 311. The print setting 3012 is secured on the RAM 1022, but the storage format is a binary data structure or XML of a markup language. This form differs depending on the specifications of the printer driver 1052 and the operating system 1053. The print setting 3012 is created every time a document is printed. However, the printer driver 1052 stores in the registry database 308 of the operating system 1053 what is to be stored, such as optional device configuration of the printer 1042 and environment settings for each user. The default value for each user of the print setting 3012 is stored in the registry database 308 by the print manager 306 of the operating system 1053. Finally, drawing data is converted. When the print setting 3012 has been created, the print process is executed by the user, and the operating system 1053 is notified of the print process. The operating system 1053 performs drawing on the designated printer driver 1052 through the graphics engine 302. If layout processing is specified in the print setting 3012, a temporary spool file 307 is created before going to the rendering module 303 of the printer driver 1052, and the layout module 309 is activated. The layout process refers to a process of changing the order of sheets or pasting a plurality of pages on one sheet. After changing the layout, the layout module 309 performs drawing on the printer driver 1052 again. The printer driver 1052 to which the drawing data is sent is converted by the rendering module 303 into a data language that can be understood by the printer, that is, a printer control language. At this time, the print setting 3012 is also converted as a printer control language. Both the rendering module 303 and the configuration module 304 are often common modules for a plurality of types of printers 1042, and differences between models are described in the model-dependent data file 305. The rendering module 303 and the configuration module 304 refer to this model-dependent data file 305 as appropriate. The converted data is sequentially stored as a spool file 307. The print manager 306 acquires the spool file 307 and manages the print processing schedule as a print job file. When the printer is ready for printing, the print manager 306 transmits print job data to the printer 1042 via the I / O module 310. In this way, the print data from the application is converted into the printer language and printing is performed.

文書301の印刷設定3012を作成するには、アプリケーションによって印刷設定3012を直接書き換えるか、プリンタードライバー1052のコンフィギュレーションモジュール304もしくはアドバンスドUIアプリケーション311が提供するユーザインタフェース(図7)を使用する。印刷設定3012はMicrosoft(登録商標)Windows(登録商標)オペレーティングシステムでは、DEVMODE構造体と呼ばれる図5の構造をしている。DEVMODE構造体はオペレーティングシステムで公開定義されている標準の設定領域501と、プリンタードライバーが拡張した設定領域502に分けられている。標準の設定領域501には、用紙サイズや給紙段の切り替え、カラー白黒の切り替えなど印刷の基本的な設定の値がある。拡張した設定領域502には、プリンターのオプションに応じた排紙機能や、細かい色調整機能などの値がある。アプリケーションは各プリンタードライバー1052が持つ拡張設定を知ることはできないので、直接印刷設定を書き換えることができるのは、システムで定義されている標準の設定領域501だけとなる。そこで、アプリケーションはプリンタードライバー1052のユーザーインターフェースを表示させて、拡張された印刷設定502をユーザーに行わせるのが一般的である。コンフィギュレーションモジュール304はユーザーインターフェースだけではなく、アプリケーションプログラムインタフェース(API:Application Programming Interface)も提供している。なので、ユーザーインターフェースを表示せずに拡張された印刷設定502を外部から設定することも可能である。しかし、コンフィギュレーションモジュール304のAPIを使用する場合はアプリケーションがプリンタードライバー1052ごとに対応しなければならないので、一般的なアプリケーションは標準の設定領域501のみ変更を行う。   In order to create the print setting 3012 of the document 301, the print setting 3012 is directly rewritten by an application or the user interface (FIG. 7) provided by the configuration module 304 of the printer driver 1052 or the advanced UI application 311 is used. The print setting 3012 has a structure shown in FIG. 5 called a DEVMODE structure in the Microsoft (registered trademark) Windows (registered trademark) operating system. The DEVMODE structure is divided into a standard setting area 501 publicly defined in the operating system and a setting area 502 extended by the printer driver. The standard setting area 501 includes basic print setting values such as paper size and paper feed stage switching and color / monochrome switching. The expanded setting area 502 includes values such as a paper discharge function and a fine color adjustment function according to printer options. Since the application cannot know the extended setting of each printer driver 1052, only the standard setting area 501 defined in the system can rewrite the print setting directly. Therefore, the application generally displays the user interface of the printer driver 1052 and causes the user to perform expanded print settings 502. The configuration module 304 not only provides a user interface, but also provides an application program interface (API: Application Programming Interface). Therefore, it is also possible to set the extended print setting 502 from the outside without displaying the user interface. However, when the API of the configuration module 304 is used, the application must correspond to each printer driver 1052, so that a general application changes only the standard setting area 501.

もうひとつ、本発明を適用できる別の印刷システムを説明する。図3はGDI印刷システムと呼ばれるのに対し、図4はXPS印刷システムのブロック構成図である。XPS印刷システムはXML Paper Specificationと呼ばれる文書ファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。XPS印刷システムもGDI印刷システムと同じく、オペレーティングシステム1053上で動作している。プリントマネージャ306、GDItoXPS変換モジュール405、フィルタパイプラインマネージャ409はオペレーティングシステム1053に含まれるモジュールである。プリンタードライバー1052とフィルタパイプラインマネージャ409の各フィルタは、図1の補助記憶装置105にプリンタードライバー1052として格納されている。フィルタパイプラインマネージャ409はオペレーティングシステムに含まれるが、各フィルタはプリンタードライバー1052のモジュールである。GDI印刷アプリケーション401とXPS印刷アプリケーション402は、図1の補助記憶装置105にアプリケーション1051として格納されている。ユーザーはキーボード1031やマウス1032などといった入力装置を使用して、出力装置のモニタ1041に映し出されたGDI印刷アプリケーションプログラム401(以下、GDIアプリと略す)、もしくはXPS印刷アプリケーションプログラム402(以下、XPSアプリと略す)から印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行する。   Another printing system to which the present invention can be applied will be described. FIG. 3 is called a GDI printing system, whereas FIG. 4 is a block diagram of the XPS printing system. The XPS printing system is a system that performs printing by using a document file format called XML Paper Specification as spool data. The XPS printing system operates on the operating system 1053, as does the GDI printing system. The print manager 306, GDI to XPS conversion module 405, and filter pipeline manager 409 are modules included in the operating system 1053. Each filter of the printer driver 1052 and the filter pipeline manager 409 is stored as the printer driver 1052 in the auxiliary storage device 105 of FIG. The filter pipeline manager 409 is included in the operating system, but each filter is a module of the printer driver 1052. The GDI print application 401 and the XPS print application 402 are stored as applications 1051 in the auxiliary storage device 105 of FIG. A user uses an input device such as a keyboard 1031 or a mouse 1032 to display a GDI print application program 401 (hereinafter abbreviated as a GDI application) displayed on a monitor 1041 of an output device or an XPS print application program 402 (hereinafter referred to as an XPS application). Print processing is executed. The print process is executed by sequentially performing three processes, ie, printer selection, print setting creation, and drawing data conversion.

まずは、印刷したいプリンター1042の選択をする、これは、印刷を実行するプリンター1042に対応したプリンタードライバー1052を選択することと同義である。次に印刷設定を作成する。印刷設定はアプリケーションが印刷設定用のメモリを確保し、アプリケーションかプリンタードライバーのコンフィギュレーションモジュール304が、機種依存ファイル305を利用して設定データを埋めるという形で行われる。GDIアプリ401では印刷設定データとしてバイナリのDEVMODE構造体403を用い、XPSアプリ402ではマークアップ言語のXMLで記載されたプリントチケット404を用いる。DEVMODE構造体403もプリントチケット404も、図5の構造のように、オペレーティングシステムが定義する標準領域とプリンタードライバーが独自で定義する拡張領域を持つ。また、プリントチケット404は、図6にあるようなXML形式で記述された印刷設定情報であるので、標準領域と拡張領域は名前空間によって記載が分かれている。このDEVMODE構造体403もしくはプリントチケット404が印刷設定を保持しており、アプリケーションが直接書き換えることで印刷設定を変更する。プリンター1042に依存した専用の設定は、コンフィギュレーションモジュール304もしくはアドバンスドUIアプリケーション311が持つプリンタードライバー1052のユーザインタフェース(図7)を表示して行う。プリンタードライバー1052は、ユーザーインターフェースの設定に従い、DEVMODE構造体403もしくはプリントチケット404のプリンター1042に依存した設定を変更する。印刷設定とは具体的に、出力する用紙サイズを「A4」にする、両面印刷を行う、カラーと白黒を切り替える、給紙段を指定するなどといった印刷を行うのに必要なデータのことを指す。プリントチケット404は印刷設定がXML形式で記述されているので、XPSアプリ402がすべての設定値を直接変更して書き換えることは容易だが、従来のようにプリンタードライバー1052のユーザーインターフェースを使って設定変更してもかまわない。印刷設定は文書印刷のたびに作成するが、プリンター1042のオプション機器や、ユーザーごとの環境設定など設定を保持しておきたいものは、ユーザーインターフェースがオペレーティングシステムのレジストリデータベース308に保存する。印刷設定のユーザーごとのデフォルト値はオペレーティングシステムのプリントマネージャ306が、レジストリデータベース308に保存する。最後に描画データの変換を行う。印刷設定が確定したら、ユーザーはアプリケーションから印刷処理を実行する。GDIアプリ401から印刷する場合は、プリンタードライバーの形態を取るGDItoXPS変換モジュール405に描画データが送られ、XPSスプールファイル407が作成される。このときGDItoXPS変換モジュール405はコンフィギュレーションモジュール304を呼び出し、印刷設定をDEVMODE構造体403からプリントチケット404に変換する。XPSアプリ402から印刷する場合は、XPSファイルをXPSアプリ自身が生成するのと、オペレーティングシステムがXPSアプリからの描画命令に応じてXPSファイルを生成するのと2通りの方法がある。どちらの方法であっても、印刷の途中でXPSスプールファイル407を生成する。このようにXPS印刷システムは、印刷時に必ずXPSスプールファイル407を生成するのが特徴である。   First, the printer 1042 to be printed is selected, which is the same as selecting the printer driver 1052 corresponding to the printer 1042 that executes printing. Next, print settings are created. The print setting is performed in such a manner that the application secures a memory for print setting, and the configuration module 304 of the application or the printer driver uses the model-dependent file 305 to fill the setting data. The GDI application 401 uses a binary DEVMODE structure 403 as print setting data, and the XPS application 402 uses a print ticket 404 written in markup language XML. Both the DEVMODE structure 403 and the print ticket 404 have a standard area defined by the operating system and an extension area uniquely defined by the printer driver, as in the structure of FIG. Since the print ticket 404 is print setting information described in the XML format as shown in FIG. 6, the description of the standard area and the extended area is divided according to the name space. The DEVMODE structure 403 or the print ticket 404 holds print settings, and the application changes the print settings directly by rewriting. The dedicated setting depending on the printer 1042 is performed by displaying the user interface (FIG. 7) of the printer driver 1052 that the configuration module 304 or the advanced UI application 311 has. The printer driver 1052 changes the setting depending on the printer 1042 of the DEVMODE structure 403 or the print ticket 404 according to the setting of the user interface. Specifically, the print setting refers to data necessary for printing such as setting the output paper size to “A4”, performing double-sided printing, switching between color and black and white, and specifying a paper feed stage. . Since the print settings of the print ticket 404 are described in the XML format, it is easy for the XPS application 402 to directly change and rewrite all the setting values. However, the setting can be changed using the user interface of the printer driver 1052 as in the past. It doesn't matter. The print settings are created every time the document is printed. However, the user interface stores settings such as optional devices of the printer 1042 and environment settings for each user in the registry database 308 of the operating system. The operating system print manager 306 stores default values for each user in the print settings in the registry database 308. Finally, drawing data is converted. When the print settings are determined, the user executes print processing from the application. When printing from the GDI application 401, drawing data is sent to the GDI to XPS conversion module 405 in the form of a printer driver, and an XPS spool file 407 is created. At this time, the GDI to XPS conversion module 405 calls the configuration module 304 and converts the print setting from the DEVMODE structure 403 to the print ticket 404. When printing from the XPS application 402, there are two methods: an XPS file is generated by the XPS application itself, and an XPS file is generated by the operating system in response to a drawing command from the XPS application. In either method, the XPS spool file 407 is generated during printing. As described above, the XPS printing system is characterized in that the XPS spool file 407 is always generated at the time of printing.

XPSスプールファイル407が生成されたら、プリントフィルタパイプラインプロセスに処理が渡される。プリントフィルタパイプラインプロセスは複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル413でフィルタの数や順番を制御する。プリントフィルタパイプラインプロセスで動作するフィルタパイプラインマネージャはフィルタコンフィギュレーションファイル413に従って、この実施例では設定フィルタ410、レイアウトフィルタ411、レンダラフィルタ412の順に処理を行う。フィルタはプリンタードライバー1052の構成によって、数や種類が異なる。印刷処理はXPSスプールファイル407をフィルタに受け渡すことで行われ、フィルタがそれぞれXPSスプールファイル407を加工し次のフィルタに渡していくことで処理が進む。最後にはプリンターが理解できるデータ言語であるプリンター制御言語(以下、PDL(Page Description Language)と略す)となって出力される。もちろんプリンター1042がXPSスプールファイル407を直接読み込んで印刷できるXPSダイレクトプリンタであれば、すべてのフィルタをスルーして印刷してもよい。設定フィルタ410ではプリントチケットを読み込んで印刷に必要なデータをプリントチケットに書き込む処理を行う。レイアウトフィルタ411では倍率の変更や製本の面付けレイアウトやスタンプなどレイアウトに関する処理を行う。レイアウトフィルタ411では、XPSスプールファイル407に含まれる印刷設定プリントチケット404に従って動作する。そのため、たとえば面付けの設定がプリントチケット404に存在しないときは、レイアウトフィルタ411は何も動作せずスルーして、次のフィルタにXPSスプールファイル407をそのまま渡す。最後のレンダラフィルタ412では、XPSスプールファイル407をレンダリングしてPDLに変換する。PDLデータは印刷処理のスケジュール管理を行うプリントマネージャ306で管理され、キュー(待ち行列)に印刷ジョブが次々と登録される。プリンター1042が印刷できる状態になったら、キューに登録した順にPDLデータをI/Oモニタ310を通して送信する。このようにして、アプリケーションからの印刷データをプリンター言語に変換することがプリンタードライバーの主な役目であり、印刷処理が行われる。   When the XPS spool file 407 is generated, processing is passed to the print filter pipeline process. The print filter pipeline process is a mechanism in which printing is performed by passing a plurality of filters, and the number and order of the filters are controlled by the filter configuration file 413. In this embodiment, the filter pipeline manager that operates in the print filter pipeline process performs processing in the order of the setting filter 410, the layout filter 411, and the renderer filter 412 in accordance with the filter configuration file 413. The number and type of filters differ depending on the configuration of the printer driver 1052. The printing process is performed by passing the XPS spool file 407 to the filter, and the process proceeds when the filter processes the XPS spool file 407 and passes it to the next filter. Finally, it is output as a printer control language (hereinafter abbreviated as PDL (Page Description Language)) which is a data language understood by the printer. Of course, if the printer 1042 is an XPS direct printer that can directly read and print the XPS spool file 407, printing may be performed through all the filters. The setting filter 410 reads the print ticket and writes data necessary for printing into the print ticket. The layout filter 411 performs layout-related processing such as magnification change, bookbinding layout and stamp. The layout filter 411 operates according to the print setting print ticket 404 included in the XPS spool file 407. Therefore, for example, when the imposition setting does not exist in the print ticket 404, the layout filter 411 does not operate anything and passes through, and passes the XPS spool file 407 as it is to the next filter. The final renderer filter 412 renders the XPS spool file 407 and converts it into PDL. The PDL data is managed by a print manager 306 that manages print processing schedules, and print jobs are successively registered in a queue (queue). When the printer 1042 is ready for printing, the PDL data is transmitted through the I / O monitor 310 in the order registered in the queue. Thus, converting the print data from the application into the printer language is the main role of the printer driver, and the printing process is performed.

次にプリンタードライバー1052とアドバンスドUIアプリケーション311の関連付けを説明する。   Next, the association between the printer driver 1052 and the advanced UI application 311 will be described.

まずは、プリンタードライバー1052のインストールを図10のフローチャートに従って説明する。プリンタードライバー1052は図9のセットアップインフォメーションファイル(以下、INFファイル)に従ってオペレーティングシステム1053へインストールされる。INFファイルには、プリンターの機種名や構成するファイル、バージョンなどプリンタードライバー1052をインストールするために必要な情報が記載されている。プリンタードライバー1052のインストールセットは、INFファイルとプリンタードライバー1052を構成する各種ファイルが集まって、ひとつのセットになっている。オペレーティングシステム1053は、プリンタードライバー1052のインストールが開始されると(S1001)、指定された機種のプリンタードライバー1052のインストールセットを探す。インストールセットはオペレーティングシステム1053に組み込まれているものを使用するが、ユーザーによって指定されるか、あらかじめ特定された配信サーバーなどから提供されることもある。オペレーティングシステム1053は、インストールセットに含まれるINFファイルを元にファイルをコピーし、レジストリデータベース308に必要なドライバ情報を書き込むことで、通常のプリンタードライバーのインストールが完了する(S1002)。ここで、INFファイルの中に、アドバンスドUIアプリケーション311のCLSIDが記載されているかどうかを確認する(S1003)。CLSIDとはUUID(Universally Unique Identifier)の一種で、16バイトの数値で構成され、世界で一意な識別子である。CLSIDはアドバンスドUIアプリケーション311を識別するために、使用するアドバンスドUIアプリケーション311に割り当てられたCLSIDをセットアップファイルに記載しておく。図9ではAdvancedUICLSIDというキーが、アドバンスドUIアプリケーション311のCLSIDに該当する。アドバンスドUIアプリケーション311のCLSIDが存在すれば、オペレーティングシステム1053はINFファイルからCLSIDを取得する(S1004)。オペレーティングシステム1053は、アドバンスドUIアプリケーション311のCLSIDを、レジストリデータベース308にあるプリンター機種ごとのドライバ情報に、追加して記載しておく(S1005)。これで、プリンタードライバー1052のインストールが完了する。   First, installation of the printer driver 1052 will be described with reference to the flowchart of FIG. The printer driver 1052 is installed in the operating system 1053 according to the setup information file (hereinafter referred to as INF file) in FIG. The INF file describes information necessary for installing the printer driver 1052, such as the model name of the printer, the file to be configured, and the version. The installation set of the printer driver 1052 is a set of INF files and various files that constitute the printer driver 1052. When the installation of the printer driver 1052 is started (S1001), the operating system 1053 searches for an installation set of the printer driver 1052 of the designated model. The installation set uses one installed in the operating system 1053, but may be specified by a user or provided from a distribution server specified in advance. The operating system 1053 copies the file based on the INF file included in the installation set, and writes necessary driver information in the registry database 308, thereby completing the normal printer driver installation (S1002). Here, it is confirmed whether or not the CLSID of the advanced UI application 311 is described in the INF file (S1003). The CLSID is a kind of UUID (Universally Unique Identifier), is composed of a 16-byte numerical value, and is an identifier unique in the world. In order to identify the advanced UI application 311, the CLSID describes the CLSID assigned to the advanced UI application 311 to be used in the setup file. In FIG. 9, a key called AdvancedUILSID corresponds to CLSID of the advanced UI application 311. If the CLSID of the advanced UI application 311 exists, the operating system 1053 acquires the CLSID from the INF file (S1004). The operating system 1053 additionally describes the CLSID of the advanced UI application 311 in the driver information for each printer model in the registry database 308 (S1005). This completes the installation of the printer driver 1052.

次にアドバンスドUIアプリケーション311のインストールを、図11のフローチャートと図15のフローチャートの一部を使用して説明する。アドバンスドUIアプリケーション311は、プリンタードライバー1052のインストールセットとは別に、インストーラーとアドバンスドUIアプリケーション311の構成ファイルからなるアドバンスドUIアプリケーションのインストールセットが存在する。ユーザーがインストーラーを実行すると、まずインストーラーはアドバンスドUIアプリケーション311と構成ファイルをユーザーに指定されたアプリケーションを格納するフォルダにコピーする(S1101)。次に、インストーラーは、引数として/RegSvrオプションをつけてアドバンスドUIアプリケーション311を起動する(S1102)。起動されたアドバンスドUIアプリケーション311は、/RegSvrオプションをつけて起動されているかどうかを判定する(S1501)。アドバンスドUIアプリケーション311は、/RegSvrオプションがついていれば、COM(Component Object Model)のアウトプロセスサーバーとして、レジストリデータベース308に情報を書き込む(S1502)。COMはMicrosoft社のソフトウェア同士の通信技術で、通信する各ソフトウェアコンポーネントは一意のCLSIDによって識別される。アウトプロセスサーバーとは、呼び出したプロセスと別のプロセスで動作するコンポーネントであり、アドバンスドUIアプリケーション311はアウトプロセスサーバーであることを明示する。レジストリデータベース308に書き込む情報としては、アプリケーション名を含んだフルパスと、アドバンスドUIアプリケーションのCLSID、そしてアウトプロセスサーバーであることを示す“LocalServer32”の文字列である。このCLSIDは図9のINFファイルで指定したCLSIDと同一のものでなければならない。これで、アドバンスドUIアプリケーション311のインストールが完了する。   Next, installation of the advanced UI application 311 will be described using the flowchart of FIG. 11 and a part of the flowchart of FIG. The advanced UI application 311 includes an install set of an advanced UI application including an installer and a configuration file of the advanced UI application 311 in addition to the installation set of the printer driver 1052. When the user executes the installer, the installer first copies the advanced UI application 311 and the configuration file to a folder storing the application designated by the user (S1101). Next, the installer starts the advanced UI application 311 with the / RegSvr option as an argument (S1102). The activated advanced UI application 311 determines whether it is activated with the / RegSvr option (S1501). If the / RegSvr option is attached, the advanced UI application 311 writes information in the registry database 308 as an out-of-process server of COM (Component Object Model) (S1502). COM is a communication technology between Microsoft software, and each software component that communicates is identified by a unique CLSID. The out-process server is a component that operates in a process different from the calling process, and clearly indicates that the advanced UI application 311 is an out-process server. Information to be written in the registry database 308 includes a full path including the application name, a CLSID of the advanced UI application, and a character string “LocalServer32” indicating an out-of-process server. This CLSID must be the same as the CLSID specified in the INF file of FIG. This completes the installation of the advanced UI application 311.

プリンタードライバー1052のインストールによって取得したCLSIDと、アドバンスドUIアプリケーション311のインストールによって記載されたCLSIDが同一であることから、オペレーティングシステム1053は両者を関連付けることができる。次にアプリケーション1051から、プリンタードライバー1052のユーザーインターフェースを表示するフローを、図8のブロック構成図と、図12、図15のフローチャートで説明する。   Since the CLSID acquired by installing the printer driver 1052 and the CLSID described by installing the advanced UI application 311 are the same, the operating system 1053 can associate them. Next, a flow for displaying the user interface of the printer driver 1052 from the application 1051 will be described with reference to the block configuration diagram of FIG. 8 and the flowcharts of FIGS.

オペレーティングシステム1053のモジュールであるプリントマネージャ306は、アプリケーション1051からプリンタードライバー1052のユーザーインターフェースを表示するAPIの呼び出しを受け取る(S1201)。そのとき、プリントマネージャ306は、アプリケーション1051から引数として印刷設定のDEVMODE構造体も受け取る。これは、受け取った印刷設定のDEVMODE構造体に従ってユーザーインターフェースを構築することで、現在の印刷設定をユーザーに見せることができるためである。また、プリントマネージャ306は、アプリケーション1051からどのプリンタードライバー1052を使用するのかを指定する機種情報も受け取る。これは、複数のプリンタードライバー1052がオペレーティングシステム1053にインストールされていたときに、どのプリンタードライバー1052を使用するのかを明確にするためである。プリントマネージャ306は、アプリケーション1051から受け取った機種情報を元に、レジストリデータベース308を検索する。レジストリデータベース308にはプリンタードライバー1052のインストール時に記載されたドライバ情報が書き込まれており、プリントマネージャ306は指定された機種情報に応じたドライバ情報を取得する(S1202)。プリントマネージャ306は取得したドライバ情報の中にアドバンスドUIアプリケーションのCLSIDがあるかどうかを判定する(S1203)。なければ、プリントマネージャ306は、プリンタードライバー1052のコンフィギュレーションモジュール304のユーザーインターフェースを開くために、CPSUI801を呼び出す(S1212)。CPSUI(Common Property Sheet User Interface)801は、プロパティシートのベースとなる土台を作成し、コンフィギュレーションモジュール304にユーザーインターフェースの作成を依頼する。コンフィギュレーションモジュール304は機種依存データファイル305を使用して、プリンターの機種に応じたユーザーインターフェースを表示する。すなわちアプリケーション1051と同一プロセスでユーザーインターフェースモジュールを起動する。アドバンスドUIアプリケーションのCLSIDが存在するときは、プリントマネージャ306はCLSIDとアウトプロセスサーバーで起動することを引数に指定してオペレーティングシステム1053のAPIを呼び出す(図16(1))。プリントマネージャ306はオペレーティングシステム1053のAPIの中で、指定されたCLSIDを検索キーにしてレジストリデータベース308を検索する。プリントマネージャ306はオペレーティングシステム1053のAPIの中で、アドバンスドUIアプリケーション311がすでにインストールされていれば、レジストリデータベース308からアドバンスドUIアプリケーション311のファイル名を含むフルパスを取得できる(S1204)。もし、存在しない場合はCLSIDが存在しなかったときと同じく、プリンタードライバーのユーザーインターフェースを表示する。これは、INFファイルにCLSIDが記載されているのに、アドバンスドUIアプリケーション311がインストールされていない環境で発生する。フルパスを取得したら、プリントマネージャ306はオペレーティングシステム1053のAPIの中から、アドバンスドUIアプリケーション311をアプリケーション1051と異なるプロセスで起動する(S1205)。起動されたアドバンスドUIアプリケーション311は、/RegSvrオプションがついていないので(S1501)、ウィンドウを作成する(S1503)。この時点で作成したウィンドウはまだ表示してはおらず、メッセージループでプリントマネージャ306からの応答を待つために作成しているだけである。アドバンスドUIアプリケーション311は、アドバンスドUIアプリケーション311のインターフェースオブジェクトを作成し、インターフェースオブジェクトを引数に指定してオペレーティングシステム1053のAPIを呼び出す(S1504と図16(2))。すると、プリントマネージャ306は、アドバンスドUIアプリケーション311のインターフェースを受け取ることができる(S1206)。インターフェースを受け取ったプリントマネージャ306は、DEVMODE構造体をプリントチケットに変換する(S1207)。プリントマネージャ306は、コンフィギュレーションモジュール304を呼び出すことで、プリントチケットへの変換を行う。DEVMODE構造体のようなバイナリデータのままでは、異なるプロセス間のデータを送受信するのに不都合なため、テキスト形式のマークアップ言語XMLのプリントチケットへ変換する。プリントマネージャ306は、プリンター機種、CLSIDを元に取得したドライバ情報、プリントチケット、イベント情報を、受け取ったインターフェースの引数として、インターフェースのメソッドを呼び出す(S1208)。イベント情報とは、アプリケーション1051がプリンタードライバー1052に対してどのようなユーザーインターフェースを表示するかの情報である。プリンタードライバーのユーザーインターフェースは1つではなく、印刷設定を行うユーザーインターフェース、デバイス設定を行うユーザーインターフェース、ジョブの印刷設定の確認を行うユーザーインターフェースが存在する。このうち、どのユーザーインターフェースを表示するのかをイベント情報として、アドバンスドUIアプリケーション311に通知する必要があるからである。アドバンスドUIアプリケーション311はインターフェースの呼び出しを受け取り、UIのイベントかどうかを判定する(S1505)。アドバンスドUIアプリケーション311は、UIのイベントであることが確認できたら、呼び出されたインターフェースから、プリンター機種、ドライバ情報、プリントチケットを取得する(S1506)。次にアドバンスドUIアプリケーション311は、UIイベントの種類を判定し、表示するユーザーインターフェースを決定する。アドバンスドUIアプリケーション311はアプリから印刷設定のユーザーインターフェースが呼び出されたときは(S1507)、印刷設定のユーザーインターフェースを表示する(S1508)。アドバンスドUIアプリケーション311はデバイス設定のユーザーインターフェースが呼び出されたときは(S1509)、デバイス設定のユーザーインターフェースを表示する(S1510)。アドバンスドUIアプリケーション311はジョブ設定のユーザーインターフェースが呼び出されたときは(S1511)、ジョブ設定のユーザーインターフェースを表示する(S1512)。アドバンスドUIアプリケーション311は取得したプリンター機種とドライバ情報、プリントチケットに基づいてユーザーインターフェースを表示する。表示に使用する印刷設定の項目や、設定項目同士の禁則などのロジックについては、アドバンスドUIアプリケーション311はプリンタードライバー1052を呼び出してデータの取得や制御を行う。アドバンスドUIアプリケーション311は、プリンタードライバー1052のコンフィギュレーションモジュール304のユーザーインターフェースを表示することもできる。しかしながら、自分でユーザーインターフェースを表示することによって、コンフィギュレーションモジュール304からユーザーインターフェースをなくすことができる。このようにすることで、プリンタードライバー1052のコンフィギュレーションモジュール304は印刷設定のみにすることができ、プリンタードライバー1052を更新することなく、ユーザーインターフェースを自由に組み替えることができるようになる。もちろん、アドバンスドUIアプリケーション311が直接プリンタードライバーを呼び出すのではなく、インターフェースを通じてプリンタードライバーを呼び出すためのドライバーインターフェースを渡してもらうことも可能である。このドライバーインターフェースを通じて、アドバンスドUIアプリケーション311は、印刷設定の項目や、設定項目同士の禁則をすることもできる。ユーザーがユーザーインターフェースで印刷設定を終えたら、アドバンスドUIアプリケーション311は、ユーザーインターフェースを閉じてウィンドウを破棄する(S1513)。アドバンスドUIアプリケーション311は、ユーザーインターフェースの設定を、インターフェースで渡されたプリントチケットに反映する(S1514)。アドバンスドUIアプリケーション311は、プリントチケットに反映できないデータについては、レジストリデータベース308に保存する(S1515)。プリントチケットに反映できないデータは、プリンターのフィニッシャーなどのオプション機器構成や、ユーザー名やパスワードなどの個人情報、お気に入りやスタンプといったユーザーが作成する機能などが存在する。すべての保存が終了したら、アドバンスドUIアプリケーション311は終了して、呼び出し元であるプリントマネージャ306に制御を返す。プリントマネージャ306は、アドバンスドUIアプリケーション311がユーザーインターフェースを表示している間、終了するのを待っている(S1209)。アドバンスドUIアプリケーション311が終了するのが確認できたら、プリントマネージャ306は、アドバンスドUIアプリケーション311によって変更されたプリントチケットを受け取る。そして、DEVMODE構造体に変換するためにプリンタードライバー1052のコンフィギュレーションモジュール304を呼び出す(S1210)。プリントマネージャ306は、アプリケーションに対して変換したDEVMODE構造体を返し、APIを終了する(S1211)。このようにして、アプリケーションとは別のプロセスで、印刷設定に関連するユーザーインターフェースを実行する。   The print manager 306, which is a module of the operating system 1053, receives an API call for displaying the user interface of the printer driver 1052 from the application 1051 (S1201). At this time, the print manager 306 also receives a print setting DEVMODE structure from the application 1051 as an argument. This is because the current print settings can be shown to the user by constructing the user interface according to the received DEVMODE structure of the print settings. The print manager 306 also receives model information for designating which printer driver 1052 to use from the application 1051. This is to clarify which printer driver 1052 is used when a plurality of printer drivers 1052 are installed in the operating system 1053. The print manager 306 searches the registry database 308 based on the model information received from the application 1051. Driver information described when the printer driver 1052 is installed is written in the registry database 308, and the print manager 306 acquires driver information corresponding to the specified model information (S1202). The print manager 306 determines whether or not the advanced UI application CLSID is included in the acquired driver information (S1203). If not, the print manager 306 calls the CPSUI 801 to open the user interface of the configuration module 304 of the printer driver 1052 (S1212). A CPSUI (Common Property Sheet User Interface) 801 creates a base serving as a base of a property sheet, and requests the configuration module 304 to create a user interface. The configuration module 304 uses the model-dependent data file 305 to display a user interface corresponding to the printer model. That is, the user interface module is activated in the same process as the application 1051. When the advanced UI application CLSID exists, the print manager 306 calls the API of the operating system 1053 by specifying as arguments the activation of the CLSID and the out-process server (FIG. 16 (1)). The print manager 306 searches the registry database 308 in the API of the operating system 1053 using the designated CLSID as a search key. If the advanced UI application 311 is already installed in the API of the operating system 1053, the print manager 306 can acquire the full path including the file name of the advanced UI application 311 from the registry database 308 (S1204). If it does not exist, the user interface of the printer driver is displayed as in the case where CLSID does not exist. This occurs in an environment where the advanced UI application 311 is not installed even though CLSID is described in the INF file. After acquiring the full path, the print manager 306 activates the advanced UI application 311 from the API of the operating system 1053 in a process different from that of the application 1051 (S1205). The activated advanced UI application 311 does not have the / RegSvr option (S1501), and thus creates a window (S1503). The window created at this point has not yet been displayed, but is only created to wait for a response from the print manager 306 in a message loop. The advanced UI application 311 creates an interface object of the advanced UI application 311 and calls the API of the operating system 1053 by specifying the interface object as an argument (S1504 and FIG. 16 (2)). Then, the print manager 306 can receive the interface of the advanced UI application 311 (S1206). The print manager 306 that has received the interface converts the DEVMODE structure into a print ticket (S1207). The print manager 306 calls the configuration module 304 to convert it into a print ticket. The binary data such as the DEVMODE structure is inconvenient for transmitting and receiving data between different processes, and is therefore converted into a text-form markup language XML print ticket. The print manager 306 calls an interface method using the driver model, the print ticket, and the event information acquired based on the printer model and CLSID as arguments of the received interface (S1208). The event information is information indicating what user interface the application 1051 displays on the printer driver 1052. There is not a single user interface for the printer driver, but there are a user interface for performing print settings, a user interface for performing device settings, and a user interface for confirming print settings for jobs. This is because it is necessary to notify the advanced UI application 311 of which user interface to display as event information. The advanced UI application 311 receives the interface call and determines whether the event is a UI event (S1505). If the advanced UI application 311 confirms that the event is a UI event, the advanced UI application 311 acquires a printer model, driver information, and a print ticket from the called interface (S1506). Next, the advanced UI application 311 determines the type of UI event and determines the user interface to be displayed. When the user interface for print settings is called from the application (S1507), the advanced UI application 311 displays the user interface for print settings (S1508). When the user interface for device setting is called (S1509), the advanced UI application 311 displays the user interface for device setting (S1510). When the user interface for job setting is called (S1511), the advanced UI application 311 displays the user interface for job setting (S1512). The advanced UI application 311 displays a user interface based on the acquired printer model, driver information, and print ticket. The advanced UI application 311 calls the printer driver 1052 to acquire and control data such as print setting items used for display and logic such as prohibition between setting items. The advanced UI application 311 can also display the user interface of the configuration module 304 of the printer driver 1052. However, the user interface can be eliminated from the configuration module 304 by displaying the user interface yourself. In this way, the configuration module 304 of the printer driver 1052 can be set to only print settings, and the user interface can be freely rearranged without updating the printer driver 1052. Of course, the advanced UI application 311 does not directly call the printer driver, but can also pass a driver interface for calling the printer driver through the interface. Through this driver interface, the advanced UI application 311 can also prohibit print setting items and setting items. When the user completes the print settings on the user interface, the advanced UI application 311 closes the user interface and discards the window (S1513). The advanced UI application 311 reflects the setting of the user interface on the print ticket passed through the interface (S1514). The advanced UI application 311 saves data that cannot be reflected in the print ticket in the registry database 308 (S1515). Data that cannot be reflected in the print ticket includes optional device configurations such as printer finishers, personal information such as user names and passwords, and user-created functions such as favorites and stamps. When all the storages are completed, the advanced UI application 311 ends and returns control to the call manager 306 that is the calling source. The print manager 306 waits for completion while the advanced UI application 311 displays the user interface (S1209). When it is confirmed that the advanced UI application 311 is terminated, the print manager 306 receives the print ticket changed by the advanced UI application 311. Then, the configuration module 304 of the printer driver 1052 is called to convert the DEVMODE structure (S1210). The print manager 306 returns the converted DEVMODE structure to the application, and ends the API (S1211). In this way, a user interface related to print settings is executed in a process separate from the application.

アプリケーションのプロセスと、アドバンスドUIアプリケーションのプロセスの間は、インターフェースのメソッドの呼び出しとなっているが、図8のブロック構成図と図13、図14のフローチャートを使用してその中身を説明する。インターフェースが呼び出されると、オペレーティングシステム1053はCOMプロキシ802を呼び出す。COMプロキシ802は、インターフェースのメソッドに入力された引数データをマーシャリングする(S1301)。マーシャリングとは異なる2つのシステムでデータを送受信できるように、オブジェクトデータをストリームに格納することである。COMプロキシ802はRPC(Remote Procedure Call)を使って、アドバンスドUIアプリケーション311のプロセスにあるCOMスタブ803を呼び出す(S1302)。RPCは、離れたシステム同士で手続きを呼び出すことができる機能である。COMプロキシ802は呼び出したCOMスタブ803に、マーシャリングしたストリームデータを送信する。COMスタブ803は、COMプロキシ802から受け取ったストリームをアンマーシャリングし、元のオブジェクトデータであるメソッドの引数に戻す(S1401)。アンマーシャリングとは、ストリームを元のオブジェクトデータに戻すことである。そして、プロセスのメインスレッドであるアドバンスドUIアプリケーション311に対して、メソッドの引数データを引き渡す(S1402)。このようにしてプリントマネージャ306は、別のプロセスであるアドバンスドUIアプリケーション311を起動し、データを送信している。逆にアドバンスドUIアプリケーション311から、プリントマネージャ306に送信するときは、COMプロキシ802がCOMスタブに、COMスタブ803がCOMプロキシになる。したがって、COMプロキシとCOMスタブは同一の機能を持った同じモジュールである。   The interface method is called between the application process and the advanced UI application process. The contents will be described with reference to the block diagram of FIG. 8 and the flowcharts of FIGS. When the interface is called, the operating system 1053 calls the COM proxy 802. The COM proxy 802 marshals the argument data input to the interface method (S1301). Object data is stored in a stream so that data can be transmitted and received by two systems different from marshalling. The COM proxy 802 calls a COM stub 803 in the process of the advanced UI application 311 using RPC (Remote Procedure Call) (S1302). RPC is a function that allows a procedure to be called between distant systems. The COM proxy 802 transmits the marshalled stream data to the called COM stub 803. The COM stub 803 unmarshalls the stream received from the COM proxy 802 and returns it to the method argument that is the original object data (S1401). Unmarshalling means returning a stream to the original object data. Then, the method argument data is delivered to the advanced UI application 311 which is the main thread of the process (S1402). In this way, the print manager 306 activates the advanced UI application 311, which is another process, and transmits data. Conversely, when the advanced UI application 311 transmits to the print manager 306, the COM proxy 802 becomes the COM stub, and the COM stub 803 becomes the COM proxy. Therefore, the COM proxy and the COM stub are the same module having the same function.

アドバンスドUIアプリケーション311はアプリケーション1051が動作するプロセスと異なるプロセスで動作するので、インターフェースを通じて印刷設定であるプリントチケットでしか情報を伝達することができない。プリントチケットに含まれないレジストリデータベース308に保存されたデータは、印刷時に参照することができなくなるので、プリンター1042にすべてのデータを送信することができなくなってしまう。そこで、XPS印刷システムのプロパティバッグ414を使用することで、レジストリデータベース308に保存されたデータも参照できるようにする。図17のブロック構成図と、図18のフローチャートで伝達方法を説明する。   Since the advanced UI application 311 operates in a process different from the process in which the application 1051 operates, information can be transmitted only through a print ticket which is a print setting through the interface. Data stored in the registry database 308 that is not included in the print ticket cannot be referred to at the time of printing, so that all data cannot be transmitted to the printer 1042. Therefore, by using the property bag 414 of the XPS printing system, the data stored in the registry database 308 can be referred to. The transmission method will be described with reference to the block diagram of FIG. 17 and the flowchart of FIG.

フィルタパイプラインマネージャ409はアプリケーション1051から印刷が開始されると、印刷ジョブであるXPSスプールファイル407を渡される(S1801)。また、フィルタパイプラインマネージャ409は、アプリケーション1051からどのプリンタードライバー1052を使用するのかを指定する機種情報も受け取る。フィルタパイプラインマネージャ409は、アプリケーション1051から受け取った機種情報を元に、レジストリデータベース308を検索する。レジストリデータベース308にはプリンタードライバー1052のインストール時に記載されたドライバ情報が書き込まれており、フィルタパイプラインマネージャ409は指定された機種情報に応じたドライバ情報を取得する。フィルタパイプラインマネージャ409は取得したドライバ情報の中にアドバンスドUIアプリケーション311のCLSIDがあるかどうかを判定する(S1802)。CLSIDがなければ、フィルタを呼び出して印刷処理を行う。アドバンスドUIアプリケーション311のCLSIDが存在するときは、フィルタパイプラインマネージャ409はCLSIDとアウトプロセスサーバーで起動することを引数に指定してオペレーティングシステム1053のAPIを呼び出す(図16(1))。フィルタパイプラインマネージャ409はオペレーティングシステム1053のAPIの中で、指定されたCLSIDを検索キーにしてレジストリデータベース308を検索する。フィルタパイプラインマネージャ409はオペレーティングシステム1053のAPIの中で、アドバンスドUIアプリケーション311がインストールされていれば、レジストリデータベース308からアドバンスドUIアプリケーション311のファイル名を含むフルパスを取得できる(S1803)。もし、存在しない場合はCLSIDが存在しなかったときと同じく、フィルタを呼び出して印刷処理を行う。フルパスを取得したら、フィルタパイプラインマネージャ409はオペレーティングシステム1053のAPIの中から、アドバンスドUIアプリケーション311を起動する(S1804)。起動されたアドバンスドUIアプリケーション311は、/RegSvrオプションがついていないので(S1501)、ウィンドウを作成する(S1503)。この時点で作成するウィンドウは表示のために作成するのではなく、メッセージループでフィルタパイプラインマネージャ409からの応答を待つために作成しているだけである。アドバンスドUIアプリケーション311は、アドバンスドUIアプリケーション311のインターフェースオブジェクトを作成し、インターフェースを指定してオペレーティングシステム1053のAPIを呼び出す(S1504と図16(2))。すると、フィルタパイプラインマネージャ409は、アドバンスドUIアプリケーション311のインターフェースを受け取ることができる(S1805)。インターフェースを受け取ったフィルタパイプラインマネージャ409は、プロパティバッグ414のオブジェクトを作成する。フィルタパイプラインマネージャ409は、作成したプロパティバッグ414をインターフェースの引数として、インターフェースのメソッドを呼び出す(S1806)。アドバンスドUIアプリケーション311はインターフェースの呼び出しを受け取り、UIのイベントかどうかを判定する(S1505)。今回はプロパティバッグ414を引数としてメソッドを呼び出しているのでUIのイベントではないため、アドバンスドUIアプリケーション311は、レジストリから以前に保存した情報を取得する(S1516)。アドバンスドUIアプリケーション311は、インターフェースから引数のプロパティバッグ414を取得し(S1517)、プロパティバッグに値を追加する(S1518)。プロパティバッグ414は名前と値の組み合わせで、自由にデータを追加・削除・参照できる仕組みである。アドバンスドUIアプリケーション311は、プリンターのフィニッシャーなどのオプション機器構成や、ユーザー名やパスワードなどの個人情報、お気に入りやスタンプといったユーザーが作成する機能などをプロパティバッグ414に追加しておく。アドバンスドUIアプリケーション311は、プロパティバッグ414へ値の追加が終了すると、自身も終了する。フィルタパイプラインマネージャ409は、アドバンスドUIアプリケーション311がユーザーインターフェースを表示している間、終了するのを待っている(S1807)。アドバンスドUIアプリケーション311が終了するのが確認できたら、フィルタパイプラインマネージャ409は、アドバンスドUIアプリケーション311によって変更されたプロパティバッグ414を受け取る。そして、従来どおりフィルタを呼び出して印刷処理を行う(S1808)。各フィルタは、必要に応じて、プロパティバッグ414から情報を取得する。フィルタパイプラインマネージャ409は、プロパティバッグ414のオブジェクトは最後のフィルタがPDLを出力し終わったら破棄するので、1回の印刷の間のみ有効である。このようにして、アドバンスドUIアプリケーション311の情報を、フィルタに伝達する。   When printing is started from the application 1051, the filter pipeline manager 409 receives the XPS spool file 407, which is a print job (S1801). The filter pipeline manager 409 also receives model information that specifies which printer driver 1052 is used from the application 1051. The filter pipeline manager 409 searches the registry database 308 based on the model information received from the application 1051. Driver information described when the printer driver 1052 is installed is written in the registry database 308, and the filter pipeline manager 409 acquires driver information corresponding to the specified model information. The filter pipeline manager 409 determines whether the acquired driver information includes the CLSID of the advanced UI application 311 (S1802). If there is no CLSID, the filter is called to perform the printing process. When the CLSID of the advanced UI application 311 exists, the filter pipeline manager 409 calls the API of the operating system 1053 by specifying as arguments the activation of the CLSID and the out-process server (FIG. 16 (1)). The filter pipeline manager 409 searches the registry database 308 in the API of the operating system 1053 using the designated CLSID as a search key. If the advanced UI application 311 is installed in the API of the operating system 1053, the filter pipeline manager 409 can acquire the full path including the file name of the advanced UI application 311 from the registry database 308 (S1803). If it does not exist, the filter is called to perform the printing process as in the case where CLSID does not exist. When the full path is acquired, the filter pipeline manager 409 activates the advanced UI application 311 from the API of the operating system 1053 (S1804). The activated advanced UI application 311 does not have the / RegSvr option (S1501), and thus creates a window (S1503). The window created at this point is not created for display, but only for waiting for a response from the filter pipeline manager 409 in the message loop. The advanced UI application 311 creates an interface object of the advanced UI application 311 and calls an API of the operating system 1053 by designating an interface (S1504 and FIG. 16 (2)). Then, the filter pipeline manager 409 can receive the interface of the advanced UI application 311 (S1805). The filter pipeline manager 409 that has received the interface creates an object of the property bag 414. The filter pipeline manager 409 calls an interface method using the created property bag 414 as an interface argument (S1806). The advanced UI application 311 receives the interface call and determines whether the event is a UI event (S1505). Since the method is called with the property bag 414 as an argument this time, it is not a UI event, and thus the advanced UI application 311 acquires previously saved information from the registry (S1516). The advanced UI application 311 acquires the property bag 414 of the argument from the interface (S1517), and adds a value to the property bag (S1518). A property bag 414 is a combination of a name and a value and can add, delete, and refer to data freely. The advanced UI application 311 adds optional device configurations such as a printer finisher, personal information such as a user name and password, functions created by the user such as favorites and stamps, and the like to the property bag 414. When the advanced UI application 311 finishes adding a value to the property bag 414, the advanced UI application 311 also ends. The filter pipeline manager 409 waits for termination while the advanced UI application 311 displays the user interface (S1807). When it is confirmed that the advanced UI application 311 is terminated, the filter pipeline manager 409 receives the property bag 414 changed by the advanced UI application 311. Then, the filter is called as before, and printing processing is performed (S1808). Each filter acquires information from the property bag 414 as necessary. Since the filter pipeline manager 409 discards the object in the property bag 414 when the last filter finishes outputting the PDL, it is valid only for one printing. In this way, the information of the advanced UI application 311 is transmitted to the filter.

アドバンスドUIアプリケーション311を使用した場合、サーバー203からクライアント201や202にプリンタードライバーをダウンロードして動作するポイントアンドプリント、いわゆる共有プリンターで動作できない。図2のようなネットワーク環境において、共有プリンターではクライアントがプリンタードライバーをサーバー203からダウンロードすることができる。したがって、コンフィギュレーションモジュール304にユーザーインターフェースが入っていれば、クライアント201や202でもユーザーインターフェースを表示できる。しかし、アドバンスドUIアプリケーション311は、プリンタードライバーとは別のものになるので、クライアント201や202にダウンロードできない。また、RPCはサーバー203とクライアント201や202の間を通信することも可能だが、そのままではアドバンスドUIアプリケーション311はサーバー203で起動してしまい、ユーザーがクライアント上でユーザーインターフェースを操作できない。そこで、アドバンスドUIアプリケーション311がインストールされている環境では、共有プリンターが利用できないようにする。以下、図19、図20と図21のフローチャートを使用して、共有プリンターを禁止する仕組みを説明する。   When the advanced UI application 311 is used, it cannot operate with a so-called shared printer that operates by downloading a printer driver from the server 203 to the client 201 or 202. In the network environment as shown in FIG. 2, in the shared printer, the client can download the printer driver from the server 203. Accordingly, if the configuration module 304 includes a user interface, the client 201 or 202 can also display the user interface. However, since the advanced UI application 311 is different from the printer driver, it cannot be downloaded to the clients 201 and 202. The RPC can also communicate between the server 203 and the clients 201 and 202, but the advanced UI application 311 is activated on the server 203 as it is, and the user cannot operate the user interface on the client. Therefore, the shared printer cannot be used in an environment where the advanced UI application 311 is installed. Hereinafter, the mechanism for prohibiting the shared printer will be described with reference to the flowcharts of FIGS. 19, 20, and 21.

オペレーティングシステム1053は、ユーザーからプリンタードライバー1052の共有タブを表示するように呼び出されると(S2101)、どのプリンタードライバー1052を使用するのかを指定する機種情報も受け取る。オペレーティングシステム1053は受け取った機種情報を元に、レジストリデータベース308を検索する。レジストリデータベース308にはプリンタードライバー1052のインストール時に記載されたドライバ情報が書き込まれており、オペレーティングシステム1053は指定された機種情報に応じたドライバ情報を取得する。オペレーティングシステム1053は取得したドライバ情報の中にアドバンスドUIアプリケーション311のCLSIDがあるかどうかを判定する(S2102)。CLSIDが存在すれば、アドバンスドUIアプリケーション311を使用してユーザーインターフェースを表示することになるので、オペレーティングシステム1053は「共有はサポートされない」メッセージを配置した共有設定が指定できない共有タブを表示する(図20)。なお、図19の画面の共有のためのチェックボックスをグレーアウトさせて表示してもよい。CLSIDが存在しないときは、オペレーティングシステム1053は共有のためのチェックボックスを配置した共有タブを表示する(図19)。   When the operating system 1053 is called to display the shared tab of the printer driver 1052 by the user (S2101), the operating system 1053 also receives model information specifying which printer driver 1052 is used. The operating system 1053 searches the registry database 308 based on the received model information. Driver information described at the time of installing the printer driver 1052 is written in the registry database 308, and the operating system 1053 acquires driver information corresponding to the specified model information. The operating system 1053 determines whether the acquired driver information includes the CLSID of the advanced UI application 311 (S2102). If the CLSID exists, the user interface is displayed using the advanced UI application 311. Therefore, the operating system 1053 displays a sharing tab in which the sharing setting in which the “sharing is not supported” message is placed cannot be specified (see FIG. 20). Note that the check box for sharing the screen in FIG. 19 may be grayed out and displayed. When the CLSID does not exist, the operating system 1053 displays a sharing tab in which check boxes for sharing are arranged (FIG. 19).

アドバンスドUIアプリケーション311を使用するとき、CPSUI801によってプロパティシートの土台を作成しているわけではないので、自由にユーザーインターフェースを作ることができる。しかし、プロパティシートの土台といくつかのタブをオペレーティングシステム1053が追加した後、プリンタードライバー1052のコンフィギュレーションモジュール304がタブをさらに追加するユーザーインターフェースは作成できなくなる。たとえば、デバイス設定のユーザーインターフェースや、ジョブの設定を確認するユーザーインターフェースである。このようなユーザーインターフェースでは、アドバンスドUIアプリケーション311がユーザーインターフェースを生成できない。そこで、図22、図23と図24のフローチャートを使用して、ユーザーインターフェースにボタンを表示する方法を説明する。   When the advanced UI application 311 is used, the basis of the property sheet is not created by the CPSUI 801, so that a user interface can be freely created. However, after the operating system 1053 adds the base of the property sheet and several tabs, the configuration module 304 of the printer driver 1052 cannot create a user interface for adding more tabs. For example, a user interface for device setting or a user interface for checking job settings. With such a user interface, the advanced UI application 311 cannot generate a user interface. Therefore, a method of displaying buttons on the user interface will be described using the flowcharts of FIGS. 22, 23, and 24. FIG.

オペレーティングシステム1053は、ユーザーからデバイス設定やジョブの設定を確認するユーザーインターフェースを表示するように呼び出されると(S2401)、どのプリンタードライバー1052を使用するのかを指定する機種情報も受け取る。オペレーティングシステム1053は受け取った機種情報を元に、レジストリデータベース308を検索する。レジストリデータベース308にはプリンタードライバー1052のインストール時に記載されたドライバ情報が書き込まれており、オペレーティングシステム1053は指定された機種情報に応じたドライバ情報を取得する。オペレーティングシステム1053は取得したドライバ情報の中にアドバンスドUIアプリケーション311のCLSIDがあるかどうかを判定する(S2402)。CLSIDが存在すれば、アドバンスドUIアプリケーション311のユーザーインターフェースを開くためのボタンを配置して、タブを表示する(S2403)。CLSIDが存在しなければ、プリンタードライバー1052のコンフィギュレーションモジュール304を呼び出して、タブを追加してもらうようにする(S2404)。図22はジョブの設定を確認するユーザーインターフェースに、基本設定のボタンを表示して、アドバンスドUIアプリケーション311のジョブ設定のユーザーインターフェースが呼び出せるようにしている。図23はデバイス設定のユーザーインターフェースに、デバイス設定のボタンを表示して、アドバンスドUIアプリケーション311のデバイス設定のユーザーインターフェースを呼び出せるようにしている。   When the operating system 1053 is called to display a user interface for checking device settings and job settings from the user (S2401), the operating system 1053 also receives model information specifying which printer driver 1052 to use. The operating system 1053 searches the registry database 308 based on the received model information. Driver information described at the time of installing the printer driver 1052 is written in the registry database 308, and the operating system 1053 acquires driver information corresponding to the specified model information. The operating system 1053 determines whether the acquired driver information includes the CLSID of the advanced UI application 311 (S2402). If CLSID exists, a button for opening the user interface of the advanced UI application 311 is arranged and a tab is displayed (S2403). If CLSID does not exist, the configuration module 304 of the printer driver 1052 is called to add a tab (S2404). In FIG. 22, a basic setting button is displayed on the user interface for confirming the job setting so that the job setting user interface of the advanced UI application 311 can be called. In FIG. 23, a device setting button is displayed on the device setting user interface so that the device interface of the advanced UI application 311 can be called.

以上のようにすることで、プリンタードライバー1052からアドバンスドUIアプリケーション311という形でユーザーインターフェースを切り離すことで、ユーザーインターフェースがクラッシュしても、アプリケーションを巻き込まないようにできる。また、CPSUI801に依存しないシステムになることで、プロパティシートではない自由にユーザーインターフェースを作成することができる。また、名前付きパイプや共有メモリを使用せずにCOMで異なるプロセス間の通信を行うことで、アドバンスドUIアプリケーション311にオペレーティングシステム1053に依存するコードを少なくすることができる。   As described above, by disconnecting the user interface from the printer driver 1052 in the form of the advanced UI application 311, the application can be prevented from being involved even if the user interface crashes. Further, since the system does not depend on the CPSUI 801, a user interface can be freely created that is not a property sheet. Further, by performing communication between different processes using COM without using a named pipe or shared memory, it is possible to reduce the code depending on the operating system 1053 in the advanced UI application 311.

[実施例2]
実施例1では、アドバンスドUIアプリケーション311はプリンタードライバー1052のインストールセットと別にインストールを行ったが、プリンタードライバー1052のインストールセットに含むこともできる。以下、アドバンスドUIアプリケーション311をプリンタードライバー1052のインストールセットに含んだときのプリンタードライバー1052のインストールを、図25のフローと図26を使用して説明する。
[Example 2]
In the first embodiment, the advanced UI application 311 is installed separately from the installation set of the printer driver 1052, but may be included in the installation set of the printer driver 1052. Hereinafter, installation of the printer driver 1052 when the advanced UI application 311 is included in the installation set of the printer driver 1052 will be described with reference to the flow of FIG. 25 and FIG.

プリンタードライバー1052は図26のセットアップインフォメーションファイル(以下、INFファイル)に従ってオペレーティングシステム1053へインストールされる。INFファイルには、実施例1で記載されていたアドバンスドUIアプリケーション311のCLSIDに加えて、アドバンスドUIアプリケーション311のアプリケーションファイル名が記載されている。オペレーティングシステム1053は、プリンタードライバー1052のインストールが開始されると(S2501)、指定された機種のプリンタードライバー1052のインストールセットを探す。インストールセットはオペレーティングシステム1053に組み込まれているものを使用するが、ユーザーによって指定されるか、あらかじめ特定された配信サーバーなどから提供されることもある。オペレーティングシステム1053は、インストールセットに含まれるINFファイルを元にファイルをコピーし、レジストリデータベース308に必要なドライバ情報を書き込むことで、通常のプリンタードライバーのインストールが完了する(S2502)。次に、オペレーティングシステム1053は、プリンタードライバー1052のINFファイルの中にアドバンスドUIアプリケーション311のファイル名があるかどうかを判定する(S2503)。図26ではAdvancedUIというキーが、アドバンスドUIアプリケーション311のファイル名に該当する。ファイル名が存在する場合は、オペレーティングシステム1053が引数として/RegSvrオプションをつけてアドバンスドUIアプリケーション311を起動する(S2504)。オペレーティングシステム1053は、INFファイルの中に、アドバンスドUIアプリケーション311のCLSIDが記載されているかどうかを確認する(S2505)。アドバンスドUIアプリケーション311のCLSIDが存在すれば、オペレーティングシステム1053はINFファイルからCLSIDを取得する(S2506)。オペレーティングシステム1053は、アドバンスドUIアプリケーション311のCLSIDを、レジストリデータベース308にあるドライバ情報に、追加して記載しておく(S2507)。これで、プリンタードライバー1052のインストールとともに、アドバンスドUIアプリケーション311のインストールが完了する。   The printer driver 1052 is installed in the operating system 1053 according to the setup information file (hereinafter referred to as INF file) shown in FIG. In the INF file, in addition to the CLSID of the advanced UI application 311 described in the first embodiment, the application file name of the advanced UI application 311 is described. When the installation of the printer driver 1052 is started (S2501), the operating system 1053 searches for an installation set of the printer driver 1052 of the designated model. The installation set uses one installed in the operating system 1053, but may be specified by a user or provided from a distribution server specified in advance. The operating system 1053 copies the file based on the INF file included in the installation set, and writes necessary driver information in the registry database 308, thereby completing the normal printer driver installation (S2502). Next, the operating system 1053 determines whether or not the file name of the advanced UI application 311 is present in the INF file of the printer driver 1052 (S2503). In FIG. 26, the key “AdvancedUI” corresponds to the file name of the advanced UI application 311. If the file name exists, the operating system 1053 activates the advanced UI application 311 with the / RegSvr option as an argument (S2504). The operating system 1053 confirms whether or not the CLSID of the advanced UI application 311 is described in the INF file (S2505). If the CLSID of the advanced UI application 311 exists, the operating system 1053 acquires the CLSID from the INF file (S2506). The operating system 1053 additionally describes the CLSID of the advanced UI application 311 in the driver information in the registry database 308 (S2507). This completes the installation of the advanced UI application 311 together with the installation of the printer driver 1052.

以上のように、プリンタードライバー1052のインストールセットにアドバンスドUIアプリケーション311を追加しておくと、ユーザーが後から別途追加することなく、プリンタードライバー1052をインストールするだけで、別プロセスで起動するユーザーインターフェースを使用することができる。   As described above, if the advanced UI application 311 is added to the installation set of the printer driver 1052, a user interface that is activated in a separate process can be obtained simply by installing the printer driver 1052 without the user adding it later. Can be used.

以上説明したように、本発明の実施の形態により,アプリケーションと別のプロセスでプリンタードライバーのユーザーインターフェースが起動するので、アプリケーションまで巻き込んでクラッシュすることがなくなる。また、オペレーティングシステムがベースを用意する必要がなくなるので、プリンタードライバーのユーザーインターフェースは自由にデザインやコントロールを配置することができる。また、UIアプリケーションはプリンタードライバーと別にインストールすることができるので、プリンタードライバーを更新することなくユーザーインターフェースだけを変えることが可能である。また、プロセスごとにメモリ領域が別になるので、より多くのメモリ領域を使用することができ、動画や3Dを使用したリッチなユーザーインターフェースを作成することもできるようになる。   As described above, according to the embodiment of the present invention, the user interface of the printer driver is activated in a process different from the application, so that the application is not involved and crashed. In addition, since the operating system does not need to prepare a base, the user interface of the printer driver can freely arrange designs and controls. Also, since the UI application can be installed separately from the printer driver, it is possible to change only the user interface without updating the printer driver. Also, since the memory area is different for each process, a larger memory area can be used, and a rich user interface using moving images and 3D can be created.

1042 プリンター
1051 アプリケーション
1052 プリンタードライバー
1053 オペレーティングシステム
201 クライアント
202 クライアント
203 サーバー
304 コンフィギュレーションモジュール
305 機種依存データファイル
306 プリントマネージャ(スプーラ)
308 レジストリデータベース
311 アドバンスドUIアプリケーション
403 DEVMODE構造体
404 プリントチケット
406 DEVMODE−プリントチケット変換モジュール
407 XPSスプールファイル
409 フィルタパイプラインマネージャ
414 プロパティバッグ
801 CPSUI
802 COMプロキシ
803 COMスタブ
1042 Printer 1051 Application 1052 Printer driver 1053 Operating system 201 Client 202 Client 203 Server 304 Configuration module 305 Model-dependent data file 306 Print manager (spooler)
308 Registry Database 311 Advanced UI Application 403 DEVMODE Structure 404 Print Ticket 406 DEVMODE-Print Ticket Conversion Module 407 XPS Spool File 409 Filter Pipeline Manager 414 Property Bag 801 CPSUI
802 COM proxy 803 COM stub

Claims (50)

プリンタードライバーをインストールするために必要な情報であるセットアップファイルに記載された識別子をデータベースに追加する追加手段と、
第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、印刷設定のユーザーインターフェースを表示する第2のアプリケーションを起動しない制御を行い、前記第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにあることを条件として、前記第2のアプリケーションを前記第1のアプリケーションとは異なるプロセスで起動する制御手段と、を有することを特徴とする情報処理装置。
An additional means for adding the identifier described in the setup file, which is information necessary for installing the printer driver, to the database;
On the condition that the user interface of the printer driver is called from the first application and the identifier is not in the database, control is performed so as not to start the second application that displays the user interface for print settings. Control means for starting the second application in a process different from the first application on condition that the user interface of the printer driver is called from one application and the identifier is in the database; An information processing apparatus comprising:
前記第1のアプリケーションのプロセスと前記第2のアプリケーションのプロセスはプロセス間通信を行うことを特徴とする請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the process of the first application and the process of the second application perform interprocess communication. 前記追加手段による前記識別子の前記データベースへの追加と、前記制御手段による前記第2のアプリケーションの起動は前記情報処理装置のオペレーティングシステムによって行われることを特徴とする請求項1又は請求項2に記載の情報処理装置。   The addition of the identifier to the database by the adding unit and the activation of the second application by the control unit are performed by an operating system of the information processing apparatus. Information processing device. 前記データベースはレジストリデータベースであることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the database is a registry database. 前記識別子は前記第2のアプリケーションの識別子であることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the identifier is an identifier of the second application. 前記制御手段は、前記第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、前記第2のアプリケーションを起動せずに、CPSUI(Common Property Sheet User Interface)を呼び出すことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。   The control means does not start the second application on the condition that the user interface of the printer driver is called from the first application and the identifier is not in the database, and the CPSUI (Common Property) 6. The information processing apparatus according to claim 1, wherein the information processing apparatus calls (Sheet User Interface). 前記第2のアプリケーションは前記識別子を前記データベースに追加することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the second application adds the identifier to the database. 前記第2のアプリケーションは前記識別子、前記第2のアプリケーションのパス及びアウトプロセスサーバーであることを示す情報を前記データベースに追加することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。   The information indicating that the second application is the identifier, the path of the second application, and an out-of-process server is added to the database. Information processing device. 前記追加手段は前記プリンタードライバーをインストールする場合に前記セットアップファイルに記載された前記識別子を前記データベースに追加することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the adding unit adds the identifier described in the setup file to the database when installing the printer driver. 前記第2のアプリケーションは、前記識別子を前記データベースに追加する場合に、特定のオプションをつけて起動されることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the second application is started with a specific option when the identifier is added to the database. 前記第2のアプリケーションは前記特定のオプションをつけずに起動されてかつ印刷設定を行うためのユーザーインターフェースが呼び出された場合に、前記印刷設定を行うためのユーザーインターフェースを表示することを特徴とする請求項10に記載の情報処理装置。   When the second application is started without the specific option and a user interface for performing print settings is called up, the second application displays a user interface for performing the print settings. The information processing apparatus according to claim 10. 前記追加手段は前記セットアップファイルに記載された前記識別子を、プリンターの機種ごとに存在する前記データベースのドライバ情報に追加することを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。   12. The information processing according to claim 1, wherein the adding unit adds the identifier described in the setup file to driver information of the database existing for each printer model. 13. apparatus. 印刷設定のユーザーインターフェースを表示する第1のアプリケーションと、
データベースに追加される識別子が記載された、プリンタードライバーをインストールするために必要な情報であるセットアップファイルと、を有し、
前記セットアップファイルに記載された前記識別子は取得されて前記データベースに追加され、
第2のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、前記第1のアプリケーションは起動せず、前記第2のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにあることを条件として、前記第1のアプリケーションは前記第2のアプリケーションとは異なるプロセスで起動されることを特徴とする情報処理装置。
A first application for displaying a print settings user interface;
A setup file, which is information necessary for installing the printer driver, in which an identifier to be added to the database is described;
The identifier described in the setup file is acquired and added to the database;
On the condition that the user interface of the printer driver is called from a second application and the identifier is not in the database, the first application does not start, and the user of the printer driver from the second application The information processing apparatus, wherein the first application is started by a process different from the second application on condition that an interface is called and the identifier is in the database.
前記第1のアプリケーションのプロセスと前記第2のアプリケーションのプロセスはプロセス間通信を行うことを特徴とする請求項13に記載の情報処理装置。   The information processing apparatus according to claim 13, wherein the process of the first application and the process of the second application perform interprocess communication. 前記セットアップファイルの識別子の前記データベースへの追加と、前記第2のアプリケーションの起動は前記情報処理装置のオペレーティングシステムによって行われることを特徴とする請求項13又は請求項14に記載の情報処理装置。   15. The information processing apparatus according to claim 13, wherein addition of the identifier of the setup file to the database and activation of the second application are performed by an operating system of the information processing apparatus. 前記データベースはレジストリデータベースであることを特徴とする請求項13乃至15のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 13, wherein the database is a registry database. 前記識別子は前記第2のアプリケーションの識別子であることを特徴とする請求項13乃至16のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 13, wherein the identifier is an identifier of the second application. 前記第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、前記第2のアプリケーションは起動せずに、CPSUI(Common Property Sheet User Interface)が呼び出されることを特徴とする請求項13乃至17のいずれか1項に記載の情報処理装置。   On the condition that the user interface of the printer driver is called from the first application and the identifier is not in the database, the second application does not start and a CPSUI (Common Property Sheet User Interface) The information processing apparatus according to claim 13, wherein the information processing apparatus is called. 前記第2のアプリケーションは前記識別子を前記データベースに追加することを特徴とする請求項13乃至18のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 13, wherein the second application adds the identifier to the database. 前記第2のアプリケーションは前記識別子、前記第2のアプリケーションのパス及びアウトプロセスサーバーであることを示す情報を前記データベースに追加することを特徴とする請求項13乃至18のいずれか1項に記載の情報処理装置。   19. The information according to claim 13, wherein information indicating that the second application is the identifier, the path of the second application, and an out-of-process server is added to the database. Information processing device. 前記プリンタードライバーがインストールされる場合に前記セットアップファイルに記載された前記識別子が前記データベースに追加されることを特徴とする請求項13乃至18のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 13, wherein the identifier described in the setup file is added to the database when the printer driver is installed. 前記第2のアプリケーションは、前記識別子を前記データベースに追加する場合に、特定のオプションをつけて起動されることを特徴とする請求項13乃至21のいずれか1項に記載の情報処理装置。   The information processing apparatus according to any one of claims 13 to 21, wherein the second application is started with a specific option when the identifier is added to the database. 前記第2のアプリケーションは前記特定のオプションをつけずに起動されてかつ印刷設定を行うためのユーザーインターフェースが呼び出された場合に、前記印刷設定を行うためのユーザーインターフェースを表示することを特徴とする請求項22に記載の情報処理装置。   When the second application is started without the specific option and a user interface for performing print settings is called up, the second application displays a user interface for performing the print settings. The information processing apparatus according to claim 22. 前記セットアップファイルに記載された前記識別子は、プリンターの機種ごとに存在する前記データベースのドライバ情報に追加されることを特徴とする請求項13乃至23のいずれか1項に記載の情報処理装置。   The information processing apparatus according to any one of claims 13 to 23, wherein the identifier described in the setup file is added to driver information of the database that exists for each printer model. コンピュータに、
プリンタードライバーをインストールするために必要な情報であるセットアップファイルに記載された識別子をデータベースに追加する追加工程と、
第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、印刷設定のユーザーインターフェースを表示する第2のアプリケーションを起動しない制御を行い、前記第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにあることを条件として、前記第2のアプリケーションを前記第1のアプリケーションとは異なるプロセスで起動する制御工程と、を実行させることを特徴とするプログラム。
On the computer,
An additional step of adding an identifier described in the setup file, which is information necessary for installing the printer driver, to the database;
On the condition that the user interface of the printer driver is called from the first application and the identifier is not in the database, control is performed so as not to start the second application that displays the user interface for print settings. A control step of starting the second application in a process different from the first application on condition that the user interface of the printer driver is called from one application and the identifier is in the database; A program characterized by having executed.
前記第1のアプリケーションのプロセスと前記第2のアプリケーションのプロセスはプロセス間通信を行うことを特徴とする請求項25に記載のプログラム。   26. The program according to claim 25, wherein the process of the first application and the process of the second application perform interprocess communication. 前記追加工程による前記識別子の前記データベースへの追加と、前記制御工程による前記第2のアプリケーションの起動は前記コンピュータのオペレーティングシステムによって行われることを特徴とする請求項25又は請求項26に記載のプログラム。   27. The program according to claim 25 or claim 26, wherein the adding of the identifier to the database by the adding step and the activation of the second application by the controlling step are performed by an operating system of the computer. . 前記データベースはレジストリデータベースであることを特徴とする請求項25乃至27のいずれか1項に記載のプログラム。   The program according to any one of claims 25 to 27, wherein the database is a registry database. 前記識別子は前記第2のアプリケーションの識別子であることを特徴とする請求項25乃至28のいずれか1項に記載のプログラム。   29. The program according to claim 25, wherein the identifier is an identifier of the second application. 前記制御工程は、前記第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、前記第2のアプリケーションを起動せずに、CPSUI(Common Property Sheet User Interface)を呼び出すことを特徴とする請求項25乃至29のいずれか1項に記載のプログラム。   In the control step, on the condition that the user interface of the printer driver is called from the first application and the identifier is not in the database, the second application is not started, and a CPSUI (Common Property) 30. The program according to any one of claims 25 to 29, wherein the program calls (Sheet User Interface). 前記第2のアプリケーションは前記識別子を前記データベースに追加することを特徴とする請求項25乃至30のいずれか1項に記載のプログラム。   The program according to any one of claims 25 to 30, wherein the second application adds the identifier to the database. 前記第2のアプリケーションは前記識別子、前記第2のアプリケーションのパス及びアウトプロセスサーバーであることを示す情報を前記データベースに追加することを特徴とする請求項25乃至30のいずれか1項に記載のプログラム。   The information indicating that the second application is the identifier, the path of the second application, and an out-of-process server is added to the database. program. 前記追加工程は前記プリンタードライバーをインストールする場合に前記セットアップファイルに記載された前記識別子を前記データベースに追加することを特徴とする請求項25乃至30のいずれか1項に記載のプログラム。   31. The program according to claim 25, wherein the adding step adds the identifier described in the setup file to the database when installing the printer driver. 前記第2のアプリケーションは、前記識別子を前記データベースに追加する場合に、特定のオプションをつけて起動されることを特徴とする請求項25乃至33のいずれか1項に記載のプログラム。   The program according to any one of claims 25 to 33, wherein the second application is started with a specific option when the identifier is added to the database. 前記第2のアプリケーションは前記特定のオプションをつけずに起動されてかつ印刷設定を行うためのユーザーインターフェースが呼び出された場合に、前記印刷設定を行うためのユーザーインターフェースを表示することを特徴とする請求項34に記載のプログラム。   When the second application is started without the specific option and a user interface for performing print settings is called up, the second application displays a user interface for performing the print settings. The program according to claim 34. 前記追加工程は前記セットアップファイルに記載された前記識別子を、プリンターの機種ごとに存在する前記データベースのドライバ情報に追加することを特徴とする請求項25乃至35のいずれか1項に記載のプログラム。   36. The program according to claim 25, wherein the adding step adds the identifier described in the setup file to driver information of the database existing for each printer model. コンピュータで実行されるプログラムであって、前記コンピュータは、
印刷設定のユーザーインターフェースを表示する第1のアプリケーションと、
データベースに追加される識別子が記載された、プリンタードライバーをインストールするために必要な情報であるセットアップファイルと、を有し、
前記セットアップファイルに記載された前記識別子は取得されて前記データベースに追加され、
第2のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、前記第1のアプリケーションは起動せず、前記第2のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにあることを条件として、前記第1のアプリケーションは前記第2のアプリケーションとは異なるプロセスで起動されることを特徴とするプログラム。
A program executed on a computer, wherein the computer is
A first application for displaying a print settings user interface;
A setup file, which is information necessary for installing the printer driver, in which an identifier to be added to the database is described;
The identifier described in the setup file is acquired and added to the database;
On the condition that the user interface of the printer driver is called from a second application and the identifier is not in the database, the first application does not start, and the user of the printer driver from the second application A program characterized in that the first application is started in a process different from the second application on the condition that an interface is called and the identifier is in the database.
前記第1のアプリケーションのプロセスと前記第2のアプリケーションのプロセスはプロセス間通信を行うことを特徴とする請求項37に記載のプログラム。   The program according to claim 37, wherein the process of the first application and the process of the second application perform interprocess communication. 前記セットアップファイルの識別子の前記データベースへの追加と、前記第2のアプリケーションの起動は前記コンピュータのオペレーティングシステムによって行われることを特徴とする請求項37又は請求項38に記載のプログラム。   The program according to claim 37 or 38, wherein the addition of the identifier of the setup file to the database and the activation of the second application are performed by an operating system of the computer. 前記データベースはレジストリデータベースであることを特徴とする請求項37乃至39のいずれか1項に記載のプログラム。   The program according to any one of claims 37 to 39, wherein the database is a registry database. 前記識別子は前記第2のアプリケーションの識別子であることを特徴とする請求項37乃至40のいずれか1項に記載のプログラム。   41. The program according to claim 37, wherein the identifier is an identifier of the second application. 前記第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、前記第2のアプリケーションは起動せずに、CPSUI(Common Property Sheet User Interface)が呼び出されることを特徴とする請求項37乃至41のいずれか1項に記載のプログラム。   On the condition that the user interface of the printer driver is called from the first application and the identifier is not in the database, the second application does not start and a CPSUI (Common Property Sheet User Interface) The program according to any one of claims 37 to 41, wherein the program is called. 前記第2のアプリケーションは前記識別子を前記データベースに追加することを特徴とする請求項37乃至42のいずれか1項に記載のプログラム。   The program according to any one of claims 37 to 42, wherein the second application adds the identifier to the database. 前記第2のアプリケーションは前記識別子、前記第2のアプリケーションのパス及びアウトプロセスサーバーであることを示す情報を前記データベースに追加することを特徴とする請求項37乃至42のいずれか1項に記載のプログラム。   43. The information according to any one of claims 37 to 42, wherein information indicating that the second application is the identifier, a path of the second application, and an out-of-process server is added to the database. program. 前記プリンタードライバーがインストールされる場合に前記セットアップファイルに記載された前記識別子が前記データベースに追加されることを特徴とする請求項37乃至42のいずれか1項に記載のプログラム。   The program according to any one of claims 37 to 42, wherein the identifier described in the setup file is added to the database when the printer driver is installed. 前記第2のアプリケーションは、前記識別子を前記データベースに追加する場合に、特定のオプションをつけて起動されることを特徴とする請求項37乃至45のいずれか1項に記載のプログラム。   46. The program according to claim 37, wherein the second application is started with a specific option when the identifier is added to the database. 前記第2のアプリケーションは前記特定のオプションをつけずに起動されてかつ印刷設定を行うためのユーザーインターフェースが呼び出された場合に、前記印刷設定を行うためのユーザーインターフェースを表示することを特徴とする請求項46に記載のプログラム。   When the second application is started without the specific option and a user interface for performing print settings is called up, the second application displays a user interface for performing the print settings. The program according to claim 46. 前記セットアップファイルに記載された前記識別子は、プリンターの機種ごとに存在する前記データベースのドライバ情報に追加されることを特徴とする請求項37乃至47のいずれか1項に記載のプログラム。   48. The program according to claim 37, wherein the identifier described in the setup file is added to driver information of the database existing for each model of printer. プリンタードライバーをインストールするために必要な情報であるセットアップファイルに記載された識別子をデータベースに追加する追加工程と、
第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、印刷設定のユーザーインターフェースを表示する第2のアプリケーションを起動しない制御を行い、前記第1のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにあることを条件として、前記第2のアプリケーションを前記第1のアプリケーションとは異なるプロセスで起動する制御工程と、を有することを特徴とする制御方法。
An additional step of adding an identifier described in the setup file, which is information necessary for installing the printer driver, to the database;
On the condition that the user interface of the printer driver is called from the first application and the identifier is not in the database, control is performed so as not to start the second application that displays the user interface for print settings. A control step of starting the second application in a process different from the first application on condition that the user interface of the printer driver is called from one application and the identifier is in the database; A control method characterized by comprising:
情報処理装置で実行される制御方法であって、前記情報処理装置は、
印刷設定のユーザーインターフェースを表示する第1のアプリケーションと、
データベースに追加される識別子が記載された、プリンタードライバーをインストールするために必要な情報であるセットアップファイルと、を有し、
前記セットアップファイルに記載された前記識別子は取得されて前記データベースに追加され、
第2のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにないことを条件として、前記第1のアプリケーションは起動せず、前記第2のアプリケーションから前記プリンタードライバーのユーザーインターフェースが呼び出されて、かつ前記識別子が前記データベースにあることを条件として、前記第1のアプリケーションは前記第2のアプリケーションとは異なるプロセスで起動されることを特徴とする制御方法。
A control method executed by an information processing apparatus, the information processing apparatus comprising:
A first application for displaying a print settings user interface;
A setup file, which is information necessary for installing the printer driver, in which an identifier to be added to the database is described;
The identifier described in the setup file is acquired and added to the database;
On the condition that the user interface of the printer driver is called from a second application and the identifier is not in the database, the first application does not start, and the user of the printer driver from the second application A control method characterized in that the first application is started in a process different from the second application on the condition that an interface is called and the identifier is in the database.
JP2015150518A 2015-07-30 2015-07-30 Information processing apparatus, information processing method, and program Active JP5972436B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015150518A JP5972436B2 (en) 2015-07-30 2015-07-30 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015150518A JP5972436B2 (en) 2015-07-30 2015-07-30 Information processing apparatus, information processing method, and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011103005A Division JP5787606B2 (en) 2011-05-02 2011-05-02 Information processing apparatus, information processing method, and program

Publications (2)

Publication Number Publication Date
JP2015232896A JP2015232896A (en) 2015-12-24
JP5972436B2 true JP5972436B2 (en) 2016-08-17

Family

ID=54934259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015150518A Active JP5972436B2 (en) 2015-07-30 2015-07-30 Information processing apparatus, information processing method, and program

Country Status (1)

Country Link
JP (1) JP5972436B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7229680B2 (en) * 2018-06-29 2023-02-28 キヤノン株式会社 Information processing device, control method and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4141326B2 (en) * 2003-06-19 2008-08-27 キヤノンマーケティングジャパン株式会社 PRINT CONTROL DEVICE, PRINT CONTROL METHOD, PROGRAM, AND RECORDING MEDIUM
JP2006134245A (en) * 2004-11-09 2006-05-25 Kyocera Mita Corp Automatic installation system and program of printer driver
JP2010129021A (en) * 2008-12-01 2010-06-10 Konica Minolta Business Technologies Inc Print indication device, driver installing method, and driver installing program
JP2010165140A (en) * 2009-01-15 2010-07-29 Seiko Epson Corp Printing system and print setting method

Also Published As

Publication number Publication date
JP2015232896A (en) 2015-12-24

Similar Documents

Publication Publication Date Title
JP5787606B2 (en) Information processing apparatus, information processing method, and program
US8537438B2 (en) Information processing apparatus in which a plurality of types of print drivers and plurality of graphics units run, control method therefor, and program
JP5478937B2 (en) Information processing apparatus, control method, and program
JP5857611B2 (en) Information processing device, system, program
JP6331910B2 (en) Information processing apparatus, information processing system, and program
US8850459B2 (en) Information processing apparatus, information processing method, and program
JP6184212B2 (en) Information processing apparatus, control method, and program
JP6552189B2 (en) Information processing apparatus, control method and driver installation program
US20110299126A1 (en) Print system, client, control method, and storage medium
JP2014109854A (en) Information processor, control method and program
JP5972436B2 (en) Information processing apparatus, information processing method, and program
JP5726344B2 (en) Information processing apparatus, control method, and program
JP7242203B2 (en) Information processing device, application and control method
JP6362423B2 (en) Real-time conflict processing system
JP6961746B2 (en) Applications and information processing devices that have the function of displaying the print setting screen
JP2019008673A (en) Information processing apparatus and driver installing method
JP2007293697A (en) Printer driver, printing unit, print information processing apparatus, print information processing method, and print information processing program
JP2019049825A (en) Method, program and information processing apparatus for updating driver in point-and-print environment
JP2020071693A (en) Information processing apparatus, control method therefor, and program
JP2019032598A (en) Information processing device, program, and control method
JP2019128856A (en) Printer driver customization tool
JP2018185826A (en) Application program and control method

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160712

R151 Written notification of patent or utility model registration

Ref document number: 5972436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151