一方、ユーザーがインタラクティブにスキャン条件を変更したり、処理の流れに応じてパラメータを自動的に判別して切り替えるようなプログラミングを行う際には、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日