(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムが提供するＡＰＩを介してアプリケーションプログラムから各種の命令を受け取る画像形成制御プログラムであって、
画像形成条件が格納される第１領域と、アプリケーションプログラムが画像形成条件を書き込むため、及び、前記アプリケーションプログラムが値を読み出すための第２領域とを含むデータ構造体を生成する生成手段と、
アプリケーションプログラムによって前記第２領域に書き込まれた画像形成条件を前記第１領域に反映させる反映手段であって、前記第２領域に書き込まれた画像形成条件が有効な画像形成条件であるか否かを判断し、有効な画像形成条件である場合は当該画像形成条件を反映させるとともに、反映成功を示す反映結果を前記第２領域に書き込み、有効な画像形成条件ではない場合は反映失敗を示す反映結果を前記第２領域に書き込む反映手段と、
前記第１領域に格納されている画像形成条件に基づいて画像形成データを作成する作成手段としてコンピュータを機能させる画像形成制御プログラム。
【請求項２】
請求項１に記載の画像形成制御プログラムであって、
前記データ構造体は、画像形成装置の複数の機種に共通する画像形成機能に対する画像形成条件が格納される第３領域を含み、
前記第１領域は、画像形成装置の機種に固有の画像形成機能に対する画像形成条件が格納される領域であり、
前記作成手段は、前記第１領域に格納されている画像形成条件と前記第３領域に格納されている画像形成条件とに基づいて画像形成データを作成する、画像形成制御プログラム。
【請求項３】
請求項２に記載の画像形成制御プログラムであって、
前記第２領域は前記第１領域内に設けられている、画像形成制御プログラム。
【請求項４】
請求項２又は請求項３に記載の画像形成制御プログラムであって、
前記アプリケーションプログラムは、前記第１領域に格納される画像形成条件、及び前記第３領域に格納される画像形成条件の両方に関する画像形成条件を前記第２領域に書き込むものであり、
前記反映手段は、前記第２領域に書き込まれた画像形成条件を、前記第１領域、及び前記第３領域の両方に反映させる、画像形成制御プログラム。
【請求項５】
請求項１乃至請求項４のいずれか一項に記載の画像形成制御プログラムであって、
特定の画像形成機能について画像形成装置がその画像形成機能を備えているか否かを示す画像形成機能情報を前記第２領域に書き込む画像形成機能情報書き込み手段としてコンピュータを機能させる画像形成制御プログラム。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載の画像形成制御プログラムであって、
前記データ構造体は、前記データ構造体内における前記第２領域の位置を示す位置情報が前記データ構造体の最後に記述されている、画像形成制御プログラム。
【請求項７】
アプリケーションプログラムと、オペレーティングシステムが提供するＡＰＩを介して前記アプリケーションプログラムから各種の命令を受け取る画像形成制御プログラムとを備えて構成される画像形成プログラムであって、
前記画像形成制御プログラムは、
画像形成条件が格納される第１領域と、アプリケーションプログラムが画像形成条件を書き込むため、及び、前記アプリケーションプログラムが値を読み出すための第２領域とを含むデータ構造体を生成する生成手段と、
アプリケーションプログラムによって前記第２領域に書き込まれた画像形成条件を前記第１領域に反映させる反映手段であって、前記第２領域に書き込まれた画像形成条件が有効な画像形成条件であるか否かを判断し、有効な画像形成条件である場合は当該画像形成条件を反映させるとともに、反映成功を示す反映結果を前記第２領域に書き込み、有効な画像形成条件ではない場合は反映失敗を示す反映結果を前記第２領域に書き込む反映手段と、
前記第１領域に格納されている画像形成条件に基づいて画像形成データを作成する作成手段としてコンピュータを機能させ、
前記アプリケーションプログラムは、
前記第２領域に前記画像形成条件を書き込む画像形成条件書き込み手段として前記コンピュータを機能させる、画像形成プログラム。
【請求項８】
請求項７に記載の画像形成プログラムであって、
前記コンピュータは表示装置を備え、
前記画像形成制御プログラムは、
特定の画像形成機能について画像形成装置がその画像形成機能を備えているか否かを示す画像形成機能情報を前記第２領域に書き込む画像形成機能情報書き込み手段として前記コンピュータを機能させ、
前記アプリケーションプログラムは、
前記第２領域から前記画像形成機能情報を読み出し、前記画像形成装置が前記特定の画像形成機能を備えている場合は前記特定の画像形成機能に対する画像形成条件をユーザが設定するための設定画面を前記表示装置に表示させる、画像形成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成制御プログラム、画像形成プログラム、及び画像形成設定情報のデータ構造に関する。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ社のオペレーティングシステム（ＯＳ）であるＷＩＮＤＯＷＳ（登録商標）では、アプリケーションプログラムやプリンタドライバによって設定された印刷条件をＤＥＶＭＯＤＥ構造体と呼ばれるバイナリ形式の印刷設定情報に格納している。
【０００３】
図１０は、従来のＤＥＶＭＯＤＥ構造体の構造を示す模式図である。ＤＥＶＭＯＤＥ構造体は大きくＰｕｂｌｉｃ領域（公開領域）とＰｒｉｖａｔｅ領域（非公開領域）とで構成されている。
Ｐｕｂｌｉｃ領域はプリンタの複数の機種に共通する一般的な印刷機能に対する印刷条件が格納される領域である。Ｐｕｂｌｉｃ領域は仕様が公開されているので、アプリケーションプログラムはＰｕｂｌｉｃ領域に格納されている印刷条件を直接変更できる。
【０００４】
一方、Ｐｒｉｖａｔｅ領域はプリンタに固有の印刷機能に対する印刷条件が格納される領域である。Ｐｒｉｖａｔｅ領域はプリンタドライバの開発元ごとに仕様が異なり、一般にその仕様は公開されないので、アプリケーションプログラムはＰｒｉｖａｔｅ領域に格納されている印刷条件を変更することはできない。
【０００５】
しかしながら、Ｐｒｉｖａｔｅ領域に格納されている印刷条件をアプリケーションプログラムから変更したい場合もある。そこで、Ｐｒｉｖａｔｅ領域に格納されている印刷条件をアプリケーションプログラムから変更するための拡張ＡＰＩをプリンタドライバに実装し、アプリケーションプログラムがその拡張ＡＰＩを呼び出して印刷条件を変更することが行われていた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−３１０４９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、拡張ＡＰＩを呼び出して印刷条件を変更する方法では次のような問題があった。
ＯＳには３２ビットデータを扱う３２ビットＯＳと６４ビットデータを扱う６４ビットＯＳとが存在し、プリンタドライバにも３２ビットデータを扱う３２ビットドライバと６４ビットデータを扱う６４ビットドライバとが存在する。３２ビットＯＳ上では３２ビットドライバしか使えず、６４ビットＯＳでは６４ビットドライバしか使えない。
【０００８】
一方、アプリケーションプログラムにも３２ビットデータを扱う３２ビットアプリケーションと６４ビットデータを扱う６４ビットアプリケーションとが存在する。３２ビットＯＳ上では３２ビットアプリケーションしか動作しないが、６４ビットＯＳ上では３２ビットアプリケーションも６４ビットアプリケーションも動作する。
【０００９】
そして、６４ビットＯＳで３２ビットアプリケーションを動作させるときに問題が生じる。具体的には、３２ビットアプリケーションは６４ビットドライバに実装されている拡張ＡＰＩを呼び出すことができないので、６４ビットＯＳで３２ビットアプリケーションを動作させるときに、Ｐｒｉｖａｔｅ領域に格納されている印刷条件を変更できない。
【００１０】
本発明は上記のような事情に基づいて完成されたものであって、仕様が公開されていない領域にアプリケーションプログラムが画像形成条件を反映させるためのＡＰＩを画像形成制御プログラムに実装することなく、アプリケーションプログラムが当該領域に画像形成条件を反映させることのできる画像形成制御プログラム、画像形成プログラム、及び印刷設定情報のデータ構造を提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の発明は、オペレーティングシステムが提供するＡＰＩを介してアプリケーションプログラムから各種の命令を受け取る画像形成制御プログラムであって、画像形成条件が格納される第１領域と、アプリケーションプログラムが画像形成条件を書き込むための第２領域とを含むデータ構造体を生成する生成手段と、アプリケーションプログラムによって前記第２領域に書き込まれた画像形成条件を前記第１領域に反映させる反映手段と、前記第１領域に格納されている画像形成条件に基づいて画像形成データを作成する作成手段としてコンピュータを機能させる。
【００１２】
この発明によると、第１領域の仕様が公開されておらず、それによりアプリケーションプログラムが第１領域に画像形成条件を直接反映できない場合であっても、第２領域に画像形成条件を書き込むことにより、第１領域に画像形成条件を反映させることができる。
よってこの発明によると、仕様が公開されていない領域にアプリケーションプログラムが画像形成条件を反映させるためのＡＰＩを画像形成制御プログラムに実装することなく、アプリケーションプログラムが当該領域に画像形成条件を反映させることができる。
【００１３】
ここで画像形成条件を反映させるとは、第１領域に未だ画像形成条件が格納されていない場合は第１領域に画像形成条件を格納することをいい、第１領域に既に画像形成条件が格納されている場合は既に格納されている画像形成条件を変更することをいう。また、反映手段はアプリケーションプログラムによって書き込まれた画像形成条件をそのまま格納してもよいし、形式を変換して格納してもよい。また、アプリケーションプログラムによって書き込まれた１つの画像形成条件に対して第１領域に複数の画像形成条件を格納、あるいは変更してもよい。
【００１４】
第２の発明は、第１の発明の画像形成制御プログラムであって、前記データ構造体は、画像形成装置の複数の機種に共通する画像形成機能に対する画像形成条件が格納される第３領域を含み、前記第１領域は、画像形成装置の機種に固有の画像形成機能に対する画像形成条件が格納される領域であり、前記作成手段は、前記第１領域に格納されている画像形成条件と前記第３領域に格納されている画像形成条件とに基づいて画像形成データを作成する。
この発明によると、プリンタの機種に固有の印刷機能に対する画像形成条件を反映させることのできる
【００１５】
第３の発明は、第２の発明の画像形成制御プログラムであって、前記第２領域は前記第１領域内に設けられている。
この発明によると、第１領域と第３領域とで構成されるデータ構造体において、第３領域内に独自の領域を設けることができないように仕様が決められている場合であっても、第１領域内に第２領域を設けることにより、アプリケーションプログラムが画像形成条件を書き込むための領域をデータ構造体内に設けることができる。
【００１６】
第４の発明は、第２又は第３の発明の画像形成制御プログラムであって、前記アプリケーションプログラムは、前記第１領域に格納される画像形成条件、及び前記第３領域に格納される画像形成条件の両方に関する画像形成条件を前記第２領域に書き込むものであり、前記反映手段は、前記第２領域に書き込まれた画像形成条件を、前記第１領域、及び前記第３領域の両方に反映させる。
この発明によると、第１領域に格納されている画像形成条件と第３領域に格納されている画像形成条件との不整合を低減できる。
【００１７】
第５の発明は、第１〜第４のいずれかの発明の画像形成制御プログラムであって、前記反映手段は、アプリケーションプログラムによって前記第２領域に書き込まれた画像形成条件が有効な画像形成条件であるか否かを判断し、有効な画像形成条件である場合は当該画像形成条件を反映させるとともに、反映成功を示す反映結果を前記第２領域に書き込み、有効な画像形成条件ではない場合は反映失敗を示す反映結果を前記第２領域に書き込む。
この発明によると、アプリケーションプログラムは反映が成功したか否かを知ることができる。
【００１８】
第６の発明は、第１〜第５のいずれかの発明の画像形成制御プログラムであって、特定の画像形成機能について画像形成装置がその画像形成機能を備えているか否かを示す画像形成機能情報を前記第２領域に書き込む画像形成機能情報書き込み手段としてコンピュータを機能させる。
この発明によると、アプリケーションプログラムは画像形成装置が特定の画像形成機能を備えているか否かを知ることができる。
【００１９】
第７の発明は、第１〜第６のいずれかの発明の画像形成制御プログラムであって、前記データ構造体は、前記データ構造体内における前記第２領域の位置を示す位置情報が前記データ構造体の最後に記述されている。
この発明によると、アプリケーションプログラムは位置情報をデータ構造体の最後から読み込むことにより、第２領域の位置を知ることができる。
【００２０】
第８の発明は、アプリケーションプログラムと、オペレーティングシステムが提供するＡＰＩを介して前記アプリケーションプログラムから各種の命令を受け取る画像形成制御プログラムとを備えて構成される画像形成プログラムであって、前記画像形成制御プログラムは、画像形成条件が格納される第１領域と、アプリケーションプログラムが画像形成条件を書き込むための第２領域とを含むデータ構造体を生成する生成手段と、アプリケーションプログラムによって前記第２領域に書き込まれた画像形成条件を前記第１領域に反映させる反映手段と、前記第１領域に格納されている画像形成条件に基づいて画像形成データを作成する作成手段としてコンピュータを機能させ、前記アプリケーションプログラムは、前記第２領域に前記画像形成条件を書き込む画像形成条件書き込み手段として前記コンピュータを機能させる。
この発明によると、仕様が公開されていない領域にアプリケーションプログラムが画像形成条件を反映させるためのＡＰＩを画像形成制御プログラムに実装することなく、アプリケーションプログラムが当該領域に画像形成条件を反映させることができる。
【００２１】
第９の発明は、第８の発明の画像形成プログラムであって、前記コンピュータは表示装置を備え、前記画像形成制御プログラムは、特定の画像形成機能について画像形成装置がその画像形成機能を備えているか否かを示す画像形成機能情報を前記第２領域に書き込む画像形成機能情報書き込み手段として前記コンピュータを機能させ、前記アプリケーションプログラムは、前記第２領域から前記画像形成機能情報を読み出し、前記画像形成装置が前記特定の画像形成機能を備えている場合は前記特定の画像形成機能に対する画像形成条件をユーザが設定するための設定画面を前記表示装置に表示させる。
この発明によると、アプリケーションプログラムはプリンタが特定の印刷機能を備えている場合に、当該特定の印刷機能に対する画像形成条件をユーザに設定させることができる。
【００２２】
第１０の発明は、画像形成制御プログラムとアプリケーションプログラムとを実行するコンピュータによって読み書きされる画像形成設定情報のデータ構造であって、画像形成条件が格納される第１領域と、アプリケーションプログラムが画像形成条件を書き込むための第２領域と、を含む。
この発明によると、仕様が公開されていない領域に格納されている画像形成条件をアプリケーションプログラムから変更するためのＡＰＩを画像形成制御プログラムに実装することなくアプリケーションプログラムからその画像形成条件を変更できる。
【発明の効果】
【００２３】
本発明によれば、仕様が公開されていない領域に格納されている画像形成条件をアプリケーションプログラムから変更するためのＡＰＩを画像形成制御プログラムに実装することなくアプリケーションプログラムからその画像形成条件を変更できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態１に係るコンピュータの電気的構成を示すブロック図。
【図２】印刷プログラムの論理的構成を示すブロック図。
【図３】実施形態１に係るＤＥＶＭＯＤＥ構造体の模式図。
【図４】各入力値、及び各出力値に格納される値を示す模式図。
【図５】アプリケーション用印刷設定画面の一例を示す模式図。
【図６】アプリケーション用印刷設定画面の表示処理の流れを示すフローチャート。
【図７】アプリケーションから印刷条件を変更する処理の流れを示すフローチャート。
【図８】反映処理の流れを示すフローチャート。
【図９】反映処理の流れを示すフローチャート。
【図１０】従来のＤＥＶＭＯＤＥ構造体の構造を示す模式図。
【発明を実施するための形態】
【００２５】
＜実施形態１＞
本発明の実施形態１を図１ないし図９によって説明する。
（１）コンピュータの構成
図１は、本発明の実施形態１に係るコンピュータの電気的構成を示すブロック図である。コンピュータ１（以下「ＰＣ」という）は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、記憶部１４、ディスプレイ駆動回路１５、ＵＳＢインタフェース（ＵＳＢ  Ｉ／Ｆ）１６などを備えて構成されている。
【００２６】
ＣＰＵ１１（生成手段、反映手段、作成手段、画像形成機能情報書き込み手段、画像形成条件書き込み手段の一例）は、ＲＯＭ１２や記憶部１４に記憶されている各種のプログラムを実行することによってＰＣ１の各部を制御する。ＲＯＭ１２にはＣＰＵ１１によって実行される各種のプログラムやデータなどが記憶されている。ＲＡＭ１３はＣＰＵ１１が各種の処理を実行するための主記憶装置として用いられる。
【００２７】
記憶部１４は、ハードディスクやフラッシュメモリなどの不揮発性の記憶媒体を用いて各種のプログラムやデータを記憶する外部記憶装置である。記憶部１４には、オペレーティングシステム（ＯＳ）、印刷プログラム（画像形成プログラムの一例）などが記憶されている。本実施形態ではＯＳとしてＭｉｃｒｏｓｏｆｔ社のＷＩＮＤＯＷＳ（登録商標）を例に説明する。
【００２８】
ディスプレイ駆動回路１５（選択手段の一例）は、表示装置１７（ＣＲＴ、液晶ディスプレイなど）を駆動する回路であり、ケーブルを介して表示装置１７と接続されている。
ＵＳＢインタフェース１６（選択手段の一例）は例えばＵＳＢ（Universal Serial Bus）ホストインタフェースとして構成されており、ＵＳＢケーブルを介して入力装置１８（マウス、キーボードなど）やプリンタ２などの機器と接続される。
【００２９】
プリンタ２（画像形成装置の一例）は、紙などの被記録媒体に電子写真方式、インクジェット方式などで画像を形成する装置である。なお、プリンタ２はＬＡＮなどの通信ネットワークを介してＰＣ１と接続される構成であってもよい。
【００３０】
（２）印刷プログラムの論理的構成
図２は、印刷プログラムの論理的構成を示すブロック図である。印刷プログラム３０はプリンタドライバ３１（画像形成制御プログラムの一例）とアプリケーションプログラム３２（以下「アプリケーション」という）とで構成されている。プリンタドライバ３１とアプリケーション３２との間の印刷条件（画像形成条件の一例）の受け渡しはＤＥＶＭＯＤＥ構造体４０（データ構造体、画像形成設定情報の一例）を用いて行われる。
【００３１】
また、アプリケーション３２からプリンタドライバ３１への各種の命令は、ＯＳが提供するＡＰＩ（Application Program Interface）を介してプリンタドライバ３１に送られる。各種の命令とは、ＤＥＶＭＯＤＥ構造体４０の受け渡し用領域４２（図３参照）に書き込んだ印刷条件をＰｒｉｖａｔｅ領域やＰｕｂｌｉｃ領域に反映させる命令や、印刷命令（所謂ＧＤＩ命令）などである。
【００３２】
（２−１）ＤＥＶＭＯＤＥ構造体
図３は、ＤＥＶＭＯＤＥ構造体４０の構成を示す模式図である。ＤＥＶＭＯＤＥ構造体４０はＰｕｂｌｉｃ領域４３（第３領域の一例）とＰｒｉｖａｔｅ領域４１（第１領域の一例）とで構成されている。
【００３３】
Ｐｕｂｌｉｃ領域４３には、ＤＥＶＭＯＤＥ構造体のサイズなどのＤＥＶＭＯＤＥ構造体自体に関する情報が格納される他、用紙サイズ、コピー数、印刷品質、カラー、両面印刷など、プリンタの複数の機種に共通する一般的な印刷機能に対する印刷設定項目の設定値（印刷条件の一例）が格納される。Ｐｕｂｌｉｃ領域４３の仕様はＭｉｃｒｏｓｏｆｔ社によって決められており、プリンタドライバの開発元がＰｕｂｌｉｃ領域４３内に独自の項目を設けることはできない。
【００３４】
Ｐｒｉｖａｔｅ領域４１には、縁なし印刷、片面複数ページ印刷、余白サイズなど、プリンタ２に固有の印刷機能に対する印刷設定項目の設定値が格納される。Ｐｒｉｖａｔｅ領域４１はプリンタドライバの開発元ごとに仕様が異なり、一般にその仕様は公開されないので、アプリケーション３２はＰｒｉｖａｔｅ領域４１に格納されている印刷条件を直接変更することはできない。
【００３５】
本実施形態に係るＤＥＶＭＯＤＥ構造体４０は、Ｐｒｉｖａｔｅ領域４１内に受け渡し用領域４２（第２領域の一例）が設けられている点で従来のＤＥＶＭＯＤＥ構造体（図１０）と異なる。
【００３６】
受け渡し用領域４２を設けた理由は大きく次の３つである。
１）Ｐｒｉｖａｔｅ領域４１に格納されている一部の印刷設定項目（本実施形態では縁なし印刷）の設定値をアプリケーション３２から変更できるようにするため。
【００３７】
２）特定の印刷機能の有無（本実施形態では両面印刷機能の有無）をアプリケーション３２に知らせるため。
【００３８】
３）Ｐｕｂｌｉｃ領域４３に格納されている設定値であってもアプリケーション３２から直接変更されたくない場合に、アプリケーション３２がその設定値を受け渡し用領域４２に書き込むようにし、プリンタドライバ３１がその設定値をＰｕｂｌｉｃ領域４３に反映するようにするため。
例えば、Ｐｕｂｌｉｃ領域４３に格納される設定値である両面印刷の設定値を、Ｐｒｉｖａｔｅ領域４１に格納される設定値である余白サイズの設定値と関連して変更したい場合がある。より具体的には、はがきサイズの用紙に両面印刷する場合は余白サイズを０ｍｍにするといったような場合である。
このような場合、アプリケーション３２が両面印刷の設定値を受け渡し用領域４２に書き込むようにすることで、プリンタドライバ３１がそれらの設定値を関連して変更することが可能になる。両面印刷は「第１領域に格納される画像形成条件、及び第３領域に格納される画像形成条件の両方に関する画像形成条件」の一例である。
【００３９】
ＤＥＶＭＯＤＥ構造体４０の最後尾には「受け渡し用領域の位置情報」が格納されている。アプリケーション３２はＰｕｂｌｉｃ領域４３に格納されているＤＥＶＭＯＤＥ構造体のサイズを元にＤＥＶＭＯＤＥ構造体４０の最後尾のアドレスを知ることができ、ＤＥＶＭＯＤＥ構造体４０の最後尾から「受け渡し用領域の位置情報」を読み込むことにより、受け渡し用領域４２にアクセスすることができる。
【００４０】
受け渡し用領域４２には、入力値１、入力値２、出力値１、及び、出力値２の４つの項目の値が格納される。
図４は、上述した各入力値、及び各出力値に格納される値を示す模式図である。
入力値１は、両面印刷の設定値をアプリケーション３２が書き込むための項目であり、「変更なし」、「両面印刷する」、又は「両面印刷しない」が書き込まれる。
【００４１】
入力値２は、縁なし印刷の設定値をアプリケーション３２が書き込むための項目であり、「変更なし」、「縁なし印刷する」、又は「縁なし印刷しない」が書き込まれる。
これらの入力値は、両面印刷や縁なし印刷の設定値に限られるものではなく、アプリケーションからの変更を許可する印刷機能であればこれら以外の印刷機能の設定値であってもよい。また、格納する入力値の数は２つに限られず、適宜に設定可能である。
出力値１は、特定の印刷機能についてプリンタ２がその印刷機能を備えているか否かを示す印刷機能情報をプリンタドライバ３１が書き込むための項目である。ここでは特定の印刷機能として両面印刷機能を例に説明する。プリンタ２が両面印刷機能を備えている場合は出力値１に「有」が書き込まれ、備えていない場合は「無」が書き込まれる。なお、特定の印刷機能は両面印刷機能に限られるものではなく、プリンタが備える印刷機能であれば他の機能であってもよい。また、格納する特定の印刷機能の数は１つに限られるものではない。
【００４２】
出力値２は、入力値１、及び入力値２に書き込まれた設定値をプリンタドライバ３１がＰｕｂｌｉｃ領域４３やＰｒｉｖａｔｅ領域４１に反映した反映結果が書き込まれる項目である。詳しくは後述するが、反映は必ずしも成功するとは限らず、反映に成功した場合は「成功」が書き込まれ、反映に失敗した場合は「失敗」が書き込まれる。
【００４３】
（２−２）プリンタドライバの論理的構成
図２に戻り、プリンタドライバ３１は、生成モジュール３１ａ、格納モジュール３１ｂ、反映モジュール３１ｃ、作成モジュール３１ｄ、及び、印刷機能情報書き込みモジュール３１ｅを備えて構成されている。
生成モジュール３１ａは、ＤＥＶＭＯＤＥ構造体４０を生成するモジュールである。具体的には、生成モジュール３１ａはＤＥＶＭＯＤＥ構造体の定義コードに従ってＲＡＭ１３上にＤＥＶＭＯＤＥ構造体のインスタンス（以下、単に「ＤＥＶＭＯＤＥ構造体」という）を確保する。
【００４４】
格納モジュール３１ｂは、ＤＥＶＭＯＤＥ構造体４０のＰｕｂｌｉｃ領域４３、及びＰｒｉｖａｔｅ領域４１に印刷条件（印刷設定項目の設定値）を格納するモジュールである。具体的には、生成モジュール３１ａによってＤＥＶＭＯＤＥ構造体４０が生成されると、格納モジュール３１ｂは生成されたＤＥＶＭＯＤＥ構造体４０の各印刷設定項目に所定のデフォルト値を格納する。
【００４５】
また、アプリケーション３２はアプリケーション用印刷設定画面５０（図５参照）からプリンタドライバ３１の格納モジュール３１ｂを呼び出すことができ、アプリケーション３２から呼び出された格納モジュール３１ｂは、印刷条件を設定するための図示しない印刷設定画面（「ドライバ用印刷設定画面」という）を表示する。ドライバ用印刷設定画面ではＰｒｉｖａｔｅ領域４１に格納されている設定値を変更することができる。
【００４６】
反映モジュール３１ｃは、アプリケーション３２によって受け渡し用領域４２に書き込まれた印刷条件（印刷設定項目の設定値）を、Ｐｕｂｌｉｃ領域４３やＰｒｉｖａｔｅ領域４１に格納されている印刷条件に反映させるモジュールである。
作成モジュール３１ｄは、アプリケーション３２から出力される印刷命令と、Ｐｕｂｌｉｃ領域４３に格納されている印刷条件と、Ｐｒｉｖａｔｅ領域４１に格納されている印刷条件とに基づいて印刷データ（画像形成データの一例）を作成し、作成した印刷データをプリンタ２に出力するモジュールである。
【００４７】
印刷機能情報書き込みモジュール３１ｅは、特定の印刷機能（ここでは両面印刷機能）についてプリンタ２がその印刷機能を備えているか否かを示す印刷機能情報を受け渡し用領域４２の出力値１（両面印刷機能の有無）に書き込むモジュールである。
【００４８】
（２−３）アプリケーションプログラムの論理的構成
前述したようにドライバ用印刷設定画面ではＰｒｉｖａｔｅ領域４１に格納されている設定値を変更することができるが、そのためにはユーザはアプリケーション用印刷設定画面５０からドライバ用印刷設定画面を呼び出さなければならず、ユーザによっては操作が増えて使い難いと感じる場合もある。
本実施形態に係るアプリケーション３２は、Ｐｕｂｌｉｃ領域４３に格納されている印刷設定項目に加えて、Ｐｒｉｖａｔｅ領域４１に格納されている一部の印刷設定項目（本実施形態では縁なし印刷）の設定値について、ドライバ用印刷設定画面を呼び出すことなく変更することができるものである。
【００４９】
アプリケーション３２は、アプリケーションモジュール３２ａ、及び、アクセスモジュール３２ｂを備えて構成されている。
アプリケーションモジュール３２ａは、ワードプロセッサ、表計算ソフト、画像編集ソフトなどに相当するモジュールである。
【００５０】
アクセスモジュール３２ｂは、受け渡し用領域４２の出力値１、及び出力値２から値を読み込むとともに、入力値１（両面印刷）、及び入力値２（縁なし印刷）に設定値を書き込むモジュールである。具体的には、アクセスモジュール３２ｂはアプリケーション用印刷設定画面５０を表示装置１７に表示し、アプリケーション用印刷設定画面５０でユーザにより設定された値を受け渡し用領域４２の入力値１、及び入力値２に書き込む。この表示において、アクセスモジュール３２ｂは出力値１、及び出力値２から値を読み込んで表示を制御する。
【００５１】
（３）アプリケーション用印刷設定画面の表示処理
図５は、アプリケーション用印刷設定画面５０（設定画面の一例）の一例を示す模式図である。理解を容易にするためここでは印刷設定項目として用紙サイズ、両面印刷、縁なし印刷の３つだけを例に説明する。
【００５２】
用紙サイズ欄５０ａは、印刷用紙のサイズを選択するための欄である。用紙サイズ欄５０ａでユーザが用紙サイズを選択すると選択された用紙サイズがアプリケーション３２によってＰｕｂｌｉｃ領域４３の用紙サイズ４３ａに格納される。
両面印刷欄５０ｂは、両面印刷するか否かを選択するための欄であり、ユーザは両面印刷する場合はチェックボッスにチェックを入れ、両面印刷しない場合はチェックを外す。
【００５３】
縁なし印刷欄５０ｃは、縁なし印刷するか否かを選択するための欄であり、ユーザは縁なし印刷する場合はチェックボッスにチェックを入れ、縁なし印刷しない場合はチェックを外す。
プロパティボタン５０ｄはドライバ用印刷設定画面を呼び出すためのボタンである。
【００５４】
ＯＫボタン５０ｅは、ユーザが印刷の実行を指示するためのボタンである。ＯＫボタン５０ｅがクリックされると、アプリケーション３２は印刷対象ページを印刷するための印刷命令をＯＳが提供するＡＰＩを介してプリンタドライバ３１に出力する。プリンタドライバ３１は印刷命令が出力されると、その印刷命令と、Ｐｕｂｌｉｃ領域４３に格納されている印刷条件と、Ｐｒｉｖａｔｅ領域４１に格納されている印刷条件とに基づいて印刷データを作成し、作成した印刷データをプリンタ２に送信する。
【００５５】
図５ではアプリケーション用印刷設定画面５０に両面印刷欄５０ｂが表示されているが、アプリケーション３２はアプリケーション用印刷設定画面５０を表示する際にプリンタ２が両面印刷機能を備えているか否かを確認し、両面印刷機能を備えていない場合は両面印刷欄５０ｂを非表示にする。なお、理解を容易にするため縁なし印刷欄５０ｃについては常に表示するものとする。以下、アプリケーション用印刷設定画面５０の表示処理について説明する。
【００５６】
図６は、アプリケーション用印刷設定画面５０の表示処理の流れを示すフローチャートである。
アプリケーション３２によって表示されるメニューでユーザが印刷を選択すると、アプリケーション３２はＯＳを介してプリンタドライバ３１にＤＥＶＭＯＤＥ構造体４０へのポインタを要求する。
ポインタを要求されたプリンタドライバ３１はＤＥＶＭＯＤＥ構造体４０を生成して所定のデフォルト値を格納し、そのＤＥＶＭＯＤＥ構造体４０へのポインタ（メモリ上の番地）をアプリケーション３２に戻り値として返す。ここで、前述した入力値１、及び入力値２にはデフォルト値として「変更なし」が設定され、出力値１及び出力値２には何も設定されないものとする。
プリンタドライバ３１からアプリケーション３２にＤＥＶＭＯＤＥ構造体４０のポインタが返されると、以下に説明する表示処理が開始される。
【００５７】
Ｓ１０１では、アプリケーション３２を実行するＣＰＵ１１（以下、単に「アプリケーション３２」という）は、ＤＥＶＭＯＤＥ構造体４０の最後尾から「受け渡し用領域の位置情報」を読み込む。このように、アプリケーションは「受け渡し用領域の位置情報」を読み込むことにより受け渡し用領域４２の位置を特定し、Ｐｒｉｖａｔｅ領域４１内に受け渡し用領域４２が設けられていても、受け渡し領域４２に対して読み込み及び書き込みをすることができる。なお、ＤＥＶＭＯＤＥ構造体４０の最後尾のアドレスは、Ｐｕｂｌｉｃ領域に格納されているＤＥＶＭＯＤＥ構造体のサイズ（図３）とＤＥＶＭＯＤＥ構造体の先頭アドレス(図示せず)に基づいて特定することができる。
【００５８】
Ｓ１０２では、アプリケーション３２はＯＳが提供するＡＰＩであるDocumentProperties関数を呼び出す。このＡＰＩが呼び出されたＯＳは、プリンタドライバ３１が提供するDrvDocumentProperties関数を呼び出す。プリンタドライバ３１は、DrvDocumentProperties関数が呼び出されると「反映処理」を実行する。詳しくは後述するが、プリンタドライバ３１はこの「反映処理」において、上述したＤＥＶＭＯＤＥ構造体４０の出力値１（両面印刷機能の有無）に両面印刷機能の有無を書き込む。
【００５９】
Ｓ１０３では、アプリケーション３２は受け渡し用領域４２から出力値１（両面印刷機能の有無）の値を読み込む。
Ｓ１０４では、アプリケーション３２は出力値１の値からプリンタ２が両面印刷機能を備えているか否かを判断し、備えている場合はＳ１０５に進み、備えていない場合はＳ１０６に進む。
【００６０】
Ｓ１０５では、アプリケーション３２はアプリケーション用印刷設定画面５０を表示し、両面印刷欄５０ｂを表示する。
Ｓ１０６では、アプリケーション３２はアプリケーション用印刷設定画面５０を表示し、両面印刷欄５０ｂを非表示にする。
【００６１】
（４）アプリケーションプログラムからの印刷条件の変更
図７は、アプリケーション３２から印刷条件を変更する処理の流れを示すフローチャートである。ここではプリンタ２が両面印刷機能を備えており、ユーザがアプリケーション用印刷設定画面５０で両面印刷の設定値を変更する場合を例に説明するが、縁なし印刷の設定値を変更する場合も同様の処理を行う。本処理はアプリケーション用印刷設定画面５０においてユーザが両面印刷欄５０ｂのチェックボックスにチェックを入れる操作、あるいはチェックを外す操作を行うと開始される。
【００６２】
Ｓ２０１では、アプリケーション３２はＤＥＶＭＯＤＥ構造体４０の最後尾から「受け渡し用領域の位置情報」を読み込む。
Ｓ２０２では、アプリケーション３２は受け渡し用領域４２の入力値１（両面印刷）に、ユーザの操作に応じた設定値を書き込む。
具体的には例えば、チェックボックスにチェックが入っていない状態でユーザがチェックボックスをクリックした場合はチェックを入れる操作であるので、アプリケーション３２は入力値１に「両面印刷する」を書き込む。一方、チェックボックスにチェックが入っている状態でユーザがチェックボックスをクリックした場合はチェックを外す操作であるので、アプリケーション３２は入力値１に「両面印刷しない」を書き込む。
【００６３】
Ｓ２０３では、アプリケーション３２は前述したDocumentProperties関数を呼び出す。DocumentProperties関数を呼び出すと、プリンタドライバ３１によって「反映処理」が実行される。詳しくは後述するが、プリンタドライバ３１はこの「反映処理」において、入力値１に書き込まれている値をＰｕｂｌｉｃ領域４３、及びＰｒｉｖａｔｅ領域４１に反映させ、反映が成功したか否かを示す反映結果を受け渡し用領域４２の出力値２（反映結果）に書き込む。
【００６４】
Ｓ２０４では、アプリケーション３２は受け渡し用領域４２から出力値２（反映結果）の値を読み込む。
Ｓ２０５では、アプリケーション３２は反映結果が「成功」である場合はＳ２０６に進み、「失敗」である場合はＳ２０７に進む。
【００６５】
Ｓ２０６では、アプリケーション３２はアプリケーション用印刷設定画面５０の表示を更新する。具体的には、アプリケーション３２は両面印刷欄５０ｂにチェックマークが表示されていない場合はチェックマークを表示し、両面印刷欄５０ｂにチェックマークが表示されている場合はチェックマークを外す。
【００６６】
Ｓ２０７では、アプリケーション３２は反映が失敗したことをユーザに報知する。具体的には例えば、「選択された設定はできません」というエラーメッセージを表示装置１７に表示する。反映が失敗した場合は、本処理の開始時にユーザがチェックを入れる操作を行っていてもチェックマークは表示されないことになる。
【００６７】
（５）反映処理
図８及び図９は、Ｓ１０２、及びＳ２０３で実行される「反映処理」の流れを示すフローチャートである。本処理はプリンタドライバ３１によって実行される。
Ｓ３０１では、プリンタドライバ３１を実行するＣＰＵ１１（以下、単に「プリンタドライバ３１」という）は、ＤＥＶＭＯＤＥ構造体４０の最後尾から「受け渡し用領域の位置情報」を読み込む。
【００６８】
次に説明するＳ３０２〜Ｓ３０４の処理は、ＤＥＶＭＯＤＥ構造体４０の出力値１（両面印刷機能の有無）に両面印刷機能の有無を書き込む処理である。
Ｓ３０２では、プリンタドライバ３１はプリンタ２が両面印刷機能を備えているか否かを判定し、備えている場合はＳ３０３に進み、備えていない場合はＳ３０４に進む。
ここで、プリンタドライバ３１はプリンタ２の機種ごとに作成されるプログラムであり、プリンタドライバ３１は自身に対応するプリンタ２の印刷機能を知っているものとする。
【００６９】
Ｓ３０３では、プリンタドライバ３１は受け渡し用領域４２の出力値１に「有」を書き込む。
Ｓ３０４では、プリンタドライバ３１は受け渡し用領域４２の出力値１に「無」を書き込む。
【００７０】
次に説明するＳ３０５〜Ｓ３１９の処理は、入力値１（両面印刷）、及び入力値２（縁なし印刷）に書き込まれている設定値を反映し、反映結果を受け渡し用領域４２の出力値２（反映結果）に書き込む処理である。
【００７１】
Ｓ３０５では、プリンタドライバ３１は受け渡し用領域４２の出力値２（反映結果）に初期値として「成功」を書き込む。
Ｓ３０６では、プリンタドライバ３１は受け渡し用領域４２から入力値１（両面印刷）の設定値を読み込む。
【００７２】
Ｓ３０７では、プリンタドライバ３１は入力値１（両面印刷）の設定値が「両面印刷しない」である場合はＳ３０８に進み、「両面印刷する」である場合はＳ３０９に進み、「変更なし」の場合は何も実行せずにＳ３１３に進む。
ここで、入力値１に「変更なし」が設定されている場合とは、次のような場合である。「反映処理」は両面印刷欄５０ｂや縁なし印刷欄５０ｃの操作が行われたときにそれぞれ独立して呼び出される。このため、ユーザが最初に縁なし印刷欄５０ｃを操作した場合には、入力値１（両面印刷の設定値）にはデフォルト値である「変更なし」が設定されていることになる。「変更なし」が設定されている場合はＳ３０８〜Ｓ３１２までの処理は不要であるので、プリンタドライバ３１はそれらの処理をスキップしてＳ３１３に進む。
【００７３】
Ｓ３０８では、プリンタドライバ３１はＰｕｂｌｉｃ領域４３の両面印刷４３ｂに「両面印刷しない」を書き込む。
Ｓ３０９では、プリンタドライバ３１はプリンタ２が両面印刷機能を備えているか否かを判定し、備えている場合はＳ３１０に進み、備えていない場合はＳ３１１に進む。
ここで、Ｓ３０９においてプリンタ２が両面印刷機能を備えているか否かを判定しているのは次の理由による。プリンタ２が両面印刷機能を備えていない場合は前述したＳ１０６で両面印刷欄５０ｂが非表示になるので、本来は入力値１の値は「変更なし」のままであるはずである。したがって、プリンタ２が両面印刷機能を備えていない場合はＳ３０９の処理に進むことはないはずである。しかしながら、アプリケーションの中には両面印刷機能の有無を確認することなくアプリケーション用印刷設定画面５０に両面印刷欄５０ｂを表示してしまうものがないとはいえない。そのようなアプリケーションの場合はプリンタ２が両面印刷機能を備えていないにもかかわらず入力値１に「両面印刷する」を設定する可能性があるので、プリンタドライバ３１は両面印刷機能を備えているか否かをＳ３０９においてあらためて確認する。
【００７４】
なお、プリンタ２が両面印刷機能を備えているか否かに加えて、両面印刷に対応している用紙サイズであるか否かを判定してもよい。具体的には例えば、両面印刷は全ての用紙サイズで可能であるとは限らず、はがきやＡ４の場合は可能であり、Ａ３の場合は不可能である場合もある。その場合には、プリンタ２が両面印刷機能を備えており、且つＰｕｂｌｉｃ領域４３の用紙サイズ４３ａに格納されている用紙サイズがはがきやＡ４であれば両面印刷機能を備えていると判定してもよい。
【００７５】
Ｓ３１０では、プリンタドライバ３１は、入力値１（両面印刷）の設定値は有効な印刷条件であるとして、Ｐｕｂｌｉｃ領域４３の両面印刷４３ｂに「両面印刷する」を書き込む。
そして、プリンタドライバ３１は、Ｐｕｂｌｉｃ領域４３の用紙サイズ４３ａに格納されている用紙サイズがはがきであるか否かを判断し、はがきである場合はＰｒｉｖａｔｅ領域４１の余白サイズ４１ａに０ｍｍを書き込む。
【００７６】
Ｓ３１１では、プリンタドライバ３１は、入力値１（両面印刷）の設定値は有効な印刷条件ではないとして、受け渡し用領域４２の出力値２（反映結果）に「失敗」を書き込む。
Ｓ３１２では、プリンタドライバ３１は受け渡し用領域４２の入力値１（両面印刷）の設定値を「変更なし」に戻す。
【００７７】
Ｓ３１３では、プリンタドライバ３１は受け渡し用領域４２から入力値２（縁なし印刷）の設定値を読み込む。
Ｓ３１４では、プリンタドライバ３１は入力値２（縁なし印刷）の設定値が「縁なし印刷しない」である場合はＳ３１５に進み、「縁なし印刷する」である場合はＳ３１６に進み、「変更なし」の場合は何も実行せずにＳ３２０に進む。
【００７８】
Ｓ３１５では、プリンタドライバ３１はＰｒｉｖａｔｅ領域４１の縁なし印刷４１ｂに「縁なし印刷しない」を書き込む。
Ｓ３１６では、プリンタドライバ３１はプリンタ２が縁なし印刷機能を備えているか否かを判定し、備えている場合はＳ３１７に進み、備えていない場合はＳ３１８に進む。
【００７９】
なお、プリンタ２が縁なし印刷機能を備えているか否かに加えて、縁なし印刷に対応している用紙サイズであるか否かを判定してもよい。具体的には例えば、縁なし印刷は全ての用紙サイズで可能であるとは限らず、Ａ４の場合は可能であり、Ａ３の場合は不可能である場合もある。その場合には、プリンタ２が縁なし印刷機能を備えており、且つＰｕｂｌｉｃ領域４３の用紙サイズ４３ａに格納されている用紙サイズがＡ４であれば縁なし印刷機能を備えていると判定してもよい。
【００８０】
Ｓ３１７では、プリンタドライバ３１は、入力値２（縁なし印刷）の設定値は有効な印刷条件であるとして、Ｐｒｉｖａｔｅ領域４１の縁なし印刷４１ｂに「縁なし印刷する」を書き込む。
Ｓ３１８では、プリンタドライバ３１は、入力値２（縁なし印刷）の設定値は有効な印刷条件ではないとして、受け渡し用領域４２の出力値２（反映結果）に「失敗」を書き込む。
【００８１】
Ｓ３１９では、プリンタドライバ３１は受け渡し用領域４２の入力値２（縁なし印刷）の設定値を「変更なし」に戻す。
【００８２】
Ｓ３２０では、プリンタドライバ３１は受け渡し用領域４２の出力値２（反映結果）の値が「失敗」であるか否かを判定し、「失敗」の場合はＳ３２１に進み、「失敗」ではない場合は処理を終了する。
Ｓ３２１では、プリンタドライバ３１は本処理で受け渡し用領域４２以外の領域に設定した設定値を元に戻す。
【００８３】
（６）実施形態の効果
以上説明した本発明の実施形態１に係るプリンタドライバ３１によると、Ｐｒｉｖａｔｅ領域４１の仕様が公開されておらず、それによりＰｒｉｖａｔｅ領域４１に格納されている印刷条件をアプリケーション３２から直接変更できない場合であっても、アプリケーション３２は受け渡し用領域４２の入力値１、及び入力値２に印刷条件を書き込むことにより、Ｐｒｉｖａｔｅ領域４１に格納されている印刷条件を変更することができる。
具体的には、アプリケーション３２は受け渡し用領域４２に入力値を書き込んだ後、Ｓ１０２において、アプリケーション３２がＯＳにより提供されるＡＰＩであるDocumentProperties関数を呼び出すことにより、受け渡し用領域４２に書き込んだ入力値の反映処理をプリンタドライバ３１に実行させる。
よってプリンタドライバ３１によると、Ｐｒｉｖａｔｅ領域４１に格納されている印刷条件をアプリケーション３２から変更するためのＡＰＩをプリンタドライバ３１に実装することなくアプリケーション３２からその印刷条件を変更できる。これにより、６４ビットＯＳで３２ビットアプリケーションを動作させてもＰｒｉｖａｔｅ領域４１に格納されている印刷条件を変更できる。
【００８４】
更に、プリンタドライバ３１によると、Ｐｒｉｖａｔｅ領域４１内に受け渡し用領域４２を設けることにより、アプリケーション３２が印刷条件を書き込むための領域をＤＥＶＭＯＤＥ構造体４０内に設けることができる。
【００８５】
更に、プリンタドライバ３１によると、受け渡し用領域４２に書き込まれた印刷条件がＰｕｂｌｉｃ領域４３に格納されている印刷条件、及びＰｒｉｖａｔｅ領域４１に格納されている印刷条件の両方に関する印刷条件である場合は、Ｐｒｉｖａｔｅ領域４１に格納されている印刷条件、及びＰｕｂｌｉｃ領域４３に格納されている印刷条件の両方に反映させるので、Ｐｒｉｖａｔｅ領域４１に格納されている印刷条件とＰｕｂｌｉｃ領域４３に格納されている印刷条件との不整合を低減できる。
【００８６】
更に、プリンタドライバ３１によると、アプリケーション３２によって受け渡し用領域４２に書き込まれた印刷条件が有効な印刷条件であるか否かを判断し、有効な印刷条件である場合は当該印刷条件を反映させるとともに、反映成功を示す反映結果を受け渡し用領域４２に書き込み、有効な印刷条件ではない場合は反映失敗を示す反映結果を受け渡し用領域４２に書き込むので、アプリケーション３２は反映が成功したか否かを知ることができる。
【００８７】
更に、プリンタドライバ３１によると、プリンタ２が両面印刷機能を備えているか否かを示す印刷機能情報を受け渡し用領域４２の出力値１（両面印刷機能の有無）に書き込むので、アプリケーション３２はプリンタ２が両面印刷機能を備えているか否かを知ることができる。
【００８８】
更に、プリンタドライバ３１によると、ＤＥＶＭＯＤＥ構造体４０内における受け渡し用領域４２の位置を示す位置情報をＤＥＶＭＯＤＥ構造体４０の最後に記述するので、アプリケーション３２は位置情報をＤＥＶＭＯＤＥ構造体４０の最後から読み込むことにより、受け渡し用領域４２の位置を知ることができる。
【００８９】
更に、印刷プログラム３０によると、アプリケーション３２は受け渡し用領域４２から出力値１（両面印刷機能の有無）の値を読み出し、プリンタ２が両面印刷機能を備えている場合は両面印刷機能に対する印刷条件をユーザが設定するための両面印刷欄５０ｂをアプリケーション用印刷設定画面５０に表示させるので、両面印刷機能に対する印刷条件をユーザに設定させることができる。
【００９０】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００９１】
（１）上記実施形態ではアプリケーション３２が受け渡し用領域４２に書き込んだ設定値をＰｒｉｖａｔｅ領域４１のみ、あるいはＰｕｂｌｉｃ領域４３とＰｒｉｖａｔｅ領域４１との両方に反映させる場合を例に説明したが、Ｐｕｂｌｉｃ領域４３にのみ反映させてもよい。
【００９２】
例えば、印刷品質の設定値はＰｕｂｌｉｃ領域４３に格納されるが、他の印刷設定項目の設定値との関係でアプリケーション３２からは直接印刷品質を変更されたくない場合もある。その場合は、アプリケーション３２が印刷品質を書き込むための入力値を受け渡し用領域４２に設け、その入力値に書き込まれた設定値をプリンタドライバ３１がＰｕｂｌｉｃ領域４３の印刷品質４３ｃに反映させてもよい。
【００９３】
Ｐｕｂｌｉｃ領域４３にのみ反映させる場合は、Ｐｕｂｌｉｃ領域４３が第１領域の一例である。その場合は、受け渡し用領域４２（第２領域）は第１領域内には設けられないことになる。
【００９４】
（２）上記実施形態では「画像形成」として印刷を例に説明したが、「画像形成」は表示装置１７への印刷プレビューの表示であってもよい。
【００９５】
（３）上記実施形態ではＰｕｂｌｉｃ領域４３やＰｒｉｖａｔｅ領域４１に格納されている印刷条件をアプリケーション３２から変更する場合を例に説明したが、例えばＤＥＶＭＯＤＥ構造体にデフォルト値が設定されない場合は変更ではなく新たに格納してもよい。
【符号の説明】
【００９６】
１・・・コンピュータ
２・・・プリンタ
１１・・・ＣＰＵ
１２・・・ＲＯＭ
１３・・・ＲＡＭ
１７・・・表示装置
３０・・・印刷プログラム
３１・・・プリンタドライバ
３１ａ・・・生成モジュール
３１ｂ・・・格納モジュール
３１ｃ・・・反映モジュール
３１ｄ・・・作成モジュール
３１ｅ・・・印刷機能情報書き込みモジュール
３２・・・アプリケーションプログラム
３２ａ・・・アプリケーションモジュール
３２ｂ・・・アクセスモジュール
４０・・・ＤＥＶＭＯＤＥ構造体
５０・・・アプリケーション用印刷設定画面
【図１】
0005532317.tif 000002
【図２】
0005532317.tif 000003
【図３】
0005532317.tif 000004
【図４】
0005532317.tif 000005
【図５】
0005532317.tif 000006
【図６】
0005532317.tif 000007
【図７】
0005532317.tif 000008
【図８】
0005532317.tif 000009
【図９】
0005532317.tif 000010
【図１０】
0005532317.tif 000011