印刷装置に備える機能に関わる機能情報を保持する記憶部と、前記機能情報に基づいて、前記機能に対する設定値の実データを保持するデータ部と、前記設定値の実データにアクセスするための情報を保持するインデックス部と、を含むデータ構造体を生成する生成部と、を備え、前記生成部は、前記データ部に、前記印刷装置に印刷を指示するプリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を保持する、ことを特徴とする情報処理装置。前記生成部は、前記印刷装置に備える機能の設定値と、古いバージョンの前記機能の設定値と、を保持する、ことを特徴とする請求項1に記載の情報処理装置。前記データ構造体に保持された設定値を読み込む読み込み部と、前記設定値を、自装置のプリンタドライバに引継ぐための、機能ごとの設定値の互換性を判別する判別部と、前記判別部によって変換が必要と判断された場合に、自装置のプリンタドライバが利用可能な設定値に変換するコンバート部と、前記データ構造体に、変換された設定値を書き込む書き込み部と、を更に備える、ことを特徴とする請求項1又は2に記載の情報処理装置。前記データ構造体は、DEVMODE構造体である、ことを特徴とする請求項1乃至3のいずれか一に記載の情報処理装置。印刷装置に印刷を指示する装置で動作するプリンタドライバであって、前記装置を、予め記憶した、前記印刷装置に備える機能に関わる機能情報に基づいて、前記機能に対する設定値の実データを保持するデータ部と、前記設定値の実データにアクセスするための情報を保持するインデックス部と、を含むデータ構造体を生成する生成部、として機能させ、前記生成部は、前記データ部に、自プリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を保持する、ことを特徴とするプリンタドライバ。前記生成部は、前記印刷装置に備える機能の設定値と、古いバージョンの前記機能の設定値と、を保持する、ことを特徴とする請求項5に記載のプリンタドライバ。前記装置を、更に、前記データ構造体に保持された設定値を読み込む読み込み部、前記設定値を、自プリンタドライバに引継ぐための、機能ごとの設定値の互換性を判別する判別部、前記判別部によって変換が必要と判断された場合に、自プリンタドライバが利用可能な設定値に変換するコンバート部、前記データ構造体に、変換された設定値を書き込む書き込み部、として機能させる、ことを特徴とする請求項5又は6に記載のプリンタドライバ。前記データ構造体は、DEVMODE構造体である、ことを特徴とする請求項5乃至7のいずれか一に記載のプリンタドライバ。印刷装置に印刷を指示する装置における印刷設定方法であって、予め記憶した、前記印刷装置に備える機能に関わる機能情報に基づいて、前記機能に対する設定値の実データを保持するデータ部と、前記設定値の実データにアクセスするための情報を保持するインデックス部と、を含むデータ構造体を生成する生成ステップを実行し、前記生成ステップでは、前記データ部に、前記印刷装置に印刷を指示するプリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を保持する、ことを特徴とする印刷設定方法。前記生成ステップでは、前記印刷装置に備える機能の設定値と、古いバージョンの前記機能の設定値と、を保持する、ことを特徴とする請求項9に記載の印刷設定方法。前記データ構造体に保持された設定値を読み込む読み込みステップと、前記設定値を、自装置のプリンタドライバに引継ぐための、機能ごとの設定値の互換性を判別する判別ステップと、前記判別ステップによって変換が必要と判断された場合に、自装置のプリンタドライバが利用可能な設定値に変換するコンバートステップと、前記データ構造体に、変換された設定値を書き込む書き込みステップと、を更に実行する、ことを特徴とする請求項9又は10に記載の印刷設定方法。前記データ構造体は、DEVMODE構造体である、ことを特徴とする請求項9乃至11のいずれか一に記載の印刷設定方法。印刷装置に印刷を指示する装置で生成されるデータ構造体であって、前記印刷装置に備える機能に対する設定値の実データを保持するデータ部と、前記設定値の実データにアクセスするための情報を保持するインデックス部と、を含み、前記データ部は、前記印刷装置に印刷を指示するプリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を有する、ことを特徴とするデータ構造体。前記データ部は、前記印刷装置に備える機能の設定値と、古いバージョンの前記機能の設定値と、を有する、ことを特徴とする請求項13に記載のデータ構造体。前記データ構造体は、DEVMODE構造体である、ことを特徴とする請求項13又は14に記載のデータ構造体。異なる機種向けのプリンタドライバや異なるバージョンのプリンタドライバでも、DEVMODE構造体を利用できるようにするためには、上述したように、元のプリンタドライバのDEVMODE構造体を、新しい機種向け又は新しいバージョンのプリンタドライバに対応するDEVMODE構造体に変換コンバートする必要があるが、DEVMODE構造体はハードコードC言語で記述されているため、容易にコンバートすることができない。また、異なる機種向けのプリンタドライバや異なるバージョンのプリンタドライバのDEVMODE構造体からコンバートするためには、元の機種向けのプリンタドライバの構造体定義や元のバージョンのプリンタドライバの構造体定義を保持している必要がある。そのため、複数の機種向けのプリンタドライバや複数のバージョンのプリンタドライバが存在する状況では、保持すべき情報が膨大になってしまう。また、コンバート元が古い機種向けのプリンタドライバや古いバージョンのプリンタドライバの場合には、構造体定義を予知することは可能であるが、コンバート元が新しい機種向けのプリンタドライバや新しいバージョンのプリンタドライバの場合には、構造体定義を予知することは困難である。本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、異なる機種向けのプリンタドライバや異なるバージョンのプリンタドライバでも利用可能なデータ構造体DEVMODE構造体を生成することができる情報処理装置、プリンタドライバ及び印刷設定方法並びにデータ構造体を提供することにある。上記目的を達成するため、本発明の情報処理装置は、印刷装置に備える機能に関わる機能情報を保持する記憶部と、前記機能情報に基づいて、前記機能に対する設定値の実データを保持するデータ部と、前記設定値の実データにアクセスするための情報を保持するインデックス部と、を含むデータ構造体を生成する生成部と、を備え、前記生成部は、前記データ部に、前記印刷装置に印刷を指示するプリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を保持するものである。また、本発明は、印刷装置に印刷を指示する装置で動作するプリンタドライバであって、前記装置を、予め記憶した、前記印刷装置に備える機能に関わる機能情報に基づいて、前記機能に対する設定値の実データを保持するデータ部と、前記設定値の実データにアクセスするための情報を保持するインデックス部と、を含むデータ構造体を生成する生成部、として機能させ、前記生成部は、前記データ部に、自プリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を保持するものである。また、本発明は、印刷装置に印刷を指示する装置における印刷設定方法であって、予め記憶した、前記印刷装置に備える機能に関わる機能情報に基づいて、前記機能に対する設定値の実データを保持するデータ部と、前記設定値の実データにアクセスするための情報を保持するインデックス部と、を含むデータ構造体を生成する生成ステップを実行し、前記生成ステップでは、前記データ部に、前記印刷装置に印刷を指示するプリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を保持するものである。また、本発明は、印刷装置に印刷を指示する装置で生成されるデータ構造体であって、前記印刷装置に備える機能に対する設定値の実データを保持するデータ部と、前記設定値の実データにアクセスするための情報を保持するインデックス部と、を含み、前記データ部は、前記印刷装置に印刷を指示するプリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を有するものである。本発明の情報処理装置、プリンタドライバ及び印刷設定方法並びにデータ構造体によれば、異なる機種向けのプリンタドライバや異なるバージョンのプリンタドライバでも利用可能なデータ構造体DEVMODE構造体を生成することができる。その理由は、印刷装置に印刷を指示する情報処理装置プリンタドライバでは、予め記憶した印刷装置の機能に関わる機能情報に基づいて、機能に対する設定値の実データを保持するデータ部と、設定値の実データにアクセスするための情報を保持するインデックス部と、を含むデータ構造体を生成し、データ部に、印刷装置に印刷を指示するプリンタドライバの設定値に加えて、異なる機種の印刷装置に印刷を指示するプリンタドライバ及び/又は異なるバージョンのプリンタドライバが利用可能な設定値を保持するからである。また、印刷装置に印刷を指示する情報処理装置プリンタドライバでは、予め生成されたデータ構造体に保持された設定値を読み込み、当該設定値を自装置のプリンタドライバに引継ぐための、機能ごとの設定値の互換性を判別し、変換が必要と判断された場合に、自プリンタドライバが識別可能な設定値に変換し、データ構造体に、変換された設定値を書き込む処理を行うからである。これにより、privateDEVMODEを生成したプリンタドライバに関する情報が無くて、そのプリンタドライバによって生成されたDEVMODE構造体を、異なる機種の印刷装置を制御するプリンタドライバや異なるバージョンのプリンタドライバが読み込むことができる。また、privateDEVMODEに設けるIndex部は、全機種の印刷装置を制御するプリンタドライバに共通の形式であり固定長であるため、DEVMODE構造体から所望の設定値を容易に検索することができる。背景技術で示したように、プリンタドライバを用いて印刷する際、DEVMODE構造体と呼ばれるデータ構造体が生成され、DEVMODE構造体を文書ファイルに関連付けることによって、この文書ファイルを再度印刷する場合には、前回の印刷設定を引き継ぐことができる。しかしながら、DEVMODE構造体は印刷を指示したプリンタドライバに依存する情報であるため、異なる機種の印刷装置向けのプリンタドライバや異なるバージョンのプリンタドライバでは、DEVMODE構造体の印刷設定を引き継ぐことができず、印刷操作が煩雑になるという問題があった。また、異なる機種の印刷装置向けのプリンタドライバや異なるバージョンのプリンタドライバが利用できるようにするために、DEVMODE構造体をコンバートする方法があるが、DEVMODE構造体はハードコードC言語で記述されているため、容易にコンバートすることができないという問題があった。ここで、DEVMODE構造体は、Mircosoft登録商標が定義している各プリンタベンダで共通定義となるPublicDEVMODEと、各プリンタベンダが自由に定義することのできるPrivateDEVMODEとで構成されるが、本発明の一実施の形態では、privateDEVMODEをIndex部とData部とで構成し、Data部には、現在のプリンタドライバの各種設定情報のみを書き込むのではなく、異なる機種の印刷装置向けのプリンタドライバや異なるバージョンのプリンタドライバが利用可能な各種設定情報例えば、各機能の古いバージョンの設定値も書き込み、Index部には、各機種の印刷装置向けのプリンタドライバや各バージョンのプリンタドライバが各種設定情報を読み込む際に、Data部のどこにアクセスすればよいかを規定するアドレス情報を書き込む。これにより、異なる機種の印刷装置向けのプリンタドライバや異なるバージョンのプリンタドライバでも、DEVMODE構造体の書き込まれた設定情報を容易に引き継ぐことができるため、印刷操作を簡便にすることができる。上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る情報処理装置、印刷設定プログラム及び印刷設定方法並びにデータ構造体について、図1乃至図22を参照して説明する。図1は、本実施例の印刷システムの構成を模式的に示す図であり、図2は、本実施例の情報処理装置の構成を示すブロック図、図3は、本実施例のプリンタドライバの構成を示すブロック図である。また、図4及び図5は、本実施例のDEVMODE構造体の構成を示す図であり、図6は、DEVMODE構造体を生成する手順を模式的に示す図である。また、図7及び図8は、本実施例の機能設定情報の一例であり、図9及び図10は、StapleのConvertInformationの一例である。また、図11及び図12は、本実施例の設定UIの一例であり、図13は、設定値の書き込み処理を模式的に示す図、図14乃至図16は、設定値のコンバート処理を模式的に示す図である。また、図17乃至図21は、本実施例の情報処理装置で実行される処理を示すフローチャート図であり、図22は、設定値のコンバート時の動作表の一例である。図1に示すように、本実施例の印刷システム10は、文書作成アプリケーションで作成した文書の印刷を指示する1又は複数のクライアント装置以下、情報処理装置20と呼ぶ。と、情報処理装置20からの指示に基づいて印刷を実行するプリンタやデジタル複合機などの1又は複数の印刷装置以下、画像形成装置30と呼ぶ。と、で構成される。情報処理装置20と画像形成装置30とは、LANLocalAreaNetworkやWANWideAreaNetworkなどの通信ネットワークを介して接続されている。以下、各装置について詳細に説明する。情報処理装置図2に示すように、情報処理装置20は、制御部21と、記憶部22と、操作部23と、表示部24と、通信I/F部25などで構成される。制御部21は、CPUCentralProcessingUnit、ROMReadOnlyMemory、RAMRandomAccessMemoryなどで構成され、CPUは、OSOperatingSystemや文書作成アプリケーション、画像形成装置30を制御するためのデバイスドライバプリンタドライバをROM又は記憶部から読み出してRAMに展開し実行する。記憶部22は、HDDHardDiskDriveなどで構成され、プログラムやデータを記憶する。本実施例では、特に、DEVMODE構造体を生成する際に参照する機能設定情報などを記憶する。操作部23は、キーボードやマウスなどで構成され、文書の作成や印刷に関する設定操作を可能とする。表示部24は、LCDLiquidCrystalDisplayなどで構成され、プリンタドライバの設定画面などを表示する。通信I/F部25は、NICNetworkInterfaceCardやモデムなどで構成され、画像形成装置30との通信を可能とする。また、図3に示すように、上記プリンタドライバは、情報処理装置20の制御部21を、印刷設定情報処理部、UIUserInterface処理部、レンダリング処理部などとして機能させる。上記印刷設定情報処理部は、DEVMODE処理実行部とDEVMODE処理実行部が参照するデータベースとで構成される。DEVMODE処理実行部は、PrivateDEVMODEを動的に生成するPrivateDEVMODE生成部と、PrivateDEVMODEに設定されている設定値を読み込む設定値読み込み部と、PrivateDEVMODEに設定値を書き込む設定値書き込み部と、設定値の互換性を判別する互換性判別部と、入力されたPrivateDEVMODEの設定値を自装置の現在のバージョンのプリンタドライバに対する設定値に変換するコンバート部と、で構成される。また、データベースは、DEVMODE構造体に記述されたDEVMODE情報、機能間の組み合わせ禁止条件を記述した禁則情報、各機種の画像形成装置30が持つ機能の情報機能、設定可能な値、バージョンなどを含む機能設定情報などを保持する。UI処理部は、アプリケーションからDEVMODE情報を受け取り、印刷設定画面の表示を行う。印刷設定画面の表示に際しては、DEVMODE処理実行部にDEVMODE情報を渡し、DEVMODE解釈を行わせたうえで機能ごとの設定値を取得して印刷設定画面に反映する。印刷設定画面でユーザがDEVMODE情報の変更を行った場合は、DEVMODE処理実行部に対して設定値の書き込みを依頼し、DEVMODE情報を更新する。処理終了後には、変更済みのDEVMODE情報をアプリケーションに返す。また、UI処理部は、印刷設定画面を開くことなくDEVMODE処理実行部に対してDEVMODE情報を渡し、制御する画像形成装置30の機種やバージョンが異なるプリンタドライバが生成したDEVMODE情報であった場合には、自装置での現在のバージョンのプリンタドライバに対するDEVMODE情報にコンバート部にてコンバートさせ、コンバート後のDEVMODE情報をアプリケーションに返す処理を行う。また、UI処理部は、印刷設定画面を開くことなく、初期値にてDEVMODE情報を生成し、生成後のDEVMODE情報をアプリケーションに返す処理も行う。レンダリング処理部は、アプリケーションから取得したDEVMODE情報及び描画データに基づいて、画像形成装置30にて解釈可能な描画データの生成を行う。また、描画データ生成時に、DEVMODE処理実行部にDEVMODE情報を渡し、DEVMODE情報の解釈を行わせたうえで機能ごとの設定値を取得してPJLPrinterJobLanguageやPDL処理を行う。なお、図1では、情報処理装置20としてパーソナルコンピュータを示しているが、情報処理装置20は画像形成装置30を制御可能な機器であればよい。また、図3では、プリンタドライバに、印刷設定情報管理部、UI処理部、レンダリング処理部としての機能を持たせる構成としたが、これらの内の少なくとも一つは情報処理装置20にハードウェアとして構成してもよい。画像形成装置画像形成装置30は、制御部と、記憶部と、ネットワークI/F部と、表示操作部と、画像処理部と、印刷処理部と、後処理部などで構成され図示せず、これらはバスを介して接続されている。制御部は、CPU、ROM、RAMなどで構成され、CPUは各種プログラムをROM又は記憶部から読み出してRAMに展開し実行する。記憶部は、HDDなどで構成され、画像形成装置30の動作を制御するプログラムや情報処理装置20から取得した印刷ジョブなどを記憶する。ネットワークI/F部は、NICやモデムなどで構成され、情報処理装置20との通信を可能とする。表示操作部は、LCDなどの表示部と表示部を覆うタッチパネルなどの操作部から構成され、CPUからの表示信号に従って、アイコンやキーボタンなどをLCD等に表示すると共に、タッチパネル等から入力される操作信号をCPUに出力する。画像処理部は、情報処理装置20から受信した印刷ジョブを解析し、文書の各ページの画像データを作成し、必要に応じて、作成した画像データに色変換、濃度調整等の画像処理を施す。印刷処理部は、電子写真方式や静電記録方式等の作像プロセスを利用した画像形成に必要な構成要素で構成され、画像処理部で作成された画像データに基づいて、指定された用紙に画像を形成する。後処理部は、印刷処理部が画像を形成した用紙に対して、ステープルやパンチ、Nupなどの後処理を行う。なお、画像形成装置30は、情報処理装置20の指示に従って印刷可能であればよく、その構成は特に限定されない。また、本実施例では、情報処理装置20が画像形成装置30に印刷指示を行う構成とするが、プリンタコントローラなどの制御装置を通信ネットワークに接続し、情報処理装置20がプリンタコントローラに印刷指示を行う構成としてもよい。次に、本実施例のDEVMODE構造体について、図4を参照して説明する。DEVMODE構造体は、Mircosoft登録商標が定義している各プリンタベンダで共通定義となるPublicDEVMODEと、各プリンタベンダが自由に定義することのできるPrivateDEVMODEという大きなブロックで構成される。PrivateDEVMODEは、設定値の項目、保存場所へのアドレスオフセット値などを保持するIndex部全て機種向けのプリンタドライバに共通のデータ構造と、実際の設定値を保持するData部とで構成される。また、Index部は、画像形成装置30の機種、プリンタドライバのVersion、IndexTableのサイズなどを保持するHeaderと、機能の識別子、DataType、設定値の保存場所へのアドレスオフセット値、機能Version、互換性情報設定値が互換性を有する機能Versionの範囲の情報:機能Compatibilityと呼ぶ。などを保持するIndexTableとで構成される。すなわち、従来のDEVMODE構造体のPrivateDEVMODEはData部のみで構成され、Data部には、現在のプリンタドライバの設定値が格納されていたが、本実施例では、PrivateDEVMODEにIndex部を追加し、Data部に、現在のプリンタドライバの設定値と、異なる機種の画像形成装置30を制御するプリンタドライバや異なるバージョンのプリンタドライバが利用可能な設定値を格納し、Index部には、各プリンタドライバがData部のどの情報を参照すればよいかを指示するアドレス情報を格納する。これにより、PrivateDEVMODEのハードコードでの構造体定義が不要となり、異なる機種の画像形成装置30を制御するプリンタドライバや異なるバージョンのプリンタドライバであっても、PrivateDEVMODEの読み込みが可能となる。図5は、DEVMODE構造体の実際のデータを模式化した図である。Index部のHeaderには、画像形成装置30の機種名、プリンタドライバのVersion、Index部のサイズなどが格納される。また、Index部のIndexTableには、機能を識別する機能ID、設定値のデータ型を示すDataType、Data部の先頭からの設定値の保持場所へのオフセットを示すAddressOffset、機能Version、機能の互換性を示す機能Compatibilityなどから構成されるレコードが格納される。図中の機能Compatibility0x0301は、機能Version1から機能Version3の範囲において設定値が互換性を有することを示している。また、Data部の先頭アドレスの600は、Index部のHeaderに保持されている400という値を元にすなわち、Index部の先頭アドレスの200にIndex部のサイズ400を加算して算出される。この図では、アドレスが616番地Data部の先頭からは16番地にStapleの設定値IDで特定される設定値が保管される。Stapleの機能IDを例にして説明すると、IndexTable内に2つのレコードが存在する。機能Version3のレコードは、現在の機能Versionの設定値に関するレコードであり、機能Version1のレコードは、古い機能Versionの設定値に関するレコードである。設定値については、Data部の先頭からのAddressが16のものが現在の機能Versionの設定値であり、Data部の先頭からのAddressが20のものが古い機能Versionの設定値である。上述したDEVMODE処理実行部PrivateDEVMODE生成部が、上記構成のDEVMODE構造体を生成する場合、まず、図6aに示すように、必要十分なPrivateDEVMODEの領域を確保する。次に、図6bに示すように、PrivateDEVMODEのIndex部HeaderおよびIndexTableを生成する。そして、図6cに示すように、Data部に設定値の書き込みを行う。図7は、PrivateDEVMODEに設定値を書き込む際に参照する機能設定情報の一例であり、プリンタドライバが設定可能な全ての機能の情報が保持される。以下、Stapleの機能情報を例にして説明する。機能IDは、機能を識別するIDである。表ではStapleと記載しているが、実際に保持されるのは16という数値である。機能Versionは、現在の機能のVersionを示す数値である。DataTypeは、設定値のデータ型である。UINT4Byte等の値の他、String32文字等のデータ型も取り得る。DefaultValueは、デフォルトの設定値IDである。設定値IDは、設定可能な設定値の一覧である。機能Compatibilityは、特定の機能IDの選択肢が互換性を持つVersion範囲の情報である。例えば、0x0302は機能VersionがVersion2からVersion3の間で設定値IDが互換性を有することを示す。ConvertInformationは、異なる機能Versionの間での設定値の変換情報のテーブルである。このテーブルには、古い機能Versionから新しい機能Version現在の機能Version、新しい機能Versionから古い機能Versionの設定値の変換情報が記述される。設定値の保存を行う際には、ConvertInformationを元にして、古い機能Versionの設定値OldVersionの生成、保存を行う。これによって、DEVMODE単位での大量のコンバート情報の保持が不要となり、古いVersion→新しいVersion、新しいVersion→古いVersionの両方への設定値のコンバートが可能となる。図8は、機能設定情報Stapleの機能Version1の場合の一例である。図7に示すStaple機能Version3の場合とは、DataType、設定値ID、機能Compatibilityなどが異なる。図9は、StapleのConvertInformationの一例である。機能Versionは、特定の範囲から特定の範囲への設定値の変換情報を持つ。例えば、From0x0101、To0x0302は、機能Versionが1~1の範囲を、機能Versionが2~3の範囲へ変換する場合を意味する。DataTypeは、変換元と変換先のデータ型を定義する。設定値IDは、変換元と変換先のデータをマッピングする。図10は、StapleのConvertInformationの他の例別法である。図9との違いは、設定値IDを置き換えではなく、演算式によって生成することである。図11及び図12は、Stapleの機能Version3の時と機能Version1の時の設定UIの一例である。図に示すように、同一機能においても、ユーザの利便性を向上させるためにUI構成や設定値の取り方に差が生じる。設定値IDについては、図7、図8のような変更が加えられている。この例では、機能Version2になった際に、StapleのOnOffとStapleのモードを独立項目として扱うように変更されている。以下、プリンタドライバの具体的処理について説明する。[PrivateDEVMODEの生成処理]図13は、PrivateDEVMODEの生成処理の概要図であり、1~4の手順でPrivateDEVMODEを生成する。1書き込み依頼元よりStapleの設定値を0x00030001で書き込み依頼を行う。書き込み依頼元はUI処理部などである。2DEVMODE処理実行部において、Staple機能の現在の機能Versionの設定値をData部に書き込む。3DEVMODE処理実行部において、機能設定情報のConvertInformationに古い機能Versionへの変換情報が存在するため、設定値を古い機能Versionの設定値に変換する。4DEVMODE処理実行部において、Staple機能の古い機能Versionの設定値をData部に書き込む。上記処理について、図17乃至図19のフローチャート図を参照して説明する。なお、図17は、DEVMODE処理実行部のPrivateDEVMODE生成部が行うPrivateDEVMODE生成処理を示すフローチャート図であり、図18は、図17のData部の初期化処理の詳細を示すフローチャート図、図19は、図18の設定値の書き込み処理の詳細を示すフローチャート図である。図17に示すように、まず、DEVMODE構造体のAddressOffsetを0で初期化するS101。次に、機能設定情報から機能情報を読み込みS102、現在の機能Version用のIndexTableのレコードを生成してS103、AddressOffsetにDataSizeを足すS104。次に、ConvertInformationが存在するかを判断しS105、ConvertInformationが存在しない場合は、S111に遷移する。ConvertInformationが存在する場合は、ConvertInformationを読み込みS106、古い機能VersionへのConvertInformationであるかを判断するS107。古い機能VersionへのConvertInformationでない場合は、S110に遷移し、古い機能VersionへのConvertInformationである場合は、古い機能Version用のIndexTableを生成しS108、AddressOffsetにDataSizeを足すS109。その後、次のConvertInformationが存在するかを判断しS110、次のConvertInformationが存在する場合はS106に戻って同様の処理を繰り返す。次のConvertInformationが存在しない場合は、機能設定情報の次の機能情報が存在するかを判断しS111、次の機能情報が存在する場合はS102に戻って同様の処理を繰り返す。次の機能情報が存在しない場合は、Headerを生成しS112、PrivateDEVMODEのIndex部にHeader、IndexTableを書き込みS113、PrivateDEVMODEのData部を、AddressOffsetのサイズで確保するS114。その後、後述するData部の初期化処理を行うS115。Data部の初期化処理S115では、図18に示すように、機能設定情報から、機能情報を読み込みS201、後述するData部への設定値の書き込みを行うS202。その後、機能設定情報に次の機能情報が存在するかを判断しS203、次の機能情報が存在する場合はS201に戻って同様の処理を繰り返す。Data部への設定値の書き込み処理S202では、図19に示すように、機能設定情報から、設定値を書き込む機能の機能情報を読み込むS301。次に、IndexTableより、書き込み対象の機能ID、現在の機能Versionのレコードを取得するS302。次に、Data部の書き込み場所のアドレスをAddressOffsetから算出するS303。そして、算出したアドレスに設定値の書き込みを行うS304。次に、ConvertInformationが存在するかを判断しS305、ConvertInformationが存在しない場合は、書き込み処理を終了する。ConvertInformationが存在する場合は、ConvertInformationを読み込みS306、古い機能VersionへのConvertInformationであるかを判断するS307。古い機能VersionへのConvertInformationでない場合は、S312に遷移し、古い機能VersionへのConvertInformationである場合は、ConvertInformationより、古い機能Versionの設定値を生成するS308。次に、IndexTableより、書き込み対象の機能ID、現在の機能Versionのレコードを取得しS309、Data部の書き込み場所のアドレスをAddressOffsetから算出しS310、算出したアドレスに古い機能Versionの設定値を書き込むS311。その後、次のConvertInformationが存在するかを判断しS312、次のConvertInformationが存在する場合はS306に戻って同様の処理を繰り返す。このように、DEVMODE構造体のPrivateDEVMODEをIndex部とData部とで構成し、現在のプリンタドライバがPrivateDEVMODEを生成する際に、Data部に、現在のプリンタドライバの各機能の設定値に加えて、古いバージョンの各機能の設定値を書き込み、Index部に、各設定値にアクセスするためのAddressOffsetを書き込むことにより、そのDEVMODE構造体を、異なる機種の画像形成装置30を制御するプリンタドライバや異なるバージョンのプリンタドライバでも利用可能にすることができる。以上、DEVMODE構造体を新たに生成する場合について説明したが、以下では、予め生成されたDEVMODE構造体を他のプリンタドライバが利用する場合について説明する。[設定値のコンバート処理]図14は、古い機能Versionの設定値を新しい機能Versionの設定値にコンバートする場合の概要図である。このケースは、新しい機種の画像形成装置30を制御するプリンタドライバ、若しくは、新しいバージョンのプリンタドライバがDEVMODE構造体を利用するケースであり、DEVMODE構造体を利用する時にコンバート処理を行い、自身のプリンタドライバに対応する値に変換する。なお、一切のコンバート処理は、DEVMODE構造体を利用するプリンタドライバの印刷設定情報処理部にて実施される。1変換元のPrivateDEVMODEのIndex部のIndexTableより、変換先の保持する機能そのDEVMODE構造体を利用するプリンタドライバが制御する画像形成装置30で設定可能な機能と同一の機能IDのレコードを取得する。2レコード内のAddressOffsetより、設定値IDを取得する。3変換先のConvertInformationより、変換元の機能Versionから現在の機能Versionに対応する設定値IDへの変換を行う。4取得した設定値IDを変換先のPrivateDEVMODEのData部に書き込む。図15は、新しい機能Versionの設定値を古い機能Versionの設定値にコンバートする場合の概要図である。このケースは、古い機種の画像形成装置30を制御するプリンタドライバ、若しくは、古いバージョンのプリンタドライバがDEVMODE構造体を利用するケースであり、DEVMODE構造体を利用する時にコンバート処理を行い、自身のプリンタドライバに対応する値に変換する。なお、上記と同様に、一切のコンバート処理は、DEVMODE構造体を利用するプリンタドライバの印刷設定情報処理部にて実施される。1変換元のPrivateDEVMODEのIndex部のIndexTableより、変換先の保持する機能と同一の機能IDのレコードを取得する。この場合、取得したレコードの変換元の機能Compatibilityの範囲内に変換先の機能Versionが収まらないので、古い機能Versionのレコードの再取得を次ステップで行う。2変換元のPrivateDEVMODEのIndex部のIndexTableより、変換先の保持する機能と同一の機能IDかつ機能Versionに対応するレコードを取得する。3レコード内のAddressOffsetより、設定値IDを取得する。4取得した設定値IDを変換先のPrivateDEVMODEのData部に書き込む。図16は、機能Versionの互換範囲内の場合の概要図である。このケースは、異なる機種の画像形成装置30を制御するプリンタドライバ、若しくは、異なるバージョンのプリンタドライバがDEVMODE構造体を利用するケースであるが、機能Versionの互換範囲内であるため、自身のプリンタドライバに対応する値に変換する必要はない。1変換元のPrivateDEVMODEのIndex部のIndexTableより、変換先の保持する機能と同一の機能IDのレコードを取得する。2レコード内のAddressOffsetより、設定値IDを取得する。3取得した設定値IDは機能Versionの互換範囲内であるため、そのまま変換先のPrivateDEVMODEのData部に書き込む。上記処理について、図20及び図21のフローチャート図を参照して説明する。なお、図20は、Data部からの設定値の読み込み処理を示すフローチャート図であり、図21は、設定値のコンバート処理を示すフローチャート図である。まず、DEVMODE処理実行部の設定読み込み部は、図20に示す設定値の読み込み処理を行う。具体的には、コンバート元のPrivateDEVMODEのIndex部のIndexTableより、読み込み対象の機能ID、現在の機能Versionのレコードを取得するS401。次に、Data部の読み込み場所のアドレスをAddressOffsetから算出するS402。そして、Data部からその機能ID、機能Versionに対応する設定値を読み込むS403。その後、DEVMODE処理実行部のコンバート部及び設定書き込み部は、図21に示す設定値のコンバート処理を行い、設定値の書き込みを行う。具体的には、その設定値を利用するプリンタドライバが、コンバート元のPrivateDEVMODEを生成したプリンタドライバと、同一の機種の画像形成装置30を制御するプリンタドライバであるか、若しくは、同一のVersionのプリンタドライバであるかを判断するS501。同一機種若しくは同一Versionの場合は、PrivateDEVMODEをコピーしS502、処理を終了する。同一機種若しくは同一のVersionでない場合は、コンバート先の機能設定情報から機能情報を読み込みS503、コンバート元のPrivateDEVMODEのIndex部のIndexTableに同一の機能IDが存在するかを判断するS504。同一の機能IDが存在しない場合は、コンバート先の機能設定情報からDefaultValueを取得しS505、コンバート先のPrivateDEVMODEに取得した設定値を書き込むS519。同一の機能IDが存在する場合は、コンバート元のPrivateDEVMODEのIndex部のIndexTableから最新の機能Versionのレコードを取得しS506、コンバート先の機能Versionがコンバート元の機能Versionよりも新しいかを判断するS507。コンバート先の機能Versionが新しいか、若しくは、コンバート元の機能Versionと同じ場合は、コンバート先の機能Compatibilityを取得しS508、コンバート元の機能Versionが機能Compatibilityの範囲内であるかを判断するS509。機能Compatibilityの範囲内の場合は、コンバート元のPrivateDEVMODEの設定値をData部から取得しS510、コンバート先のPrivateDEVMODEに取得した設定値を書き込むS519。機能Compatibilityの範囲内でない場合は、コンバート元のPrivateDEVMODEの設定値をData部から取得しS511、コンバート先の機能ConvertInformationを取得するS512。そして、コンバート元から取得した設定値をコンバート先の機能Versionの値に変換しS513、コンバート先のPrivateDEVMODEに変換した設定値を書き込むS519。一方、S507でコンバート元の機能Versionが新しい場合は、コンバート元のPrivateDEVMODEのIndex部のIndexTableから機能Compatibilityを取得しS514、コンバート先の機能Versionが機能Compatibilityの範囲内であるかを判断するS515。機能Compatibilityの範囲内の場合は、コンバート元のPrivateDEVMODEの設定値をData部から取得しS516、コンバート先のPrivateDEVMODEに取得した設定値を書き込むS519。機能Compatibilityの範囲内でない場合は、コンバート元のIndexTableからコンバート先の機能Versionに対応するレコードを取得しS517、コンバート元のPrivateDEVMODEの設定値コンバート先の機能Versionに対応する設定値をData部から取得しS518、コンバート先のPrivateDEVMODEに取得した設定値を書き込むS519。その後、機能設定情報の次の機能情報が存在するかを判断しS520、次の機能情報が存在する場合はS503に戻って同様の処理を繰り返す。このように、コンバート元の機能Versionとコンバート先の機能Versionが異なる場合に、機能Compatibilityを利用して設定値をコンバートすることにより、予め生成したDEVMODE構造体を、異なる機種の画像形成装置30を制御するプリンタドライバや異なるバージョンのプリンタドライバでも利用することができるようになる。図22は、設定値のコンバート時の動作をコンバート元機種B、コンバート先機種Aの機能Version、機能Compatibilityごとに表した動作表である。図22より、コンバート元の機能Versionとコンバート先の機能Versionが共に1の場合ケース1参照、コンバート元の設定値をコンバート先でそのまま利用することができる。コンバート元の機能Versionがコンバート先の機能Versionよりも古い場合ケース2、4参照、コンバート先の機種Aの機能Compatibility情報機種Aの画像形成装置30を制御するプリンタドライバが保持する機能Compatibility情報を利用する。コンバート元の機能Versionが機能Compatibilityの範囲内の場合ケース2は、設定値をそのまま利用し、機能Compatibilityの範囲外の場合ケース4は、ConvertInformationを元に機種Bの設定値機種Bの画像形成装置30を制御するプリンタドライバが生成したPrivateDEVMODEの設定値をコンバートして利用する。コンバート元の機能Versionがコンバート先の機能Versionよりも新しい場合ケース3、5参照、コンバート元の機種Bの機能Compatibility情報を利用する。コンバート先の機能Versionが機能Compatibilityの範囲内の場合ケース3は、設定値をそのまま利用し、機能Compatibilityの範囲外の場合ケース5は、機種Bの設定値機種Bの画像形成装置30を制御するプリンタドライバが生成したPrivateDEVMODEのOldVersionの設定値の値機種Aの機能Versionに対応するものを利用する。また、コンバート元が機能なし場合ケース6参照、コンバート元の情報がないため機種Aのデフォルト値を利用する。また、コンバート先が機能なしの場合ケース7は、なにもしない。なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。