lineDeallocateCall 函数 (tapi.h)

lineDeallocateCall 函数解除分配指定的调用句柄。

语法

LONG lineDeallocateCall(
  HCALL hCall
);

参数

hCall

要解除分配的调用句柄。 对某个调用具有监视权限的应用程序始终可以解除分配该调用的句柄。 具有调用所有者特权的应用程序可以解除分配其句柄,除非它是调用的唯一所有者,并且调用不处于 空闲 状态。 调用句柄在解除分配后不再有效。

返回值

如果请求成功,则返回零;如果发生错误,则返回负错误号。 可能的返回值包括:

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 的每个异步函数始终会导致传递关联的LINE_REPLY消息,除非应用程序调用 lineShutdown

要求

   
目标平台 Windows
标头 tapi.h
Library Tapi32.lib
DLL Tapi32.dll

另请参阅

基本电话服务参考

LINE_REPLY

TAPI 2.2 参考概述

终止会话概述

lineDrop

lineShutdown