基本的な処理の流れは
となる。実際のプログラムとしては、1〜3および6に関しては、決まり文句の呼び出しを行うだけで良い上、サンプルプログラムのコードをほぼそのまま再利用することも可能だ。あとはパラメータとスキャン処理の実行を、カスタムアプリケーションの処理フローに合わせて行うだけである。
スキャン機能の実行も、実際には自ソフトウェア内で処理すべきことはほとんどない。前述したように、CapturePerfect SDKはCapturePerfect 3.0が持っている機能をAPIとして解放するものである。CapturePerfect 3.0上でパラメータを設定し、各種機能をツールバーやメニューから選択して実行する。これと同じことを、VB上のプログラムで順に指示していくだけでいい。
具体的には
以上、9種類の機能呼び出しの組み合わせでアプリケーションを構築していくわけだ。
では、具体的にサンプルプログラムの中身を見ていくことにしよう。
サンプルプログラムには3つのコードが標準モジュールとしてロードされている。
このうちcallback.basとCappeAPI.basには、CapturePerfect SDKで使われるAPI、構造体、定数などの宣言、必須の関数などが収められている。自作アプリケーションを作成する場合は、このサンプルアプリケーションをテンプレートとして利用し、改造していくのがいいが、スクラッチから組む場合でも、これら2つはカスタムアプリケーションを作成する際にも必ずプロジェクトに組み込むようにしておき、リストをプリントアウトしておくといい。
global.basの中にはエラー名表示ルーチン(ShowErrorMessage)、エラー名取得ルーチン(GetErrorName)が含まれており、自アプリケーション内で利用すると便利だ。
それ以外に関しては、メインフォーム内のコードに有益な情報が多数ある。以下、順に見ていこう。
初期化
メインフォームのロード時に初期化を行う。
Private Sub Form_Load() g_DriverLoaded = False g_Overwrite = False g_ScanContinue = True g_ShowDriverDialog = True g_StartPage = 0 g_Profile = App.Path & "\profile.ini" g_UserPassword = "" g_OwnerPassword = "" g_AuthorityFlags = 0 g_ScannerName = "" g_dwParamUI = 0 g_ImageBuffer = 0 g_Prescanning = False g_Scanning = False g_Cancel = False g_ParamUI = False ChDir App.Path Dim rtn As Long rtn = ShowErrorMessage(CPAPIInitialize(Me.hWnd)) If rtn = CPAPI_ERROR_SUCCESS Then rtn = LoadDriver() End If End Sub
ここではプログラム内部で使っているステータスフラグを初期化した上で、CapturePerfect SDKの初期化を呼び出しているのがわかるだろう。初期化の結果次第でエラー表示を行うよう、ShowErrorMessageのパラメータの形で呼んでいる。
初期化が完了するとLoadDriverを呼び出して、ドライバの初期パラメータなどを設定する。LoadDriverルーチンは、メインフォームのGeneralパートに置かれている。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:キヤノンマーケティングジャパン 株式会社
制作:ITmedia +D 編集部/掲載内容有効期限:2006年6月19日