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


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

Функция lineSetMediaControl включает и отключает действия управления в потоке мультимедиа, связанном с указанной строкой, адресом или вызовом. Действия управления мультимедиа можно активировать путем обнаружения указанных цифр, типов мультимедиа, пользовательских тонов и состояний вызова.

Синтаксис

LONG lineSetMediaControl(
  HLINE                             hLine,
  DWORD                             dwAddressID,
  HCALL                             hCall,
  DWORD                             dwSelect,
  LPLINEMEDIACONTROLDIGIT const     lpDigitList,
  DWORD                             dwDigitNumEntries,
  LPLINEMEDIACONTROLMEDIA const     lpMediaList,
  DWORD                             dwMediaNumEntries,
  LPLINEMEDIACONTROLTONE const      lpToneList,
  DWORD                             dwToneNumEntries,
  LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
  DWORD                             dwCallStateNumEntries
);

Параметры

hLine

Дескриптор к устройству с открытой линией.

dwAddressID

Идентификатор адреса на данном устройстве с открытой линией. Идентификатор адреса постоянно связан с адресом; идентификатор остается неизменным при обновлении операционной системы.

hCall

Дескриптор вызова. Приложение должно быть владельцем вызова. Состояние вызова hCall может быть любым.

dwSelect

Указывает, связан ли запрошенный элемент управления мультимедиа с одним вызовом, — значение по умолчанию для всех вызовов по адресу или значение по умолчанию для всех вызовов в строке. Этот параметр является одной из констант LINECALLSELECT_.

lpDigitList

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

Допустимые цифры для импульсного режима: от 0 до 9. Допустимые цифры для режима DTMF: от "0" до "9", "A", "B", "C", "D", "*", "#".

dwDigitNumEntries

Количество записей в lpDigitList.

lpMediaList

Указатель на массив с записями типа LINEMEDIACONTROLMEDIA. Массив содержит записи dwMediaNumEntries . Каждая запись содержит отслеживаемый тип мультимедиа, сведения о типе носителя (например, длительность) и поле элемента управления мультимедиа. При обнаружении типа мультимедиа в списке соответствующее действие управления мультимедиа выполняется в потоке мультимедиа вызова.

dwMediaNumEntries

Количество записей в lpMediaList.

lpToneList

Указатель на массив с записями типа LINEMEDIACONTROLTONE. Массив содержит записи dwToneNumEntries . Каждая запись содержит описание отслеживаемого тона, длительность тона и поле управления мультимедиа. При обнаружении звукового сигнала в списке соответствующее действие управления мультимедиа выполняется в потоке мультимедиа вызова.

dwToneNumEntries

Количество записей в lpToneList.

lpCallStateList

Указатель на массив с записями типа LINEMEDIACONTROLCALLSTATE. Массив содержит записи dwCallStateNumEntries . Каждая запись содержит состояние вызова и действие управления мультимедиа. Всякий раз, когда данный вызов переходит в одно из состояний вызова в списке, вызывается соответствующее действие управления мультимедиа.

dwCallStateNumEntries

Количество записей в lpCallStateList.

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

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

LINEERR_INVALADDRESSID, LINEERR_NOMEM, LINEERR_INVALCALLHANDLE, LINEERR_NOTOWNER, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSTATELIST, LINEERR_OPERATIONFAILED, LINEERR_INVALDIGITLIST, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALLINEHANDLE, LINEERR_UNINITIALIZED, LINEERR_INVALMEDIALIST, LINEERR_INVALPOINTER LINEERR_INVALTONELIST.

Комментарии

Функция lineSetMediaControl считается успешной, если управление мультимедиа было запущено правильно, а не когда какой-либо элемент управления мультимедиа вступил в силу. Элемент управления мультимедиа изменяется или отменяется путем повторного вызова этой функции с другими параметрами или значениями NULL. Если один или несколько параметров lpDigitList, lpMediaList, lpToneList и lpCallStateList имеют значение NULL, то соответствующая цифра, тип носителя, тон или элемент управления мультимедиа, активировав состояние вызова, отключается. Чтобы изменить только часть параметров элемента управления мультимедиа, оставив остальные параметры в действии, приложение должно вызвать lineSetMediaControl, указав предыдущие параметры для тех частей, которые должны оставаться в силе, и новые параметры для тех частей, которые должны быть изменены.

Если выбран параметр hCall и вызов завершается или приложение освобождает свой дескриптор, управление мультимедиа в этом вызове отменяется.

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

В зависимости от поставщика услуг и других действий, которые конкурируют за такие ресурсы, количество одновременных обнаружений, которые могут быть сделаны, может меняться со временем. Если ресурсы поставщика услуг перефиксированы, возвращается ошибка LINEERR_RESOURCEUNAVAIL.

Указывает, поддерживается ли элемент управления мультимедиа поставщиком услуг, это возможность устройства.

Требования

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

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

LINEMEDIACONTROLCALLSTATE

LINEMEDIACONTROLDIGIT

LINEMEDIACONTROLMEDIA

LINEMEDIACONTROLTONE

Дополнительные функции линейной службы

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