(57)【要約】【課題】デバイスドライバの機能オブジェクトを組み替えてもカスタマイズ前の設定値を引き継いで参照できるようにする。【解決手段】デバイスドライバに組み込まれた機能オブジェクトを組み替えることによってデバイスドライバをカスタマイズするカスタマイズツール３０は、ユーザーによる指示操作に基づいてデバイスドライバに組み込まれている少なくとも１つの機能オブジェクトを新規な機能オブジェクトに組み替える機能オブジェクト変更部３１と、機能オブジェクトが組み替えられることに伴い、デバイスドライバによって予め生成される管理情報１０から、組み替え前の機能オブジェクトにおいて指定されていた保存先の設定値を読み出し、その設定値を組み替え後の機能オブジェクトにおいて指定されている保存先に保存する引継処理部３２とを有する。【選択図】図８
2015060337.tif 000002
【特許請求の範囲】
【請求項１】
ユーザーが設定可能な機能ごとに設けられ、各機能の設定値の保存先を指定する複数の機能オブジェクトが組み込まれたデバイスドライバと、
前記デバイスドライバに組み込まれた機能オブジェクトをカスタマイズするカスタマイズツールと、
を備え、
前記デバイスドライバは、
前記複数の機能オブジェクトのそれぞれにおいて指定された保存先から各機能の設定値を読み出して表示すると共に、ユーザーによる各機能に対する設定操作に基づき、当該設定操作が行われた機能に対応する機能オブジェクトにおいて指定されている保存先の設定値を変更するユーザーインタフェース部と、
前記複数の機能オブジェクトのそれぞれによって指定されている保存先の設定値をミラーリングして管理情報として管理する設定値管理部と、
を有し、
前記カスタマイズツールは、
ユーザーによる指示操作に基づいて前記デバイスドライバに組み込まれている少なくとも１つの機能オブジェクトを新規な機能オブジェクトに組み替える機能オブジェクト変更部と、
前記機能オブジェクト変更部によって機能オブジェクトの組み替えが行われることに伴い、組み替え後の機能オブジェクトにおいて指定されている保存先が変更された場合、前記管理情報から組み替え前の機能オブジェクトにおいて指定されていた保存先の設定値を読み出し、該設定値を組み替え後の機能オブジェクトにおいて指定されている保存先に保存する引継処理部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記設定値管理部は、前記引継処理部によって組み替え後の機能オブジェクトにおいて指定されている保存先に設定値が保存された後に、前記管理情報を更新することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
デバイスごとに設けられた複数の前記デバイスドライバを備えており、
前記機能オブジェクト変更部は、前記複数のデバイスドライバのそれぞれに組み込まれている機能オブジェクトを組み替え可能であり、
前記引継処理部は、前記複数のデバイスドライバのうち、前記機能オブジェクト変更部によって機能オブジェクトの組み替えが行われたデバイスドライバの前記設定値管理部が管理している前記管理情報から組み替え前の機能オブジェクトにおいて指定されていた保存先の設定値を読み出すことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記設定値管理部は、前記複数の機能オブジェクトのそれぞれに関する情報を前記管理情報に記録して管理し、
前記引継処理部は、前記機能オブジェクト変更部によって機能オブジェクトの組み替えが行われることに伴い、組み替え後の機能オブジェクトに関する情報が前記管理情報に記録されている組み替え前の機能オブジェクトに関する情報と異なる場合に、組み替え後の機能オブジェクトにおいて指定されている保存先が変更されたことを検知することを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記設定値管理部は、前記機能オブジェクト変更部によって前記デバイスドライバに組み込まれている少なくとも１つの機能オブジェクトが新規な機能オブジェクトに組み替えられることに伴い、前記管理情報に記録されている機能オブジェクトに関する情報を更新することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記機能オブジェクト変更部は、
前記デバイスドライバに組み込まれている少なくとも１つの機能オブジェクトに対応する既存の機能定義データを取得する機能定義データ取得部と、
前記機能定義データ取得部によって取得された機能定義データをユーザーによる指示操作に基づいて編集する機能定義データ編集部と、
前記機能定義データ編集部によって編集された機能定義データに基づき、新規な機能オブジェクトを生成する機能オブジェクト生成部と、
を有することを特徴とする請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
前記設定管理部は、前記ユーザーインタフェース部によって各機能オブジェクトにおいて指定されている保存先の設定値が変更される都度、該保存先の設定値をミラーリングして前記管理情報を更新することを特徴とする請求項１乃至６のいずれかに記載の情報処理装置。
【請求項８】
ユーザーが設定可能な機能ごとに設けられた複数の機能オブジェクトが組み込まれており、各機能オブジェクトにおいて機能ごとの設定値の保存先が指定されると共に、前記複数の機能オブジェクトのうちの任意の機能オブジェクトを組み替えることによってカスタマイズが可能なデバイスドライバであって、情報処理装置を、
前記複数の機能オブジェクトのそれぞれにおいて指定された保存先から各機能の設定値を読み出して表示すると共に、ユーザーによる各機能に対する設定操作に基づき、当該設定操作が行われた機能に対応する機能オブジェクトにおいて指定されている保存先の設定値を変更するユーザーインタフェース部、及び、
前記複数の機能オブジェクトのそれぞれによって指定されている保存先の設定値をミラーリングして管理情報として管理する設定値管理部、
として機能させることを特徴とするデバイスドライバ。
【請求項９】
情報処理装置にインストールされているデバイスドライバに組み込まれた機能オブジェクトをカスタマイズするためのカスタマイズプログラムであって、前記情報処理装置を、
ユーザーによる指示操作に基づいて前記デバイスドライバに組み込まれている少なくとも１つの機能オブジェクトを新規な機能オブジェクトに組み替える機能オブジェクト変更部、及び、
前記機能オブジェクト変更部によって機能オブジェクトの組み替えが行われることに伴い、組み替え後の機能オブジェクトにおいて指定されている保存先が変更された場合、前記デバイスドライバにおいて管理されている管理情報から組み替え前の機能オブジェクトにおいて指定されていた保存先の設定値を読み出し、該設定値を組み替え後の機能オブジェクトにおいて指定されている保存先に保存する引継処理部、
として機能させることを特徴とするカスタマイズプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、デバイスドライバ及びカスタマイズプログラムに関し、特に情報処理装置にインストールされているデバイスドライバの機能をカスタマイズする技術に関する。
【背景技術】
【０００２】
従来、カスタマイズツールを用いて、プリンタドライバなどのデバイスドライバの初期値設定や設定項目の表示／非表示の切り替え設定などをユーザーがカスタマイズできるようにした技術が知られている（例えば特許文献１）。この従来技術では、カスタマイズツールを用いることにより、印刷設定などの各種設定を編集することができる。カスタマイズツールによってカスタマイズされた情報は、ファイルに保存される。そしてインストーラーがデバイスドライバをアップデートするときには、インストーラーがカスタマイズされたデバイスドライバであるか否かを判定し、カスタマイズされたデバイスドライバであれば、ファイルに保存されている情報をアップデート後のデバイスドライバに書き込むことにより、カスタマイズされた情報を引き継ぐようにしている。つまり、この従来技術は、インストーラーがデバイスドライバのアップデートのために再インストールするときに、アップデート前にカスタマイズされた情報をアップデート後に引き継ぐようにするものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３０９７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年ではプリンタドライバなどのデバイスドライバの開発効率を向上させるため、例えば様々なデバイスに共通する基本的な機能部分だけをドライバ共通部として作成し、個々のデバイスにユニークな機能に対応する設定項目などの部分をドライバ共通部に組み込む機能オブジェクトとして作成する開発手法が採用されている。そのため、近年のデバイスドライバは、ドライバ共通部と、そのドライバ共通部に組み込まれる複数の機能オブジェクトとによって構成される。機能オブジェクトは、機能ごとに設けられ、各機能についての設定項目や設定項目の表示／非表示、設定項目を表示するときの表示位置、設定項目についてユーザーが選択可能な選択肢などを定義するものである。このような機能オブジェクトは、各設定項目についてのデフォルトの設定値やユーザーによって設定された設定値などの保存先として、ＤＥＶＭＯＤＥ構造体やレジストリのアドレスを指定している。そのため、ドライバ共通部は、デバイスドライバに組み込まれている各機能オブジェクトで定義された各種情報を参照することにより、ユーザーインタフェースとなる表示画面に機能ごとの設定項目などを表示することができる。さらにこのとき、ドライバ共通部は、各機能オブジェクトによって指定されている保存先から各機能の設定項目ごとの設定値を読み出すことにより、表示画面に表示する各設定項目にデフォルトの設定値やユーザーが過去に設定した設定値などを反映させて表示する。したがって、ユーザーは、機能ごとの各設定項目についてデフォルトの設定値や現在の設定値を参照しながらプリント出力などの設定操作を行うことができるようになる。
【０００５】
上記のように機能オブジェクトが組み込まれるデバイスドライバの場合、ユーザーによって各機能に対するカスタマイズ操作が行われると、デバイスドライバに組み込まれている機能オブジェクトがカスタマイズによって指定された新規な機能オブジェクトに組み替えられることがある。このとき、ユーザーがカスタマイズ可能な範囲は、各機能についての設定項目の追加や削除、表示位置の変更や、表示／非表示の切り替えといった表示画面上でユーザーが視認できる部分だけでなく、各設定項目についての設定値の保存先についてもカスタマイズして変更することができる。そのため、例えば、組み替え前の機能オブジェクトが設定値の保存先としてＤＥＶＭＯＤＥ構造体を指定していたにもかかわらず、それと組み替えられた新規な機能オブジェクトが設定値の保存先としてレジストリを指定していることが起こり得る。
【０００６】
しかし、機能オブジェクトの組み替えによって設定値の保存先が変わってしまうと、カスタマイズの前後においてドライバ共通部が設定値を読み出す際の参照先が変わることになる。その結果、カスタマイズ後にデバイスドライバが起動し、ドライバ共通部が新規な機能オブジェクトにおいて指定されている保存先から設定値を読み出そうとしてもカスタマイズ前に保存されていた設定値を読み出すことができず、表示画面を正常に表示することができなくなる。これを防止するためには、機能オブジェクトを新規な機能オブジェクトに組み替えた場合には、デバイスドライバを再インストールすることにより、新規な機能オブジェクトによって指定されている保存先にデフォルトの設定値などを格納することが必要となり、利便性が悪いという問題がある。
【０００７】
そこで本発明は、上記問題点を解決すべくなされたものであり、機能オブジェクトを組み替えてもカスタマイズ前の設定値を引き継いで参照できるようにした情報処理装置、デバイスドライバ及びカスタマイズプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１に係る発明は、情報処理装置であって、ユーザーが設定可能な機能ごとに設けられ、各機能の設定値の保存先を指定する複数の機能オブジェクトが組み込まれたデバイスドライバと、前記デバイスドライバに組み込まれた機能オブジェクトをカスタマイズするカスタマイズツールと、を備え、前記デバイスドライバは、前記複数の機能オブジェクトのそれぞれにおいて指定された保存先から各機能の設定値を読み出して表示すると共に、ユーザーによる各機能に対する設定操作に基づき、当該設定操作が行われた機能に対応する機能オブジェクトにおいて指定されている保存先の設定値を変更するユーザーインタフェース部と、前記複数の機能オブジェクトのそれぞれによって指定されている保存先の設定値をミラーリングして管理情報として管理する設定値管理部と、を有し、前記カスタマイズツールは、ユーザーによる指示操作に基づいて前記デバイスドライバに組み込まれている少なくとも１つの機能オブジェクトを新規な機能オブジェクトに組み替える機能オブジェクト変更部と、前記機能オブジェクト変更部によって機能オブジェクトの組み替えが行われることに伴い、組み替え後の機能オブジェクトにおいて指定されている保存先が変更された場合、前記管理情報から組み替え前の機能オブジェクトにおいて指定されていた保存先の設定値を読み出し、該設定値を組み替え後の機能オブジェクトにおいて指定されている保存先に保存する引継処理部と、を有することを特徴とする構成である。
【０００９】
請求項２に係る発明は、請求項１に記載の情報処理装置において、前記設定値管理部は、前記引継処理部によって組み替え後の機能オブジェクトにおいて指定されている保存先に設定値が保存された後に、前記管理情報を更新することを特徴とする構成である。
【００１０】
請求項３に係る発明は、請求項１又は２に記載の情報処理装置において、デバイスごとに設けられた複数の前記デバイスドライバを備えており、前記機能オブジェクト変更部は、前記複数のデバイスドライバのそれぞれに組み込まれている機能オブジェクトを組み替え可能であり、前記引継処理部は、前記複数のデバイスドライバのうち、前記機能オブジェクト変更部によって機能オブジェクトの組み替えが行われたデバイスドライバの前記設定値管理部が管理している前記管理情報から組み替え前の機能オブジェクトにおいて指定されていた保存先の設定値を読み出すことを特徴とする構成である。
【００１１】
請求項４に係る発明は、請求項１乃至３のいずれかに記載の情報処理装置において、前記設定値管理部は、前記複数の機能オブジェクトのそれぞれに関する情報を前記管理情報に記録して管理し、前記引継処理部は、前記機能オブジェクト変更部によって機能オブジェクトの組み替えが行われることに伴い、組み替え後の機能オブジェクトに関する情報が前記管理情報に記録されている組み替え前の機能オブジェクトに関する情報と異なる場合に、組み替え後の機能オブジェクトにおいて指定されている保存先が変更されたことを検知することを特徴とする構成である。
【００１２】
請求項５に係る発明は、請求項４に記載の情報処理装置において、前記設定値管理部は、前記機能オブジェクト変更部によって前記デバイスドライバに組み込まれている少なくとも１つの機能オブジェクトが新規な機能オブジェクトに組み替えられることに伴い、前記管理情報に記録されている機能オブジェクトに関する情報を更新することを特徴とする構成である。
【００１３】
請求項６に係る発明は、請求項１乃至５のいずれかに記載の情報処理装置において、前記機能オブジェクト変更部は、前記デバイスドライバに組み込まれている少なくとも１つの機能オブジェクトに対応する既存の機能定義データを取得する機能定義データ取得部と、前記機能定義データ取得部によって取得された機能定義データをユーザーによる指示操作に基づいて編集する機能定義データ編集部と、前記機能定義データ編集部によって編集された機能定義データに基づき、新規な機能オブジェクトを生成する機能オブジェクト生成部と、を有することを特徴とする構成である。
【００１４】
請求項７に係る発明は、請求項１乃至６のいずれかに記載の情報処理装置において、前記設定管理部は、前記ユーザーインタフェース部によって各機能オブジェクトにおいて指定されている保存先の設定値が変更される都度、該保存先の設定値をミラーリングして前記管理情報を更新することを特徴とする構成である。
【００１５】
請求項８に係る発明は、ユーザーが設定可能な機能ごとに設けられた複数の機能オブジェクトが組み込まれており、各機能オブジェクトにおいて機能ごとの設定値の保存先が指定されると共に、前記複数の機能オブジェクトのうちの任意の機能オブジェクトを組み替えることによってカスタマイズが可能なデバイスドライバであって、情報処理装置を、前記複数の機能オブジェクトのそれぞれにおいて指定された保存先から各機能の設定値を読み出して表示すると共に、ユーザーによる各機能に対する設定操作に基づき、当該設定操作が行われた機能に対応する機能オブジェクトにおいて指定されている保存先の設定値を変更するユーザーインタフェース部、及び、前記複数の機能オブジェクトのそれぞれによって指定されている保存先の設定値をミラーリングして管理情報として管理する設定値管理部、として機能させることを特徴とする構成である。
【００１６】
請求項９に係る発明は、情報処理装置にインストールされているデバイスドライバに組み込まれた機能オブジェクトをカスタマイズするためのカスタマイズプログラムであって、前記情報処理装置を、ユーザーによる指示操作に基づいて前記デバイスドライバに組み込まれている少なくとも１つの機能オブジェクトを新規な機能オブジェクトに組み替える機能オブジェクト変更部、及び、前記機能オブジェクト変更部によって機能オブジェクトの組み替えが行われることに伴い、組み替え後の機能オブジェクトにおいて指定されている保存先が変更された場合、前記デバイスドライバにおいて管理されている管理情報から組み替え前の機能オブジェクトにおいて指定されていた保存先の設定値を読み出し、該設定値を組み替え後の機能オブジェクトにおいて指定されている保存先に保存する引継処理部、として機能させることを特徴とする構成である。
【発明の効果】
【００１７】
本発明によれば、機能オブジェクトを組み替えることによってデバイスドライバがカスタマイズされた場合であっても、カスタマイズ前の設定値を引き継いで参照することができるようになるため、カスタマイズ後においてもデバイスドライバを正常に起動することができる。
【図面の簡単な説明】
【００１８】
【図１】情報処理装置のハードウェア構成の一例を示す図である。
【図２】ＣＰＵがデバイスドライバとして機能する場合の詳細な機能構成の一例を示す図である。
【図３】レジストリ及びＤＥＶＭＯＤＥ構造体のデータ構造の一例を示す図である。
【図４】ＵＩ処理部によって表示される印刷設定画面の一例を示す図である。
【図５】設定値管理部によって管理される管理情報の一例を示す図である。
【図６】管理情報に含まれる機能オブジェクト情報、レジストリ管理情報及びＤＥＶＭＯＤＥ構造体管理情報の一例を示す図である。
【図７】デバイスドライバによって行われる処理手順の一例を示すフローチャートである。
【図８】ＣＰＵがカスタマイズツールとして機能する場合の詳細な機能構成の一例を示す図である。
【図９】機能定義データ取得部、機能定義データ編集部、機能オブジェクト生成部及び組替処理部のそれぞれにおける処理の概念を説明する図である。
【図１０】機能オブジェクトの組み替えが行われたデバイスドライバの一構成例を示す図である。
【図１１】データ構造更新部によって更新されたレジストリ及びＤＥＶＭＯＤＥ構造体のデータ構造の一例を示す図である。
【図１２】カスタマイズツールによって行われる処理手順の一例を示すフローチャートである。
【図１３】データ引継処理の詳細な処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
【００２０】
図１は、本発明の一実施形態に関する情報処理装置１のハードウェア構成の一例を示す図である。この情報処理装置１は、ＣＰＵ２と、メモリ３と、表示部４と、操作入力部５と、通信インタフェース６と、記憶装置７とを備えており、例えば一般的なパーソナルコンピュータ（ＰＣ）によって構成される。
【００２１】
ＣＰＵ２は、記憶装置７に予めインストールされている各種プログラムを実行するものである。メモリ３は、ＣＰＵ２が各種プログラムを実行する際に一時的なデータなどを記憶するものである。表示部４は、例えばカラー液晶ディスプレイなどによって構成され、ユーザーに対して各種の情報を表示する。操作入力部５は、キーボードやマウスによって構成され、ユーザーによる各種の入力操作を受け付けて操作情報をＣＰＵ２へ出力する。通信インタフェース６は、情報処理装置１をＬＡＮ（Local Area Network）などのネットワークに接続して外部デバイスと通信を行うものである。記憶装置７は、ハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）によって構成される不揮発性の記憶手段であり、ＣＰＵ２よって実行されるプログラムや各種データなどを記憶する。
【００２２】
例えば記憶装置７に予めインストールされるプログラムには、情報処理装置１の基本ソフトウェアであるオペレーティングシステム８と、外部デバイスであるプリンタに対して印刷ジョブを出力するためのドライバプログラムであるデバイスドライバ９ａと、そのデバイスドライバ９ａをカスタマイズするためのカスタマイズプログラム９ｂとがある。またこの他にも、記憶装置７には、ユーザーがドキュメント編集などを行うための様々なアプリケーションプログラムが記憶される。さらに記憶装置７には、図１に示すように、管理情報１０と、レジストリ１１と、ＤＥＶＭＯＤＥ構造体１２とが記憶される。管理情報１０は、ＣＰＵ２がデバイスドライバ９ａを起動することによって生成される情報である。またレジストリ１１は、ＣＰＵ２において起動するオペレーティングシステム８によって管理され、オペレーティングシステム８やデバイスドライバ９ａ、その他各種アプリケーションの設定値などを格納する情報である。ＤＥＶＭＯＤＥ構造体１２は、印刷設定に関する設定値を記憶しておくためのデータベースである。
【００２３】
上記のような情報処理装置１は、電源投入に伴い、ＣＰＵ２がオペレーティングシステム８を自動的に起動する。その後、ユーザーによるアプリケーションの起動指示に基づき、ドキュメント編集などを行うための様々なアプリケーションプログラムを起動する。例えば、情報処理装置１においてアプリケーションプログラムが起動されている状態で、ユーザーによる印刷指示が行われると、ＣＰＵ２は、記憶装置７からデバイスドライバ９ａを読み出して実行する。これにより、情報処理装置１は、ユーザーが印刷設定操作を行うための表示画面を表示部４に表示する。そのため、ユーザーはその表示画面を見ながら印刷設定操作を行うことができるようになる。またオペレーティングシステム８が起動している状態でユーザーがカスタマイズプログラム９ｂの起動を指示すると、ＣＰＵ２が記憶装置７からカスタマイズプログラム９ｂを読み出して起動する。これにより、ユーザーはデバイスドライバ９ａのカスタマイズ操作を行うことができるようになる。
【００２４】
図２は、ＣＰＵ２がデバイスドライバ９ａを実行することによりデバイスドライバ２０として機能する場合の詳細な機能構成の一例を示す図である。このデバイスドライバ２０は、ドライバ共通部２１と、複数の機能オブジェクト２７ａ，２７ｂ，２７ｃとを有し、ドライバ共通部２１に対して複数の機能オブジェクト２７ａ，２７ｂ，２７ｃが組み込まれた構成である。ドライバ共通部２１は、例えば複数機種のプリンタに共通して利用することが可能な共通機能に関する処理を実行する処理部である。つまり、ドライバ共通部２１は、プリンタの機種に依存しない処理を行うものである。このドライバ共通部２１は、設定値管理部２２と、ユーザーインタフェース処理部２３（以下、単に「ＵＩ処理部２３」という。）と、描画処理部２４と、共通インタフェース部２５とを備えている。
【００２５】
また複数の機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれは、例えばネットワークに接続されている特定機種のプリンタに搭載された個々の機能に関する情報を管理するものであり、例えば個々の機能に対応する設定項目などを管理する。つまり、各機能オブジェクト２７ａ，２７ｂ，２７ｃは、プリンタの機種に依存する機能ごとの設定に関する情報を管理するものである。このような機能オブジェクト２７ａ，２７ｂ，２７ｃは、例えばドライバ共通部２１に組み込まれるプログラムモジュールとして構築される。それ故、各機能オブジェクト２７ａ，２７ｂ，２７ｃは、それ単独で機能するものではなく、ドライバ共通部２１に組み込まれることによって機能し、ドライバ共通部２１からの要求に応じて必要な情報をドライバ共通部２１へ出力するように構成される。
【００２６】
これら機能オブジェクト２７ａ，２７ｂ，２７ｃにおいて管理される機能には様々な機能がある。例えば、プリンタがドキュメントの向きを縦置きと横置きとに切り替えて印刷出力可能な場合には印刷出力時のドキュメントの向きを設定する機能や、プリンタが様々なドキュメントサイズを印刷出力時の用紙サイズに拡大又は縮小して印刷出力可能な場合にはドキュメントサイズや用紙サイズなどを設定する機能、プリンタがカラー印刷可能な場合にはカラー印刷とモノクロ印刷とを切り替えて設定する機能、プリンタが様々な用紙種類に対応している場合には印刷出力時の用紙種類を設定する機能、プリンタがセキュリティ印刷（親展印刷）を行う機能を有している場合にはセキュリティ印刷の設定やセキュリティ印刷が設定されたときのＩＤやパスワードなどの識別情報を設定する機能などがある。またこの他にも、各機能オブジェクト２７ａ，２７ｂ，２７ｃには、印刷出力時の設定に関する様々な機能が割り当てられる。尚、本実施形態では、ドライバ共通部２１に３つの機能オブジェクト２７ａ，２７ｂ，２７ｃが組み込まれる場合を例示するが、機能オブジェクトの数は３つに限られるものではなく、４つ以上であっても構わない。これら機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれは、機能情報２８ａ，２８ｂ，２８ｃ及び保存先情報２９ａ，２９ｂ，２９ｃを保持している。
【００２７】
機能情報２８ａ，２８ｂ，２８ｃは、各機能オブジェクト２７ａ，２７ｂ，２７ｃの機能に関する表示態様などを定義する情報である。例えば、各機能情報２８ａ，２８ｂ，２８ｃには、各機能オブジェクト２７ａ，２７ｂ，２７ｃに割り当てられた機能に対応する少なくとも１つの設定項目を定義する情報が含まれると共に、その設定項目の表示又は非表示の設定、その設定項目の表示位置、その設定項目についてユーザーが選択操作可能な選択肢などを定義する情報が含まれる。また保存先情報２９ａ，２９ｂ，２９ｃは、各機能情報２８ａ，２８ｂ，２８ｃにおいて定義されている各設定項目についてのデフォルトの設定値やユーザーが設定した設定値の保存先を指定する情報であり、レジストリ１１とＤＥＶＭＯＤＥ構造体１２とのいずれか一方を保存先として指定すると共に、レジストリ１１又はＤＥＶＭＯＤＥ構造体１２において設定値を保存するアドレスを指定する情報である。各機能オブジェクト２７ａ，２７ｂ，２７ｃは、ドライバ共通部２１からの要求に応じて機能情報２８ａ，２８ｂ，２８ｃや保存先情報２９ａ，２９ｂ，２９ｃをドライバ共通部２１に出力する。
【００２８】
図３は、レジストリ１１及びＤＥＶＭＯＤＥ構造体１２のデータ構造の一例を示す図である。レジストリ１１は、図３（ａ）に示すように、アドレス部１１ａとデータ部１１ｂとを有している。アドレス部１１ａは、データ部１１ｂに格納されるデータ（設定値）の格納アドレスを示すものである。そのため、各機能オブジェクト２７ａ，２７ｂ，２７ｃが設定値の保存先としてレジストリ１１を指定している場合、それらの保存先情報２９ａ，２９ｂ，２９ｃにはその設定値が格納されているレジストリ１１のアドレス情報が含まれる。尚、図３（ａ）では、３つの機能オブジェクト２７ａ，２７ｂ，２７ｃのうち、１つの機能オブジェクト２７ａの機能に関する設定値がレジストリ１１に格納されている場合を例示している。レジストリ１１は、上述したようにオペレーティングシステム８によって管理される情報であるため、図３（ａ）に示すようにレジストリ１１に格納される設定値は、情報処理装置１においてのみ使用される情報となる。
【００２９】
一方、図３（ｂ）に示すように、ＤＥＶＭＯＤＥ構造体１２もまた、アドレス部１２ａとデータ部１２ｂとを有している。アドレス部１２ａは、データ部１２ｂに格納されるデータ（設定値）の格納アドレスを示すものである。そのため、各機能オブジェクト２７ａ，２７ｂ，２７ｃが設定値の保存先としてＤＥＶＭＯＤＥ構造体１２を指定している場合、それらの保存先情報２９ａ，２９ｂ，２９ｃにはその設定値が格納されているＤＥＶＭＯＤＥ構造体１２のアドレス情報が含まれる。尚、図３（ｂ）では、３つの機能オブジェクト２７ａ，２７ｂ，２７ｃのうち、２つの機能オブジェクト２７ｂ，２７ｃの機能に関する設定値がＤＥＶＭＯＤＥ構造体１２に格納されている場合を例示している。
【００３０】
このようなＤＥＶＭＯＤＥ構造体１２は、例えばドキュメント編集を行うアプリケーションやそのアプリケーションによって生成されるドキュメントファイルに関連付けておくことも可能である。アプリケーションやドキュメントファイルにＤＥＶＭＯＤＥ構造体１２を関連付けておけば、一度印刷設定操作を行って印刷出力を行った後に再度印刷出力を行う際に前回の印刷設定を引き継いで印刷することができるようになり、２回目以降の印刷設定操作を簡略化することができるという利点がある。その一方、ＤＥＶＭＯＤＥ構造体１２がドキュメントファイルに関連付けられると、そのドキュメントファイルが他のユーザーによって閲覧された場合には、そのドキュメントファイルに関連付けられているＤＥＶＭＯＤＥ構造体１２に含まれる設定値も他のユーザーによって閲覧されることになる。そのため、例えばセキュリティ印刷のためのＩＤやパスワードなどの識別情報については、ＤＥＶＭＯＤＥ構造体１２に保存するのではなく、レジストリ１１に保存しておくことが好ましい。
【００３１】
図２に戻り、ドライバ共通部２１のＵＩ処理部２３は、デバイスドライバ２０が機能することに伴い、表示部４に対して印刷設定画面を表示し、操作入力部５に対して行われるユーザーの設定操作を受け付ける。ＵＩ処理部２３は、表示部４に印刷設定画面を表示するとき、その印刷設定画面の画面枠を生成する。そしてＵＩ処理部２３は、各機能オブジェクト２７ａ，２７ｂ，２７ｃの機能情報２８ａ，２８ｂ，２８ｃを参照することにより、それら機能情報２８ａ，２８ｂ，２８ｃで定義されている表示態様で各種の設定項目を画面枠の内側に配置すると共に、保存先情報２９ａ，２９ｂ，２９ｃに基づいてレジストリ１１やＤＥＶＭＯＤＥ構造体１２から各設定項目の設定値を読み出して現在の設定値を各設定項目に反映させることにより印刷設定画面を生成する。ＵＩ処理部２３は、このようにして生成した印刷設定画面を表示部４に出力することにより、表示部４には、ユーザーが様々な印刷設定を行うことが可能な印刷設定画面が表示されるようになる。
【００３２】
図４は、ＵＩ処理部２３によって表示される印刷設定画面Ｇ１の一例を示す図である。ＵＩ処理部２３は、印刷設定画面Ｇ１の画面枠を生成し、その画面枠中央の設定領域Ｒ１に対し、ユーザーが印刷設定操作を行うことが可能な設定項目や現在の設定値などを表示する。すなわち、ＵＩ処理部２３は、各機能オブジェクト２７ａ，２７ｂ，２７ｃの機能情報２８ａ，２８ｂ，２８ｃに基づいて各設定項目を設定領域Ｒ１内に配置すると共に、各機能オブジェクト２７ａ，２７ｂ，２７ｃの保存先情報２９ａ，２９ｂ，２９ｃに基づいて各設定項目における現在の設定値をレジストリ１１又はＤＥＶＭＯＤＥ構造体１２から取得し、各設定項目の現在の設定値として表示する。その結果、設定領域Ｒ１において表示される設定項目は、各機能オブジェクト２７ａ，２７ｂ，２７ｃによって定義された表示態様で表示されるようになる。そしてユーザーは、設定領域Ｒ１に含まれる各設定項目に対して所望の設定操作を行うことにより、現在の設定値を所望の設定値に設定変更することができるようになる。
【００３３】
また図４に示す印刷設定画面Ｇ１には、ユーザーがセキュリティ印刷に関する設定を行うための領域Ｒ２が含まれる。セキュリティ印刷とは、印刷ジョブにＩＤとパスワードとを含む識別情報を予め設定しておき、ユーザーがプリンタの設置場所まで移動してプリンタに対してそのＩＤとパスワードに一致する識別情報を入力することにより、当該プリンタにおいて印刷出力が開始される印刷方法である。そのため、領域Ｒ２には、セキュリティ印刷を行うためにユーザーが入力すべきＩＤとパスワードとを含む識別情報を予め設定する設定項目が含まれる。
【００３４】
上記のような印刷設定画面Ｇ１が表示されている状態でユーザーの印刷設定操作により各設定項目の設定値が変更された場合、ＵＩ処理部２３は、その設定項目の設定値の保存場所を保存先情報２９ａ，２９ｂ，２９ｃに基づいて特定し、その特定した保存場所に保存されている設定値をユーザーによって指定された設定値に書き換える。これにより、各設定項目の設定値が変更される。つまり、ＵＩ処理部２３は、ユーザーによる設定操作に基づいてレジストリ１１やＤＥＶＭＯＤＥ構造体１２に保存されている設定値を更新するように構成される。またＵＩ処理部２３は、レジストリ１１やＤＥＶＭＯＤＥ構造体１２に保存されている設定値を更新したときには、表示部４に表示している印刷設定画面Ｇ１も更新する。これにより、表示部４において表示されている印刷設定画面Ｇ１上における設定値がユーザーによって指定された設定値に更新される。
【００３５】
またＵＩ処理部２３は、表示部４に対して印刷設定画面Ｇ１を表示している状態でユーザーによる印刷指示を検知すると、描画処理部２４を機能させる。描画処理部２４は、ユーザーによって指定されたドキュメント（画像データ）を取得し、そのドキュメントに対応する描画処理を行うことにより、ネットワークに接続されている特定機種のプリンタにおいて印刷出力を行うことが可能な印刷データを生成する。そして描画処理部２４は、描画処理によって生成した印刷データと各種印刷コマンドとを含む印刷ジョブを生成し、通信インタフェース６を介して特定機種のプリンタに当該印刷ジョブを送信する。このとき描画処理部２４は、各機能オブジェクト２７ａ，２７ｂ，２７ｃの保存先情報２９ａ，２９ｂ，２９ｃに基づいてレジストリ１１又はＤＥＶＭＯＤＥ構造体１２から機能ごとの設定項目の設定値を読み出し、それら設定値に対応する描画処理を行うと共に、それら設定値に対応する印刷コマンドを生成する。したがって、特定機種のプリンタに出力される印刷ジョブは、印刷設定画面Ｇ１においてユーザーが設定した印刷設定が反映された印刷ジョブとなる。尚、描画処理部２４は、レジストリ１１やＤＥＶＭＯＤＥ構造体１２から設定値を読み出すのではなく、ＵＩ処理部２３からそれらの設定値を取得するものであっても構わない。
【００３６】
設定値管理部２２は、レジストリ１１及びＤＥＶＭＯＤＥ構造体１２に保存されている設定値を読み出し、それらの設定値をレジストリ１１やＤＥＶＭＯＤＥ構造体１２とは異なる管理情報１０に保存して管理する処理部である。つまり、設定値管理部２２は、レジストリ１１及びＤＥＶＭＯＤＥ構造体１２に保存されている設定値を管理情報１０にミラーリングして管理する。例えば、ＵＩ処理部２３によってレジストリ１１やＤＥＶＭＯＤＥ構造体１２に保存されている設定値が変更されると、設定値管理部２２は、レジストリ１１又はＤＥＶＭＯＤＥ構造体１２に保存されている設定値を管理情報１０にミラーリングしてＵＩ処理部２３による設定値の変更を管理情報１０にも反映させる。これにより、管理情報１０には、レジストリ１１及びＤＥＶＭＯＤＥ構造体１２のそれぞれに保存されている印刷設定に関する設定値と同じ設定値が保存されることになる。
【００３７】
図５は、設定値管理部２２によって管理される管理情報１０の一例を示す図である。図５に示すように、管理情報１０は、各機能オブジェクト２７ａ，２７ｂ，２７ｃに関する情報を記録した機能オブジェクト情報１６と、各機能オブジェクト２７ａ，２７ｂ，２７ｃにおいて定義されている各設定項目の設定値を管理する設定値管理情報１７とを有する情報である。また設定値管理情報１７は、レジストリ１１に格納されている設定値と同じ情報を保持するレジストリ管理情報１８と、ＤＥＶＭＯＤＥ構造体１２に格納されている設定値と同じ情報を保持するＤＥＶＭＯＤＥ構造体管理情報１９とを有する情報である。
【００３８】
図６は、管理情報１０に含まれる機能オブジェクト情報１６、レジストリ管理情報１８及びＤＥＶＭＯＤＥ構造体管理情報１９の一例を示す図である。図６（ａ）に示すように機能オブジェクト情報１６は、各機能オブジェクト２７ａ，２７ｂ，２７ｃを識別するための機能オブジェクト識別情報１６ａと、各機能オブジェクト２７ａ，２７ｂ，２７ｃのバージョン情報１６ｂとを有し、各機能オブジェクト２７ａ，２７ｂ，２７ｃの識別情報とバージョンとが記録された情報となっている。つまり、この機能オブジェクト情報１６を参照すれば、ドライバ共通部２１に組み込まれている各機能オブジェクト２７ａ，２７ｂ，２７ｃのバージョンが更新されたか否かを判別することができる。そのため、設定値管理部２２は、例えばＣＰＵ２においてデバイスドライバ２０が起動したタイミングで各機能オブジェクト２７ａ，２７ｂ，２７ｃからバージョン情報を取得し、そのバージョン情報と、機能オブジェクト情報１６に記録されているバージョン情報１６ｂとを比較することにより、デバイスドライバ２０の起動前に各機能オブジェクト２７ａ，２７ｂ，２７ｃが更新されたか否かを判断することができる。そして各機能オブジェクト２７ａ，２７ｂ，２７ｃから取得したバージョン情報と、機能オブジェクト情報１６に記録されているバージョン情報１６ｂとが異なる場合、設定値管理部２２は、各機能オブジェクト２７ａ，２７ｂ，２７ｃから取得した最新のバージョン情報を機能オブジェクト情報１６のバージョン情報１６ｂの欄に書き込んで管理情報１０を更新する。
【００３９】
またレジストリ管理情報１８は、各機能オブジェクト２７ａ，２７ｂ，２７ｃの機能ごとに、設定項目１８ａと、アドレス情報１８ｂと、サイズ情報１８ｃと、設定値１８ｄとが記録された情報である。設定項目１８ａは、各機能オブジェクト２７ａ，２７ｂ，２７ｃの機能情報２８ａ，２８ｂ，２８ｃに定義されている設定項目であり、アドレス情報１８ｂは、その設定項目の設定値が格納されているレジストリ１１のアドレスを示す情報である。またサイズ情報１８ｃは、レジストリ１１に格納されている設定値のデータサイズを示す情報であり、さらに設定値１８ｄは、レジストリ１１に格納されている設定値をミラーリングして格納される値である。したがって、このレジストリ管理情報１８を参照すれば、各機能オブジェクト２７ａ，２７ｂ，２７ｃにおいて保存先がレジストリ１１として指定されている設定項目と、その設定項目の設定値とを特定することができる。
【００４０】
さらにＤＥＶＭＯＤＥ構造体管理情報１９は、レジストリ管理情報１８と同様、各機能オブジェクト２７ａ，２７ｂ，２７ｃの機能ごとに、設定項目１９ａと、アドレス情報１９ｂと、サイズ情報１９ｃと、設定値１９ｄとが記録された情報である。設定項目１９ａは、各機能オブジェクト２７ａ，２７ｂ，２７ｃの機能情報２８ａ，２８ｂ，２８ｃに定義されている設定項目であり、アドレス情報１９ｂは、その設定項目の設定値が格納されているＤＥＶＭＯＤＥ構造体１２のアドレスを示す情報である。またサイズ情報１９ｃは、ＤＥＶＭＯＤＥ構造体１２に格納されている設定値のデータサイズを示す情報であり、さらに設定値１８ｄは、ＤＥＶＭＯＤＥ構造体１２に格納されている設定値をミラーリングして格納される値である。したがって、このＤＥＶＭＯＤＥ構造体管理情報１９を参照すれば、各機能オブジェクト２７ａ，２７ｂ，２７ｃにおいて保存先がＤＥＶＭＯＤＥ構造体１２として指定されている設定項目と、その設定項目の設定値とを特定することができる。
【００４１】
そして設定値管理部２２は、ＵＩ処理部２３によってレジストリ１１やＤＥＶＭＯＤＥ構造体１２に格納されている設定値が書き換えられると、その都度、レジストリ管理情報１８の設定値１８ｄの欄やＤＥＶＭＯＤＥ構造体管理情報１９の設定値１９ｄの欄を書き換えて管理情報１０を更新する。
【００４２】
共通インタフェース部２５は、複数の機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれをドライバ共通部２１に組み込むためのインタフェースである。この共通インタフェース部２５は、例えば設定値管理部２２、ＵＩ処理部２３及び描画処理部２４のそれぞれが各機能オブジェクト２７ａ，２７ｂ，２７ｃから機能情報２８ａ，２８ｂ，２８ｃや保存先情報２９ａ，２９ｂ，２９ｃを読み出す際に、共通のコマンドで読み出しを行えるようにするものである。そのため、設定値管理部２２、ＵＩ処理部２３及び描画処理部２４は、機能オブジェクトごとにコマンドを切り替える必要がなくなるため、処理効率が向上する。
【００４３】
次に上記のように構成されたデバイスドライバ２０の動作について説明する。図７は、デバイスドライバ２０によって行われる処理手順の一例を示すフローチャートである。この処理は、デバイスドライバ２０のドライバ共通部２１によって行われる処理であり、上述した設定値管理部２２、ＵＩ処理部２３及び描画処理部２４が連携動作することによって進行していく処理手順となっている。ＣＰＵ２においてデバイスドライバ２０が機能すると、ドライバ共通部２１は、ドライバ共通部２１に組み込まれている各機能オブジェクト２７ａ，２７ｂ，２７ｃから機能情報２８ａ，２８ｂ，２８ｃを読み出す（ステップＳ１０）。そして設定値管理部２２が機能し、機能オブジェクト情報１６に記録されているバージョン情報１６ｂとのバージョン比較を行い（ステップＳ１１）、機能オブジェクト２７ａ，２７ｂ，２７ｃが変更されているか否かを判断する（ステップＳ１２）。その結果、複数の機能オブジェクト２７ａ，２７ｂ，２７ｃの少なくとも１つが変更されている場合（ステップＳ１２でＹＥＳ）、設定値管理部２２は、管理情報１０に含まれる機能オブジェクト情報１６のバージョン情報１６ｂを最新の状態に書き換えて更新する（ステップＳ１３）。尚、複数の機能オブジェクト２７ａ，２７ｂ，２７ｃに変更が生じていない場合（ステップＳ１２でＮＯ）、ステップＳ１３の処理はスキップする。
【００４４】
続いてドライバ共通部２１においてＵＩ処理部２３が機能する。そしてＵＩ処理部２３は、各機能オブジェクト２７ａ，２７ｂ，２７ｃから保存先情報２９ａ，２９ｂ，２９ｃを取得し、それらの保存先情報２９ａ，２９ｂ，２９ｃに基づいて各設定項目の設定値を、レジストリ１１又はＤＥＶＭＯＤＥ構造体１２から読み出す（ステップＳ１４）。ＵＩ処理部２３は、その読み出した設定値に基づき、表示部４に表示するための印刷設定画面Ｇ１を生成すると共に、その印刷設定画面Ｇ１を表示部４に出力して表示する（ステップＳ１５）。
【００４５】
そしてＵＩ処理部２３は、ユーザーによる印刷指示が行われたか否かを判断し（ステップＳ１６）、印刷指示が行われていない場合（ステップＳ１６でＮＯ）、ユーザーによる印刷設定の設定変更操作が行われたか否かを判断する（ステップＳ１７）。設定変更操作が行われていない場合（ステップＳ１７でＮＯ）、ＵＩ処理部２３による処理はステップＳ１６へ戻り、ユーザーによる操作が行われるまで上記判断が繰り返される。そしてユーザーによる印刷設定の設定変更操作が行われた場合（ステップＳ１７でＹＥＳ）、ＵＩ処理部２３は、各機能オブジェクト２７ａ，２７ｂ，２７ｃの保存先情報２９ａ，２９ｂ，２９ｃに基づき、その設定変更が行われた設定値の保存先を参照し（ステップＳ１８）、その保存先の設定値をユーザーによって指定された設定値に更新する（ステップＳ１９）。そしてＵＩ処理部２３は、表示部４に表示している印刷設定画面Ｇ１をユーザーによる操作を反映させた表示画面に更新する（ステップＳ２０）。これに伴い、設定値管理部２２が機能する。そして設定値管理部２２は、ＵＩ処理部２３によって更新されたレジストリ１１又はＤＥＶＭＯＤＥ構造体１２の設定値を読み出し、その設定値に基づいて管理情報１０のレジストリ管理情報１８又はＤＥＶＭＯＤＥ構造体管理情報１９に格納されている設定値を書き換えることにより、管理情報１０を最新の状態に更新する（ステップＳ２１）。そしてステップＳ１６に戻り、ユーザーによる次の操作を待機する状態となる。
【００４６】
ユーザーによって印刷指示が行われた場合（ステップＳ１６でＹＥＳ）、ＵＩ処理部２３は、描画処理部２４を機能させる。そして描画処理部２４は、ユーザーによって指定された印刷設定に基づく描画処理を行うことにより、印刷ジョブを生成し（ステップＳ２２）、通信インタフェース６を介してその印刷ジョブをプリンタへ出力する（ステップＳ２３）。以上で、デバイスドライバ２０による一連の処理が終了する。
【００４７】
次にＣＰＵ２においてカスタマイズプログラム９ｂが起動する場合について説明する。図８は、ＣＰＵ２がカスタマイズプログラム９ｂを実行することによりカスタマイズツール３０として機能する場合の詳細な機能構成の一例を示す図である。ＣＰＵ２は、ユーザーによる起動指示に基づいてカスタマイズプログラム９ｂを実行すると、図８に示すようにカスタマイズツール３０を機能させる。このカスタマイズツール３０は、ユーザーによるカスタマイズ操作に基づいてデバイスドライバ２０に対する機能オブジェクトの追加、削除又は変更を行うことにより、デバイスドライバ２０を更新するツールである。つまり、カスタマイズツール３０は、デバイスドライバ２０のドライバ共通部２１を変更することなく、そのドライバ共通部２１に対する機能オブジェクトの組み替えを行うことによりデバイスドライバ２０を更新する。したがって、ユーザーは、情報処理装置１においてカスタマイズツール３０を起動させることにより、例えば上述した印刷設定画面Ｇ１の設定領域Ｒ１に表示される設定項目の表示又は非表示の切り替えや設定項目の表示態様をカスタマイズすることができる。またカスタマイズツール３０は、印刷設定画面Ｇ１の表示態様を変更するだけでなく、ユーザーによる指示操作に基づいて、各設定項目の設定値の保存場所を、レジストリ１１からＤＥＶＭＯＤＥ構造体１２へ、或いは、ＤＥＶＭＯＤＥ構造体１２からレジストリ１１へ変更することもできる。以下、カスタマイズツール３０について詳しく説明する。
【００４８】
図８に示すように、カスタマイズツール３０は、機能オブジェクト変更部３１と、引継処理部３２とを備えている。機能オブジェクト変更部３１は、ユーザーのカスタマイズ操作に基づいてデバイスドライバ２０の機能オブジェクトを組み替えることにより、デバイスドライバ２０を更新する処理部である。また引継処理部３２は、ユーザーによるカスタマイズ操作によって各設定項目の設定値の保存場所がレジストリ１１からＤＥＶＭＯＤＥ構造体１２へ、或いは、ＤＥＶＭＯＤＥ構造体１２からレジストリ１１へ変更された場合にカスタマイズ前の設定値をカスタマイズ後の保存場所へ書き込むことにより、カスタマイズ前のデータ（設定値）をカスタマイズ後においても正常に参照できるようにする処理部である。
【００４９】
機能オブジェクト変更部３１は、機能定義データ取得部３３と、機能定義データ編集部３４と、機能オブジェクト生成部３５と、組替処理部３６とを備えており、これらを順に機能させることによりデバイスドライバ２０を更新する。図９は、機能定義データ取得部３３、機能定義データ編集部３４、機能オブジェクト生成部３５及び組替処理部３６のそれぞれにおける処理の概念を説明する図である。尚、図９は、図２に示した３つの機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれを新たな機能オブジェクト２７ｄ，２７ｅ，２７ｆに組み替える場合の処理概念を例示するものである。
【００５０】
図９に示すように、まず機能定義データ取得部３３は、組み替え対象となる３つの機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれに対応する機能定義データ５１ａ，５１ｂ，５１ｃを取得する。機能定義データは、機能オブジェクトの生成元となるオリジナルデータであり、例えば特定機種のプリンタに搭載された個々の機能に対応する設定項目や設定項目の表示態様、各設定項目に関する設定値の保存先などをスクリプト形式で記述したデータである。例えば図９においては、機能定義データ５１ａが機能オブジェクト２７ａのオリジナルデータであり、機能定義データ５１ｂが機能オブジェクト２７ｂのオリジナルデータであり、機能定義データ５１ｃが機能オブジェクト２７ｃのオリジナルデータである。そして機能定義データ取得部３３は、ユーザーによってデバイスドライバ２０に組み込まれている３つの機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれが組み替え対象であることが指定されると、それら３つの機能オブジェクト２７ａ，２７ｂ，２７ｃに対応する機能定義データ５１ａ，５１ｂ，５１ｃを取得する。尚、このような機能定義データ５１ａ，５１ｂ，５１ｃは、記憶装置７に予め記憶されている。
【００５１】
機能定義データ編集部３４は、機能定義データ取得部３３によって取得された機能定義データ５１ａ，５１ｂ，５１ｃに基づき、表示部４に対して機能定義データの編集画面を表示する。そしてユーザーによる編集操作に基づき、特定機種のプリンタに搭載された個々の機能に対応する設定項目や設定項目の表示態様、各設定項目に関する設定値の保存先などを変更し、新たな機能定義データ５１ｄ，５１ｅ，５１ｆを生成する。つまり、機能定義データ編集部３４は、ユーザーによるカスタマイズ操作に基づき、各機能定義データ５１ａ，５１ｂ，５１ｃにおけるスクリプト形式の記述を書き換えて新たな機能定義データ５１ｄ，５１ｅ，５１ｆを生成する。このようにして生成される新たな機能定義データ５１ｄ，５１ｅ，５１ｆは記憶装置７に保存される。
【００５２】
次に機能オブジェクト生成部３５が機能する。機能オブジェクト生成部３５は、ユーザーによるカスタマイズ操作によって生成された新たな機能定義データ５１ｄ，５１ｅ，５１ｆに基づき新たな機能オブジェクト２７ｄ，２７ｅ，２７ｆを生成する。すなわち、機能オブジェクト生成部３５は、スクリプト形式で記述された機能定義データ５１ｄ，５１ｅ，５１ｆを、ドライバ共通部２１の共通インタフェース部２５に組み込み可能なバイナリ形式のデータに変換することにより、新たな機能オブジェクト２７ｄ，２７ｅ，２７ｆを生成する。これら機能オブジェクト２７ｄ，２７ｅ，２７ｆには、ユーザーによるカスタマイズ操作が反映された機能情報２８ｄ，２８ｅ，２８ｆ及び保存先情報２９ｄ，２９ｅ，２９ｆが含まれる。このようにして新たに生成される機能オブジェクト２７ｄ，２７ｅ，２７ｆは、既存の機能オブジェクト２７ａ，２７ｂ，２７ｃとはバージョンの異なる機能オブジェクトとなる。ただし、新たに生成される各機能オブジェクト２７ｄ，２７ｅ，２７ｆは既存の機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれと同じ機能であるため、新たに生成される機能オブジェクト２７ｄ，２７ｅ，２７ｆの識別情報は既存の機能オブジェクト２７ａ，２７ｂ，２７ｃの識別情報と同じである。
【００５３】
そして組替処理部３６が機能する。組替処理部３６は、ユーザーによって指定されたデバイスドライバ２０を変更対象として選択し、ユーザーによる組み替え設定操作に基づいてその選択したデバイスドライバ２０の機能オブジェクトを組み替える処理を行う。例えば、図９に示すように機能オブジェクト生成部３５によって３つの新たな機能オブジェクト２７ｄ，２７ｅ，２７ｆが生成され、ユーザーによってそれら３つの機能オブジェクト２７ｄ，２７ｅ，２７ｆをデバイスドライバ２０に既に組み込まれている３つの機能オブジェクト２７ａ，２７ｂ，２７ｃと組み替えることが指定された場合、組替処理部３６は、デバイスドライバ２０に既に組み込まれている３つの機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれを共通インタフェース部２５から切り離し、新たに生成された３つの機能オブジェクト２７ｄ，２７ｅ，２７ｆのそれぞれを共通インタフェース部２５に組み込むことにより、デバイスドライバ２０を更新する。その結果、図２に示したデバイスドライバ２０の構成は、図１０に示すようにドライバ共通部２１に対して新たな機能オブジェクト２７ｄ，２７ｅ，２７ｆが組み込まれた状態に更新される。
【００５４】
このように機能オブジェクト変更部３１は、機能定義データ取得部３３、機能定義データ編集部３４、機能オブジェクト生成部３５及び組替処理部３６を順次機能させることにより、ユーザーのカスタマイズ操作に基づいてデバイスドライバ２０を更新する。尚、上記においては、既存の機能オブジェクトを新たな機能オブジェクトに変更する場合を例示したが、これに限られるものではなく、機能オブジェクト変更部３１は、デバイスドライバ２０に対して新たな機能オブジェクトを追加するカスタマイズやデバイスドライバ２０に組み込まれている既存の機能オブジェクトを削除するカスタマイズなどを行うことも可能である。そして機能オブジェクト変更部３１によってデバイスドライバ２０が更新されると、次に引継処理部３２が機能する。
【００５５】
引継処理部３２は、バージョン比較部３７と、データ構造更新部３８とを備えている。バージョン比較部３７は、機能オブジェクト変更部３１によって更新されたデバイスドライバ２０に組み込まれている各機能オブジェクト２７ｄ，２７ｅ，２７ｆのバージョン情報を取得すると共に、管理情報１０の機能オブジェクト情報１６に記録されているバージョン情報１６ｂを読み出し、デバイスドライバ２０の更新前後においてバージョン情報が変更された機能オブジェクトが存在するか否かを判断する。その結果、バージョン情報が変更された機能オブジェクトが存在する場合、バージョン比較部３７は、データ構造更新部３８を機能させる。
【００５６】
データ構造更新部３８は、デバイスドライバ２０の更新前においてデバイスドライバ２０に組み込まれていた各機能オブジェクト２７ａ，２７ｂ，２７ｃの保存先情報２９ａ，２９ｂ，２９ｃと、デバイスドライバ２０の更新後においてデバイスドライバ２０に組み込まれている各機能オブジェクト２７ｄ，２７ｅ，２７ｆの保存先情報２９ｄ，２９ｅ，２９ｆとを対比し、デバイスドライバ２０の更新前後において設定値の保存先に変更がある場合に、レジストリ１１及びＤＥＶＭＯＤＥ構造体１２における設定値の保存状態を更新する。すなわち、データ構造更新部３８は、管理情報１０に含まれるレジストリ管理情報１８及びＤＥＶＭＯＤＥ構造体管理情報１９を読み出し、それらレジストリ管理情報１８及びＤＥＶＭＯＤＥ構造体管理情報１９から、デバイスドライバ２０が更新される前の機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれにおいて指定されていた保存先の設定値を取得する。そしてデータ構造更新部３８は、管理情報１０から読み出した設定値を、デバイスドライバ２０が更新された後の機能オブジェクト２７ｄ，２７ｅ，２７ｆのそれぞれにおいて指定されている保存先に保存する。
【００５７】
例えば図３に示したようにデバイスドライバ２０の更新前の機能オブジェクト２７ａがレジストリ１１を保存先として指定しており、デバイスドライバ２０の更新によってその機能オブジェクト２７ａと組み替えられた新たな機能オブジェクト２７ｄがＤＥＶＭＯＤＥ構造体１２を保存先として指定している場合、データ構造更新部３８は、機能オブジェクト２７ａによって指定されていたレジストリ１１の設定値を管理情報１０のレジストリ管理情報１８から読み出し、その設定値を、新たな機能オブジェクト２７ｄによって指定されているＤＥＶＭＯＤＥ構造体１２の指定アドレスに格納する。
【００５８】
また例えば図３に示したようにデバイスドライバ２０の更新前の機能オブジェクト２７ｃがＤＥＶＭＯＤＥ構造体１２を保存先として指定しており、デバイスドライバ２０の更新によってその機能オブジェクト２７ｃと組み替えられた新たな機能オブジェクト２７ｆがレジストリ１１を保存先として指定している場合、データ構造更新部３８は、機能オブジェクト２７ｃによって指定されていたＤＥＶＭＯＤＥ構造体１２の設定値を管理情報１０のＤＥＶＭＯＤＥ構造体管理情報１９から読み出し、その設定値を、新たな機能オブジェクト２７ｆによって指定されているレジストリ１１の指定アドレスに格納する。
【００５９】
このようにデータ構造更新部３８は、デバイスドライバ２０の更新によって設定値の保存場所がレジストリ１１からＤＥＶＭＯＤＥ構造体１２に変更された場合、又は、ＤＥＶＭＯＤＥ構造体１２からレジストリ１１に変更された場合に、管理情報１０のレジストリ管理情報１８又はＤＥＶＭＯＤＥ構造体管理情報１９に基づいてＤＥＶＭＯＤＥ構造体１２又はレジストリ１１の設定値の保存状態を更新する。尚、デバイスドライバ２０の更新によって設定値の保存場所が変更されていない場合には、データ構造更新部３８による更新処理は行わなくても良い。ただし、保存先として指定されるレジストリ１１又はＤＥＶＭＯＤＥ構造体１２がデバイスドライバ２０の更新前後において変わらない場合であっても、設定値を保存するアドレスが変わることもある。そのため、デバイスドライバ２０の更新前後において設定値を保存するアドレスが変わっている場合、データ構造更新部３８は、管理情報１０のレジストリ管理情報１８又はＤＥＶＭＯＤＥ構造体管理情報１９に基づいてＤＥＶＭＯＤＥ構造体１２又はレジストリ１１の設定値の保存状態を更新する。
【００６０】
図１１は、データ構造更新部３８によって書き換えられるレジストリ１１及びＤＥＶＭＯＤＥ構造体１２のデータ構造の一例を示す図である。この図１１は、図３に示したデータ構造が書き換えられた状態を例示している。上述したようにデバイスドライバ２０の更新前の機能オブジェクト２７ｃがＤＥＶＭＯＤＥ構造体１２を保存先として指定しており、デバイスドライバ２０の更新によってその機能オブジェクト２７ｃと組み替えられた新たな機能オブジェクト２７ｆがレジストリ１１を保存先として指定している場合、データ構造更新部３８は、管理情報１０からレジストリ１１に保存されている設定値を読み出し、その設定値をＤＥＶＭＯＤＥ構造体１２に書き込んでＤＥＶＭＯＤＥ構造体１２の設定値の保存状態を更新する。またデバイスドライバ２０の更新前の機能オブジェクト２７ｃがＤＥＶＭＯＤＥ構造体１２を保存先として指定しており、デバイスドライバ２０の更新によってその機能オブジェクト２７ｃと組み替えられた新たな機能オブジェクト２７ｆがレジストリ１１を保存先として指定している場合、データ構造更新部３８は、管理情報１０からＤＥＶＭＯＤＥ構造体１２に保存されている設定値を読み出し、その設定値をレジストリ１１に書き込んでレジストリ１１の設定値の保存状態を更新する。これにより、レジストリ１１に格納される設定値は、図３（ａ）に示す状態から図１１（ａ）に示す状態に書き換えられる。またＤＥＶＭＯＤＥ構造体１２に格納される設定値は、図３（ｂ）に示す状態から図１１（ｂ）に示す状態に書き換えられる。その結果、デバイスドライバ２０が更新された後の複数の機能オブジェクト２７ｄ，２７ｅ，２７ｆのそれぞれが指定する設定値の保存先には、デバイスドライバ２０の更新前の設定値が格納されることとなる。それ故、デバイスドライバ２０が更新された後にデバイスドライバ２０が起動するときには、それら複数の機能オブジェクト２７ｄ，２７ｅ，２７ｆのそれぞれが指定する保存先から各設定項目の設定値を正常に読み出すことができるようになり、ユーザーによるカスタマイズ操作後の印刷設定画面Ｇ１を正常に表示することができるようになる。
【００６１】
次に上記のように構成されたカスタマイズツール３０の動作について説明する。図１２及び図１３は、カスタマイズツール３０によって行われる処理手順の一例を示すフローチャートである。この処理は、カスタマイズツール３０の機能オブジェクト変更部３１及び引継処理部３２が順に機能することによって行われる処理手順となっている。ＣＰＵ２においてカスタマイズツール３０が機能すると、まず機能オブジェクト変更部３１が動作する。機能オブジェクト変更部３１は、ユーザーによる指示操作に基づいて例えば記憶装置７に保存されている既存の機能定義データ５１ａ，５１ｂ，５１ｃを読み出して取得する（ステップＳ３０）。尚、機能オブジェクト変更部３１は、通信インタフェース６を介して外部のサーバーから機能定義データ５１ａ，５１ｂ，５１ｃを取得するものであっても良い。機能オブジェクト変更部３１は、ユーザーによって指定された機能定義データ５１ａ，５１ｂ，５１ｃを取得すると、表示部４に対してそれら機能定義データ５１ａ，５１ｂ，５１ｃの編集画面を表示し、ユーザーによる編集操作に基づいて機能定義データの編集処理を実行する（ステップＳ３１）。これにより、ステップＳ３０で取得された機能定義データ５１ａ，５１ｂ，５１ｃがユーザーによる編集操作に基づいて改変される。このような編集処理は、ユーザーによる編集操作が終了するまで継続する（ステップＳ３２）。そしてユーザーによる編集操作が終了すると（ステップＳ３２でＹＥＳ）、機能オブジェクト変更部３１は、編集操作に基づく改変によって新たに生成された機能定義データ５１ｄ，５１ｅ，５１ｆを記憶装置７に保存し（ステップＳ３３）、それら機能定義データ５１ｄ，５１ｅ，５１ｆに基づいて新たな機能オブジェクト２７ｄ，２７ｅ，２７ｆを生成する（ステップＳ３４）。このとき、機能オブジェクト変更部３１は、新たに生成した機能オブジェクト２７ｄ，２７ｅ，２７ｆのバージョンを最新バージョンに更新し、例えば各機能オブジェクト２７ｄ，２７ｅ，２７ｆの機能情報２８ｄ，２８ｅ，２８ｆにそのバージョン情報を書き込む（ステップＳ３５）。以上のような処理で、デバイスドライバ２０に対して新たに組み込む機能オブジェクト２７ｄ，２７ｅ，２７ｆが生成される。
【００６２】
続いて機能オブジェクト変更部３１は、ユーザーによる指示操作に基づいて変更対象となるデバイスドライバ２０を選択する（ステップＳ３６）。例えば情報処理装置１に複数のデバイスドライバ２０がインストールされている場合、このステップＳ３６においてカスタマイズ対象となる一のデバイスドライバ２０が選択されることになる。そして機能オブジェクト変更部３１は、カスタマイズ対象となる一のデバイスドライバ２０を選択すると、そのデバイスドライバ２０における現在の機能オブジェクトの構成を表示部４に表示し、ユーザーによる機能オブジェクトの組み替え設定を受け付ける（ステップＳ３７）。すなわち、既存の機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれを新たな機能オブジェクト２７ｄ，２７ｅ，２７ｆと組み替える設定操作を受け付ける。このときユーザーは、既存の機能オブジェクトの削除や、新たな機能オブジェクトの追加を設定することもできる。そしてユーザーによる設定操作が行われると、機能オブジェクト変更部３１は、機能オブジェクトの組み替え処理を実行し（ステップＳ３８）、デバイスドライバ２０を更新する（ステップＳ３９）。これにより、デバイスドライバ２０に組み込まれていた既存の機能オブジェクト２７ａ，２７ｂ，２７ｃが新たな機能オブジェクト２７ｄ，２７ｅ，２７ｆに組み替えられ、デバイスドライバ２０における機能オブジェクトの構成が更新される。
【００６３】
次にカスタマイズツール３０において引継処理部３２が動作し、データ引継処理を実行する（ステップＳ４０）。図１３は、このデータ引継処理（ステップＳ４０）の詳細な処理手順の一例を示すフローチャートである。引継処理部３２は、管理情報１０から機能オブジェクト情報１６を読み出し（ステップＳ５０）、デバイスドライバ２０の更新前後における各機能オブジェクトのバージョン比較処理を行う（ステップＳ５１）。このバージョン比較処理により、デバイスドライバ２０の更新によって組み替えられた機能オブジェクトが存在するか否かを特定することができる。そして機能オブジェクトの組み替えが行われた場合には、設定値の保存先が変更されている可能性がある。そのため、引継処理部３２は、組み替え後の機能オブジェクト２７ｄ，２７ｅ，２７ｆに関するバージョン情報が管理情報１０に記録されている組み替え前の機能オブジェクト２７ａ，２７ｂ，２７ｃに関するバージョン情報１６ｂと異なる場合に、組み替え後の機能オブジェクト２７ｄ，２７ｅ，２７ｆにおいて指定されている保存先が変更された可能性があることを検知する。そして引継処理部３２は、デバイスドライバ２０の更新によってデバイスドライバ２０から切り離された機能オブジェクト２７ａ，２７ｂ，２７ｃを特定し（ステップＳ５２）、デバイスドライバ２０に対して新たに組み込まれた機能オブジェクト２７ｄ，２７ｅ，２７ｆにおいて指定されている設定値の保存先が変更されているか否かを判断する（ステップＳ５３）。その結果、設定値の保存先が変更されていない場合（ステップＳ５３でＮＯ）、引継処理部３２は、レジストリ１１及びＤＥＶＭＯＤＥ構造体１２の設定値の保存状態を特に変更することなく、処理を終了する。
【００６４】
一方、デバイスドライバ２０の更新に伴い、設定値の保存先が変更されている場合（ステップＳ５３でＹＥＳ）、引継処理部３２は、管理情報１０から組み替え前の機能オブジェクト２７ａ，２７ｂ，２７ｃに関する設定値を取得する（ステップＳ５４）。そして引継処理部３２は、管理情報１０から取得した設定値を、デバイスドライバ２０の更新後の機能オブジェクト２７ｄ，２７ｅ，２７ｆが指定している保存先に保存する（ステップＳ５５）。  
【００６５】
以上でカスタマイズツール３０による一連の処理が終了する。そしてカスタマイズツール３０によって上述した一連の処理が行われることにより、ユーザーのカスタマイズ操作に基づいてデバイスドライバ２０を更新することができると共に、更新後のデバイスドライバ２０がレジストリ１１及びＤＥＶＭＯＤＥ構造体１２に保存されている設定値を正常に参照できるようになる。そのため、デバイスドライバ２０が更新された場合であっても、デバイスドライバ２０を再インストールすることなく、デバイスドライバ２０を正常に起動することができるようになる。
【００６６】
一方、デバイスドライバ２０は、カスタマイズ操作に基づいて更新された後に起動するとき、設定値管理部２２を機能させ、管理情報１０の機能オブジェクト情報１６に含まれるバージョン情報１６ｂを書き換えると共に、レジストリ１１及びＤＥＶＭＯＤＥ構造体１２のそれぞれに保存されている設定値を、レジストリ管理情報１８及びＤＥＶＭＯＤＥ構造体管理情報１９のそれぞれにミラーリングして書き換えることにより、管理情報１０を更新後のデバイスドライバ２０に対応して更新する。
【００６７】
したがって、ユーザーは、例えばセキュリティ印刷のために設定するＩＤやパスワードなどの識別情報の保存先をＤＥＶＭＯＤＥ構造体１２からレジストリ１１に変更するカスタマイズ操作を行った場合でも、デバイスドライバ２０を再インストールすることなく、速やかに更新後のデバイスドライバ２０を起動させることができるため、デバイスドライバ２０をカスタマイズする際の操作性が向上する。
【００６８】
以上のように本実施形態の情報処理装置１は、デバイスドライバ２０と、そのデバイスドライバ２０をカスタマイズするカスタマイズツール３０とを備えた構成である。そしてデバイスドライバ２０は、ドライバ共通部２１に対し、ユーザーが設定可能な機能ごとに設けられる複数の機能オブジェクト２７ａ，２７ｂ，２７ｃが組み込まれた構成であり、各機能オブジェクト２７ａ，２７ｂ，２７ｃにおいて機能ごとの設定値の保存先が指定されている。カスタマイズツール３０は、そのようなデバイスドライバ２０に組み込まれている機能オブジェクト２７ａ，２７ｂ，２７ｃをユーザーのカスタマイズ操作に基づいて組み替えることにより、デバイスドライバ２０を更新する。
【００６９】
そしてデバイスドライバ２０は、複数の機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれにおいて指定された保存先から各機能の設定値を読み出して表示すると共に、ユーザーによる各機能に対する設定操作に基づき、当該設定操作が行われた機能に対応する機能オブジェクト２７ａ，２７ｂ，２７ｃにおいて指定されている保存先の設定値を変更するＵＩ処理部２３と、複数の機能オブジェクト２７ａ，２７ｂ，２７ｃのそれぞれによって指定されている保存先の設定値をミラーリングして管理情報１０として管理する設定値管理部２２とを有している。またカスタマイズツール３０は、ユーザーの指示操作に基づいてデバイスドライバ２０に組み込まれている機能オブジェクト２７ａ，２７ｂ，２７ｃのうちの少なくとも１つを新規な機能オブジェクト２７ｄ，２７ｅ，２７ｆに組み替える機能オブジェクト変更部３１と、機能オブジェクト変更部３１によって機能オブジェクトの組み替えが行われることに伴い、組み替え後の機能オブジェクト２７ｄ，２７ｅ，２７ｆにおいて指定されている設定値の保存先が変更された場合、管理情報１０から組み替え前の機能オブジェクト２７ａ，２７ｂ，２７ｃにおいて指定されていた保存先の設定値を読み出し、その設定値を組み替え後の機能オブジェクト２７ｄ，２７ｅ，２７ｆにおいて指定されている保存先に保存する引継処理部３２とを有している。
【００７０】
上記構成を有する情報処理装置１によれば、カスタマイズツール３０がユーザーの指示操作に基づいてデバイスドライバ２０を更新することに伴い、デバイスドライバ２０に新たに組み込まれた機能オブジェクト２７ｄ，２７ｅ，２７ｆのそれぞれにおいて指定されている保存先に更新前の設定値を保存する。そのため、デバイスドライバ２０が更新された場合であっても、デバイスドライバ２０は更新前の設定値を正常に引き継いで参照できるようになり、印刷設定画面Ｇ１などの表示画面を正常に表示することができる。
【００７１】
また情報処理装置１がデバイスごとに設けられる複数のデバイスドライバ２０を備えている場合、機能オブジェクト変更部３１は、複数のデバイスドライバ２０のそれぞれに組み込まれている機能オブジェクトを組み替え可能であり、引継処理部３２は、複数のデバイスドライバ２０のうち、機能オブジェクト変更部３１によって機能オブジェクトの組み替えが行われたデバイスドライバ２０の設定値管理部２２が管理している管理情報１０から組み替え前の機能オブジェクトにおいて指定されていた保存先の設定値を読み出し、その設定値を組み替え後の機能オブジェクトにおいて指定されている保存先に保存する。このような構成によれば、複数のデバイスドライバ２０のいずれが更新された場合であっても、更新されたデバイスドライバ２０は更新前の設定値を正常に引き継いで参照できるようになる。
【００７２】
以上、本発明に関する一実施形態について説明したが、本発明は上記実施形態において説明した内容のものに限られるものではなく、種々の変形例が適用可能である。
【００７３】
例えば上記実施形態では、デバイスドライバ２０がプリンタに対して印刷ジョブを出力する際にユーザーが各種印刷設定を行うためのプリンタドライバとして構成される場合を例示した。しかし、デバイスドライバ２０は、プリンタドライバに限られるものではない。例えば、情報処理装置１の外部デバイスとしてファクシミリ装置が設けられている場合、デバイスドライバ２０は、そのファクシミリ装置に対してジョブを出力するファクシミリドライバであっても構わない。
【００７４】
また上記実施形態では、情報処理装置１に予めデバイスドライバ９ａとカスタマイズプログラム９ｂとがインストールされている場合について説明した。これらのプログラム、すなわちデバイスドライバ９ａ及びカスタマイズプログラム９ｂのそれぞれは、ＣＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体に記録された状態で提供されるものであっても良いし、またネットワークを介してダウンロードすることにより提供されるものであっても良い。そのため、情報処理装置１へのインストールは、記録媒体を読み取ることによって行われるものであっても良いし、またネットワークを介してダウンロードすることによって行われるものであっても良い。
【００７５】
また上記実施形態では、設定値の保存先としてレジストリ１１及びＤＥＶＭＯＤＥ構造体１２のいずれかが指定される場合を例示した。しかし、設定値の保存先は、必ずしもレジストリ１１やＤＥＶＭＯＤＥ構造体１２に限られるものではなく、任意の記憶手段が保存先として指定されるものであっても構わない。
【符号の説明】
【００７６】
１  情報処理装置
９ａ  デバイスドライバ（ドライバプログラム）
９ｂ  カスタマイズプログラム
１０  管理情報
１１  レジストリ
１２  ＤＥＶＭＯＤＥ構造体
２０  デバイスドライバ
２１  ドライバ共通部
２２  設定値管理部
２３  ＵＩ処理部（ユーザーインタフェース部）
２４  描画処理部
２７ａ，２７ｂ，２７ｃ  機能オブジェクト
２７ｄ，２７ｅ，２７ｆ  機能オブジェクト
３０  カスタマイズツール
３１  機能オブジェクト変更部
３２  引継処理部
３３  機能定義データ取得部
３４  機能定義データ編集部
３５  機能オブジェクト生成部
３６  組替処理部
３７  バージョン比較部
３８  データ構造更新部
【図１】
2015060337.tif 000003
【図２】
2015060337.tif 000004
【図３】
2015060337.tif 000005
【図４】
2015060337.tif 000006
【図５】
2015060337.tif 000007
【図６】
2015060337.tif 000008
【図７】
2015060337.tif 000009
【図８】
2015060337.tif 000010
【図９】
2015060337.tif 000011
【図１０】
2015060337.tif 000012
【図１１】
2015060337.tif 000013
【図１２】
2015060337.tif 000014
【図１３】
2015060337.tif 000015