Функция 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 |