Функция linePark (tapi.h)
Функция linePark паркует указанный вызов в соответствии с заданным режимом парковки.
Синтаксис
LONG linePark(
HCALL hCall,
DWORD dwParkMode,
LPCSTR lpszDirAddress,
LPVARSTRING lpNonDirAddress
);
Параметры
hCall
Дескриптор для припаркованного вызова. Приложение должно быть владельцем вызова. Состояние вызова hCall должно быть подключено.
dwParkMode
Режим парковки, в котором нужно припарковать вызов. Этот параметр может иметь только один набор флагов и использовать одну из констант LINEPARKMODE_.
lpszDirAddress
Указатель на строку, завершающуюся значением NULL, которая указывает адрес, по которому будет припаркован вызов при использовании направленной парковки. Адрес имеет формат набираемого номера. Этот параметр игнорируется для ненаправленной парковки.
lpNonDirAddress
Указатель на структуру типа VARSTRING. Для ненаправленной парковки адрес, по которому припаркован вызов, возвращается в этой структуре. Этот параметр игнорируется для направленной парковки. В структуре VARSTRINGпараметру dwStringFormat должно быть присвоено значение STRINGFORMAT_ASCII (буфер строки ASCII, содержащий строку, завершающуюся null), а завершающее значение NULL должно учитываться в dwStringSize. Перед вызовом linePark приложение должно задать член dwTotalSize этой структуры, чтобы указать объем памяти, доступный ДЛЯ TAPI для возврата сведений.
Возвращаемое значение
Возвращает положительный идентификатор запроса, если функция выполняется асинхронно, или отрицательный номер ошибки при возникновении ошибки. Параметр dwParam2 соответствующего сообщения LINE_REPLY равен нулю при успешном выполнении функции или отрицательным номером ошибки при возникновении ошибки. Возможные возвращаемые значения:
LINEERR_INVALADDRESS, LINEERR_NOTOWNER, LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSTATE, LINEERR_OPERATIONFAILED, LINEERR_INVALPARKMODE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_STRUCTURETOOSMALL, LINEERR_NOMEM LINEERR_UNINITIALIZED.
Комментарии
С помощью направленной парковки приложение определяет адрес, по которому оно хочет припарковать звонок. При использовании ненаправленной парковки параметр определяет адрес и предоставляет его приложению. В любом случае припаркованный вызов можно отменить, указав этот адрес.
Припаркованный вызов обычно переходит в состояние простоя после успешной парковки, и приложение должно освободить свой дескриптор для вызова. Если приложение выполняет lineUnpark при припаркованном вызове, для непаркованного вызова создается новый дескриптор вызова, даже если приложение не освобождает старый дескриптор вызова.
Некоторые переключатели могут напоминать пользователю о том, что звонок был припаркован в течение длительного времени. Приложение видит звонок с предложением с причиной вызова, заданной как напоминание.
Если элемент dwTotalSize в структуре VARSTRING не указывает достаточный объем памяти для получения адреса парка, соответствующее ответное сообщение возвращает значение ошибки LINEERR_STRUCTURETOOSMALL. В таких случаях невозможно получить полный адрес парка. При возврате значения ошибки LINEERR_STRUCTURETOOSMALL член dwNeededSize структуры NonDirAddress не содержит допустимого значения. Если из ненаправленного linePark получено значение ошибки LINEERR_STRUCTURETOOSMALL, увеличьте размер буфера и вызовите linePark еще раз, пока не будет возвращено успешное или другое LINEERR_XXX результат.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | tapi.h |
Библиотека | Tapi32.lib |
DLL | Tapi32.dll |