Метод IPerChannelDbLevel::SetLevelAllChannels (devicetopology.h)
Метод SetLevelAllChannels задает уровни громкости (в децибелах) всех каналов в аудиопотоке.
Синтаксис
HRESULT SetLevelAllChannels(
[in] float [] aLevelsDB,
[in] ULONG cChannels,
[in] LPCGUID pguidEventContext
);
Параметры
[in] aLevelsDB
Указатель на массив уровней тома. Этот параметр указывает на выделенный вызывающим объектом массив с плавающей точкой , в который метод записывает новые уровни тома в децибелах для всех каналов. Метод записывает уровень для определенного канала в элемент массива, индекс которого соответствует номеру канала. Если аудиопоток содержит n каналов, каналы нумеруются от 0 до n–1. Чтобы получить количество каналов в потоке, вызовите метод IPerChannelDbLevel::GetChannelCount .
[in] cChannels
Количество элементов в массиве aLevelsDB . Если этот параметр не соответствует количеству каналов в аудиопотоке, метод завершается ошибкой без изменения массива aLevelsDB .
[in] pguidEventContext
Контекстное значение для метода IControlChangeNotify::OnNotify . Этот параметр указывает на GUID контекста события. Если вызов SetLevelAllChannels изменяет состояние элемента управления уровня, все клиенты, зарегистрированные в IControlChangeNotify , будут получать уведомления. В реализации метода OnNotify клиент может проверить GUID контекста события, чтобы определить, является ли он или другой клиент источником события изменения элемента управления. Если вызывающий объект предоставляет указатель NULL для этого параметра, метод уведомления клиента получает указатель контекста NULL .
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, но не ограничиваются ими, значения, показанные в следующей таблице.
Код возврата | Описание |
---|---|
|
Параметр cChannels не равен количеству каналов. |
|
Указатель aLevelsDB имеет значение NULL. |
|
Недостаточно памяти. |
Комментарии
Если указанное значение уровня для любого канала выходит за пределы диапазона, указанного методом IPerChannelDbLevel::GetLevelRange для этого канала, вызов SetLevelAllChannels зажимает значение поддерживаемого диапазона и завершается успешно. Последующий вызов метода IPerChannelDbLevel::GetLevel извлекает фактическое значение, используемое для этого канала.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | devicetopology.h |