ASYNC_COMPLETION
コールバックシグネチャ
void ASYNC_COMPLETION(
DWORD dwRequestID,
INT lResult
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| dwRequestID | DWORD | サービスプロバイダーが非同期に実行した元の要求で渡された識別子です。 |
| lResult | INT | 操作の結果です。成功を示すゼロ、またはエラーを示す負の値のいずれかになります。関数から返される可能性のある具体的なエラー値は、非同期実行でも同期実行でも同じです。 |
公式ドキュメント
Completion_Proc は、TAPI が実装し、 TSPI_providerInit のパラメーターとしてサービスプロバイダーに渡されるコールバック関数です。サービスプロバイダーは、非同期に実行する回線または電話の処理の完了を報告するために、この関数を呼び出します。
ASYNC_COMPLETION 型は、このコールバック関数へのポインターを定義します。Completion_Proc は、アプリケーション定義の関数名のプレースホルダーです。
解説(Remarks)
この関数を呼び出すときの呼状態は、どの状態であってもかまいません。
この手続きは、サービスプロバイダーが TSPI_providerInit 関数で初期化される時点で TAPI から提供されます。回線、呼、電話デバイスを操作する TSPI 手続きの一部は、非同期動作を指定します。これらの手続きには、要求を識別するための dwRequestID パラメーターが含まれます。そのような手続きが呼び出されると、サービスプロバイダーは、エラーが直ちに検出された場合は負の値を返すことができ、操作が非同期に継続する場合は正の dwRequestID を返すことができます。サービスプロバイダーは、非同期に実行する要求ごとに、完了をちょうど 1 回だけ報告する必要があります。その報告は、この手続きを呼び出すことによって行います。サービスプロバイダーは、この手続きが戻るまで、この手続きや Line_Event 手続き、 Phone_Event 手続きを再度呼び出すことはできません。
サービスプロバイダーは、最初の要求から戻る前に Completion_Proc 関数を呼び出すことができます。TAPI は、特に記載がある場合を除き、 Completion_Proc のコンテキスト内からサービスプロバイダーを呼び出さないことを保証します。
これに直接対応するものは TAPI レベルにはありません。TAPI レベルでは、非同期関数の完了は、自発的なイベントメッセージに使用されるものと同じコールバックインターフェイスを通じて渡されるメッセージとして報告されるためです。TSPI レベルでは、自発的なイベントは Line_Event および Phone_Event コールバック手続きを通じて報告されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)