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

Функция lineGetRequest извлекает следующий прокси-запрос для указанного режима запроса.

Синтаксис

LONG lineGetRequest(
  HLINEAPP hLineApp,
  DWORD    dwRequestMode,
  LPVOID   lpRequestBuffer
);

Параметры

hLineApp

Дескриптор использования приложения для части строки TAPI.

dwRequestMode

Тип получаемого запроса. Имейте в виду, что dwRequestMode может иметь только один бит. Этот параметр использует только одну из констант LINEREQUESTMODE_.

lpRequestBuffer

Указатель на буфер памяти, в котором должны быть размещены параметры запроса. Размер буфера и интерпретация данных, помещенных в буфер, зависят от режима запроса. Предполагается, что буфер, выделенный приложением, имеет достаточный размер для хранения запроса.

Если параметр dwRequestMode LINEREQUESTMODE_MAKECALL, интерпретирует содержимое буфера запросов с помощью структуры LINEREQMAKECALL .

LINEREQUESTMODE_MEDIACALL устарело. Дополнительные сведения см. в разделе tapiRequestMediaCall.

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

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

LINEERR_INVALAPPHANDLE, LINEERR_NOTREGISTERED, LINEERR_INVALPOINTER, LINEERR_OPERATIONFAILED, LINEERR_INVALREQUESTMODE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_UNINITIALIZEDLINEERR_NOREQUEST.

Комментарии

Приложение с поддержкой телефонии может запросить, чтобы вызов был выполнен от его имени, вызвав tapiRequestMakeCall. Эти запросы помещаются в очередь с помощью TAPI, и приложению с наивысшим приоритетом, зарегистрированным для обработки запроса, отправляется LINE_REQUEST сообщение с указанием режима ожидающего запроса. Как правило, это приложение управления вызовами пользователя. Сообщение LINE_REQUEST указывает, что для обработки зарегистрированного приложения может находиться ноль или больше запросов; После получения LINE_REQUEST приложение-получатель отвечает за вызов lineGetRequest до тех пор, пока не будет возвращена LINEERR_NOREQUEST, что означает, что запросы больше не ожидаются.

Затем приложение управления вызовами, которое получает это сообщение, вызывает lineGetRequest, указывая режим запроса и буфер, достаточно большой для хранения запроса. Затем приложение управления вызовами интерпретирует и выполняет запрос.

После выполнения lineGetRequest TAPI очищает запрос из внутренней очереди, оставляя место для последующего запроса. Таким образом, можно получить новое сообщение LINE_REQUEST сразу после выполнения lineGetRequest, если то же или другое приложение выдаст другой запрос. Приложение получателя запроса отвечает за обработку этого сценария с помощью какого-то механизма; например, заметив дополнительное LINE_REQUEST и отложив последующий lineGetRequest до завершения обработки предыдущего запроса, получив последующий запрос и буфер при необходимости или другими подходящими способами.

Последующие LINE_REQUEST не следует игнорировать, так как они не повторяются с помощью TAPI.

Требования

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

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

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

LINEREQMAKECALL

LINE_REQUEST

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

tapiRequestMakeCall