説明

情報処理装置、プログラム及び記録媒体

【課題】 情報処理装置を複数の規格での通信に同時に対応させるためのデバイスドライバを、少ない労力で提供できるようにする。
【解決手段】 スキャナ20を制御するためにPCにインストールするスキャナドライバにおいて、スキャナコントローラが、TWAIN_DS又はWIA_DLLから初期化を要求された場合に、それらの少なくとも一方から初期化要求と共に渡される可能性のあるパラメータの値を記憶するための記憶領域を確保し(S51)、その初期化要求と共に渡されたパラメータの値をその記憶領域に格納し(S52)、その後、記憶領域に格納されているパラメータの値が初期値であるか否かによって、TWAIN_DSとWIA_DLLのどちらから初期化を要求されたかを判断するようにした(S53〜S55)。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像データを外部の画像処理装置から取り込む手段を有する情報処理装置、コンピュータに画像データを外部の画像処理装置から取り込む機能の少なくとも一部を実現させるためのプログラム、およびこのようなプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータ(PC)等の情報処理装置により、スキャナやデジタルカメラなどの外部装置にアクセスしてその装置から画像データを取得できるようにすることが行われている。また、スキャナについては、PCからスキャナへアクセスしてその動作を制御し、画像の読み取りを行わせてその読み取りで得た画像データをPC側で取得できるようにすることも行われている。
【0003】
そして、PCにこれらの機能を設ける場合、PCに外部装置を制御するためのデバイスドライバと呼ばれるプログラムをインストールし、オペレーティングシステム(OS)上でそのプログラムを実行させることが広く行われている。
このようなデバイスドライバについては、例えば特許文献1に記載されている。
【0004】
また、情報処理装置から外部装置との間で画像データの授受を行うためのインタフェースの規格として、TWAINやWIA(Windows(登録商標) Image Acquisition)など、いくつかの規格が定められている。そして、デバイスドライバをこれらの規格に準拠して作成すれば、ユーザは同じ規格に準拠して作成されたアプリケーションソフトから指示を出して容易に外部装置にアクセスすることができ、利便性の高い環境を構築することができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、情報処理装置において、TWAIN規格とWIA規格との両方の通信を行えるようにする場合、図11に示すように、TWAIN規格に従ったドライバと、WIA規格に従ったドライバとを別々に用意することが一般的である。
図11に示したのは、PC10から外部のスキャナ20を制御するためのソフトウェアの構成である。この図に示す各モジュールは、プログラムそのものと共に、CPUがプログラムを実行することにより実現される機能も示す。
【0006】
そして、図11に示す構成では、TWAIN規格に従った通信のために、スキャナドライバとして、TWAIN対応スキャナコントローラ153が用意され、OSの一部として、アプリケーションとドライバとの間の通信を仲介するモジュールであるTWAIN_DSM(Data Source Manager)102が用意されている。
そして、TWAIN_DSM102の仲介により、TWAIN対応アプリケーション101からの要求をTWAIN対応スキャナコントローラ153に伝達し、TWAIN対応スキャナコントローラ153の機能によりスキャナ20にアクセスしてスキャナ20から画像データを取得することができる。
【0007】
図12に、この通信の際の各モジュールの動作シーケンス例を示す。
この例では、まず、TWAIN対応アプリケーション101が、スキャナ20を用いた読み取りにより画像データの取得をする旨の、ユーザからの指示を受け付ける(S101)。そして、この指示があると、TWAIN対応アプリケーション101はTWAIN_DSM102を起動する(S102)。また、TWAIN_DSM102は、起動されると、所定の初期化処理の後、TWAIN対応スキャナコントローラ153を起動して初期化要求を行う(S103)。
【0008】
そして、TWAIN対応スキャナコントローラ153は、初期化要求に応じた所定の初期化処理の後、予め定められた所定の格納先に格納されている、UIの表示に必要な設定情報(デフォルトの読み取り条件など)を取得し(S104)、その取得した設定情報に基づき、ユーザから読み取り条件の設定を受け付けるためのGUI(Graphical User Interface)をPC10のディスプレイに表示させる(S105)。
【0009】
そして、このGUIで、スキャナ20での読み取りに使用する読み取り条件の設定及び読み取り実行指示を受け付けると(S111)、読み取り条件と共に読み取り実行要求をスキャナ20に渡し(S112)、その読み取り条件に従った読み取りを実行させる(S113)。
【0010】
そして、スキャナ20は読み取りで得られた画像データを返してくるため、TWAIN対応スキャナコントローラ153がその画像データを取得し(S114)、TWAIN_DSM102を介してTWAIN対応アプリケーション101に渡す(S115,S116)。
以上の処理により、TWAIN対応アプリケーション101は、ユーザの指示に応じてスキャナ20から画像データを取得することができる。そして、その取得した画像データの内容をTWAIN対応アプリケーション101の画面に表示して編集に供する等の動作を行うことができる。
【0011】
図11の説明に戻ると、PC10において、WIA規格に従った通信のためには、スキャナドライバとして、WIA_DLL(Dynamic Link Library)164と、WIA対応スキャナコントローラ165とが用意されている。また、ウィンドウズ(登録商標)系のOSの機能の一部として、アプリケーションとドライバとを仲介するモジュールであるWIAサービス113が用意されている。さらに、WIA規格においては、スキャナ20を含む外部装置にアクセスする際に使用する設定情報(読み取り条件など)の設定を受け付けるためのUI(ユーザインタフェース)の機能を提供するWIA_UI112も、OSの機能の一部として用意され、WIAサービス113は、アプリケーション及びドライバと、このWIA_UI112との間の通信も仲介する。
【0012】
そして、WIAサービス113及びWIA_DLL164の仲介により、WIA対応アプリケーション111からの要求をWIA対応スキャナコントローラ165に伝達し、WIA対応スキャナコントローラ165の機能により、WIA_UI112によって受け付けた設定内容に従ってスキャナ20にアクセスし、スキャナ20から画像データを取得することができる。なお、WIA対応アプリケーション111は、TWAIN規格とWIA規格の双方に対応可能な、TWAIN対応アプリケーション101と共通のアプリケーションであってもよい。
【0013】
図13に、この通信の際の、各モジュールの図12と対応する動作シーケンス例を示す。
WIAの場合、まず、WIA対応アプリケーション111が、スキャナ20を用いた読み取りにより画像データの取得をする旨の、ユーザからの指示を受け付ける(S121)。そして、この指示があると、WIA対応アプリケーション111はWIAサービス113に起動要求を行ってこれを起動する(S122)。また、WIAサービス113は、起動されると、所定の初期化処理の後、WIA対応スキャナコントローラ165を起動するためにまずWIA_DLL164を起動し(S123)、WIA_DLL164がWIA対応スキャナコントローラ165を起動する(S124)。この際、WIA_DLL164はWIA対応スキャナコントローラ165に初期化要求を行う。
【0014】
WIA対応スキャナコントローラ165は、初期化要求に応じた所定の初期化処理の後、予め定められた所定の格納先(TWAINの場合とは異なる)に格納されている、UIの表示に必要な設定情報を取得する(S125)。
【0015】
そして、WIAにおいてはGUIの表示はWIA_UI112が行うため、まず、取得した設定情報をWIA_DLL164を介してWIAサービス113に返す(S126,S127)。その後、WIAサービス113がWIA_UI112を起動して、渡された設定情報に基づくUIの表示を要求し(S128)、WIA_UI112はこれに応じてGUIの表示を行う(S129)。なお、WIA_UI112の機能により表示可能なGUIは、簡素な比較的低機能のものである。
【0016】
一方、このGUIで、スキャナ20での読み取りに使用する読み取り条件の設定及び読み取り実行指示を受け付けると(S131)、WIA_UI112は読み取り条件と共に読み取り実行要求をWIAサービス113に渡す(S132)。
そして、WIAサービス113はその読み取り条件と読み取り実行要求をWIA_DLL164を介してWIA対応スキャナコントローラ165に渡し(S133,S134)、WIA対応スキャナコントローラ165がこれを受けてスキャナ20に読み取りの実行を要求することにより(S135)、スキャナ20にその読み取り条件に従った読み取りを実行させる(S136)。
【0017】
そして、スキャナ20は読み取りで得られた画像データを返してくるため、WIA対応スキャナコントローラ165がその画像データを取得し(S137)、WIA_DLL164及びWIAサービス113を介してWIA対応アプリケーション111に渡す(S138〜S140)。
以上の処理により、WIA対応アプリケーション111は、ユーザの指示に応じてスキャナ20から画像データを取得することができる。そして、TWAIN対応アプリケーション101の場合と同様、その画像データの内容表示や編集操作の受け付け等を行うことができる。
【0018】
しかしながら、以上説明してきた構成の場合、スキャナコントローラをTWAIN対応のものとWIA対応のものとで別々に開発する必要があるため、開発そのものに加え、その後の保守、アップデート、管理などに必要な労力が大きくなってしまうという問題があった。
一方で、TWAIN規格とWIA規格では、OSとの間のインタフェースの規格は異なるものの、スキャナの制御自体については、共通する処理も多い。
【0019】
しかし、この点を利用して両方の規格に対応できるスキャナコントローラを開発しようとしても、規格上の制約により、単にモジュールを共通化することは難しかった。例えば、TWAIN規格とWIA規格とでは、プロセスの都合上、設定情報を同じ場所に格納することができないので、TWAINドライバとWIAドライバとで設定情報をそれぞれ異なる位置に格納することになるため、スキャナコントローラがTWAIN_DSM102やWIAサービス113からの要求に応じて設定情報を読み書きする場合、どちらから要求があったかに応じてアクセス先を適切に決定できるようにする必要があった。
【0020】
ここでは、TWAINとWIAを例に挙げて説明したが、同様な問題は、異なる複数の規格に同時に対応できるようなソフトウェアモジュールを開発しようとする際には、常に起こりえるものである。
【0021】
この発明は、このような背景に鑑みてなされたものであり、画像データを外部の画像処理装置から取り込む手段を有する情報処理装置を実現する場合において、その情報処理装置を複数の規格での通信に同時に対応させるためのデバイスドライバを、少ない労力で提供できるようにすることを目的とする。
【課題を解決するための手段】
【0022】
上記の目的を達成するため、この発明は、画像データを外部の画像処理装置から取り込む取込手段を有する情報処理装置において、その情報処理装置と上記画像処理装置との間の通信を制御する通信制御手段と、それぞれオペレーティングシステムからの要求に応じて上記通信制御手段に対して初期化を含む種々の動作を要求する2つのインタフェース手段とを設け、上記通信制御手段に、上記インタフェース手段からの初期化要求を受け付けた場合に、上記インタフェース手段の少なくとも1つからその初期化要求と同時に渡される可能性のあるパラメータの値を記憶する記憶領域を確保し、上記初期化要求と共に渡されたパラメータの値があればその記憶領域に記憶させるパラメータ保存手段と、上記記憶領域に記憶されているパラメータの値が所定の初期値であるか否かに基づき、上記初期化要求を行ったインタフェース手段を特定する特定手段とを設けたものである。
【0023】
また、この発明は、画像データを外部の画像処理装置から取り込む取込手段を有する情報処理装置において、その情報処理装置と上記画像処理装置との間の通信を制御する通信制御手段と、それぞれオペレーティングシステムからの要求に応じて上記通信制御手段に対して初期化を含む種々の動作を要求する2つのインタフェース手段とを設け、上記通信制御手段が、上記インタフェース手段からの初期化要求を受け付けた場合に、その初期化要求と共に所定項目のパラメータの値を受け取ったか否かに基づき、上記初期化要求を行ったインタフェース手段を特定する特定手段を設けたものも提供する。
【0024】
上記の各情報処理装置において、上記各インタフェース手段と対応付けられた記憶手段であって、それぞれ上記通信制御手段が対応するインタフェース手段から要求された動作を実行する場合に参照すべき設定情報を記憶する記憶手段を設け、上記通信制御手段を、上記インタフェース手段からの要求に応じて上記設定情報を読み書きする場合に、上記特定手段が特定したインタフェース手段と対応付けられた記憶手段に対して読み書きを行う手段とするとよい。
【0025】
さらに、上記インタフェース手段の一方を、TWAIN規格に従って上記オペレーティングシステムからの要求を処理する手段とし、上記インタフェース手段の他方を、WIA規格に従って上記オペレーティングシステムからの要求を処理する手段とするとよい。
【0026】
また、この発明のプログラムは、コンピュータに、画像データを外部の画像処理装置から取り込む機能の少なくとも一部を実現させるためのプログラムにおいて、上記コンピュータを、そのコンピュータと上記画像処理装置との間の通信を制御する通信制御手段であって、それぞれオペレーティングシステムからの要求に応じてその通信制御手段に対して初期化を含む種々の動作を要求する2つのインタフェース手段からの要求に応じて動作し、上記インタフェース手段からの初期化要求を受け付けた場合に、上記インタフェース手段の少なくとも1つからその初期化要求と同時に渡される可能性のあるパラメータの値を記憶する記憶領域を確保し、上記初期化要求と共に渡されたパラメータの値があればその記憶領域に記憶させるパラメータ保存手段と、上記記憶領域に記憶されているパラメータの値が所定の初期値であるか否かに基づき、上記初期化要求を行ったインタフェース手段を特定する特定手段とを有する通信制御手段として機能させるためのプログラムである。
【0027】
また、この発明は、コンピュータに、画像データを外部の画像処理装置から取り込む機能の少なくとも一部を実現させるためのプログラムであって、上記コンピュータを、そのコンピュータと上記画像処理装置との間の通信を制御する通信制御手段であって、それぞれオペレーティングシステムからの要求に応じてその通信制御手段に対して初期化を含む種々の動作を要求する2つのインタフェース手段からの要求に応じて動作し、上記インタフェース手段からの初期化要求を受け付けた場合に、その初期化要求と同時に所定項目のパラメータの値を受け取ったか否かに基づき、上記初期化要求を行ったインタフェース手段を特定する特定手段を有する通信制御手段として機能させるためのプログラムである。
【0028】
上記の各プログラムにおいて、上記コンピュータを、上記各インタフェース手段と対応付けられた記憶手段であって、それぞれ上記通信制御手段が対応するインタフェース手段から要求された動作を実行する場合に参照すべき設定情報を記憶する記憶手段として機能させるためのプログラムをさらに含め、上記通信制御手段を、上記インタフェース手段からの要求に応じて上記設定情報を読み書きする場合に、上記特定手段が特定したインタフェース手段と対応付けられた記憶手段に対して読み書きを行う手段とするとよい。
【0029】
さらに、上記インタフェース手段の一方を、TWAIN規格に従って上記オペレーティングシステムからの要求を処理する手段とし、上記インタフェース手段の他方を、WIA規格に従って上記オペレーティングシステムからの要求を処理する手段とするとよい。
【0030】
この発明の記録媒体は、上記のいずれかのデバイス制御プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0031】
以上のようなこの発明の情報処理装置、プログラム又は記録媒体によれば、画像データを外部の画像処理装置から取り込む手段を有する情報処理装置を実現する場合において、その情報処理装置を複数の規格での通信に同時に対応させるためのデバイスドライバを、少ない労力で提供できるようにすることができる。
【図面の簡単な説明】
【0032】
【図1】この発明の情報処理装置の実施形態であるPCと、そのPCによる制御対象のスキャナとを備えた画像処理システムの構成例を示すブロック図である。
【図2】図1に示したPCのハードウェア構成を示す図である。
【図3】図1に示したPCが備えるスキャナの制御に関連するソフトウェアの構成を示す図である。
【図4】図3に示した各ソフトウェアモジュールがTWAIN規格に従った通信を行う場合の動作シーケンス例を示す図である。
【図5】同じくWIA規格に従った通信を行う場合の動作シーケンスである。
【0033】
【図6】図1に示したPCのCPUがスキャナコントローラの初期化時に実行する処理のフローチャートである。
【図7】図1に示したPCに記憶させる設定情報格納先の例を示す図である。
【図8】図1に示したPCのCPUがスキャナコントローラの機能により設定情報を取得する際に実行する処理のフローチャートである。
【図9】同じく設定情報の保存時に実行する処理のフローチャートである。
【図10】同じくUIの表示のために実行する処理のフローチャートである。
【0034】
【図11】従来のPCが備えるスキャナの制御に関連するソフトウェアの構成を示す図である。
【図12】図11に示した各ソフトウェアモジュールがTWAIN規格に従った通信を行う場合の動作シーケンス例を示す図である。
【図13】同じくWIA規格に従った通信を行う場合の動作シーケンスである。
【発明を実施するための形態】
【0035】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
まず図1に、この発明の情報処理装置の実施形態であるPC(パーソナルコンピュータ)と、そのPCによる制御対象の画像処理装置であるスキャナとを備えた画像処理システムの構成例を示す。
図1に示すように、この画像処理システム1は、PC10と、スキャナ20とを、通信経路30により接続して構成したシステムである。通信経路としては、LAN(Local Area Network)やUSB(Universal Serial Bus)を始め、有線、無線を問わず、任意の通信経路を採用可能である。
【0036】
また、図2に、図1に示したPC10のハードウェア構成を示す。
図2に示すように、PC10は、CPU11,ROM12,RAM13,表示器14,操作部15,HDD(ハードディスクドライブ)16,通信インタフェース(I/F)17を備え、これらがシステムバス18により接続された構成である。表示器14は、例えば液晶ディスプレイ、操作部15は、例えばマウスやキーボードである。もちろん、外部の表示器や操作部を用いてもよい。
これらのハードウェアは、ハードウェアとしては公知の構成でよい。
【0037】
そして、PC10においては、CPU11が実行するOS上で、ROM12やHDD16に記憶されているスキャナドライバプログラムを動作させることにより、スキャナ20との間の通信やスキャナ20の動作を制御するスキャナコントローラや、OSとそのスキャナコントローラとの間のインタフェースの機能を実現することができる。
【0038】
また、スキャナ20も、ハードウェアとしては、CPU,ROM,RAM,通信I/F,操作パネル,読み取りユニット等を備えた公知のものでよい。そして、このスキャナ20は、PC10のスキャナコントローラからの読み取り実行命令に従い、その命令と共に渡された読み取り条件に従った設定で、読み取りユニットに載置された原稿を読み取ってその内容を示す画像データを取得し、スキャナコントローラに返す機能を有する。また、スキャナ20を、プリント、ファクシミリ通信、文書蓄積等の機能を併せ持つMFP(デジタル複合機)として構成してもよい。
【0039】
次に、図3に、PC10が備えるスキャナ20の制御に関連するソフトウェアの構成を示す。この図は図11と対応するものであり、図11に示したものと同じ構成要素については同じ符号を付した。
図3と図11を対比するとわかるように、図3に示す構成において、アプリケーション及びOSに含まれる部分は、図11に示す構成と全く同じである。逆に言えば、これらの部分はスキャナ20やスキャナドライバの側の都合で改変することはできないので、従来と同じ構成でも動作に支障がないようにスキャナ20やスキャナドライバを作成する必要がある。
【0040】
また、図3の構成においては、スキャナドライバを、UIコントローラ103、TWAIN_DS(Data Source)104、WIA_DLL114、およびスキャナコントローラ120により構成している。
そして、スキャナコントローラ120は、スキャナ20にアクセスして画像の読み取りを実行させ、その読み取りで得られた画像データを取得する機能を実現するモジュールであり、PC10とスキャナ20との間の通信を制御するモジュールである。また、スキャナコントローラ120は、TWAIN規格に従った通信とWIA規格に従った通信の双方で共通に利用できる構成としている。
【0041】
すなわち、スキャナ20から画像データを取得する部分の動作自体については、TWAIN規格でもWIA規格でも特に差はなく、サポートしている機能の種類が異なる程度であるので、このための制御動作については、共通のプログラムにより実現可能である。ただし、課題の項で述べた通り、TWAINとWIAの規格に依存する違いもあるため、スキャナコントローラ120には、この点が問題とならないようにするための機構を設けている。この機構については後述する。
【0042】
また、TWAIN規格とWIA規格とでは、OSとのインタフェースが異なるため、TWAIN_DSM102とスキャナコントローラ120との間の通信を仲介するモジュールとしてTWAIN_DS104を設けると共に、WIAサービス113とスキャナコントローラ120との間の通信を仲介するモジュールとしてWIA_DLL114を設けている。そして、これらのモジュールにより、TWAIN_DSM102から渡される要求やパラメータも、WIAサービス113から渡される要求やパラメータも、同じくスキャナコントローラ120が扱うことのできる要求やパラメータに変換する。
【0043】
なお、TWAIN_DS104に相当する仲介機能は図11に示した構成ではTWAIN対応スキャナコントローラ153に含まれていたが、ここでは、スキャナコントローラ120をWIA規格と共用できるようにするため、スキャナコントローラ120から切り離している。
また、UI制御に関する機能は、WIA規格ではOSが提供するため、TWAIN規格とWIA規格の双方で共通に使用するものではないので、ここではスキャナコントローラ120と切り離して、TWAIN規格に従った通信の際にUI制御に関する機能を担うUIコントローラ103を設けている。
【0044】
以上の構成により、ユーザがTWAIN対応アプリケーション101から指示を行った場合でもWIA対応アプリケーション111から指示を行った場合でもスキャナ20にアクセスして画像の読み取りを行わせ、その読み取りで得た画像データをアプリケーション上で取得できる環境を構築することができる。
なお、以上の構成のうち、TWAIN_DS104とUIコントローラ103に相当する機能は、図11の構成ではTWAIN対応スキャナコントローラに含まれていたものである。
【0045】
次に、PC10がスキャナ20と通信を行う際の各部の動作シーケンスについて説明する。
まず、図4に、TWAIN規格に従った通信を行う場合の動作シーケンス例を示す。
この動作例においては、まず、TWAIN対応アプリケーション101が、スキャナ20を用いた読み取りにより画像データの取得をする旨の、ユーザからの指示を受け付ける(S11)。そして、この指示があると、TWAIN対応アプリケーション101はTWAIN_DSM102を起動する(S12)。また、TWAIN_DSM102は、起動されると、所定の初期化処理の後、スキャナコントローラ120を起動するためにまずTWAIN_DS104を起動し(S13)、TWAIN_DS104がスキャナコントローラ120を起動する(S14)。この際、TWAIN_DS104はスキャナコントローラ120に初期化要求を行う。
【0046】
スキャナコントローラ120は、初期化要求に応じた初期化処理の中で、初期化要求元がTWAIN_DS104であることを認識し(S15)、これに応じて、TWAIN用の予め定められた格納先に格納されている、UIの表示に必要な設定情報(デフォルトの読み取り条件など)を取得する(S16)。そして、その取得した設定情報に基づき、スキャナコントローラ120がUIコントローラ103を起動して、ステップS15で取得した設定情報に基づくUIの表示を要求し(S17)、UIコントローラ103はこれに応じて、ユーザから読み取り条件の設定を受け付けるためのGUIをPC10のディスプレイに表示させる(S18)。
【0047】
そして、このGUIで、スキャナ20での読み取りに使用する読み取り条件の設定及び読み取り実行指示を受け付けると(S21)、UIコントローラ103はその読み取り条件と読み取り実行要求をスキャナコントローラ120に渡す(S22)。そして、スキャナコントローラ120がこれを受けてスキャナ20に読み取りの実行を要求することにより(S23)、スキャナ20にその読み取り条件に従った読み取りを実行させる(S24)。
【0048】
そして、スキャナ20は読み取りで得られた画像データを返してくるため、スキャナコントローラ120がその画像データを取得し(S25)、TWAIN_DS104とTWAIN_DSM102とを介してTWAIN対応アプリケーション101に渡す(S26〜S28)。
以上の処理により、TWAIN対応アプリケーション101は、ユーザの指示に応じてスキャナ20から画像データを取得することができる。そして、その取得した画像データの内容をTWAIN対応アプリケーション101の画面に表示して編集に供する等の動作を行うことができる。この場合には、スキャナドライバは、TWAIN規格に対応したTWAINドライバとして機能することになる。
【0049】
次に、図5に、WIA規格に従った通信を行う場合の動作シーケンスを示す。
この動作シーケンスは、図13に示したものとモジュール構成は一部異なるものの、共通点が多いため、相違点を中心に説明する。
WIAの場合、WIA対応アプリケーション111が、スキャナ20を用いた読み取りにより画像データの取得をする旨の、ユーザからの指示を受け付ける(S31)と、図13の場合と同様、WIAサービス113とWIA_DLL114が順次起動され、これらを介してスキャナコントローラ120が起動される(S32〜S34)。この際、WIA_DLL114はスキャナコントローラ120に初期化要求を行う。
【0050】
そして、スキャナコントローラ120は、初期化要求に応じた初期化処理の中で、初期化要求元がWIA_DLL114であることを認識し(S35)、これに応じて、WIA用の予め定められた格納先に格納されている、UIの表示に必要な設定情報(デフォルトの読み取り条件など)を取得する(S36)。
【0051】
そして、スキャナコントローラ120は、WIA_UI112によるGUIの表示に供すべく、その設定情報をWIA_DLL114を介してWIAサービス113に渡し(S37,S38)、WIAサービス113がWIA_UI112にGUIの表示を行わせる(S39,S40)。
【0052】
このGUIで読み取り条件の設定や読み取り実行指示を受け付けた後のデータの流れ(S41〜S50)は、図13の場合と同様であり、以上の処理により、WIA対応アプリケーション111は、ユーザの指示に応じてスキャナ20から画像データを取得することができる。そして、TWAIN対応アプリケーション101の場合と同様、その画像データの内容表示や編集操作の受け付け等を行うことができる。
この場合には、スキャナドライバは、WIA規格に対応したWIAドライバとして機能することになる。
【0053】
以上の図4及び図5に示した動作において、特徴的な点の1つは、スキャナコントローラ120が、初期化処理時に、初期化の要求元を識別する処理と、その識別結果に応じた格納先から設定情報を取得する点である。以下、この点についてさらに説明する。
【0054】
まず、図6に、PC10のCPU11がスキャナコントローラ120の初期化時に実行する処理のフローチャートを示す。この処理は、TWAIN_DS104又はWIA_DLL114がスキャナコントローラ120を初期化する要求を行った場合に、CPU11がスキャナコントローラ120の機能を実現するためのプログラムを実行することにより行うものである。
【0055】
そして、この処理においては、CPU11はまず、ステップS51で、TWAIN_DS104とWIA_DLL114の少なくとも一方から初期化要求と共に渡される可能性のあるパラメータの値を記憶するための記憶領域を確保する。そして、ステップS52で、初期化要求と共に実際に渡されたパラメータの値を、ステップS51で確保した記憶領域に格納する。これらのステップS51及びS52の処理においては、CPU11がパラメータ保存手段として機能する。
【0056】
ここで、WIAドライバにおいては、スキャナコントローラ120を初期化する際に、いくつかのパラメータの値を初期化要求と共にスキャナコントローラ120に渡す。一方、TWAINドライバにおいては、初期化要求と共にこのような値は渡さない。
【0057】
そして、スキャナコントローラ120の機能としては、どちらの規格にも対応できるようにするため、ステップS51で、少なくとも一方のドライバで値の記憶が必要になるパラメータについて、記憶領域を確保する機能を設けている。この際、確保した領域は、所定の初期値、例えば「NULL」が書き込まれた状態となる。そしてその後、実際に渡されたパラメータの値をその記憶領域に書き込むため、書き込みの後は、WIA_DLL114から初期化要求を受けていれば、渡された具体的な値が書き込まれた状態となり、TWAIN_DS104から初期化要求を受けていれば、何も値が書き込まれず初期値のままとなっているはずである。
【0058】
従って、ステップS52の後で、記憶領域に格納されているパラメータの値が初期値か否かによって、初期化の要求元を識別することができる。ステップS53の判断が、この識別のための判断である。
【0059】
そして、初期値が格納されていた場合には、TWAIN_DS104から初期化を要求されたと判断し、ステップS54で、ドライバ種別が「TWAIN」である、すなわち、以後、TWAIN規格に従った処理を行う旨の情報を記憶する。また、初期値以外の値が格納されていた場合には、WIA_DLL114から初期化を要求されたと判断し、ステップS55で、ドライバ種別が「WIA」である、すなわち、以後、WIA規格に従った処理を行う旨の情報を記憶する。このステップS55の処理においては、CPU11が特定手段として機能する。
【0060】
このドライバ種別は、スキャナコントローラ120が終了あるいは再度初期化されるまで保持できるのであれば、メモリ上に設けたレジスタに記憶する、ファイルに情報を書き込む等、任意の方法で記憶しておくことができる。
そして、いずれの場合も、ステップS56でその他所要の初期化処理を行い、図6の処理を終了する。
【0061】
以上の処理によれば、スキャナコントローラ120が、TWAIN_DS104やWIA_DLL114から何ら規格あるいはモジュールを識別する情報を受け取らなくても、初期化要求元を適切に識別し、以後、要求元に合った規格に従った動作を行うことができる。
なお、スキャナコントローラ120は、自身を起動したモジュールと対応付けられており、一旦起動された後は、終了されるまで、要求を送信してくるモジュールが変わることはない。
【0062】
ところで、図6の処理で記憶したドライバ種別の情報は、例えば、スキャナコントローラ120が予め保存されている設定情報を読み書きする際に使用する。
TWAIN規格においても、WIA規格においても、読み取り条件の設定を受け付けるためのGUIを表示する際に初期値としてGUI上に表示する読み取り条件や、ユーザが読み取り条件を指定しない場合に使用するデフォルトの読み取り条件などの設定情報を、予めPC10に記憶させておくことができる。そして、その記憶場所は、レジストリ内に用意される。
【0063】
そこで、PC10には、図7に示すように、スキャナコントローラ120から参照できる位置に、設定情報格納先の情報として、TWAIN_DS104からの要求に応じて動作する場合にアクセスする設定情報格納先(TWAIN用アクセス先情報)と、WIA_DLL114からの要求に応じて動作する場合にアクセスする設定情報格納先(WIA用アクセス先情報)とを記憶させておく。
【0064】
そして、スキャナコントローラ120の機能によりTWAIN_DS104又はWIA_DLL114からの要求に応じて動作する際に設定情報を取得したり保存したりする必要が生じた場合に、CPU11は、図8又は図9の処理を実行することにより、要求元のモジュールに応じた適切な動作を行うことができる。
【0065】
図8に示すのは、設定情報の取得の場合の処理である。設定情報の取得は、例えば図4のステップS16や図5のステップS36の処理、あるいは、予め設定情報として登録してある認証情報を用いてユーザを認証する場合などに行うことになる。
この場合、ステップS61で、CPU11は初期化時に図6のステップS54又はS55で記憶したドライバ種別の情報を参照する。そして、これが「TWAIN」であれば、ステップS62に進み、図7に示したTWAIN用アクセス先情報が示す位置に格納されている、必要な設定値を取得して処理を終了する。ステップS61で「WIA」であれば、ステップS63に進み、図7に示したWIA用アクセス先情報が示す位置に格納されている、必要な設定値を取得して処理を終了する。
【0066】
なお、いずれの場合も、アクセス先情報として記憶されているキーは、規格と対応する設定情報「群」の位置を示すに過ぎないから、取得する情報の位置を示すレジストリキーは、アクセス先情報として記憶されているキーに、取得したい設定値に応じた設定項目の識別子を付け加えて生成する。設定項目の識別子については、スキャナコントローラ120の作成者により任意に割り当て可能であるから、同じ項目についてはTWAIN用とWIA用とで同じ識別子を割り当てるようにすれば、アクセス先情報から設定情報と対応するレジストリキーを生成する処理は、TWAIN用とWIA用とで共通化することができる。
【0067】
図9に示すのは、設定情報の保存の場合の処理である。設定情報の保存は、図示はしていないが、図4のステップS21や図5のステップS41で受け付けた読み取り条件を、後で呼び出せるように保存しておく処理などで行うことになる。
この場合も、ステップS71で、CPU11は初期化時に記憶したドライバ種別の情報を参照する。そして、これが「TWAIN」か「WIA」かに応じて、図8の場合と同様、ステップS72又はS73でアクセス先を決定し、その位置に必要な設定情報を保存して処理を終了する。
【0068】
以上の処理により、スキャナコントローラ120は、TWAINとWIAのどちらの規格のスキャナドライバとして使用されているかに応じて、その規格で使用する設定情報に適切にアクセスすることができる。
そして、このことにより、複数の規格に対応したスキャナコントローラ120を提供することができ、規格毎に個別にスキャナコントローラを提供する場合に比べ、開発そのものや、その後の保守、アップデート、管理などに要する労力を低減することができる。この点は、スキャナドライバ全体で見た場合も、同様である。
【0069】
なお、スキャナコントローラ120がドライバ種別の情報に基づいて行う動作は、設定情報の読み書きのみではない。
図10に、この一例として、UIの表示を行う場合の処理を示す。
スキャナコントローラ120として機能するCPU11は、初期化要求を受けた場合を始め、UIを表示する必要があると判断すると、図10のフローチャートに示す処理を開始する。
【0070】
そして、まずステップS81で、UIの表示に必要な設定値を、図8に示した処理により取得する。その後、ステップS82でドライバ種別を判断する。
その結果、「TWAIN」であれば、ステップS83で、UIコントローラ103を起動してステップS81で取得した設定値を渡し、UIの表示を要求する。この処理は、図4のステップS17の処理に相当し、UIコントローラ103がこの要求に応じてUIの表示を行う。
【0071】
また、「WIA」であれば、ステップS84で、ステップS81で取得した設定値を、要求の送信元(この場合常にWIA_DLL114)へ返す。この処理は、図5のステップS37の処理に相当し、後段でWIA_UI112がUIの表示を行う。
以上のように、図10の処理により、モジュール構成が規格毎に異なる場合でも、スキャナコントローラ120は、TWAINとWIAのどちらの規格のスキャナドライバとして使用されているかに応じて、適切なモジュールにUIを表示させることができる。
【0072】
以上で実施形態の説明を終了するが、この発明において、装置の構成、具体的な処理内容、モジュール構成、データの形式、採用する規格等が、以上説明してきた実施形態において具体的に説明したものに限られないことは、もちろんである。
例えば、図6の処理において、ドライバの種別を記憶する例について説明したが、設定情報へのアクセスの目的であれば、図6のステップS54又はS55で、規格と対応するアクセス先情報を、スキャナコントローラ120が使用するアクセス先情報として設定し、図8及び図9の処理において、ステップS61やS71の判断をせず、常にその設定したアクセス先情報に基づいて設定情報にアクセスするようにすることも考えられる。
【0073】
また、図6の処理において、パラメータの値を一旦記憶領域に格納してからその値が初期値か否かを判断するようにしたが、要求の受信時に、パラメータの値が付されているか否か判断できるのであれば、その判断結果に基づき、その時点でドライバ種別を決定するようにしてもよい。
【0074】
また、スキャナドライバを対応させる規格も、TWAINとWIAに限られることはない。初期化要求と共にスキャナコントローラ120にパラメータの値を渡すか否かで差があるような規格であれば、他の規格を用いる場合にもこの発明を適用することができる。
また、スキャナドライバを3種類以上の規格に対応させる場合、すなわち、OSとスキャナコントローラ120との間の通信を仲介するインタフェース手段が3種類以上ある場合でも、この発明を適用することができる。
また、設定情報の格納位置も、レジストリに限らず、ファイル等であってもよい。
【0075】
また、この発明を、スキャナ以外の画像処理装置、例えばデジタルカメラから画像データを取り込む情報処理装置に適用可能であることも、もちろんである。
この場合において、画像処理装置が情報処理装置からの要求に応じて読み取りや撮影などにより新規に画像データを作成することは必須ではなく、既に蓄積されている画像データを情報処理装置に送信するものであってもよい。
【0076】
また、この発明の記録媒体は、コンピュータにハードウェアを制御させて上述したスキャナコントローラ120のような機能を実現させるためのプログラムを記録した記録媒体である。このような記録媒体からこのプログラムをRAMに読み出させてCPUに実行させることにより、上述した実施形態や変形例と同様の効果を得ることができる。また、このようなプログラムを、記録媒体の配布によらず、ダウンロード等により提供することも可能である。
また、以上述べてきた各実施形態の構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【0077】
以上説明してきたように、この発明の情報処理装置、プログラム又は記録媒体によれば、画像データを外部の画像処理装置から取り込む手段を有する情報処理装置を実現する場合において、その情報処理装置を複数の規格での通信に同時に対応させるためのデバイスドライバを、少ない労力で提供できるようにすることができる。
従って、この発明を適用することにより、デバイスドライバを提供するためのコストを低減することができる。
【符号の説明】
【0078】
10:PC、20:スキャナ、30:通信経路、101:TWAIN対応アプリケーション、102:TWAIN_DSM、103:UIコントローラ、104:TWAIN_DS、111:WIA対応アプリケーション、112:WIA_UI、113:WIAサービス、114:WIA_DLL、120:スキャナコントローラ
【先行技術文献】
【特許文献】
【0079】
【特許文献1】特開2007−235743号公報

