lineDeallocateCall function (tapi.h)
The lineDeallocateCall function deallocates the specified call handle.
LONG lineDeallocateCall( HCALL hCall );
The call handle to be deallocated. An application with monitoring privileges for a call can always deallocate its handle for that call. An application with owner privilege for a call can deallocate its handle unless it is the sole owner of the call and the call is not in the idle state. The call handle is no longer valid after it has been deallocated.
Returns zero if the request succeeds or a negative error number if an error occurs. Possible return values include:
LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONFAILED, LINEERR_INVALCALLSTATE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_UNINITIALIZED.
The deallocation does not affect the call state of the physical call. It does, however, release internal resources related to the call.
In API versions, earlier than 2.0, if the application is the sole owner of a call and the call is not in the idle state, LINEERR_INVALCALLSTATE is returned. In this case, the application can first drop the call using lineDrop and deallocate its call handle afterward. An application that has monitor privilege for a call can always deallocate its handle for the call.
In API versions 2.0 or later, the sole owner of the call can deallocate its handle even though the call is not in the idle state. This enables distributed control of the call in a client/server environment.
In API versions 2.0 or later, lineDeallocateCall does not suspend outstanding LINE_REPLY messages; every asynchronous function that returns a dwRequestID to the application always results in the delivery of the associated LINE_REPLY message unless the application calls lineShutdown.