Share via


Método IPerChannelDbLevel::SetLevelAllChannels (devicetopology.h)

O método SetLevelAllChannels define os níveis de volume, em decibéis, de todos os canais no fluxo de áudio.

Sintaxe

HRESULT SetLevelAllChannels(
  [in] float [] aLevelsDB,
  [in] ULONG    cChannels,
  [in] LPCGUID  pguidEventContext
);

Parâmetros

[in] aLevelsDB

Ponteiro para uma matriz de níveis de volume. Esse parâmetro aponta para uma matriz float alocada pelo chamador na qual o método grava os novos níveis de volume, em decibéis, para todos os canais. O método grava o nível de um canal específico no elemento de matriz cujo índice corresponde ao número do canal. Se o fluxo de áudio contiver n canais, os canais serão numerados de 0 a n– 1. Para obter o número de canais no fluxo, chame o método IPerChannelDbLevel::GetChannelCount .

[in] cChannels

O número de elementos na matriz aLevelsDB . Se esse parâmetro não corresponder ao número de canais no fluxo de áudio, o método falhará sem modificar a matriz aLevelsDB .

[in] pguidEventContext

Valor de contexto para o método IControlChangeNotify::OnNotify . Esse parâmetro aponta para um GUID de contexto de evento. Se a chamada SetLevelAllChannels alterar o estado do controle de nível, todos os clientes que registraram interfaces IControlChangeNotify com esse controle receberão notificações. Em sua implementação do método OnNotify , um cliente pode inspecionar o GUID de contexto de evento para descobrir se ele ou outro cliente é a origem do evento control-change. Se o chamador fornecer um ponteiro NULL para esse parâmetro, o método de notificação do cliente receberá um ponteiro de contexto NULL .

Valor retornado

Se o método for bem-sucedido, retornará S_OK. Se falhar, os códigos de retorno possíveis incluem, mas não se limitam a, os valores mostrados na tabela a seguir.

Código de retorno Descrição
E_INVALIDARG
O parâmetro cChannels não é igual ao número de canais.
E_POINTER
O ponteiro aLevelsDB é NULL.
E_OUTOFMEMORY
Sem memória.

Comentários

Se o valor de nível especificado para qualquer canal estiver além do intervalo que o método IPerChannelDbLevel::GetLevelRange relata para esse canal, a chamada SetLevelAllChannels fixará o valor para o intervalo com suporte e será concluída com êxito. Uma chamada subsequente para o método IPerChannelDbLevel::GetLevel recupera o valor real usado para esse canal.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho devicetopology.h

Confira também

IPerChannelDbLevel Interface

IPerChannelDbLevel::GetChannelCount

IPerChannelDbLevel::GetLevel

IPerChannelDbLevel::GetLevelRange