(57)【要約】【課題】  アプリケーション上に、プリンタに搭載されているインクの状態を表す情報、すなわち、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表現すること。【解決手段】  情報処理装置と周辺装置とから成る周辺装置制御システムであって、前記情報処理装置は、インクの情報、特にインクの残量、並び方向、並び順に関する情報を取得し、この情報を利用して、アプリケーションのユーザインタフェース上の周辺装置に関する情報を更新して表示する。【選択図】  図１
2006195953.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置制御部とアプリケーションとを有する情報処理装置と、前記情報処理装置に接続された周辺装置とを有する周辺装置制御システムにおいて、
前記周辺装置制御部は、前記周辺装置の消耗品の残量及び並びに関する情報をアプリケーションに渡し、
前記アプリケーションは、周辺装置制御部から受け取った残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする周辺装置制御システム。
【請求項２】
周辺装置制御部とアプリケーションとを有する情報処理装置と、前記情報処理装置に接続された周辺装置とを有する周辺装置制御システムにおいて、
前記周辺装置は、前記周辺装置制御部からの要求に応じて残量及び消耗品の並びに関する情報を前記周辺装置制御部に渡し、
前記周辺装置制御部は、前記周辺装置から取得した消耗品の残量及び並びに関する情報をアプリケーションに渡し、
前記アプリケーションは、前記周辺装置制御部から受け取った残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする周辺装置制御システム。
【請求項３】
前記周辺装置制御部は、消耗品の並びに関する情報を、前記周辺装置から取得できた場合は前記周辺装置から取得した消耗品の並びに関する情報をアプリケーションに渡し、前記周辺装置から取得できない場合は前記周辺装置制御部で保持している消耗品の並びに関する情報をアプリケーションに返却することを特徴とする請求項１記載の周辺装置制御システム。
【請求項４】
前記周辺装置は、消耗品の並びに関する情報を、前記周辺装置のメモリから取得することを特徴とする請求項２または３記載の周辺装置制御システム。
【請求項５】
前記周辺装置は、消耗品の並びに関する情報を、消耗品の装着状態を判断して取得することを特徴とする請求項２または３記載の周辺装置制御システム。
【請求項６】
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品の残量に関する情報を前記周辺装置制御部に返却することを特徴とする請求項１乃至５いずれか記載の周辺装置制御システム。
【請求項７】
前記消耗品の並びに関する情報は、並び順または並び方向または装着方向のいずれかを含むことを特徴とする請求項１乃至６いずれか記載の周辺装置制御システム。
【請求項８】
前記消耗品の並びに関する情報は、並び順及び並び方向及び装着方向を含むことを特徴とする請求項１乃至６いずれか記載の周辺装置制御システム。
【請求項９】
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品の画像を表示するための情報を前記周辺装置制御部に返却することを特徴とする請求項１乃至８いずれか記載の周辺装置制御システム。
【請求項１０】
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品のビットマップまたは色情報を前記周辺装置制御部に返却することを特徴とする請求項１乃至８いずれか記載の周辺装置制御システム。
【請求項１１】
周辺装置に接続され、周辺装置制御部とアプリケーションとを有する情報処理装置における周辺装置制御方法において、
前記周辺装置制御部は、前記周辺装置の消耗品の残量及び並びに関する情報をスキーマの定義に変換してアプリケーションに渡し、
前記アプリケーションは、周辺装置制御部から受け取ったスキーマの定義に変換された残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示するを行うことを特徴とする周辺装置制御方法。
【請求項１２】
周辺装置に接続され、周辺装置制御部とアプリケーションとを有する情報処理装置における周辺装置制御方法において、
前記周辺装置は、前記周辺装置制御部からの要求に応じて残量及び消耗品の並びに関する情報を前記周辺装置制御部に渡し、
前記周辺装置制御部は、前記周辺装置から取得した消耗品の残量及び並びに関する情報をスキーマの定義に変換してアプリケーションに渡し、
前記アプリケーションは、前記周辺装置制御部から受け取ったスキーマの定義に変換された残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする周辺装置制御方法。
【請求項１３】
前記周辺装置制御部は、消耗品の並びに関する情報を、前記周辺装置から取得できた場合は前記周辺装置から取得した消耗品の並びに関する情報をアプリケーションに渡し、前記周辺装置から取得できない場合は前記周辺装置制御部で保持している消耗品の並びに関する情報をアプリケーションに返却することを特徴とする請求項１１記載の周辺装置制御方法。
【請求項１４】
前記周辺装置は、消耗品の並びに関する情報を、前記周辺装置のメモリから取得することを特徴とする請求項１２または１３記載の周辺装置制御方法。
【請求項１５】
前記周辺装置は、消耗品の並びに関する情報を、消耗品の装着状態を判断して取得することを特徴とする請求項１２または１３記載の周辺装置制御方法。
【請求項１６】
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品の残量に関する情報を前記周辺装置制御部に返却することを特徴とする請求項１１乃至１５いずれか記載の周辺装置制御方法。
【請求項１７】
前記消耗品の並びに関する情報は、並び順または並び方向または装着方向のいずれかを含むことを特徴とする請求項１１乃至１６いずれか記載の周辺装置制御方法。
【請求項１８】
前記消耗品の並びに関する情報は、並び順及び並び方向及び装着方向を含むことを特徴とする請求項１１乃至１６いずれか記載の周辺装置制御方法。
【請求項１９】
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品の画像を表示するための情報を前記周辺装置制御部に返却することを特徴とする請求項１１乃至１８いずれか記載の周辺装置制御方法。
【請求項２０】
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品のビットマップまたは色情報を前記周辺装置制御部に返却することを特徴とする請求項１１乃至１８いずれか記載の周辺装置制御方法。
【請求項２１】
周辺装置に接続される情報処理装置で実行されるプログラムにおいて、
前記周辺装置から消耗品の残量及び並びに関する情報を取得し、
前記周辺装置の消耗品の残量及び並びに関する情報をアプリケーションに送信することを特徴とするプログラム。
【請求項２２】
周辺装置に接続される情報処理装置で実行されるプログラムにおいて、
周辺装置の消耗品の残量及び並びに関する情報を取得し、取得した残量及び並びに関する情報に基づき周辺装置の消耗品の残量を消耗品の並びを考慮して表示することを特徴とするプログラム。
【請求項２３】
前記消耗品の並びに関する情報を、前記周辺装置から取得できた場合は前記周辺装置から取得した消耗品の並びに関する情報をアプリケーションに送信し、前記周辺装置から取得できない場合はあらかじめ保持している消耗品の並びに関する情報をアプリケーションに送信することを特徴とする請求項２１記載のプログラム。
【請求項２４】
前記消耗品の並びに関する情報は、並び順または並び方向または装着方向のいずれかを含むことを特徴とする請求項２１乃至２３いずれか記載のプログラム。
【請求項２５】
前記消耗品の並びに関する情報は、並び順及び並び方向及び装着方向を含むことを特徴とする請求項２１乃至２３いずれか記載のプログラム。
【請求項２６】
前記周辺装置から消耗品の画像を表示するための情報を取得し、アプリケーションに送信することを特徴とする請求項２１記載のプログラム。
【請求項２７】
前記周辺装置から消耗品のビットマップまたは色情報を取得し、アプリケーションに送信することを特徴とする請求項２１記載のプログラム。
【請求項２８】
前記消耗品の画像を表示するための情報を取得し、前記消耗品に関する表示を行なうことを特徴とする請求項２２記載のプログラム。
【請求項２９】
前記消耗品のビットマップまたは色情報を取得し、前記消耗品に関する表示を行なうことを特徴とする請求項２２記載のプログラム。
【請求項３０】
情報処理装置からの要求を受信する受信手段と、
受信した情報処理装置からの要求に応じて消耗品の並びに関する情報と消耗品の残量に関する情報とを送信する送信手段とを有することを特徴とする印刷装置。
【請求項３１】
周辺装置に接続され、周辺装置制御部とアプリケーションとを有する情報処理装置における周辺装置制御方法において、
前記周辺装置制御部は、前記周辺装置の消耗品の残量及び並びに関する情報をアプリケーションに渡し、
前記アプリケーションは、周辺装置制御部から受け取った残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする周辺装置制御方法。
【請求項３２】
周辺装置に接続され、周辺装置制御部とアプリケーションとを有する情報処理装置における周辺装置制御方法において、
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品の並びに関する情報を前記周辺装置制御部に渡し、
前記周辺装置制御部は、前記周辺装置から取得した消耗品の並びに関する情報をアプリケーションに渡し、
前記アプリケーションは、前記周辺装置制御部から受け取った情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする周辺装置制御方法。
【請求項３３】
周辺装置に接続される情報処理装置で実行されるプログラムにおいて、
前記周辺装置から消耗品の残量及び並びに関する情報を取得し、
前記周辺装置の消耗品の残量及び並びに関する情報をアプリケーションに送信することを特徴とするプログラム。
【請求項３４】
周辺装置に接続される情報処理装置で実行されるプログラムにおいて、
周辺装置の消耗品の残量及び並びに関する情報を取得し、
取得した周辺装置の消耗品の残量及び並びに関する情報に基づき周辺装置の消耗品の残量を消耗品の並びを考慮して表示することを特徴とするプログラム。
【請求項３５】
前記消耗品の並びに関する情報は、消耗品の画像を表示するための情報を含むことを特徴とする請求項１乃至６いずれか記載の周辺装置制御システム。
【請求項３６】
前記消耗品の並びに関する情報は、消耗品のビットマップまたは色情報を含むことを特徴とする請求項１乃至６いずれか記載の周辺装置制御システム。
【請求項３７】
前記消耗品の並びに関する情報は、消耗品の画像を表示するための情報を含むことを特徴とする請求項１１乃至１６いずれか記載の周辺装置制御方法。
【請求項３８】
前記消耗品の並びに関する情報は、消耗品のビットマップまたは色情報を含むことを特徴とする請求項１１乃至１６いずれか記載の周辺装置制御方法。
【請求項３９】
前記消耗品の並びに関する情報は、消耗品の画像を表示するための情報を含むことを特徴とする請求項２１乃至２３いずれか記載のプログラム。
【請求項４０】
前記消耗品の並びに関する情報は、消耗品のビットマップまたは色情報を含むことを特徴とする請求項２１乃至２３いずれか記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してプリンタ等の周辺装置に対する制御が可能な技術に関する。
【背景技術】
【０００２】
近年、ネットワークの基盤が整備されるに従い、ネットワーク対応型のプリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、およびこれらの複合機能を備える画像処理装置等の周辺装置が急速に普及しつつある。これに伴い、これらの周辺装置の製造元とは全く関係の無いサードパーティから、これらの周辺装置を制御したり、状態をモニタしたりするような前記サードパーティ製のアプリケーションが、ユーザに配布（販売）されるようになってきている。
【０００３】
例えば、特許文献１には、周辺装置であるプリンタ用のインク情報をネットワークを介して当該プリンタと接続される情報処理装置内のアプリケーション（ステータスモニタ）でリアルタイムに表示できるものが開示されている。
【０００４】
また、例えば、特許文献２には、周辺装置であるプリンタがインク残量を検出し、それを制御コマンドに変換して情報処理装置に送り、情報処理装置上でインク残量を表示するような情報処理装置及び情報処理方法が提案されている。
【特許文献１】特開平０９−１５２９４６号公報
【特許文献２】特開平０８−１１８６７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来の例では、アプリケーション（ステータスモニタ）では、インクの画像のビットマップ等のリソースをアプリケーション内に持つことで、この画像を使って、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表示することができる。しかしながら、その為には、インクの形状、色、大きさ、並び方向、並び順がどのようなものであるかを予め知っておき、各インクの残量を表す画像のビットマップ等のリソースを予め残量の各段階分複数持っておく必要があった。ここでいうリアルな表示とは、具体的には交換用インクタンクの形状が各ベンダーや各製品毎に異なったり、同じシアンという色でも各ベンダー毎に色味が多少異なったりするので、正確かつ忠実な画像を使うことで、これらの部分も細部までグラフィカルに、かつ、ビジュアル的にリアルに表示することである。
【０００６】
自社（プリンタベンダー）製のアプリケーション（ステータスモニタ）の場合は、対応するプリンタの前述したような各必要情報を入手して制御に活用することが比較的容易である。よって、前述したような各必要情報を入手できたプリンタに対して、前記仕様を備えるアプリケーション（ステータスモニタ）を実現できた。しかしながら、このような自社（プリンタベンダー）製のアプリケーション（ステータスモニタ）の場合でも、新しいプリンタに対応する際には、その新しいプリンタの前述したような各必要情報を再度入手し、それをもとにアプリケーションを作り直す必要があった。
【０００７】
また、上記従来の例では、サードパーティ製等のアプリケーションでは、プリンタベンダーから前述したような各必要情報を入手することが困難な場合、アプリケーション内に各必要情報を持つことができない。よって、例えば後述するようなＷｉｎｄｏｗｓ（登録商標）ＸＰのＢｉｄｉ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｃｈｅｍａを使うことでインク残量を文字列で表示することはできた。しかしながら、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表示することはできなかった。このように、対応する全プリンタの前述したような各必要情報を入手することができず、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表現できなかった。また、仮に表現できたとしても、対象のプリンタを限定せざるを得ないという問題もあった。
【０００８】
さらに、上記従来の例では、前述したような各必要情報を入手して、アプリケーション内の制御に活用することで、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表示することができる場合もある。しかしながら、インクの画像のビットマップ等のリソースを使っていたので、２次元の表現に留まっており、３次元の表現を行おうとする場合、処理が非常に複雑になるので、実現することが困難であるという問題もあった。
【０００９】
本発明では、これらの問題点に着目し、周辺装置の製造元とは全く関係のないサードパーティ製のアプリケーション等の任意のアプリケーション上に、周辺装置に関する情報を表現することを目的とする。例えば、プリンタに搭載されているインクの状態を表す情報、すなわち、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表現することを目的とする。さらに、３次元の表現を容易に行うことができる周辺装置制御システムを実現することも目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するに、本発明の周辺装置制御システムは、
周辺装置制御部とアプリケーションとを有する情報処理装置と、前記情報処理装置に接続された周辺装置とを有する周辺装置制御システムにおいて、
前記周辺装置制御部は、前記周辺装置の消耗品の残量及び並びに関する情報をアプリケーションに渡し、
前記アプリケーションは、周辺装置制御部から受け取った残量及び並びに関する情報から消耗品の残量を消耗品の並びを考慮して表示することを特徴とする。
【００１１】
また、周辺装置制御部とアプリケーションとを有する情報処理装置と、前記情報処理装置に接続された周辺装置とを有する周辺装置制御システムにおいて、
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品の残量及び並びに関する情報を前記周辺装置制御部に渡し、
前記周辺装置制御部は、前記周辺装置から取得した消耗品の残量及び並びに関する情報をアプリケーションに渡し、
前記アプリケーションは、前記周辺装置制御部から受け取った残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする。
【００１２】
また、周辺装置に接続され、周辺装置制御部とアプリケーションとを有する情報処理装置における周辺装置制御方法において、
前記周辺装置制御部は、前記周辺装置の消耗品の残量及び並びに関する情報をスキーマの定義に変換してアプリケーションに渡し、
前記アプリケーションは、周辺装置制御部から受け取ったスキーマの定義に変換された残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする。
【００１３】
また、周辺装置に接続され、周辺装置制御部とアプリケーションとを有する情報処理装置における周辺装置制御方法において、
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品の残量及び並びに関する情報を前記周辺装置制御部に渡し、
前記周辺装置制御部は、前記周辺装置から取得した消耗品の残量及び並びに関する情報をスキーマの定義に変換してアプリケーションに渡し、
前記アプリケーションは、前記周辺装置制御部から受け取ったスキーマの定義に変換された残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする。
【００１４】
また、周辺装置に接続される情報処理装置で実行されるプログラムにおいて、
前記周辺装置から消耗品の残量及び並びに関する情報を取得し、
前記周辺装置の消耗品の残量及び並びに関する情報をアプリケーションに送信することを特徴とする。
【００１５】
また、周辺装置に接続される情報処理装置で実行されるプログラムにおいて、
周辺装置の消耗品の残量及び並びに関する情報を取得し、
取得した残量及び並びに関する情報に基づき周辺装置の消耗品の残量を消耗品の並びを考慮して表示することを特徴とする。
【００１６】
また、本発明の印刷装置は、
情報処理装置からの要求を受信する受信手段と、
受信した情報処理装置からの要求に応じて消耗品の並びに関する情報と消耗品の残量に関する情報とを送信する送信手段とを有することを特徴とする。
【００１７】
また、本発明の周辺装置制御方法は、
周辺装置に接続され、周辺装置制御部とアプリケーションとを有する情報処理装置における周辺装置制御方法において、
前記周辺装置制御部は、前記周辺装置の消耗品の残量及び並びに関する情報をアプリケーションに渡し、
前記アプリケーションは、周辺装置制御部から受け取った残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする。
【００１８】
また、本発明の周辺装置制御方法は、
周辺装置に接続され、周辺装置制御部とアプリケーションとを有する情報処理装置における周辺装置制御方法において、
前記周辺装置は、前記周辺装置制御部からの要求に応じて消耗品の残量及び並びに関する情報を前記周辺装置制御部に渡し、
前記周辺装置制御部は、前記周辺装置から取得した消耗品の残量及び並びに関する情報をアプリケーションに渡し、
前記アプリケーションは、前記周辺装置制御部から受け取った残量及び並びに関する情報に基づき消耗品の残量を消耗品の並びを考慮して表示することを特徴とする。
【００１９】
また、本発明のプログラムは、
周辺装置に接続される情報処理装置で実行されるプログラムにおいて、
前記周辺装置から消耗品の残量及び並びに関する情報を取得し、
前記周辺装置の消耗品の残量及び並びに関する情報をアプリケーションに送信することを特徴とする。
【００２０】
また、本発明のプログラムは、
周辺装置に接続される情報処理装置で実行されるプログラムにおいて、
周辺装置の消耗品の残量及び並びに関する情報を取得し、
取得した周辺装置の消耗品の残量及び並びに関する情報に基づき周辺装置の消耗品の残量を消耗品の並びを考慮して表示することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、アプリケーションが周辺装置の消耗品の並びを考慮して消耗品に関する表示を行うことが容易になる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら説明する。
【００２３】
＜第１の実施の形態＞
図１は、本発明の第１の実施形態に係る情報処理装置及び周辺装置からなる周辺装置制御システムの構成を示すブロック図である。
【００２４】
同図において、１は情報処理装置であり、一般的なパーソナルコンピュータ（以下、ＰＣと略す場合がある）で構成される。ＰＣ１は図３で後述するようなハードウェアで構成され、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）として米国マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）ＸＰがインストールされている。３はプリンタであり、カラーインクジェットプリンタで構成され、本実施形態における周辺装置である。プリンタ３はＸＹＺ社製のｋｍｍｎというモデル名のプリンタである。尚、本発明における周辺装置としては、プリンタ、複写機、ファクシミリ、またはこれらの複合機などの画像形成装置、スキャナ、デジタルカメラであってもよい。
【００２５】
プリンタ３は図４で後述するようなハードウェアで構成され、ＰＣ１とＵＳＢインタフェース９を介して接続されており、互いに双方向通信が可能である。ＵＳＢとはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略であり、双方向通信が可能な公知のインタフェースである。
【００２６】
３６は図５で後述するランゲージモニタ（以降、ＬＭと略す場合がある）であり、Ｗｉｎｄｏｗｓ（登録商標）用のダイナミックリンクライブラリで構成される。６はランゲージモニタ用リソースファイル（以降、ＬＭリソースと略す場合がある）であり、Ｗｉｎｄｏｗｓ（登録商標）用のダイナミックリンクライブラリで構成され、ビットマップリソースや文字列リソース等が格納されている。３０はアプリケーションであり、Ｗｉｎｄｏｗｓ（登録商標）用の実行可能形式のファイル（＊．ＥＸＥ）で構成される。アプリケーション３０の一例としては、プリンタ３の状態を表示するようなステータスモニタ等が挙げられる。
【００２７】
アプリケーション３０は前記ＭＳＤＮのサイトで公開されているＰｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを利用して、ＬＭ３６へデータ（情報）を送ったり、ＬＭ３６からデータ（情報）を受け取ったりすることができる。これはＷｉｎｄｏｗｓ（登録商標）ＸＰの公知の機能である。
【００２８】
図２は本発明に係る情報処理装置及び周辺装置からなる周辺装置制御システムをネットワーク環境下で実現した時のシステムの構成部分を表すブロック図である。同図において、２は情報処理装置であり、一般的なパーソナルコンピュータ（以降、ＰＣと略す場合がある）で構成される。ＰＣ２は図３で後述するようなハードウェアで構成され、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）として米国マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）ＸＰがインストールされている。ＰＣ１とＰＣ２はＥｔｈｅｒｎｅｔ（登録商標）で構成されるネットワーク４を介して接続され、互いに双方向通信が可能である。本発明の周辺装置制御システムでは、ＰＣ１がサーバ、ＰＣ２がクライアントとなるような関係を持ち、ＰＣ１はプリンタ３を共有プリンタとしてネットワーク４を介して他の情報処理装置から印刷することができるようなプリントサーバの機能を備えている。２００はアプリケーションであり、Ｗｉｎｄｏｗｓ（登録商標）用の実行可能形式のファイル（＊．ＥＸＥ）で構成される。アプリケーション２００の一例としては、プリンタ３の状態を表示するようなステータスモニタ等が挙げられる。
【００２９】
アプリケーション２００は前記ＭＳＤＮのサイトで公開されているＰｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを利用して、ＰＣ１内のＬＭ３６へデータ（情報）を送ることができる。また、ＬＭ３６からデータ（情報）を受け取ったりすることができる。これはＷｉｎｄｏｗｓ（登録商標）  ＸＰの公知の機能であるので、その詳細説明は省略する。以下の説明で引用される関数（情報）の内、特に詳しい説明を付加していないものに関しては、インターネット上の下記のＵＲＬで公開されている。
Ｍｉｃｒｏｓｏｆｔ  Ｄｅｖｅｌｏｐｅｒ  Ｎｅｔｗｏｒｋ  （ＭＳＤＮ）のサイトｈｔｔｐ：／／ｍｓｄｎ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｌｉｂｒａｒｙ／ｄｅｆａｕｌｔ．ａｓｐで公開されている。
【００３０】
図３はＰＣのハードウェア構成の一例を表すブロック図である。ＰＣ１及びＰＣ２は何れも同図に示すようなハードウェア構成を持つが、ここではＰＣ１を例にして説明する。ＰＣ１はランダムアクセスメモリ部（ＲＡＭ１２０１）、記憶部であるハードディスクドライブ部（ＨＤＤ１２０２）、入力部の一例であるキーボード部（ＫＢＤ１２０３）、制御部のＣＰＵ１２０４、表示部の一例である表示用ディスプレイ（ＬＣＤ１２０５）、通信制御部の一例であるネットワークボード（ＮＢ１２０７）、以上のＰＣ１の構成要素を互いに接続するバス１２０６から構成される。なお、記憶部は、可搬性ＣＤ−ＲＯＭまたは内部据付のＲＯＭなどであってもよい。図１に示すＰＣ１の各モジュール（アプリケーション３０、ＬＭ３６６）は、ＨＤＤ１２０２に記憶され、必要に応じてＲＡＭ１２０１に読み出されてＣＰＵ１２０４により実行される。これにより、ＣＰＵ１２０４が、図１に示す各モジュールの機能を実現する。
【００３１】
図４はプリンタのハードウェア構成を表すブロック図である。プリンタ３は同図に示すようなハードウェア構成を持つ。同図において、１５はマイクロプロセッサ等から構成されるＣＰＵであり、プリンタ３の中央処理装置として、ＲＯＭ１６に記憶されているプログラムに従って、ＲＡＭ１７、通信部１８、記録部１９を制御する。
【００３２】
ＲＯＭ１６にはプリンタドライバ５０（図５で後述する）の制御に従ってプリンタ３が記録（印刷）処理や、状態をＰＣ１へ伝える処理を行うプログラムが記憶されている。
【００３３】
ＲＡＭ１７は主にＰＣ１から送られて、それをもとに記録部１９によって印刷される印字データが一時的に記憶される。通信部１８にはＵＳＢインタフェース９用の接続ポートが含まれており、ＵＳＢの通信を制御する。記録部１９は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットと、前記印字データをもとに前記記録ヘッドにて印字用パルスを発生させる為のＡＳＩＣ等から構成される電気回路とから構成される。印刷可能なアプリケーション上での印刷操作によって、アプリケーションで開かれているファイルの表示内容（画像データ）が、ＥＭＦ形式のスプールファイルとしてＰＣ１のＨＤＤ１２０２に一時的に格納される。そして、プリンタドライバ５０を介してプリンタ３制御用コマンドを含む印字データに変換された後、ＵＳＢインタフェース９を介してプリンタ３に送られる。プリンタ３にて受信された印字データは、記録部１９によって印字用パルスに変換されて、記録紙上に印刷される。
【００３４】
図５はＰＣ１におけるプリンタドライバの構成を表すブロック図である。同図において、プリンタドライバ５０はＰＣ１にインストールされているドライバであり、３２〜３８で示す複数のモジュールを備えている。アプリケーション３０は印刷指令やプリンタの状態表示が可能なアプリケーションソフトウェアであり、例えば、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳに標準で同梱されているテキストエディタであるＮｏｔｅｐａｄ（Ｎｏｔｅｐａｄ．ｅｘｅ）等に相当する。尚、本実施形態では、アプリケーション３０はステータスモニタ等である。３１はＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）であり、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳの一部である。３２はプリンタキューで、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳのＳｐｏｏｌｅｒの一部であり、印刷ジョブをキューイングする。次にプリンタドライバ５０の構成を説明する。３３はプリントプロセッサであり、印刷レイアウトの変更や印刷画像の特殊処理を行う。３４はグラフィックスドライバで、プリンタドライバ５０の画像処理のコアとして動作し、ＧＤＩ３１から送られて来る描画命令に基づき印刷用の画像処理を行い、印刷制御コマンドを作成する。３５はＵＩモジュールで、プリンタドライバ５０のユーザインタフェースの提供及び制御を行う。３６は図１で説明したランゲージモニタで、データの通信Ｉ／Ｆとしてデータの送受信を制御する。６は図１で説明したランゲージモニタ用リソースファイルである。３７はポートモニタであり、ＬＭ３６から送られてくるデータを適切なポートに対して送信したり、プリンタ３から送られてくるデータを、クラスドライバ３８を介して受信したりする。クラスドライバ３８は、最もポートに近いローレベルのモジュールであり、本発明ではＵＳＢのプリンタクラスのドライバに相当し、ポート（本発明ではＵＳＢポート）を制御する。プリンタドライバ５０はマルチ言語対応のドライバであるので、マルチ言語対応のＯＳであるＷｉｎｄｏｗｓ（登録商標）  ＸＰがサポートしている全ての言語に対応しており、これら全ての言語用の文字列リソース等を備えている。
【００３５】
尚、プリンタドライバ５０はプリンタ３の製造元であるＸＹＺ社製のものである。
【００３６】
図６はアプリケーション３０（ステータスモニタ等）がプリンタ３からインクの情報及び状態を取得する時に使用するスキーマを表す図である。
【００３７】
これらのスキーマは、アプリケーション３０がＰｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介してＬＭ３６経由でプリンタ３からインクの情報及び状態を取得する時に、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳで使用できるＣＯＭインタフェースＩＢｉｄｉＳｐｌのＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールする際に引数として指定される。
【００３８】
同図において、ＩｎｋＩｎｆｏはインクの情報を表すＰｒｏｐｅｒｔｙであり、スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏである。［Ｃｏｌｏｒ］は色の情報を表すＰｒｏｐｅｒｔｙである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］である。設定可能な値は、黒を表すＢｌａｃｋ、シアンを表すＣｙａｎ、マゼンタを表すＭａｇｅｎｔａ、黄を表すＹｅｌｌｏｗ、一体型のフォトインクを表すＰｈｏｔｏ、一体型のカラーインクを表すＣｏｌｏｒの何れかである。
【００３９】
例えば、黒インクの情報を取得したい場合は、￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．Ｂｌａｃｋと指定する。
【００４０】
Ｉｎｓｔａｌｌｅｄは［Ｃｏｌｏｒ］色のインクが搭載されているか否かを表すＶａｌｕｅである。データ型はＢｏｏｌｅａｎである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｉｎｓｔａｌｌｅｄである。設定可能な値は、搭載されていること表すＴｒｕｅ、搭載されていないを表すＦａｌｓｅの何れかである。
【００４１】
Ｓｔａｔｅは［Ｃｏｌｏｒ］色のインクの残量の状態を表すＶａｌｕｅである。データ型はＳｔｒｉｎｇである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｓｔａｔｅである。設定可能な値は、インク満タンを表すＦｕｌｌ、インク残りわずかを表すＬｏｗ、インク無しを表すＯｕｔ、インク残量不明を表すＵｎｋｎｏｗｎの何れかである。
【００４２】
ＭｏｄｅｌＮａｍｅは［Ｃｏｌｏｒ］色のインクの型名を表すＶａｌｕｅであり、データ型はＳｔｒｉｎｇ、スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：ＭｏｄｅｌＮａｍｅである。
【００４３】
設定可能な値の例は、同図のＥｘａｍｐｌｅｓのようなＡＳＣＩＩの文字列である。
【００４４】
Ｄｉｒｅｃｔｉｏｎは［Ｃｏｌｏｒ］色のインクの並び方向を表すＶａｌｕｅである。データ型は  Ｓｔｒｉｎｇ、スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｄｉｒｅｃｔｉｏｎである。設定可能な値は、原点をプリンタの左下として、左から右並びを表すＬｅｆｔＲｉｇｈｔ、手前から後ろの並びを表すＦｒｏｎｔＢａｃｋ、下から上の並びを表すＢｏｔｔｏｍＴｏｐの何れかである。
【００４５】
Ｏｒｄｅｒは［Ｃｏｌｏｒ］色のインクの原点からの順番を表すＶａｌｕｅである。原点はプリンタの左下である。データ型はＩｎｔ、スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｏｒｄｅｒである。設定される値は、例えば、［Ｃｏｌｏｒ］色のインクの原点からの順番が１番目の場合は、１となる。
【００４６】
Ｉｎｓｔａｌｌｅｄ、Ｓｔａｔｅ、ＭｏｄｅｌＮａｍｅ、Ｄｉｒｅｃｔｉｏｎ、Ｏｒｄｅｒ等のＶａｌｕｅはＬＭ３６またはプリンタ３からアプリケーション３０へ返される値である。
【００４７】
このように、同図で定義されているスキーマを使って、アプリケーション３０はプリンタ３に搭載されているインクの情報及び状態、並び方向、並び順を取得することができる。
【００４８】
スキーマとは一般的には、データベース全体の構造のことまたは、それらを記述したファイルを意味するが、ここでは周辺装置の状態を表現する表現方法・形式のこと意味するものとする。
【００４９】
図７は図６で定義されているスキーマを使ってインクの情報及び状態、並び方向、順番を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。同図において、アプリケーション３０（ステータスモニタ等）から￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを指定してＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数をコールする。すると（Ｑｕｅｒｙ（Ｓｃｈｅｍａ））、プリンタ３の全インクの情報及び状態、並び方向、並び順のスキーマ（Ｒｅｔｒｉｅｖｅ（Ｓｃｈｅｍａ））と値（Ｒｅｔｒｉｅｖｅ（Ｖａｌｕｅ））がセットで返される。
【００５０】
同図の例では、プリンタ３に黒、シアン、マゼンタ、黄のインクが搭載されていて、インクの残量の状態がそれぞれ、インク満タン（Ｆｕｌｌ）、インク残りわずか（Ｌｏｗ）、インク無し（Ｏｕｔ）、インク満タン（Ｆｕｌｌ）である。インクの型名がそれぞれ、ＣＩ−Ｂ、ＣＩ−Ｃ、ＣＩ−Ｍ、ＣＩ−Ｙ、インクの並び方向は左から右方向で、順番は左から順に、黒、シアン、マゼンタ、黄の順で並んでいることを表している。
【００５１】
図８は、図７のスキーマを使ってステータスアプリケーション３０（ステータスモニタ等）がインクの残量状態をグラフィカルに表示する一例である。４０に現在のプリンタの状態が文字列で表現される。４１にはインクの並び方向、並び順および残量がグラフィックを用いて表現されている。インクは左から、黒（４２）、シアン（４３）、マゼンタ（４４）、黄（４５）の順で並んでおり、残量は、黒は満タン（Ｆｕｌｌ）、シアンは残りわずか（Ｌｏｗ）、マゼンタはインク無し（Ｏｕｔ）、黄は満タン（Ｆｕｌｌ）となっていることがわかる。なお不図示ではあるが、黒（４２）、シアン（４３）、マゼンタ（４４）、黄（４５）のインク残量と共にそれぞれのインク型名（ＣＩ−Ｂ、ＣＩ−Ｃ、ＣＩ−Ｍ、ＣＩ−Ｙ）や色（黒、シアン、マゼンタ、黄）を表示しても良い。
【００５２】
図９は、インクが前後に並んでいるプリンタのインクの情報及び状態、並び方向、順番を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。図９の例では、プリンタ３に黒（Ｂｌａｃｋ）および一体型のカラーインク（Ｃｏｌｏｒ）が搭載されていて、インクの残量の状態は、黒は満タン（Ｆｕｌｌ）、カラーインクは残りわずか（Ｌｏｗ）である。インクの型名がそれぞれ、ＣＩ−Ｂ、ＣＩ−Ｃｏｌｏｒ、インクの並び方向はプリンタの手前から後ろで、順番は手前から、カラーインク、黒の順で並んでいることを表している。
【００５３】
図１０は、図９のスキーマを使ってステータスアプリケーション３０（ステータスモニタ等）がインクの残量状態をグラフィカルに表示する一例である。１０４に現在のプリンタの状態が文字列で表現される。１０３にはインクの並び方向、並び順および残量がグラフィックを用いて表現されている。インクは前から、カラーインク（１０１）、黒（１０２）の順で並んでおり、残量は、カラーは残りわずか（Ｌｏｗ）、黒は満タン（Ｆｕｌｌ）となっていることがわかる。
【００５４】
図１１は、インクが上下に並んでいるプリンタのインクの情報及び状態、並び方向、順番を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。図１１の例では、プリンタ３に一体型のカラーインク（Ｃｏｌｏｒ）および一体型のフォトインク（Ｐｈｏｔｏ）が搭載されていて、インクの残量の状態は、カラーインクは満タン（Ｆｕｌｌ）、フォトインクは残りわずか（Ｌｏｗ）である。インクの型名がそれぞれ、ＣＩ−Ｃｏｌｏｒ、ＣＩ−Ｐｈｏｔｏ、インクの並び方向はプリンタの下から上で、順番は下から、カラーインク、フォトインクの順で並んでいることを表している。
【００５５】
図１２は、図１１のスキーマを使ってステータスアプリケーション３０（ステータスモニタ等）がインクの残量状態をグラフィカルに表示する一例である。４６に現在のプリンタの状態が文字列で表現される。４７にはインクの並び方向、並び順および残量がグラフィックを用いて表現されている。インクは下から、カラーインク（４８）、フォトインク（４９）の順で並んでおり、残量は、カラーインクは満タン（Ｆｕｌｌ）、フォトインクは残りわずか（Ｌｏｗ）となっていることがわかる。
【００５６】
図１３はＰＣ１がプリンタ３からインク情報を取得する時のデータを表す図である。実際にＰＣ１とプリンタ３との間で送受信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ＡＳＣＩＩ文字コードでエンコードした後のテキストデータとして表している。同図において、ＰＣ１が要求コマンドをプリンタ３にＵＳＢインタフェース９を介して発行すると、インク情報がプリンタ３からＰＣ１にＵＳＢインタフェース９を介して返される。このインク情報は次の内容を表している。
＜色＞      ＜型名＞      ＜状態＞
黒        ＣＩ−Ｂ      満タン
シアン    ＣＩ−Ｃ      残りわずか
マゼンタ  ＣＩ−Ｍ      無し
黄        ＣＩ−Ｙ      満タン
図１４も図１３と同様にＰＣ１がプリンタ３からインク情報を取得する時のデータを表す図である。図１３と異なり、プリンタ３からインクの並び方向、並び順も取得している。
＜色＞      ＜型名＞    ＜状態＞      ＜並び方向＞  ＜並び順＞
黒        ＣＩ−Ｂ      満タン        左から右      １
シアン    ＣＩ−Ｃ    残りわずか      左から右      ２
マゼンタ  ＣＩ−Ｍ      無し          左から右      ３
黄        ＣＩ−Ｙ      満タン        左から右      ４
このようにプリンタによって、インクの並び方向、並び順の情報まで返せるプリンタ（図１４）、返せないプリンタ（図１３）の二通りが存在する。
【００５７】
以下、図１５〜図１９のフローチャートを用いて、本実施形態の動作について説明する。
【００５８】
図１５はアプリケーション３０（ステータスモニタ等）がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【００５９】
ここでは、プリンタ３はインクの並び方向、並び順の情報は返せないものとする。同図において、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理をスタートさせる（Ｓ１５０１）。次に、アプリケーション３０が図６で定義されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを引数としてＣＯＭインタフェースＩＢｉｄｉＳｐｌのＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールしてインク情報の取得を開始する（Ｓ１５０２）。次に、Ｐｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  ＳｐｏｏｌｅｒＩｎｔｅｒｆａｃｅｓを介して、ＬＭ３６がエクスポートしているＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数がスプーラ（Ｗｉｎｄｏｗｓ（登録商標）ＸＰＯＳの公知の機能の一部なので、図や詳細説明は省略）からコールされて、この関数における処理が開始される（Ｓ１５０３）。
【００６０】
ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数内において、図１３に示すように、ＰＣ１から要求コマンドを発行してプリンタ３から返されるインク情報を取得する（Ｓ１５０４）。
【００６１】
さらに自分自身の内部で保持しているインクの並び方向および並び順を取得しする（Ｓ１５０５）。
【００６２】
これら取得したインク情報をＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数として指定されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマの定義に従って変換する（Ｓ１５０６）。
【００６３】
ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数としてスキーマの定義に変換されたインク情報を返し、ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の処理を終了する（Ｓ１５０７）。
【００６４】
アプリケーション３０において、ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数がリターンされ、引数としてスキーマの定義で返されたインク情報を取得する（Ｓ１５０８）。
【００６５】
このインク情報を使ってインク情報を更新し（Ｓ１５０９）、終了する（Ｓ１５１０）。
【００６６】
通常、アプリケーション３０は、ステップＳ１５０１からスタートするプリンタ３のインク情報を取得してインク情報の表示を更新する処理を、例えば５秒に１回等、ある一定時間の間隔で繰り返すことで、プリンタ３に搭載されているインクの情報及び状態をリアルタイムに表示することができる。
【００６７】
図１６は、図１５と同様にアプリケーション３０（ステータスモニタ等）がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。ここでは、プリンタ３はインクの並び方向、並び順の情報を返せるものとする。
【００６８】
同図において、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理をスタートさせる（Ｓ１６０１）。
【００６９】
アプリケーション３０が図６で定義されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを引数としてＣＯＭインタフェースＩＢｉｄｉＳｐｌのＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールしてインク情報の取得を開始する（Ｓ１６０２）。開始すると、Ｐｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介して、ＬＭ３６がエクスポートしているＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数がスプーラ（Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳの公知の機能の一部なので、図や詳細説明は省略）からコールされて、この関数における処理が開始される（Ｓ１６０３）。
【００７０】
ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数内において、図１４に示すように、ＰＣ１から要求コマンドを発行してプリンタ３から、インク残量、並び方向、並び順などのインク情報を取得する（Ｓ１６０４）。
【００７１】
次に取得したインク情報をＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数として指定されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマの定義に従って変換する（Ｓ１６０５）。
【００７２】
次にＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数としてスキーマの定義に変換されたインク情報を返し、ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の処理を終了する（Ｓ１６０６）。
【００７３】
アプリケーション３０において、ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数がリターンされ、引数としてスキーマの定義で返されたインク情報を取得し（Ｓ１６０７）、このインク情報を使ってインク情報を更新する（Ｓ１６０８）。次にアプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を終了する（Ｓ１６０９）。
【００７４】
図１７は、図１５、図１６と同様にアプリケーション３０（ステータスモニタ等）がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【００７５】
ここでは、ＬＭ３６は、プリンタ３から取得したインク情報（Ｓ１７０４）にインクの並び方向、並び順の情報が含まれているかどうかを判定する（Ｓ１７０５）。含まれていない場合は自分自身の内部のデータベースからインクの並び方向および並び順を取得する（Ｓ１７０６）ことを特徴とする。
【００７６】
同図において、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理をスタートさせる（Ｓ１７０１）。次にアプリケーション３０が図６で定義されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを引数としてＣＯＭインタフェースＩＢｉｄｉＳｐｌのＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールしてインク情報の取得を開始する（Ｓ１７０２）。開始すると、Ｐｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介して、ＬＭ３６がエクスポートしているＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数がスプーラ（Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳの公知の機能の一部なので、図や詳細説明は省略）からコールされて、この関数における処理が開始される（Ｓ１７０３）。
【００７７】
ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数内において、図１３、図１４に示すように、ＰＣ１から要求コマンドを発行してプリンタ３から返されるインク情報を取得する（Ｓ１７０４）。次にインク情報にインクの並び方向、並び順の情報が含まれているかどうかを判定する（Ｓ１７０５）。
【００７８】
プリンタ３から取得した情報が、図１３のようにインクの並び方向、並び順情報を含んでいない場合は自分自身の内部で保持しているインクの並び方向および並び順を取得する（Ｓ１７０６）。
【００７９】
プリンタ３から取得した情報が、図１４に示すようにインクの並び方向、並び順情報を含んでいる場合は、Ｓ１７０７に進む。
【００８０】
Ｓ１７０７で、Ｓ１７０４およびＳ１７０６で取得したインク情報をＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数として指定されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマの定義に従って変換する。次にＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数としてスキーマの定義に変換されたインク情報を返す。そして、ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の処理を終了する（Ｓ１７０８）。
【００８１】
アプリケーション３０において、ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数がリターンされ、引数としてスキーマの定義で返されたインク情報を取得しする（Ｓ１７０９）。次にこのインク情報を使ってインク情報を更新する（Ｓ１７１０）。そしてアプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を終了する（Ｓ１７１１）。
【００８２】
図１８、図１９は、プリンタ３がインクの並び方向、並び順を取得する２つの方法を表したフローチャートである。
【００８３】
第１の方法を図１８を用いて説明する。第１の方法は、インクタンクの取り付け位置が固定のプリンタが実行する。プリンタ３は、ＵＳＢインタフェース９を通してＰＣ１から図１４で表されるインク情報を要求するコマンドを受け取る（Ｓ１８０１）。ＲＯＭ１６からインクの並び方向、並び順の情報の情報を読み出し（Ｓ１８０２）、図１４で表されるコマンドの形式に変換して、インク情報をＰＣ１に返し終了する（Ｓ１８０３）。
【００８４】
第２の方法を図１９を用いて説明する。第２の方法は、インクタンクの取り付け位置が任意であるプリンタが実行する。プリンタ３は、ＵＳＢインタフェース９を通してＰＣ１から図１４で表されるインク情報を要求するコマンドを受け取る（Ｓ１９０１）。次に現在、プリンタ３に実際に装着されているインクの種類および並び順をインクカートリッジまたはインクタンクのメモリから識別情報（色情報）を読み出してインクがどのように並んでいるか調べる（Ｓ１９０２）。そしてインクの並び順情報を生成する（Ｓ１９０３）。ＲＯＭ１６からインクの並び方向の情報を読み出し（Ｓ１９０４）、図１４で表されるコマンドの形式に変換して、インク情報をＰＣ１に返し終了する（Ｓ１９０５）。
【００８５】
なお、図１８，１９のフローに関わるプログラムは、ＲＯＭ１６に記憶されており、ＣＰＵ１５が適時読み出して実行する。
【００８６】
＜第２の実施の形態＞
以降、本発明の第２の実施の形態に関して、第１の実施の形態の図１、図２で説明した周辺装置制御システムの例を用いて説明する。尚、以下における具体的な説明は、図１の周辺装置制御システムの例を用いて行う。
【００８７】
図２０及び図２１はアプリケーションがプリンタからインクの情報及び状態を取得する時に使用するスキーマを表す図である。これらのスキーマは、アプリケーション３０がＰｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介してＬＭ３６経由でプリンタ３からインクの情報及び状態を取得する時に、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳで使用できるＣＯＭインタフェースＩＢｉｄｉＳｐｌのＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールする際に引数として指定される。
【００８８】
図２０において、ＩｎｋＩｎｆｏはインクの情報を表すＰｒｏｐｅｒｔｙであり、スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏである。
【００８９】
［Ｃｏｌｏｒ］は色の情報を表すＰｒｏｐｅｒｔｙである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］である。設定可能な値は、黒を表すＢｌａｃｋ、シアンを表すＣｙａｎ、マゼンタを表すＭａｇｅｎｔａ、黄を表すＹｅｌｌｏｗ、一体型のカラーインクを表すＣｏｌｏｒ、一体型のフォトインクを表すＰｈｏｔｏの何れかである。
【００９０】
例えば、黒インクの情報を取得したい場合は、￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．Ｂｌａｃｋと指定する。
【００９１】
Ｉｎｓｔａｌｌｅｄは［Ｃｏｌｏｒ］色のインクが搭載されているか否かを表すＶａｌｕｅである。データ型はＢｏｏｌｅａｎ、スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｉｎｓｔａｌｌｅｄである。設定可能な値は、搭載されていること表すＴｒｕｅ、搭載されていないを表すＦａｌｓｅの何れかである。
【００９２】
Ｌｅｖｅｌは［Ｃｏｌｏｒ］色のインクの残量を表すＶａｌｕｅである。データ型はＩｎｔである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｌｅｖｅｌである。設定可能な値は、インク残量無しを表す０（単位：％）からインク残量満タンを表す１００（単位：％）までの間の整数、または、インク残量不明を表す−１である。
【００９３】
ＭｏｄｅｌＮａｍｅは［Ｃｏｌｏｒ］色のインクの型名を表すＶａｌｕｅである。データ型はＳｔｒｉｎｇである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：ＭｏｄｅｌＮａｍｅである。設定可能な値の例は、同図のＥｘａｍｐｌｅｓのようなＡＳＣＩＩの文字列である。
【００９４】
Ｄｉｒｅｃｔｉｏｎは［Ｃｏｌｏｒ］色のインクの並び方向を表すＶａｌｕｅである。データ型はＳｔｒｉｎｇである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｄｉｒｅｃｔｉｏｎである。設定可能な値は、原点をプリンタの左下前として、左から右並びを表すＬｅｆｔＲｉｇｈｔ、手前から後ろの並びを表すＦｒｏｎｔＢａｃｋ、下から上の並びを表すＢｏｔｔｏｍＴｏｐの何れかである。
【００９５】
Ｏｒｄｅｒは［Ｃｏｌｏｒ］色のインクの原点からの順番（並び順）を表すＶａｌｕｅである。原点はプリンタの左下である。データ型はＩｎｔである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｏｒｄｅｒである。設定される値は、例えば、［Ｃｏｌｏｒ］色のインクの原点からの順番が１番目の場合は、１となる。
【００９６】
図２１において、Ｉｍａｇｅは［Ｃｏｌｏｒ］色のインクの画像を表すＶａｌｕｅである。データ型はＢｉｔｍａｐである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｉｍａｇｅである。設定可能な値はインクの画像を表すビットマップファイル（バイナリデータ）である。このインクの画像を表すビットマップファイル（バイナリデータ）は、インクの残量が満タンの時のインクの画像である。
【００９７】
図２０及び図２１において、Ｉｎｓｔａｌｌｅｄ、Ｓｔａｔｅ、ＭｏｄｅｌＮａｍｅ、Ｄｉｒｅｃｔｉｏｎ、Ｏｒｄｅｒ、Ｉｍａｇｅ等のＶａｌｕｅはＬＭ３６またはプリンタ３からアプリケーション３０へ返される値である。このように、これらの図で定義されているスキーマを使って、アプリケーション３０はプリンタ３に搭載されているインクの情報及び状態、具体的な例としては、残量、並び方向、順番（並び順）、インクの画像を取得することができる。
【００９８】
図２２は図２０及び図２１で定義されているスキーマを使ってインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。同図において、アプリケーション３０（ステータスモニタ等）から￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを指定してＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数をコールすると（Ｑｕｅｒｙ（Ｓｃｈｅｍａ））、プリンタ３の全インクの情報及び状態、並び方向、順番（ならび順）、インクの画像のスキーマ（Ｒｅｔｒｉｅｖｅ（Ｓｃｈｅｍａ））と値（Ｒｅｔｒｉｅｖｅ（Ｖａｌｕｅ））がセットで返される。
【００９９】
同図の例では、プリンタ３に黒、黄、マゼンタ、シアンのインクが搭載されていて、インクの残量がそれぞれ、８０％、５０％、０％（インク残量無し）、１００％（インク残量満タン）である。インクの型名がそれぞれ、ＣＩ−Ｂ、ＣＩ−Ｙ、ＣＩ−Ｍ、ＣＩ−Ｃである。インクの並び方向が左から右方向でる。順番（並び順）が左から順に、黒、黄、マゼンタ、シアンの順で並んでいて、インクの画像がそれぞれ、ＣＩ−Ｂ．ｂｍｐ、ＣＩ−Ｙ．ｂｍｐ、ＣＩ−Ｍ．ｂｍｐ、ＣＩ−Ｃ．ｂｍｐのビットマップファイルであることを表している。
【０１００】
このようにインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）することにより、インクの情報及び状態、具体的な例としては、残量、並び方向、順番（並び順）、インクの画像を取得することができる。
【０１０１】
尚、第１の実施の形態の図７の説明と比較すると、インクの並び順が異なっているが、プリンタ３には複数のタイプのインクヘッドを搭載することが可能である。この例では図７の例とは異なるタイプのインクヘッドが搭載されているケースを表している。
【０１０２】
図２３はプリンタの状態をモニタするステータスモニタを表す図である。ここでは、同図のステータスモニタが、ＰＣ１にインストールされているアプリケーション３０であると仮定する。
【０１０３】
同図において、２０１はステータスモニタのメインウィンドウであり、プリンタ３（ＸＹＺ社製のｋｍｍｎというモデル名のプリンタ）の現在の状態を表している。２０２はプリンタ情報（Ｐｒｉｎｔｅｒ  Ｉｎｆｏｒｍａｔｉｏｎ）表示部であり、プリンタがＯｎｌｉｎｅ（オンライン）の状態であることを表している。２０３はインク情報（Ｉｎｋ  Ｉｎｆｏｒｍａｔｉｏｎ）表示部であり、プリンタ３のインクの情報を表す。２０４はインク残量表示部であり、プリンタ３に搭載されている各インクの残量を表示する。
【０１０４】
本発明の特徴としては、任意のアプリケーションにおいて、プリンタ３に搭載されているインクの状態、例えば、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表現することで、ユーザの操作性を大幅に向上させている。同図に示す通り、プリンタ３には大容量の黒（Ｂｌａｃｋ）、標準容量の黄（Ｙｅｌｌｏｗ）、標準容量のマゼンタ（Ｍａｇｅｎｔａ）、標準容量のシアン（Ｃｙａｎ）の４色のインクが左から右方向にこの順で装着されている。さらに、それぞれの色のインクの残量が８０％、５０％、０％（インク残量無し）、１００％（インク残量満タン）であることをグラフィカルに、かつ、ビジュアル的にリアルに表している。
【０１０５】
図２４は図２２における各インクの画像のビットマップファイルの表示内容を表す図である。同図において、２０５はインクの残量が満タンの時の黒インクの画像を表すビットマップファイル（ＣＩ−Ｂ．ｂｍｐ）の表示内容がある。２０６はインクの残量が満タンの時の黄インクの画像を表すビットマップファイル（ＣＩ−Ｙ．ｂｍｐ）の表示内容である。２０７はインクの残量が満タンの時のマゼンタインクの画像を表すビットマップファイル（ＣＩ−Ｍ．ｂｍｐ）の表示内容である。２０８はインクの残量が満タンの時のシアンインクの画像を表すビットマップファイル（ＣＩ−Ｃ．ｂｍｐ）の表示内容である。
【０１０６】
図２５は各インクの残量の画像のビットマップファイルの表示内容を表す図である。同図において、２０９はインクの残量が８０％の黒インクの画像を表すビットマップファイルの表示内容である。２１０はインクの残量が５０％の黄インクの画像を表すビットマップファイルの表示内容である。２１１はインクの残量が０％のマゼンタインクの画像を表すビットマップファイルの表示内容である。２１２はインクの残量が１００％のシアンインクの画像を表すビットマップファイルの表示内容である。図中の破線で記されている部分は、インクの残量が満タンの時の外形を表すものであり、実際には表示されない部分である。
【０１０７】
図２６は図２０及び図２１で定義されているスキーマを使ってインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。同図において、アプリケーション３０（ステータスモニタ等）から￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを指定してＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数をコールすると（Ｑｕｅｒｙ（Ｓｃｈｅｍａ））、プリンタ３の全インクの情報及び状態、並び方向、順番（ならび順）、インクの画像のスキーマ（Ｒｅｔｒｉｅｖｅ（Ｓｃｈｅｍａ））と値（Ｒｅｔｒｉｅｖｅ（Ｖａｌｕｅ））がセットで返される。
【０１０８】
同図の例では、プリンタ３に、黄、マゼンタ、シアンの３色のインクが一体となっているカラーインクと、写真印刷用の特殊な３色のインクが一体となっているのフォトインクが搭載されていていることを表す。さらに、インクの残量がそれぞれ、４０％、８０％であり、インクの型名がそれぞれ、ＣＩ−Ｃｏｌｏｒ、ＣＩ−Ｐｈｏｔｏ、インクの並び方向が下から上方向で、順番（並び順）が下から順に、カラー、フォトの順で並んでいることを表す。またインクの画像がそれぞれ、ＣＩ−Ｃｏｌｏｒ．ｂｍｐ、ＣＩ−Ｐｈｏｔｏ．ｂｍｐのビットマップファイルであることを表している。
【０１０９】
このようにインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）することにより、インクの情報及び状態、具体的な例としては、残量、並び方向、順番（並び順）、インクの画像を取得することができる。
【０１１０】
尚、第１の実施の形態の図７の説明、第２の実施の形態の図２２と比較すると、インクの種類、並び方向、並び順が異なっているが、プリンタ３には複数のタイプのインクヘッドを搭載することが可能である。この例では図７の例とは異なるタイプのインクヘッドが搭載されているケースを表している。
【０１１１】
図２７はプリンタの状態をモニタするステータスモニタを表す図である。ここでは、同図のステータスモニタが、ＰＣ１にインストールされているアプリケーション３０であると仮定する。
【０１１２】
同図において、２０１、２０２、２０３は図２３で前述したものと同じものである。
【０１１３】
２１６はカラーインクの残量表示部であり、プリンタ３に搭載されているカラーインクの残量を表示する。
【０１１４】
２１７はフォトインクの残量表示部であり、プリンタ３に搭載されているフォトインクの残量を表示する。
【０１１５】
本発明の特徴の一つとして、任意のアプリケーションにおいて、プリンタ３に搭載されているインクの状態を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表現することができる。例えば、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表現することで、ユーザの操作性を大幅に向上させている。
【０１１６】
同図に示す通り、プリンタ３には、黄、マゼンタ、シアンの３色のインクが一体となっているカラーインク（Ｃｏｌｏｒ）、写真印刷用の特殊な３色のインクが一体となっているのフォトインク（Ｐｈｏｔｏ）の２種類の一体型インクが下から上方向にこの順で装着されていることを表し。それぞれの色のインクの残量が４０％、８０％であることをグラフィカルに、かつ、ビジュアル的にリアルに表している。
【０１１７】
図２８は図２６における各インクの画像のビットマップファイルの表示内容を表す図である。同図において、２１８はインクの残量が満タンの時のカラーインクの画像を表すビットマップファイル（ＣＩ−Ｃｏｌｏｒ．ｂｍｐ）の表示内容である。２１９はインクの残量が満タンの時のフォトインクの画像を表すビットマップファイル（ＣＩ−Ｐｈｏｔｏ．ｂｍｐ）の表示内容である。
【０１１８】
図２９は各インクの残量の画像のビットマップファイルの表示内容を表す図である。同図において、２２０はインクの残量が４０％のカラーインクの画像を表すビットマップファイルの表示内容、２２１はインクの残量が８０％のフォトインクの画像を表すビットマップファイルの表示内容である。図中の破線で記されている部分は、インクの残量が満タンの時の外形を表すものであり、実際には表示されない部分である。
【０１１９】
図２０及び図３０はアプリケーションプリンタからインクの情報及び状態を取得する時に使用するスキーマを表す図である。これらのスキーマは、アプリケーション３０がＰｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介してＬＭ３６経由でプリンタ３からインクの情報及び状態を取得する時に、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳで使用できるＣＯＭインタフェースＩＢｉｄｉＳｐｌのＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールする際に引数として指定される。尚、図２０は前述したのでここではその説明を省略する。
【０１２０】
図３０において、ＩｍａｇｅＤａｔａは［Ｃｏｌｏｒ］色のインクの画像情報を表すＰｒｏｐｅｒｔｙであり、スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］．ＩｍａｇｅＤａｔａである。
Ｒｅｄは［Ｃｏｌｏｒ］色のインクの画像の赤色成分を表すＶａｌｕｅである。データ型はＩｎｔである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］．ＩｍａｇｅＤａｔａ：Ｒｅｄである。設定可能な値は０〜２５５の整数である。
Ｇｒｅｅｎは［Ｃｏｌｏｒ］色のインクの画像の緑色成分を表すＶａｌｕｅである。データ型はＩｎｔである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］．ＩｍａｇｅＤａｔａ：Ｇｒｅｅｎである。設定可能な値は０〜２５５の整数である。
Ｂｌｕｅは［Ｃｏｌｏｒ］色のインクの画像の青色成分を表すＶａｌｕｅである。データ型はＩｎｔである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］．ＩｍａｇｅＤａｔａ：Ｂｌｕｅである。設定可能な値は０〜２５５の整数である。
Ｗｉｄｔｈは［Ｃｏｌｏｒ］色のインクの画像の幅を表すＶａｌｕｅである。データ型はＩｎｔである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］．ＩｍａｇｅＤａｔａ：Ｗｉｄｔｈである。設定可能な値は０〜１００（単位：ピクセル）の整数である。
Ｄｅｐｔｈは［Ｃｏｌｏｒ］色のインクの画像の奥行きを表すＶａｌｕｅである。データ型はＩｎｔである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］．ＩｍａｇｅＤａｔａ：Ｄｅｐｔｈである。設定可能な値は０〜１００（単位：ピクセル）の整数である。
Ｈｅｉｇｈｔは［Ｃｏｌｏｒ］色のインクの画像の高さを表すＶａｌｕｅである。データ型はＩｎｔである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］．ＩｍａｇｅＤａｔａ：Ｈｅｉｇｈｔである。設定可能な値は０〜１００（単位：ピクセル）の整数である。
【０１２１】
このインクの画像情報は、インクの残量が満タンの時のインクの画像情報である。
【０１２２】
図２０及び図３０において、Ｉｎｓｔａｌｌｅｄ、Ｓｔａｔｅ、ＭｏｄｅｌＮａｍｅ、Ｄｉｒｅｃｔｉｏｎ、Ｏｒｄｅｒ、Ｒｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔ等のＶａｌｕｅはＬＭ３６またはプリンタ３からアプリケーション３０へ返される値である。このように、これらの図で定義されているスキーマを使って、アプリケーション３０はプリンタ３に搭載されているインクの情報及び状態、具体的な例としては、残量、並び方向、順番（並び順）、インクの画像情報を取得することができる。
【０１２３】
図２１と図３０を比較した場合、図２１では［Ｃｏｌｏｒ］色のインクの画像をＩｍａｇｅのスキーマを使って、Ｄａｔａ  ＴｙｐｅがＢｉｔｍａｐであるビットマップファイル（バイナリデータ）で定義している。それに対し、図３０では［Ｃｏｌｏｒ］色のインクの画像情報をＩｍａｇｅＤａｔａのＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔの各スキーマを使って、Ｄａｔａ  ＴｙｐｅがＩｎｔである整数で定義している。
【０１２４】
図２１の長所としては、任意のアプリケーションにおいて、プリンタ３に搭載されているインクの状態を、細部までグラフィカルに、かつ、ビジュアル的に、最もリアルに表現することができる。例えば、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的に、最もリアルに表現することができる点である。
【０１２５】
短所としては、［Ｃｏｌｏｒ］色のインクの画像を表すＩｍａｇｅのスキーマのＤａｔａ  ＴｙｐｅがＢｉｔｍａｐであり、実際にＬＭ３６またはプリンタ３からアプリケーション３０に送られるデータがビットマップファイルとなるので、データ量が多い点である。
【０１２６】
図３０の長所としては、［Ｃｏｌｏｒ］色のインクの画像情報を表すＩｍａｇｅＤａｔａのＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔの各スキーマのＤａｔａ  ＴｙｐｅがＩｎｔである。実際にＬＭ３６またはプリンタ３からアプリケーション３０に送られるデータがＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔを表す６つの整数であるので、データ量が非常に少ない点である。
【０１２７】
また、本発明の特徴の一つとして、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔの定義を使うことで３次元の表示の制御を容易に行うことができる点も長所として挙げられる。
【０１２８】
短所としては、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的に表現しようとする場合、図２１のインクの画像を表すＩｍａｇｅのスキーマを使った場合に比べて、表現が劣る点である。
【０１２９】
図２１のＩｍａｇｅ、図３０のＩｍａｇｅＤａｔａの両者それぞれに一長一短があるので、どちらのスキーマを使うかは、使用する周辺装置制御システムの環境に依存するので、その環境に合わせて最適な方を選択するシステムを構築するのが理想である。
【０１３０】
例えば、図１に示す周辺装置制御システムのように、ＬＭ３６またはプリンタ３からアプリケーション３０へのデータ転送速度が速いシステムにおいては、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的に、最もリアルに表現することができる図２１のＩｍａｇｅのスキーマを使う方がよいと考えられる。
【０１３１】
図３１は図２０及び図３０で定義されているスキーマを使ってインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。同図において、アプリケーション３０（ステータスモニタ等）から￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを指定してＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数をコールする。コールすると（Ｑｕｅｒｙ（Ｓｃｈｅｍａ））、プリンタ３の全インクの情報及び状態、並び方向、順番（ならび順）、インクの画像情報のスキーマ（Ｒｅｔｒｉｅｖｅ（Ｓｃｈｅｍａ））と値（Ｒｅｔｒｉｅｖｅ（Ｖａｌｕｅ））がセットで返される。
【０１３２】
同図の例では、プリンタ３に黒、黄、マゼンタ、シアンのインクが搭載されていて、インクの残量がそれぞれ、８０％、５０％、０％（インク残量無し）、１００％（インク残量満タン）であることを表している。そしてインクの型名がそれぞれ、ＣＩ−Ｂ、ＣＩ−Ｙ、ＣＩ−Ｍ、ＣＩ−Ｃ、インクの並び方向が左から右方向でることを表している。また順番（並び順）が左から順に、黒、黄、マゼンタ、シアンの順で並んでいることを表している。そしてインクの画像情報が同図のＩｍａｇｅＤａｔａのＰｒｏｐｅｒｔｙのＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔの各値（Ｒｅｔｒｉｅｖｅ（Ｖａｌｕｅ））で図示されている内容であることを表している。
【０１３３】
このようにインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）することにより、インクの情報及び状態、具体的な例としては、残量、並び方向、順番（並び順）、インクの画像情報を取得することができる。
【０１３４】
尚、第１の実施の形態の図７の説明と比較すると、インクの並び順が異なっているが、プリンタ３には複数のタイプのインクヘッドを搭載することが可能である。この例では図７の例とは異なるタイプのインクヘッドが搭載されているケースを表している。
【０１３５】
図３２はインク情報のデータベースを表す図である。
【０１３６】
同図に示す通り、各インクの色（Ｉｎｋ  Ｃｏｌｏｒ）、すなわち、黒（Ｂｌａｃｋ）、黄（Ｙｅｌｌｏｗ）、マゼンタ（Ｍａｇｅｎｔａ）、シアン（Ｃｙａｎ）に対して、インクの並び方向（Ｄｉｒｅｃｔｉｏｎ）、インクの並び順（Ｏｒｄｅｒ）、インクの画像（Ｉｍａｇｅ）、インクの画像情報（ＩｍａｇｅＤａｔａ）が、このデータベースに登録されている。
【０１３７】
ＩｍａｇｅＤａｔａには、図３０に示すＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔのそれぞれの値（Ｖａｌｕｅ）が順に格納されている。このデータベースはＬＭリソース６に格納されている。
【０１３８】
図３３はインク情報のデータベースを表す図である。
【０１３９】
同図に示す通り、各インクの色（Ｉｎｋ  Ｃｏｌｏｒ）、すなわち、黄、マゼンタ、シアンの３色のインクが一体となっているカラーインク（Ｃｏｌｏｒ）、写真印刷用の特殊な３色のインクが一体となっているのフォトインク（Ｐｈｏｔｏ）に対して、インクの並び方向（Ｄｉｒｅｃｔｉｏｎ）、インクの並び順（Ｏｒｄｅｒ）、インクの画像（Ｉｍａｇｅ）が、このデータベースに登録されている。
【０１４０】
このデータベースはＬＭリソース６に格納されている。
【０１４１】
図３４はＰＣがプリンタからインク情報を取得する時のデータを表す図である。実際にＰＣ１とプリンタ３との間で送受信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ＡＳＣＩＩ文字コードでエンコードした後のテキストデータとして表している。同図において、ＰＣ１が要求コマンドをプリンタ３にＵＳＢインタフェース９を介して発行すると、インク情報がプリンタ３からＰＣ１にＵＳＢインタフェース９を介して返される。このインク情報は次の内容を表している。
＜色＞      ＜型名＞      ＜残量＞
黒        ＣＩ−Ｂ      ８０％
黄        ＣＩ−Ｙ      ５０％
マゼンタ  ＣＩ−Ｍ      ０％
シアン    ＣＩ−Ｃ      １００％
図３５はＰＣがプリンタからインク情報を取得する時のデータを表す図である。実際にＰＣ１とプリンタ３との間で送受信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ＡＳＣＩＩ文字コードでエンコードした後のテキストデータとして表している。同図において、ＰＣ１が要求コマンドをプリンタ３にＵＳＢインタフェース９を介して発行すると、インク情報がプリンタ３からＰＣ１にＵＳＢインタフェース９を介して返される。このインク情報は次の内容を表している。
【０１４２】
【表１】
2006195953.tif 000003
【０１４３】
図３６はＰＣがプリンタからインク情報を取得する時のデータを表す図である。実際にＰＣ１とプリンタ３との間で送受信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ＡＳＣＩＩ文字コードでエンコードした後のテキストデータとして表している。同図において、ＰＣ１が要求コマンドをプリンタ３にＵＳＢインタフェース９を介して発行すると、インク情報がプリンタ３からＰＣ１にＵＳＢインタフェース９を介して返される。このインク情報は次の内容を表している。
【０１４４】
【表２】
2006195953.tif 000004
【０１４５】
尚、画像情報には、図３０に示すＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔのそれぞれに相当する値（Ｖａｌｕｅ）が順に格納されている。
【０１４６】
図３７はＰＣがプリンタからインク情報を取得する時のデータを表す図である。実際にＰＣ１とプリンタ３との間で送受信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ＡＳＣＩＩ文字コードでエンコードした後のテキストデータとして表している。同図において、ＰＣ１が要求コマンドをプリンタ３にＵＳＢインタフェース９を介して発行すると、インク情報がプリンタ３からＰＣ１にＵＳＢインタフェース９を介して返される。このインク情報は次の内容を表している。
＜色＞      ＜型名＞            ＜残量＞
カラー    ＣＩ−Ｃｏｌｏｒ    ４０％
フォト    ＣＩ−Ｐｈｏｔｏ    ８０％
図３８はＰＣがプリンタからインク情報を取得する時のデータを表す図である。実際にＰＣ１とプリンタ３との間で送受信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ＡＳＣＩＩ文字コードでエンコードした後のテキストデータとして表している。同図において、ＰＣ１が要求コマンドをプリンタ３にＵＳＢインタフェース９を介して発行すると、インク情報がプリンタ３からＰＣ１にＵＳＢインタフェース９を介して返される。このインク情報は次の内容を表している。
【０１４７】
【表３】
2006195953.tif 000005
【０１４８】
図３４〜図３８のデータは、プリンタ３が搭載されているインクの情報を取得し、取得したデータをこれらの図に示すような所定のデータフォーマットに変換するという一連の処理によって行われる。プリンタ３は、ＰＣ１からの要求コマンドを受信すると、前述した一連の処理によりインク情報を表すデータを作成し、ＰＣ１へそのデータを送る。プリンタ３が行うこのような処理は、一般的なプリンタ等の周辺装置において行われている公知の処理であるので、ここでは図面を用いた詳細説明を省略する。
【０１４９】
以下、図３９〜４１のフローチャートを用いて、第２の実施の形態の動作について説明する。
【０１５０】
図３９はアプリケーションがプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【０１５１】
同図において、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理をスタートさせる（Ｓ３９０１）。スタートさせると、アプリケーション３０が図２０及び図２１、または、図２０及び図３０で定義されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを引数としてＣＯＭインタフェースＩＢｉｄｉＳｐｌ  のＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールしてインク情報の取得を開始する（Ｓ３９０２）。開始すると、Ｐｒｉｎｔｉｎｇ  ａｎｄ  ＰｒｉｎｔＳｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介して、ＬＭ３６がエクスポートしているＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数がスプーラ（Ｗｉｎｄｏｗｓ（登録商標）  ＸＰ  ＯＳの公知の機能の一部なので、図や詳細説明は省略）からコールされて、この関数における処理が開始される（Ｓ３９０３）。
【０１５２】
ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数内において、図３４〜図３８に示すように、ＰＣ１から要求コマンドを発行してプリンタ３から返されるインク情報を取得する（Ｓ３９０４）。次にこの取得したインク情報をＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数として指定されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマの定義に従って変換（図４０で後述）する（Ｓ３９０５）。次にＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数として図２２または図３１に示すようなスキーマの定義に変換されたインク情報を返す。そして、ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の処理を終了する（Ｓ３９０６）。
【０１５３】
アプリケーション３０において、ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数がリターンされ、引数として図２２または図３１に示すようなスキーマの定義で返されたインク情報を取得する（Ｓ３９０７）。次に、インク情報表示用のデータを作成（図４１で後述）する（Ｓ３９０８）。次に、このデータを使ってインク情報を更新し（Ｓ３９０９）、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を終了する（Ｓ３９１０）。
【０１５４】
通常、アプリケーション３０は、ステップＳ３９０１からスタートするプリンタ３のインク情報を取得してインク情報の表示を更新する処理を、例えば５秒に１回等、ある一定時間の間隔で繰り返すことで、プリンタ３に搭載されているインクの情報及び状態をリアルタイムに表示することができる。
【０１５５】
このように、上記一連の処理を行うことで、アプリケーション３０（図２３または図２７に示すようなステータスモニタ等の任意のアプリケーション）において、プリンタ３に搭載されているインクの状態をグラフィカルに、かつ、ビジュアル的にリアルに表現することできる。例えば、インクの形状、色、大きさ、並び方向、並び順、残量等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表現することできる。
【０１５６】
図４０はＬＭにおけるインク情報をスキーマの定義に変換する処理を表すフローチャートである。
【０１５７】
同図において、ＬＭ３６におけるインク情報をスキーマの定義に変換する処理が開始されると（Ｓ４００１）、図３９のステップＳ３９０４で取得したプリンタ３から返されるインク情報からインクの色を取得する（Ｓ４００２）。次に、色が有る（見つかった）場合（Ｓ４００３）、その色をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４００４）。次に、その色のインクの型名を取得してその型名をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４００５）。次に、その色のインクの残量を取得してその残量をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４００６）。次に、その色のインクの並び方向を取得し（Ｓ４００７）、並び方向が有る（見つかった）場合（Ｓ４００８）、その色のインクの並び方向をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４００９）。次に、その色のインクの並び順を取得してその並び順をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４０１０）。次に、その色のインクの画像を取得する（Ｓ４０１１）。次に、画像が有る（見つかった）場合（Ｓ４０１２）、その色のインクの画像をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットし（Ｓ４０１３）、ステップＳ４００２に戻る。ステップＳ４０１２において、画像が無い（見つからなかった）場合、その色のインクの画像情報を取得する（Ｓ４０１４）。画像情報が有る（見つかった）場合（Ｓ４０１５）、その色のインクの画像情報をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットし（Ｓ４０１６）、ステップＳ４００２に戻る。
【０１５８】
ステップＳ４０１５において、画像情報が無い（見つからなかった）場合、図３２または図３３のインク情報のデータベースを使ってその色のインクの画像またはインクの画像情報を取得する。そして、その画像情報をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットし（Ｓ４０１７）、ステップＳ４００２に戻る。
【０１５９】
ステップＳ４０１７において、インク情報のデータベース内にインクの画像とインクの画像情報の両方が存在する場合、その時の周辺装置制御システムの環境に最適な方を選択するような制御を行う。
【０１６０】
この例では図１に示す周辺装置制御システムであるので、ＬＭ３６またはプリンタ３からアプリケーション３０へのデータ転送速度が速いので、インクの画像とインクの画像情報の両方が存在する場合はインクの画像を優先してセットする。
【０１６１】
ステップＳ４００８において、並び方向が無い（見つからなかった）場合、図３２または図３３のインク情報のデータベースを使ってその色のインクの並び方向と並び順を取得する。そして、その並び方向と並び順をステップＳ４０１９におけるリターン時の戻り値格納用バッファ（メモリ）にセットし（Ｓ４０１８）、ステップＳ４００２に戻る。
【０１６２】
ステップＳ４００３において、色が無い（見つからなかった）場合、全ての色のインクに対する処理が完了したことになる。よって、戻り値格納用バッファにセットされている色（図２０の［Ｃｏｌｏｒ］）、及び、その色のインクの型名（図２０のＭｏｄｅｌＮａｍｅ）、残量（図２０のＬｅｖｅｌ）、並び方向（図２０のＤｉｒｅｃｔｉｏｎ）、並び順（図２０のＯｒｄｅｒ）、画像（図２１のＩｍａｇｅ）、画像情報（図３０のＩｍａｇｅＤａｔａのＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔ）を返して、リターンする（Ｓ４０１９）。
【０１６３】
図４１はアプリケーションにおけるインク情報表示用データの作成処理を表すフローチャートである。
【０１６４】
同図において、アプリケーション３０におけるインク情報表示用データの作成処理が開始される（Ｓ４１０１）。開始されると、図３９のステップＳ３９０７で取得したＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数の引数として図２２または図３１に示すようなスキーマの定義で返されたインク情報からインクの色を取得する（Ｓ４１０２）。次に、色が有る（見つかった）場合（Ｓ４１０３）、その色をステップＳ４１１４におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４１０４）。次に、その色のインクの残量を取得してその残量をステップＳ４１１４におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４１０５）。次に、その色のインクの並び方向を取得してその並び方向をステップＳ４１１４におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４１０６）。次に、その色のインクの並び順を取得してその並び順をステップＳ４１１４におけるリターン時の戻り値格納用バッファ（メモリ）にセットする（Ｓ４１０７）。次に、その色のインクの画像を取得する（Ｓ４１０８）。画像が有る（見つかった）場合（Ｓ４１０９）、その色のインクの画像とステップＳ４１０５で取得してバッファ（メモリ）にセットされているその色のインクの残量から、その色のインクの画像を加工してその色のインクの残量の画像を生成する（Ｓ４１１０）。次に、その色のインクの残量の画像をステップＳ４１１４におけるリターン時の戻り値格納用バッファ（メモリ）にセットし（Ｓ４１１１）、ステップＳ４１０２に戻る。
【０１６５】
ステップＳ４１１０において、その色のインクの残量の画像を生成する際は、図２４または図２８に示すような各インクの画像のビットマップファイルに対して、次のような計算式によりその色のインクの画像の高さを変更することで、図２５または図２９に示す各インクの残量の画像を得ることができる。
［計算式］
（その色のインクの画像の高さ）×（その色のインクの残量（図２０のＬｅｖｅｌ））／１００・・・（１）
ステップＳ４１０９において、画像が無い（見つからなかった）場合、その色のインクの画像情報を取得する（Ｓ４１１２）。次に、その画像情報とステップＳ４１０５で取得してバッファ（メモリ）にセットされているその色のインクの残量から、その色のインクの画像情報を加工してその色のインクの残量の画像を生成する（Ｓ４１１３）。そして、ステップＳ４１１１に進む。
【０１６６】
ステップＳ４１１３において、その色のインクの残量の画像を生成する際は、まず初めに図３０に示すインクの画像情報（ＩｍａｇｅＤａｔａ）のＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔの各値（Ｖａｌｕｅ）をもとに、具体的には図３１に示すような値（Ｖａｌｕｅ）をもとに、Ｗｉｎｄｏｗｓ（登録商標）  ＧＤＩの関数を使ってインクの残量が満タンの時のインクの画像を生成する。
【０１６７】
ここでＰＣ１内のディスプレイで表現可能な２次元のユーザインタフェースを考え、Ｄｅｐｔｈの値を無視してインクの画像を生成すると、図２４または図２８に示すような各インクの画像とほぼ同等な各インクの画像が得られる。
【０１６８】
ここではＤｅｐｔｈの値を無視するケースで説明する。生成されたインクの画像に対して、次のような計算式によりその色のインクの画像の高さを変更することで、図２５または図２９に示すような各インクの残量の画像とほぼ同等な各インクの残量の画像を得ることができる。
［計算式］
（その色のインクの画像の高さ）×（その色のインクの残量（図２０のＬｅｖｅｌ））／１００・・・（２）
ステップＳ４１０３において、色が無い（見つからなかった）場合、全ての色のインクに対する処理が完了した。よって、戻り値格納用バッファにセットされている色（図２０の［Ｃｏｌｏｒ］）、及び、その色のインクの残量（図２０のＬｅｖｅｌ）、並び方向（図２０のＤｉｒｅｃｔｉｏｎ）、並び順（図２０のＯｒｄｅｒ）、画像（図２１のＩｍａｇｅ）、画像情報（図３０のＩｍａｇｅＤａｔａのＲｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ、Ｗｉｄｔｈ、Ｄｅｐｔｈ、Ｈｅｉｇｈｔ）、残量の画像（計算式（１）または（２）により高さを変更することで得られる画像）を返して、リターンする（Ｓ４１１４）。
【０１６９】
上記例では、アプリケーション３０において、［Ｃｏｌｏｒ］色のインクの画像の奥行きを表すＤｅｐｔｈ（図３１の例ではＤｅｐｔｈ＝１００）を無視して処理を行った。しかしながら、これは、この例がＷｉｎｄｏｗｓ（登録商標）ＸＰ上で動作している周辺装置制御システムの例であり、ＰＣ１内のディスプレイで表現可能な２次元のユーザインタフェースを想定している為である。
【０１７０】
もし３次元のユーザインタフェースを想定する場合は、［Ｃｏｌｏｒ］色のインクの画像の奥行きを表すＤｅｐｔｈを無視せずにこれを使って制御することで、３次元のユーザインタフェースを有効に活用することができる。
【０１７１】
＜第３の実施の形態＞
以降、本発明の第３の実施の形態に関して、第１の実施の形態の図１、図２で説明した周辺装置制御システムの例を用いて説明する。尚、以下における具体的な説明は、図１の周辺装置制御システムの例を用いて行う。
【０１７２】
図４３はアプリケーション３０（ステータスモニタ等）がプリンタ３からインクの情報及び状態を取得する時に使用するスキーマを表す図である。
【０１７３】
これらのスキーマは、アプリケーション３０がＰｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介してＬＭ３６経由でプリンタ３からインクの情報及び状態を取得する時に、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳで使用できるＣＯＭインタフェースＩＢｉｄｉＳｐｌのＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールする際に引数として指定される。
【０１７４】
同図において、ＩｎｋＩｎｆｏはインクの情報を表すＰｒｏｐｅｒｔｙであり、スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏである。
【０１７５】
［Ｃｏｌｏｒ］は色の情報を表すＰｒｏｐｅｒｔｙである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］である。設定可能な値は、黒を表すＢｌａｃｋ、シアンを表すＣｙａｎ、マゼンタを表すＭａｇｅｎｔａ、黄を表すＹｅｌｌｏｗ、一体型のフォトインクを表すＰｈｏｔｏ、一体型のカラーインクを表すＣｏｌｏｒの何れかである。
【０１７６】
例えば、黒インクの情報を取得したい場合は、￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．Ｂｌａｃｋと指定する。
【０１７７】
Ｉｎｓｔａｌｌｅｄは［Ｃｏｌｏｒ］色のインクが搭載されているか否かを表すＶａｌｕｅである。データ型はＢｏｏｌｅａｎである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｉｎｓｔａｌｌｅｄである。設定可能な値は、搭載されていること表すＴｒｕｅ、搭載されていないを表すＦａｌｓｅの何れかである。
【０１７８】
Ｓｔａｔｅは［Ｃｏｌｏｒ］色のインクの残量の状態を表すＶａｌｕｅである。データ型はＳｔｒｉｎｇである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｓｔａｔｅである。設定可能な値は、インク満タンを表すＦｕｌｌ、インク残りわずかを表すＬｏｗ、インク無しを表すＯｕｔ、インク残量不明を表すＵｎｋｎｏｗｎの何れかである。
【０１７９】
ＭｏｄｅｌＮａｍｅは［Ｃｏｌｏｒ］色のインクの型名を表すＶａｌｕｅである。データ型はＳｔｒｉｎｇである。スキーマのフルパスの指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：ＭｏｄｅｌＮａｍｅである。設定可能な値の例は、同図のＥｘａｍｐｌｅｓのようなＡＳＣＩＩの文字列である。
【０１８０】
Ｄｉｒｅｃｔｉｏｎは［Ｃｏｌｏｒ］色のインクの並び方向を表すＶａｌｕｅである。データ型は  Ｓｔｒｉｎｇである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｄｉｒｅｃｔｉｏｎである。設定可能な値は、原点をプリンタの左下として、左から右並びを表すＬｅｆｔＲｉｇｈｔ、手前から後ろの並びを表すＦｒｏｎｔＢａｃｋ、下から上の並びを表すＢｏｔｔｏｍＴｏｐの何れかである。
【０１８１】
Ｏｒｄｅｒは［Ｃｏｌｏｒ］色のインクの原点からの順番を表すＶａｌｕｅである。原点はプリンタの左下である。データ型はＩｎｔである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：Ｏｒｄｅｒである。設定される値は、例えば、［Ｃｏｌｏｒ］色のインクの原点からの順番が１番目の場合は、１となる。
【０１８２】
ＩｎｓｅｒｔＤｉｒｅｃｔｉｏｎは［Ｃｏｌｏｒ］色のインクの挿入方向を表すＶａｌｕｅである。データ型はＳｔｒｉｎｇである。スキーマのフルパス指定は￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏ．［Ｃｏｌｏｒ］：ＩｎｓｅｒｔＤｉｒｅｃｔｉｏｎである。設定可能な値は、原点をプリンタの左下として、左から右の方向を表すＬｅｆｔＴｏＲｉｇｈｔ、右から左の方向を表すＲｉｇｈｔＴｏＬｅｆｔ、手前から後ろの方向を表すＦｒｏｎｔＴｏＢａｃｋ、後ろから手前の方向を表すＢａｃｋＴｏＦｒｏｎｔ、下から上の方向を表すＢｏｔｔｏｍＴｏＴｏｐ、上から下の方向を表すＴｏｐＴｏＢｕｔｔｏｎの何れかである。
【０１８３】
Ｉｎｓｔａｌｌｅｄ、Ｓｔａｔｅ、ＭｏｄｅｌＮａｍｅ、Ｄｉｒｅｃｔｉｏｎ、Ｏｒｄｅｒ、ＩｎｓｅｒｔＤｉｒｅｃｔｉｏｎ等のＶａｌｕｅはＬＭ３６またはプリンタ３からアプリケーション３０へ返される値である。
【０１８４】
このように、同図で定義されているスキーマを使って、アプリケーション３０はプリンタ３に搭載されているインクの情報及び状態、並び方向、並び順、インクの挿入方向を取得することができる。
【０１８５】
図４４は図４３で定義されているスキーマを使ってインクの情報及び状態、並び方向、順番、挿入方向を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。同図において、アプリケーション３０（ステータスモニタ等）から￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを指定してＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数をコールすると（Ｑｕｅｒｙ（Ｓｃｈｅｍａ））、プリンタ３の全インクの情報及び状態、並び方向、並び順、挿入方向のスキーマ（Ｒｅｔｒｉｅｖｅ（Ｓｃｈｅｍａ））と値（Ｒｅｔｒｉｅｖｅ（Ｖａｌｕｅ））がセットで返される。
【０１８６】
同図の例では、プリンタ３に黒、一体型のカラーインクが搭載されていて、インクの残量の状態がいずれも、インク無し（Ｏｕｔ）であることを表している。さらに、インクの型名がそれぞれ、ＣＩ−Ｂ、ＣＩ−Ｃｏｌｏｒ、インクの並び方向は左から右方向で、順番は左から順に、黒、カラー、の順で並んでいて、インクの挿入方向が、下から上の方向であることを表している。
【０１８７】
図４５は、図４３のスキーマを使ってステータスアプリケーション３０（ステータスモニタ等）がインク無しエラーをグラフィカルに表示する一例である。３００にインク無しエラーになっているインクが文字列で表現される。
【０１８８】
３０１にはインクの並び方向、並び順および残量およびインクの挿入方向がグラフィックを用いて表現されている。
【０１８９】
インクは左から、黒（３０２）、カラー（３０３）の順で並んでおり、残量は、黒／カラーともにインク無し（Ｏｕｔ）、インクの挿入方向は黒／カラーともに下から上方向となっていることがわかる。
【０１９０】
図４６は、インクの挿入方向が横向きなプリンタのインクの情報を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。
【０１９１】
図４６の例では、プリンタ３に黒（Ｂｌａｃｋ）および一体型のカラーインク（Ｃｏｌｏｒ）が搭載されていて、インクの残量の状態は、黒は満タン（Ｆｕｌｌ）、カラーインクはインク無し（Ｏｕｔ）であることを表している。さらにインクの型名がそれぞれ、ＣＩ−Ｂ、ＣＩ−Ｃｏｌｏｒ、インクの並び方向は下から上で、順番は下から、カラーインク、黒の順で並んでいて、インクの挿入方向は黒／カラーインクとも左から右の方向であることを表している。
【０１９２】
図４７は、図４６のスキーマを使ってステータスアプリケーション３０（ステータスモニタ等）がインク無しエラーをグラフィカルに表示する一例である。
【０１９３】
３０４にインク無しエラーになっているインクが文字列で表現される。３０５にはインクの並び方向、並び順および残量およびインクの挿入方向がグラフィックを用いて表現されている。
【０１９４】
インクは下から、カラーインク（１０１）、黒（１０２）の順で並んでおり、残量は、黒は満タン（Ｆｕｌｌ）、カラーインクはインク無し（Ｏｕｔ）、インク無しになっているカラーインクの挿入方向は左から右となっていることがわかる。
【０１９５】
図４８はＰＣ１がプリンタ３からインク情報を取得する時のデータを表す図である。実際にＰＣ１とプリンタ３との間で送受信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ＡＳＣＩＩ文字コードでエンコードした後のテキストデータとして表している。
【０１９６】
同図において、ＰＣ１が要求コマンドをプリンタ３にＵＳＢインタフェース９を介して発行すると、インク情報がプリンタ３からＰＣ１にＵＳＢインタフェース９を介して返される。このインク情報は次の内容を表している。
＜色＞      ＜型名＞          ＜状態＞    ＜並び方向＞    ＜並び順＞
黒        ＣＩ−Ｂ          インク無し    左から右        １
カラー    ＣＩ−Ｃｏｌｏｒ  インク無し    左から右        ２
図４９も図４８と同様にＰＣ１がプリンタ３からインク情報を取得する時のデータを表す図である。図４８と異なり、プリンタ３からインクの挿入方向も取得している。
＜色＞    ＜型名＞          ＜状態＞    ＜並び方向＞  ＜並び順＞  ＜インクの挿入方向＞
黒      ＣＩ−Ｂ          インク無し  左から右      １          下から上
カラー  ＣＩ−Ｃｏｌｏｒ  インク無し  左から右      ２          下から上
このようにプリンタによって、インクの挿入方向の情報まで返せるプリンタ（図４９）、返せないプリンタ（図４８）の二通りが存在する。
【０１９７】
以下、図５０〜図５２のフローチャートを用いて、本実施形態の動作について説明する。
【０１９８】
図５０はアプリケーション３０（ステータスモニタ等）がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【０１９９】
ここでは、プリンタ３はインクの並び方向、並び順の情報は返せるが、インクの挿入方向は返せないものとする。
【０２００】
同図において、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理をスタートさせる（Ｓ５００１）。アプリケーション３０が図４３で定義されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを引数としてＣＯＭインタフェースＩＢｉｄｉＳｐｌのＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールしてインク情報の取得を開始する（Ｓ５００２）。開始すると、Ｐｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  ＳｐｏｏｌｅｒＩｎｔｅｒｆａｃｅｓを介して、ＬＭ３６がエクスポートしているＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数がスプーラ（Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳの公知の機能の一部なので、図や詳細説明は省略）からコールされて、この関数における処理が開始される（Ｓ５００３）。
【０２０１】
ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数内において、図４８に示すように、ＰＣ１から要求コマンドを発行してプリンタ３から返されるインク情報を取得する（Ｓ５００４）。さらに自分自身の内部で保持しているインクの挿入方向を取得する（Ｓ５００５）。次に、これら取得したインク情報をＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数として指定されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマの定義に従って変換する（Ｓ５００６）。次に、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数としてスキーマの定義に変換されたインク情報を返し、ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の処理を終了する（Ｓ５００７）。
【０２０２】
アプリケーション３０において、ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数がリターンされ、引数としてスキーマの定義で返されたインク情報を取得する（Ｓ５００８）。次に、このインク情報を使ってインク情報を更新し（Ｓ５００９）、終了する（Ｓ５０１０）。
【０２０３】
通常、アプリケーション３０は、ステップＳ５００１からスタートするプリンタ３のインク情報を取得してインク情報の表示を更新する処理を、例えば５秒に１回等、ある一定時間の間隔で繰り返すことで、プリンタ３に搭載されているインクの情報及び状態をリアルタイムに表示することができる。
【０２０４】
図５１は、図５０と同様にアプリケーション３０（ステータスモニタ等）がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【０２０５】
ここでは、プリンタ３はインクの並び方向、並び順、インクの挿入方向の情報を返せるものとする。同図において、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理をスタートさせる（Ｓ５１０１）。スタートさせるとアプリケーション３０が図４３で定義されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを引数としてＣＯＭインタフェースＩＢｉｄｉＳｐｌ  のＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールしてインク情報の取得を開始すると（Ｓ５１０２）、Ｐｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介して、ＬＭ３６がエクスポートしているＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数がスプーラ（Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳの公知の機能の一部なので、図や詳細説明は省略）からコールされて、この関数における処理が開始される（Ｓ５１０３）。
【０２０６】
ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数内において、図４９に示すように、ＰＣ１から要求コマンドを発行してプリンタ３から、インク残量、並び方向、並び順、インクの挿入方向などのインク情報を取得する（Ｓ５１０４）。次に、取得したインク情報をＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数として指定されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマの定義に従って変換する（Ｓ５１０５）。次に、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数としてスキーマの定義に変換されたインク情報を返し、ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の処理を終了する（Ｓ５１０６）。
【０２０７】
アプリケーション３０において、ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数がリターンされ、引数としてスキーマの定義で返されたインク情報を取得する（Ｓ５１０７）。次に、このインク情報を使ってインク情報を更新する（Ｓ５１０８）。次に、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を終了する（Ｓ５１０９）。
【０２０８】
図５２は、図５０、図５１と同様にアプリケーション３０（ステータスモニタ等）がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【０２０９】
ここでは、ＬＭ３６は、プリンタ３から取得したインク情報（Ｓ５２０４）にインクの挿入方向の情報が含まれているかどうかを判定する（Ｓ５２０５）。判定の結果、含まれていない場合は自分自身の内部のデータベースからインクの挿入方向を取得する（Ｓ５２０６）ことを特徴とする。
【０２１０】
同図において、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理をスタートさせる（Ｓ５２０１）。スタートさせると、アプリケーション３０が図４３で定義されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマを引数としてＣＯＭインタフェースＩＢｉｄｉＳｐｌ  のＡＰＩ関数ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）をコールしてインク情報の取得を開始する（Ｓ５２０２）。開始すると、Ｐｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介して、ＬＭ３６がエクスポートしているＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数がスプーラ（Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  ＯＳの公知の機能の一部なので、図や詳細説明は省略）からコールされて、この関数における処理が開始される（Ｓ５２０３）。
【０２１１】
ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数内において、図４８、図４９に示すように、ＰＣ１から要求コマンドを発行してプリンタ３から返されるインク情報を取得する（Ｓ５２０４）。次に、インク情報にインクの挿入方向の情報が含まれているかどうかを判定する（Ｓ５２０５）。
【０２１２】
プリンタ３から取得した情報が、図４８のようにインクの挿入方向の情報を含んでいない場合は自分自身の内部で保持しているインクの挿入方向を取得する（Ｓ５２０６）。
【０２１３】
プリンタ３から取得した情報が、図４９に示すようにインクの挿入方向の情報を含んでいる場合は、Ｓ５２０７に進む。
【０２１４】
Ｓ５２０７で、Ｓ５２０４およびＳ５２０６で取得したインク情報をＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数として指定されている￥Ｐｒｉｎｔｅｒ．ＩｎｋＩｎｆｏのスキーマの定義に従って変換する。そして、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の引数としてスキーマの定義に変換されたインク情報を返し、ＬＭ３６のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の処理を終了する（Ｓ５２０８）。
【０２１５】
アプリケーション３０において、ＩＢｉｄｉＳｐｌ：：ＳｅｎｄＲｅｃｖ（）関数がリターンされ、引数としてスキーマの定義で返されたインク情報を取得する（Ｓ５２０９）。次に、このインク情報を使ってインク情報を更新する（Ｓ５２１０）。次に、アプリケーション３０がプリンタ３のインク情報を取得してインク情報の表示を更新する処理を終了する（Ｓ５２１１）。
【０２１６】
以下、図４２に示すメモリマップを参照して、上記実施形態に係る情報処理装置及び周辺装置からなる周辺装置制御システムで読み出し可能なデータ処理プログラムの構成について説明する。
【０２１７】
図４２は、本実施形態に係る周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。
【０２１８】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等もこの記憶媒体に記憶される。かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２１９】
同図において、６４は記憶媒体であり、ここではハードディスク１２０２で構成されているものとする。６５はディレクトリ情報管理部であり、各種プログラムに従属するデータがこのディレクトリ情報管理部６５で管理されている。
【０２２０】
６６はプログラム格納部であり、各種プログラムを情報処理装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に解凍するためのプログラム等も記憶される場合がある。
【０２２１】
上記第１の実施の形態における図１５、図１６、図１７、上記第２の実施の形態における図３９、図４０、図４１、上記第３の実施の形態における図５０、図５１、図５２にそれぞれ示す各フローチャートで実現される処理は、このプログラム格納部６６に記憶されており、それぞれ実行される。
【０２２２】
これらの各フローチャートの実行によって実現できる各機能が、外部からインストールされるプログラムによって、情報処理装置によって実現されるようにしてもよい。
【０２２３】
そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやフレキシブルディスク等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群が情報処理装置や周辺装置に供給される場合でも、本発明は適用されるものである。
【０２２４】
上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、アプリケーション３０の一例としてステータスモニタを挙げたが、この例に限られることなく、例えば周辺装置から情報を取得して、それを利用するような任意のアプリケーションで実現可能であり、有効である。
【０２２５】
また、上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、アプリケーション（ステータスモニタ）３０でプリンタ３に搭載されているインクの情報及び状態をモニタする例を説明した。しかしながら、この例に限られることなく、例えば、周辺装置の動作状態や、警告、エラーの状態、オプションの装着状態等の任意の情報や状態の取得に有効活用できる。
【０２２６】
また、上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、プリンタの例としてカラーインクジェットプリンタを使用した。しかしながら、この例に限られることなく、例えば、カラーＬＢＰ等の電子写真プリンタのトナーの表示に使用することができる。
【０２２７】
また、本実施の形態では、消耗品としてはインクやトナーで説明したが、用紙に適用することもできる。用紙に適用することによりアプリケーションはプリンタの複数のカセットにどのようなサイズや種類の用紙が入っているか表示することができるようになる。
【０２２８】
また、上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、情報処理装置、及び情報処理装置から構成されるクライアントやサーバとしてパーソナルコンピュータを想定したが、この例に限られることはない。例えばＤＶＤビデオプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の端末に対して実現することができ、有効である。
【０２２９】
また、上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、周辺装置としてプリンタを例示している。しかしながら、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、およびこれらの複合機能を備える装置などのいずれかが、本発明の適用対象となり得る。
【０２３０】
また、上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、ＯＳに例としてＷｉｎｄｏｗｓ（登録商標）ＸＰを使用したが、これらのＯＳに限られることなく、任意のＯＳを使用することができる。
【０２３１】
また、上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、ネットワーク４の構成例としてＥｔｈｅｒｎｅｔ（登録商標）を用いたが、この例に限られることなく、他の任意のネットワーク構成であってもよい。
【０２３２】
また、上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、ＰＣ１とプリンタ３との間のインタフェースとして、ＵＳＢインタフェースを用いたが、このインタフェースに限られることはない。例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、無線ＬＡＮ、ＩＥＥＥ１３９４、Ｂｌｕｅｔｏｏｔｈ、ＩｒＤＡ、パラレル、シリアル等の任意のインタフェースを用いるようにしてもよい。
【０２３３】
また、上記第１の実施形態、上記第２の実施の形態、上記第３の実施の形態では、ＰＣ１上のアプリケーション３０からプリンタ３に搭載されているインク情報を取得する例や、ネットワーク４を介して接続されたＰＣ２（クライアント）上のアプリケーション２００からＰＣ１（サーバ）を介してプリンタ３に搭載されているインク情報を取得する例を挙げて説明した。しかしながら、これらの例に限られることない。例えば、ＰＣ１のＯＳがマルチユーザをサポートし、各ユーザがそれぞれ異なるアプリケーションを起動している場合においても、ＰＣ１上のアプリケーション３０やＰＣ２上のアプリケーション２００がＰｒｉｎｔｉｎｇ  ａｎｄ  Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ  Ｉｎｔｅｒｆａｃｅｓを介してランゲージモニタ３６経由でプリンタに搭載されているインク情報を取得することができる。よって、このようなマルチユーザの環境においても、実現可能であり、有効である。
【０２３４】
また、上記第２の実施の形態では、インクの画像を表すスキーマとしてビットマップファイル（バイナリデータ）を用いたが、この例に限られることなく、例えばＪＰＥＧ、ＴＩＦＦ等の任意のフォーマットの画像を用いてもよい。
【０２３５】
また、上記第２の実施の形態では、インクの画像の各色成分を表すスキーマとして赤色成分（Ｒｅｄ）、緑色成分（Ｇｒｅｅｎ）、青色成分（Ｂｌｕｅ）を用いた。しかしながら、この例に限られることなく、例えば黒色成分（Ｂｌａｃｋ）、白色成分（Ｗｈｉｔｅ）、グレー色成分（Ｇｒａｙ）、黄色成分（Ｙｅｌｌｏｗ）、マゼンタ色成分（Ｍａｇｅｎｔａ）、シアン色成分（Ｃｙａｎ）等の任意の成分を用いてもよい。
【０２３６】
また、色成分とは別に、色合い、鮮やかさ、明るさ等の色を表す情報も用いることで、より一層リアルな表現が可能となる。
【０２３７】
また、上記第２の実施の形態では、インクの画像を表すスキーマとして幅（Ｗｉｄｔｈ）、奥行き（Ｄｅｐｔｈ）、高さ（Ｈｅｉｇｈｔ）を用いたが、この例に限られることなく、任意の形状を表す定義を用いてもよい。
【０２３８】
また、これらとは別に、例えば形状の定義として、直方体、円柱等の定義も合わせることで、より一層リアルな表現が可能となる。
【０２３９】
また、本発明の目的は、前述した第１の実施形態、上記第２の実施の形態、上記第３の実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０２４０】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２４１】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０２４２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した第１の実施形態や第２の実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（基本システム或いはオペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した第１の実施形態や第２の実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０２４３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４４】
以上説明したように本実施の形態によれば、周辺装置の製造元とは全く関係のないサードパーティ製のアプリケーション等の任意のアプリケーション上に、周辺装置に関する情報を細部までグラフィカルに、かつ、ビジュアル的にリアルに表現することできる。例えば、プリンタに搭載されているインクの状態を表す情報、すなわち、インクの形状、色、大きさ、並び方向、並び順、残量、挿入方向等を、細部までグラフィカルに、かつ、ビジュアル的にリアルに表現することできる。
【０２４５】
また、正確に表示し、操作性に優れた周辺装置制御システムを実現することができる。
【図面の簡単な説明】
【０２４６】
【図１】本発明の第１の実施形態に係る情報処理装置（ＰＣ）及び周辺装置からなる周辺装置制御システムの構成を示すブロック図である。
【図２】本発明に係る情報処理装置及び周辺装置からなる周辺装置制御システムをネットワーク環境下で実現した時のシステムの構成部分を表すブロック図である。
【図３】ＰＣのハードウェア構成を示す図である。
【図４】プリンタのハードウェア構成を示す図である。
【図５】ＰＣにおけるプリンタドライバの構成を示すブロック図である。
【図６】アプリケーションがプリンタからインクの情報及び状態を取得する時に使用するスキーマを表す図である。
【図７】図６で定義されているスキーマを使ってインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。
【図８】図７のスキーマを使ってアプリケーションがインク残量をグラフィカルに表示している図である。
【図９】図６で定義されているスキーマを使って、インクタンクが前後の並びで取り付けられるプリンタの情報及び状態を取得する時に使用するスキーマを表す図である。
【図１０】図９のスキーマで表現されるプリンタの外観図である。
【図１１】図６で定義されているスキーマを使って、インクタンクが上下の並びで取り付けられるプリンタの情報及び状態を取得する時に使用するスキーマを表す図である。
【図１２】図１１のスキーマを使ってアプリケーションがインク残量をグラフィカルに表示している図である。
【図１３】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図１４】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図１５】アプリケーションがプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【図１６】アプリケーションがプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【図１７】アプリケーションがプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【図１８】プリンタがインクの並び方向、並び順を取得する方法を表したフローチャートである。
【図１９】プリンタがインクの並び方向、並び順を取得する方法を表したフローチャートである。
【図２０】アプリケーションがプリンタからインクの情報及び状態を取得する時に使用するスキーマを表す図である。
【図２１】アプリケーションがプリンタからインクの情報及び状態を取得する時に使用するスキーマを表す図である。
【図２２】図２０及び図２１で定義されているスキーマを使ってインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。
【図２３】プリンタの状態をモニタするステータスモニタを表す図である。
【図２４】図２２における各インクの画像のビットマップファイルの表示内容を表す図である。
【図２５】各インクの残量の画像のビットマップファイルの表示内容を表す図である。
【図２６】図２０及び図２１で定義されているスキーマを使ってインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。
【図２７】プリンタの状態をモニタするステータスモニタを表す図である。
【図２８】図２６における各インクの画像のビットマップファイルの表示内容を表す図である。
【図２９】各インクの残量の画像のビットマップファイルの表示内容を表す図である。
【図３０】アプリケーションがプリンタからインクの情報及び状態を取得する時に使用するスキーマを表す図である。
【図３１】図２０及び図３０で定義されているスキーマを使ってインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。
【図３２】インク情報のデータベースを表す図である。
【図３３】インク情報のデータベースを表す図である。
【図３４】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図３５】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図３６】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図３７】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図３８】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図３９】アプリケーションがプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【図４０】ＬＭにおけるインク情報をスキーマの定義に変換する処理を表すフローチャートである。
【図４１】アプリケーションにおけるインク情報表示用データの作成処理を表すフローチャートである。
【図４２】周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。
【図４３】アプリケーションがプリンタからインクの情報及び状態、挿入方向を取得する時に使用するスキーマを表す図である。
【図４４】図４３で定義されているスキーマを使ってインクの情報及び状態を列挙（Ｅｎｕｍｅｒａｔｉｏｎ）する時のスキーマ及び値を表す図である。
【図４５】図４４のスキーマを使ってアプリケーションがインク残量及び挿入方向をグラフィカルに表示している図である。
【図４６】図４３で定義されているスキーマを使って、インクの挿入方向が左から右であるプリンタの情報及び状態を取得する時に使用するスキーマを表す図である。
【図４７】図４６のスキーマを使ってアプリケーションがインク残量及び挿入方向をグラフィカルに表示している図である。
【図４８】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図４９】ＰＣがプリンタからインク情報を取得する時のデータを表す図である。
【図５０】アプリケーションがプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【図５１】アプリケーションがプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【図５２】アプリケーションがプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。
【符号の説明】
【０２４７】
１  情報処理装置（ＰＣ）
２  情報処理装置（ＰＣ）
３  プリンタ
６  ランゲージモニタ用リソースファイル（ＬＭリソース）
９  ＵＳＢインタフェース
３０  アプリケーション（ステータスモニタ）
３６  ランゲージモニタ
４０  プリンタ情報表示部
４１  インク残量表示部
４２  黒
４３  シアン
４４  マゼンタ
４５  黄
４６  プリンタ情報表示部
４７  インク残量表示部
４８  カラーインク
４９  フォトインク
２００  アプリケーション（ステータスモニタ）
２０１  ステータスモニタのメインウィンドウ
２０２  プリンタ情報表示部
２０３  インク情報表示部
２０４  インク残量表示部
２０５  インクの残量が満タンの時の黒インクの画像を表すビットマップファイル（ＣＩ−Ｂ．ｂｍｐ）の表示内容
２０６  インクの残量が満タンの時の黄インクの画像を表すビットマップファイル（ＣＩ−Ｙ．ｂｍｐ）の表示内容
２０７  インクの残量が満タンの時のマゼンタインクの画像を表すビットマップファイル（ＣＩ−Ｍ．ｂｍｐ）の表示内容
２０８  インクの残量が満タンの時のシアンインクの画像を表すビットマップファイル（ＣＩ−Ｃ．ｂｍｐ）の表示内容
２０９  インクの残量が８０％の黒インクの画像を表すビットマップファイルの表示内容
２１０  インクの残量が５０％の黄インクの画像を表すビットマップファイルの表示内容
２１１  インクの残量が０％のマゼンタインクの画像を表すビットマップファイルの表示内容
２１２  インクの残量が１００％のシアンインクの画像を表すビットマップファイルの表示内容
２１６  カラーインクの残量表示部
２１７  フォトインクの残量表示部
２１８  インクの残量が満タンの時のカラーインクの画像を表すビットマップファイル（ＣＩ−Ｃｏｌｏｒ．ｂｍｐ）の表示内容
２１９  インクの残量が満タンの時のフォトインクの画像を表すビットマップファイル（ＣＩ−Ｐｈｏｔｏ．ｂｍｐ）の表示内容
２２０  インクの残量が４０％のカラーインクの画像を表すビットマップファイルの表示内容
２２１  インクの残量が８０％のフォトインクの画像を表すビットマップファイルの表示内容
３００  インク残量表示部（テキスト表示）
３０１  インク残量表示部（グラフィック表示）
３０２  黒
３０３  カラー
３０４  インク残量表示部（テキスト表示）
３０５  インク残量表示部（グラフィック表示）
３０６  黒
３０７  カラー
【図１】
2006195953.tif 000006
【図２】
2006195953.tif 000007
【図３】
2006195953.tif 000008
【図４】
2006195953.tif 000009
【図５】
2006195953.tif 000010
【図６】
2006195953.tif 000011
【図７】
2006195953.tif 000012
【図８】
2006195953.tif 000013
【図９】
2006195953.tif 000014
【図１０】
2006195953.tif 000015
【図１１】
2006195953.tif 000016
【図１２】
2006195953.tif 000017
【図１３】
2006195953.tif 000018
【図１４】
2006195953.tif 000019
【図１５】
2006195953.tif 000020
【図１６】
2006195953.tif 000021
【図１７】
2006195953.tif 000022
【図１８】
2006195953.tif 000023
【図１９】
2006195953.tif 000024
【図２０】
2006195953.tif 000025
【図２１】
2006195953.tif 000026
【図２２】
2006195953.tif 000027
【図２３】
2006195953.tif 000028
【図２４】
2006195953.tif 000029
【図２５】
2006195953.tif 000030
【図２６】
2006195953.tif 000031
【図２７】
2006195953.tif 000032
【図２８】
2006195953.tif 000033
【図２９】
2006195953.tif 000034
【図３０】
2006195953.tif 000035
【図３１】
2006195953.tif 000036
【図３２】
2006195953.tif 000037
【図３３】
2006195953.tif 000038
【図３４】
2006195953.tif 000039
【図３５】
2006195953.tif 000040
【図３６】
2006195953.tif 000041
【図３７】
2006195953.tif 000042
【図３８】
2006195953.tif 000043
【図３９】
2006195953.tif 000044
【図４０】
2006195953.tif 000045
【図４１】
2006195953.tif 000046
【図４２】
2006195953.tif 000047
【図４３】
2006195953.tif 000048
【図４４】
2006195953.tif 000049
【図４５】
2006195953.tif 000050
【図４６】
2006195953.tif 000051
【図４７】
2006195953.tif 000052
【図４８】
2006195953.tif 000053
【図４９】
2006195953.tif 000054
【図５０】
2006195953.tif 000055
【図５１】
2006195953.tif 000056
【図５２】
2006195953.tif 000057