【特許請求の範囲】
【請求項1】
画像データを外部の画像処理装置から取り込む取込手段を有する情報処理装置であって、
当該情報処理装置と前記画像処理装置との間の通信を制御する通信制御手段と、
それぞれオペレーティングシステムからの要求に応じて前記通信制御手段に対して初期化を含む種々の動作を要求する2つのインタフェース手段とを有し、
前記通信制御手段が、
前記インタフェース手段からの初期化要求を受け付けた場合に、前記インタフェース手段の少なくとも1つから該初期化要求と同時に渡される可能性のあるパラメータの値を記憶する記憶領域を確保し、前記初期化要求と共に渡されたパラメータの値があればその記憶領域に記憶させるパラメータ保存手段と、
前記記憶領域に記憶されているパラメータの値が所定の初期値であるか否かに基づき、前記初期化要求を行ったインタフェース手段を特定する特定手段とを有することを特徴とする情報処理装置。
【請求項2】
画像データを外部の画像処理装置から取り込む取込手段を有する情報処理装置であって、
当該情報処理装置と前記画像処理装置との間の通信を制御する通信制御手段と、
それぞれオペレーティングシステムからの要求に応じて前記通信制御手段に対して初期化を含む種々の動作を要求する2つのインタフェース手段とを有し、
前記通信制御手段が、
前記インタフェース手段からの初期化要求を受け付けた場合に、該初期化要求と共に所定項目のパラメータの値を受け取ったか否かに基づき、前記初期化要求を行ったインタフェース手段を特定する特定手段を有することを特徴とする情報処理装置。
【請求項3】
請求項1又は2に記載の情報処理装置であって、
前記各インタフェース手段と対応付けられた記憶手段であって、それぞれ前記通信制御手段が対応するインタフェース手段から要求された動作を実行する場合に参照すべき設定情報を記憶する記憶手段を有し、
前記通信制御手段が、前記インタフェース手段からの要求に応じて前記設定情報を読み書きする場合に、前記特定手段が特定したインタフェース手段と対応付けられた記憶手段に対して読み書きを行う手段であることを特徴とする情報処理装置。
【請求項4】
請求項1乃至3のいずれか一項に記載の情報処理装置であって、
前記インタフェース手段の一方は、TWAIN規格に従って前記オペレーティングシステムからの要求を処理する手段であり、
前記インタフェース手段の他方は、WIA規格に従って前記オペレーティングシステムからの要求を処理する手段であることを特徴とする情報処理装置。
【請求項5】
コンピュータに、画像データを外部の画像処理装置から取り込む機能の少なくとも一部を実現させるためのプログラムであって、
前記コンピュータを、
該コンピュータと前記画像処理装置との間の通信を制御する通信制御手段であって、
それぞれオペレーティングシステムからの要求に応じて該通信制御手段に対して初期化を含む種々の動作を要求する2つのインタフェース手段からの要求に応じて動作し、
前記インタフェース手段からの初期化要求を受け付けた場合に、前記インタフェース手段の少なくとも1つから該初期化要求と同時に渡される可能性のあるパラメータの値を記憶する記憶領域を確保し、前記初期化要求と共に渡されたパラメータの値があればその記憶領域に記憶させるパラメータ保存手段と、
前記記憶領域に記憶されているパラメータの値が所定の初期値であるか否かに基づき、前記初期化要求を行ったインタフェース手段を特定する特定手段とを有する通信制御手段として機能させるためのプログラム。
【請求項6】
コンピュータに、画像データを外部の画像処理装置から取り込む機能の少なくとも一部を実現させるためのプログラムであって、
前記コンピュータを、
該コンピュータと前記画像処理装置との間の通信を制御する通信制御手段であって、
それぞれオペレーティングシステムからの要求に応じて該通信制御手段に対して初期化を含む種々の動作を要求する2つのインタフェース手段からの要求に応じて動作し、
前記インタフェース手段からの初期化要求を受け付けた場合に、該初期化要求と同時に所定項目のパラメータの値を受け取ったか否かに基づき、前記初期化要求を行ったインタフェース手段を特定する特定手段を有する通信制御手段として機能させるためのプログラム。
【請求項7】
請求項5又は6に記載のプログラムであって、
前記コンピュータを、前記各インタフェース手段と対応付けられた記憶手段であって、それぞれ前記通信制御手段が対応するインタフェース手段から要求された動作を実行する場合に参照すべき設定情報を記憶する記憶手段として機能させるためのプログラムをさらに含み、
前記通信制御手段が、前記インタフェース手段からの要求に応じて前記設定情報を読み書きする場合に、前記特定手段が特定したインタフェース手段と対応付けられた記憶手段に対して読み書きを行う手段であることを特徴とするプログラム。
【請求項8】
請求項5乃至7のいずれか一項に記載のプログラムであって、
前記インタフェース手段の一方は、TWAIN規格に従って前記オペレーティングシステムからの要求を処理する手段であり、
前記インタフェース手段の他方は、WIA規格に従って前記オペレーティングシステムからの要求を処理する手段であることを特徴とするプログラム。
【請求項9】
請求項5乃至8のいずれか一項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−176597(P2010−176597A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−21048(P2009−21048)
【出願日】平成21年1月31日(2009.1.31)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】