一方、ユーザーがインタラクティブにスキャン条件を変更したり、処理の流れに応じてパラメータを自動的に判別して切り替えるようなプログラミングを行う際には、SetParam系のAPIを呼び出す。OCR処理の有無やバーコード読み取りの指定、OCR処理の範囲などもここで指定する。これらのAPIは、APIへの引数で設定をサイレントに変更できるほか、CapturePerfect 3.0でも登場するさまざまな設定ダイアログを表示させ、ユーザーにパラメータを選択させることもできる。
引数による設定の変更には3種類が用意されており、設定するパラメータの型によってAPIを使い分ける。引数には変更するパラメータを示すタグと設定する値の2つを利用する。パラメータのタグに関しては、ドキュメントのリファレンス以外にもCappeAPI.bas内の定数定義を参照しておくといい。各タグには詳細なコメントが振られている。
同様に、3種類が用意されているGetParam系のAPIを用いれば、タグを引数とすることで各設定値の現在値を知ることが可能だ。
一方、ユーザーインタフェースを用いる場合はUI制御のAPIを呼び出す。このAPIは引数によって4種類のダイアログを切り替えることができる。それぞれCapturePerfect 3.0の「スキャンバッチファイル設定」、「バーコード/OCRログ設定」、「容量警告設定」、「OCR設定」に対応するものだ。
スキャンの実行
サンプルプログラム中、実際のスキャンは、メインフォームのジェネラルパートに書かれている関数によって行われている。
Private Function Scan(ScanMode As ScanningMode) As Long If ScanMode <> modeScanPage Then Dim FileIndex As Long ********** CPAPI_TAG_FFINDEX, FileIndex, 0 If frmLoadScanParam.ShowScanParamSetting( _ g_Overwrite, _ g_ScanContinue, _ g_ShowDriverDialog, _ g_StartPage, _ g_Profile, _ g_UserPassword, _ g_OwnerPassword, _ g_AuthorityFlags, _ FileIndex, _ ScanMode <> modeScanFile _ ) <> vbOK Then Scan = CPAPI_ERROR_CANCEL Exit Function End If End If Dim rtn As Long rtn = LoadDriver() If rtn <> CPAPI_ERROR_SUCCESS Then Scan = rtn Exit Function End If g_Prescanning = False g_Scanning = False g_Cancel = False Select Case ScanMode Case modeScanPage rtn = ShowErrorMessage(CPAPIScanPage()) Case modeScanFile rtn = ShowErrorMessage(CPAPIScanBatch()) Case modeScanAppend rtn = ShowErrorMessage(CPAPIScanAppend()) Case modeScanInsert rtn = ShowErrorMessage(CPAPIScanInsert()) Case modeScanReplace rtn = ShowErrorMessage(CPAPIScanReplace()) End Select If rtn = CPAPI_ERROR_SUCCESS Then g_Prescanning = True End If Scan = rtn End Function
PDF作成、TIFF作成など、どのファイルを作成するかは、前述のようにあらかじめprofileやSetParam APIなどで指定してあるため、プログラマーは作成ファイルの違いをこの時点で意識する必要はない。1ページ、全ページのスキャンを行うか、追加モード、挿入モード、置き換えモードなど、スキャン結果をどのようにファイルに反映させるかでモードを選び、各APIを呼び出すだけでいい。
スキャンイメージの取得
上記のようにスキャン指示をAPIに対して行っても、実際に画面上にスキャンしたイメージが表示されるわけではないが、パラメータに格納用バッファのアドレスポインタを入れておくことで、自動的にイメージデータ(wParam)とデータの長さ(lParam)が設定される。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:キヤノンマーケティングジャパン 株式会社
制作:ITmedia +D 編集部/掲載内容有効期限:2006年6月19日