Поделиться через


Функция lineDeallocateCall (tapi.h)

Функция lineDeallocateCall освобождает указанный дескриптор вызова.

Синтаксис

LONG lineDeallocateCall(
  HCALL hCall
);

Параметры

hCall

Дескриптор вызова, который требуется освободить. Приложение с привилегиями мониторинга для вызова всегда может освободить свой дескриптор для этого вызова. Приложение с правами владельца для вызова может освободить свой дескриптор, если оно не является единственным владельцем вызова и вызов не находится в состоянии простоя . Дескриптор вызова больше недействителен после освобождения.

Возвращаемое значение

Возвращает ноль при успешном выполнении запроса или отрицательное число ошибки при возникновении ошибки. Возможные возвращаемые значения:

LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONFAILED, LINEERR_INVALCALLSTATE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM LINEERR_UNINITIALIZED.

Комментарии

Освобождение не влияет на состояние вызова физического вызова. Однако он освобождает внутренние ресурсы, связанные с вызовом.

В версиях API, предшествующих версии 2.0, если приложение является единственным владельцем вызова и вызов не находится в состоянии простоя , возвращается LINEERR_INVALCALLSTATE. В этом случае приложение может сначала удалить вызов с помощью lineDrop , а затем освободить его дескриптор вызова. Приложение, которое имеет права монитора для вызова, всегда может освободить свой дескриптор для вызова.

В API версии 2.0 или более поздней единственный владелец вызова может освободить свой дескриптор, даже если вызов не находится в состоянии простоя . Это обеспечивает распределенное управление вызовом в среде клиента или сервера.

Примечание Оставление вызова без владельца может привести к тому, что пользователь не сможет завершить вызов, если открыты приложения мониторинга, не позволяющие TAPI вызывать TSPI_lineCloseCall. Используйте эту функцию, только если приложение может определить, что пользователь может управлять вызовом извне. Дополнительные сведения см. в разделе LINEADDRCAPFLAGS_CLOSEDROP.
 
В версиях API, предшествующих версии 2.0, когда функция lineDeallocateCall освобождает дескриптор вызова, она также приостанавливает дальнейшую обработку всех невыполненных сообщений LINE_REPLY для вызова. Приложение должно быть разработано так, чтобы не дожидаться LINE_REPLY сообщений для каждого соответствующего вызова асинхронной функции, если оно также использует функцию lineDeallocateCall для освобождения дескрипторов.

В API версии 2.0 или более поздней lineDeallocateCall не приостанавливает невыполненные LINE_REPLY сообщений; каждая асинхронная функция, возвращающая приложению dwRequestID , всегда приводит к доставке связанного сообщения LINE_REPLY, если приложение не вызывает lineShutdown.

Требования

   
Целевая платформа Windows
Header tapi.h
Библиотека Tapi32.lib
DLL Tapi32.dll

См. также раздел

Справочник по базовым службам телефонии

LINE_REPLY

Обзор справочника по TAPI 2.2

Обзор завершения сеанса

lineDrop

lineShutdown