lineDeallocateCall 関数 (tapi.h)

lineDeallocateCall 関数は、指定された呼び出しハンドルの割り当てを解除します。

構文

LONG lineDeallocateCall(
  HCALL hCall
);

パラメーター

hCall

割り当てを解除する呼び出しハンドル。 呼び出しの監視特権を持つアプリケーションは、その呼び出しのハンドルの割り当てをいつでも解除できます。 呼び出しの所有者特権を持つアプリケーションは、呼び出しの唯一の所有者であり、呼び出しが アイドル 状態でない限り、ハンドルの割り当てを解除できます。 呼び出しハンドルは、割り当てが解除された後で無効になります。

戻り値

要求が成功した場合は 0 を返し、エラーが発生した場合は負のエラー番号を返します。 可能な戻り値は次のとおりです。

LINEERR_INVALCALLHANDLE、LINEERR_OPERATIONFAILED、LINEERR_INVALCALLSTATE、LINEERR_RESOURCEUNAVAIL、LINEERR_NOMEM、LINEERR_UNINITIALIZED。

解説

割り当て解除は、物理呼び出しの呼び出し状態には影響しません。 ただし、呼び出しに関連する内部リソースは解放されます。

2.0 より前の API バージョンでは、アプリケーションが呼び出しの唯一の所有者であり、呼び出しが アイドル 状態でない場合は、LINEERR_INVALCALLSTATEが返されます。 この場合、アプリケーションは最初に lineDrop を使用して呼び出しを削除し、その呼び出しハンドルの割り当てを解除できます。 呼び出しに対する監視特権を持つアプリケーションは、呼び出しのハンドルの割り当てをいつでも解除できます。

API バージョン 2.0 以降では、呼び出しの唯一の所有者は、呼び出しが アイドル 状態ではない場合でも、ハンドルの割り当てを解除できます。 これにより、クライアント/サーバー環境での呼び出しの分散制御が可能になります。

メモ 所有者なしで呼び出しを終了すると、TAPI がTSPI_lineCloseCall を呼び出すことができない監視アプリケーションが開いている場合、ユーザーは呼び出しを終了できない可能性があります。 この機能は、ユーザーが呼び出しを外部で制御できるとアプリケーションが判断できる場合にのみ使用します。 詳細については、「LINEADDRCAPFLAGS_CLOSEDROP」を参照してください。
 
2.0 より前の API バージョンでは、 lineDeallocateCall 関数が呼び出しハンドルの割り当てを解除すると、呼び出しの未処理のLINE_REPLY メッセージの処理も中断されます。 lineDeallocateCall 関数を使用してハンドルの割り当てを解除する場合、アプリケーションは、対応する非同期関数の呼び出しごとにLINE_REPLYメッセージを無期限に待機しないように設計する必要があります。

API バージョン 2.0 以降では、 lineDeallocateCall は未処理のLINE_REPLYメッセージを中断しません。 dwRequestID をアプリケーションに返す非同期関数はすべて、アプリケーションが lineShutdown を呼び出さない限り、関連付けられたLINE_REPLY メッセージが常に配信されます。

必要条件

   
対象プラットフォーム Windows
ヘッダー tapi.h
Library Tapi32.lib
[DLL] Tapi32.dll

関連項目

基本的なテレフォニー サービス リファレンス

LINE_REPLY

TAPI 2.2 リファレンスの概要

セッションの終了の概要

lineDrop

lineShutdown