コールバック関数の利用
コールバック関数は、ライブラリーの公開関数の処理中に、プロジェクトの処理を入れ込むことが出来る機能です。
ライブラリーの開発者は、公開プログラムファイルに、ライブラリーが指定する関数名、引数および戻り値で、コールバック関数の雛形(スケルトンコード)と説明を記述します。
ライブラリーユーザーは、プロジェクトにライブラリーを追加した際に公開プログラムファイルが追加されますので、ファイル内の説明を見て、必要な処理を実装します。
例:コールバック関数の記載例
Function Lib_Callback(num As Integer) As Boolean
'XXXの処理の後にライブラリーから呼び出されます。
'パラメータ: numの値が適切かどうかをチェックして、適切な場合はTrueを、そうでない場合はFalseを戻します。
Fend
具体的には、以下の用途があります。
・ライブラリー処理中における、ユーザープログラムによる、後続処理の変更。
【具体例】
- ライブラリーは、入力ビットの値を監視し、一定時間以上Offの状態が続いた場合に、Boolean型の戻り値のコールバック関数を呼び出す。戻り値がFalseで処理を継続し、Trueで処理を終了する。
- ライブラリーユーザーは、コールバック関数で以下のように実装し、後続処理の継続/終了を決定する。
- 別の入力ビットがOnの場合: MsgBoxコマンドで、オペレーターに継続/終了を選択させて、結果をコールバック関数の戻り値とする。
- 別の入力ビットがOffの場合: 戻り値をTrueにして、オペレーターによる選択無しで処理を終了させる。
- 別の入力ビットがOnの場合: MsgBoxコマンドで、オペレーターに継続/終了を選択させて、結果をコールバック関数の戻り値とする。
・公開関数の処理が長時間かかる場合の進捗表示と中断。
【具体例】
- ライブラリーは、進捗率を引数で持つ、Boolean型の戻り値のコールバック関数を定期的に呼び出す。戻り値がTrueの場合、処理を終了する。
- ライブラリーユーザーは、GUIビルダーのフォームで、コールバック関数で取得した進捗率をGSetして表示する。また、フォーム上の中止ボタンが押された場合は、コールバック関数が呼び出されたタイミングでコールバック関数の戻り値をTrueにする。