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

El método SetLevelAllChannels establece los niveles de volumen, en decibelios, de todos los canales de la secuencia de audio.

Sintaxis

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

Parámetros

[in] aLevelsDB

Puntero a una matriz de niveles de volumen. Este parámetro apunta a una matriz float asignada por el autor de la llamada en la que el método escribe los nuevos niveles de volumen, en decibelios, para todos los canales. El método escribe el nivel de un canal determinado en el elemento de matriz cuyo índice coincide con el número de canal. Si la secuencia de audio contiene n canales, los canales se numeran de 0 a n– 1. Para obtener el número de canales en la secuencia, llame al método IPerChannelDbLevel::GetChannelCount .

[in] cChannels

Número de elementos de la matriz aLevelsDB . Si este parámetro no coincide con el número de canales de la secuencia de audio, se produce un error en el método sin modificar la matriz aLevelsDB .

[in] pguidEventContext

Valor de contexto del método IControlChangeNotify::OnNotify . Este parámetro apunta a un GUID de contexto de evento. Si la llamada a SetLevelAllChannels cambia el estado del control de nivel, todos los clientes que han registrado interfaces IControlChangeNotify con ese control reciben notificaciones. En su implementación del método OnNotify , un cliente puede inspeccionar el GUID del contexto de eventos para detectar si él u otro cliente es el origen del evento de cambio de control. Si el autor de la llamada proporciona un puntero NULL para este parámetro, el método de notificación del cliente recibe un puntero de contexto NULL .

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los posibles códigos de retorno incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.

Código devuelto Descripción
E_INVALIDARG
El parámetro cChannels no es igual al número de canales.
E_POINTER
El puntero aLevelsDB es NULL.
E_OUTOFMEMORY
Memoria insuficiente

Comentarios

Si el valor de nivel especificado para cualquier canal está fuera del intervalo que informa el método IPerChannelDbLevel::GetLevelRange para ese canal, la llamada a SetLevelAllChannels sujeta el valor al intervalo admitido y se completa correctamente. Una llamada posterior al método IPerChannelDbLevel::GetLevel recupera el valor real usado para ese canal.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado devicetopology.h

Consulte también

IPerChannelDbLevel (Interfaz)

IPerChannelDbLevel::GetChannelCount

IPerChannelDbLevel::GetLevel

IPerChannelDbLevel::GetLevelRange