lineDeallocateCall
The lineDeallocateCall
function deallocates the specified call handle.
LONG lineDeallocateCall(
HCALL hCall |
|
); |
|
Parameters
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 except when the application 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.
Return Values
Returns zero
if the request is successful or a negative error number if an error has
occurred. Possible return values are:
LINEERR_INVALCALLHANDLE,
LINEERR_OPERATIONFAILED, LINEERR_INVALCALLSTATE, LINEERR_RESOURCEUNAVAIL,
LINEERR_NOMEM, LINEERR_UNINITIALIZED.
Remarks
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 less than 0x00020000, 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
In API
versions 0x0002000 and greater, the sole owner of the call can
deallocate its handle even though the call is not in the idle state.
(This allows for distributed control of the call in a client/server
environment.) Be aware that leaving the call without an owner may result in the
user being unable to terminate the call if there are monitoring applications
open preventing TAPI from calling TSPI_lineCloseCall. Use this feature
only if the application can determine that the call can be controlled externally
by the user (see LINEADDRCAPFLAGS_CLOSEDROP).
In API
versions less than 0x00020000, when the lineDeallocateCall function
deallocates a call handle, it also suspends further processing of any
outstanding LINE_REPLY messages for the call. An application must be designed not
to wait indefinitely for LINE_REPLY messages for each corresponding call to an
asynchronous function if it also uses the lineDeallocateCall function to
deallocate handles.
In API
versions 0x0002000 and greater, 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.
See Also