Функция TSPI_lineGetID (tspi.h)
Функция TSPI_lineGetID возвращает идентификатор устройства для указанного класса устройства, связанного с выбранной строкой, адресом или вызовом.
Синтаксис
LONG TSPIAPI TSPI_lineGetID(
HDRVLINE hdLine,
DWORD dwAddressID,
HDRVCALL hdCall,
DWORD dwSelect,
LPVARSTRING lpDeviceID,
LPCWSTR lpszDeviceClass,
HANDLE hTargetProcess
);
Параметры
hdLine
Дескриптор поставщика услуг к строке для запроса.
dwAddressID
Адрес на данном устройстве с открытой линией. Идентификатор адреса постоянно связан с адресом; идентификатор остается неизменным при обновлении операционной системы. TAPI не проверяет этот параметр при вызове этой функции.
hdCall
Дескриптор поставщика услуг для запрашиваемого вызова.
dwSelect
Указывает, связан ли запрошенный идентификатор устройства с строкой, адресом или одним вызовом. Параметр dwSelect может иметь только одну из LINECALLSELECT_ констант.
lpDeviceID
Указатель на расположение памяти типа VARSTRING , где возвращается идентификатор устройства. После успешного выполнения запроса это расположение заполняется идентификатором устройства. Формат возвращаемых сведений зависит от метода, используемого классом устройства (API) для именования устройств.
lpszDeviceClass
Указатель на строку Юникода, завершающуюся значением NULL, которая указывает класс устройства, идентификатор которого запрашивается. Допустимые строки классов устройств — это строки, используемые в разделе System.ini для идентификации классов устройств (таких как COM, Wave и MCI).
hTargetProcess
Дескриптор процесса приложения, от имени которого вызывается функция TSPI_lineGetID . Если сведения, возвращаемые в структуре VARSTRING , включают дескриптор для использования приложением, поставщик услуг должен создать или дублировать дескриптор для процесса.
Если для hTargetProcess задано значение INVALID_HANDLE_VALUE, приложение выполняется в удаленной клиентской системе и невозможно создать дублирующийся дескриптор напрямую. Вместо этого структура VARSTRING должна содержать UNC-имя сетевого устройства или другое имя, которое удаленный клиент может использовать для доступа к устройству. Если это невозможно, функция должна завершиться ошибкой.
Возвращаемое значение
Возвращает ноль, если функция выполнена успешно, или номер ошибки при возникновении ошибки. Возможные возвращаемые значения:
LINEERR_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONFAILED, LINEERR_NODEVICE LINEERR_RESOURCEUNAVAIL.
Комментарии
Предоставление службы возвращает LINEERR_INVALLINEHANDLE, если параметр dwSelect LINECALLSELECT_LINE или LINECALLSELECT_ADDRESS, а hdLine недопустим.
Поставщик услуг возвращает LINEERR_INVALCALLHANDLE, если параметр dwSelect LINECALLSELECT_CALL, а hdCall недопустим.
Поставщик услуг должен поддерживать класс устройства tapi/line, чтобы приложения могли определять реальный идентификатор устройства открытой линии. В этом случае возвращаемые данные переменной — dwDeviceID. Дополнительные сведения о распространенных именах классов устройств см. в разделе Классы устройств TSPI.
Поставщик, определяющий тип носителя для конкретного устройства, также должен определить соответствующий API для конкретного устройства (проприетарный) для управления устройствами этого типа мультимедиа. Чтобы избежать конфликтов в именах классов устройств, назначенных независимо от разных поставщиков, поставщик должен выбрать имя, которое однозначно идентифицирует поставщика, а затем тип носителя; Например, "intel/video".
Поставщик услуг заполняет все элементы структуры данных VARSTRING , за исключением dwTotalSize, которая заполняется с помощью TAPI. Поставщик услуг не должен перезаписывать член dwTotalSize .
Поставщику услуг не нужно заниматься обработкой классов устройств tapi/line и tapi/phone, так как TAPI обрабатывает их для поставщика услуг. Поэтому код для обработки этих классов устройств является необязательным.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | tspi.h |