|
lineDeallocateCall
The lineDeallocateCall function deallocates the specified call handle.
LONG lineDeallocateCall(
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 and deallocate its call handle afterwards. An application that has monitor
privilege for a call can always deallocate its handle for the call.
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
LINE_REPLY, lineDrop, lineShutdown
Related Links
Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET
More Online Helps
Win32 Programmer's Reference (win32.hlp)
Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Pen API Programmer's Reference (penapi.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Unix Manual Pages
|