Partager via


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

La méthode SetLevelAllChannels définit les niveaux de volume, en décibels, de tous les canaux du flux audio.

Syntaxe

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

Paramètres

[in] aLevelsDB

Pointeur vers un tableau de niveaux de volume. Ce paramètre pointe vers un tableau float alloué par l’appelant dans lequel la méthode écrit les nouveaux niveaux de volume, en décibels, pour tous les canaux. La méthode écrit le niveau d’un canal particulier dans l’élément de tableau dont l’index correspond au numéro de canal. Si le flux audio contient n canaux, les canaux sont numérotés de 0 à n– 1. Pour obtenir le nombre de canaux dans le flux, appelez la méthode IPerChannelDbLevel::GetChannelCount .

[in] cChannels

Nombre d’éléments dans le tableau aLevelsDB . Si ce paramètre ne correspond pas au nombre de canaux dans le flux audio, la méthode échoue sans modifier le tableau aLevelsDB .

[in] pguidEventContext

Valeur de contexte pour la méthode IControlChangeNotify::OnNotify . Ce paramètre pointe vers un GUID de contexte d’événement. Si l’appel SetLevelAllChannels change l’état du contrôle de niveau, tous les clients qui ont inscrit des interfaces IControlChangeNotify avec ce contrôle reçoivent des notifications. Dans son implémentation de la méthode OnNotify , un client peut inspecter le GUID de contexte d’événement pour découvrir s’il ou un autre client est la source de l’événement control-change. Si l’appelant fournit un pointeur NULL pour ce paramètre, la méthode de notification du client reçoit un pointeur de contexte NULL .

Valeur retournée

Si la méthode réussit, retourne S_OK. En cas d’échec, les codes de retour possibles incluent, sans s’y limiter, les valeurs indiquées dans le tableau suivant.

Code de retour Description
E_INVALIDARG
Le paramètre cChannels n’est pas égal au nombre de canaux.
E_POINTER
Le pointeur aLevelsDB a la valeur NULL.
E_OUTOFMEMORY
Mémoire insuffisante.

Notes

Si la valeur de niveau spécifiée pour un canal est au-delà de la plage que la méthode IPerChannelDbLevel::GetLevelRange signale pour ce canal, l’appel SetLevelAllChannels restreint la valeur à la plage prise en charge et se termine correctement. Un appel suivant à la méthode IPerChannelDbLevel::GetLevel récupère la valeur réelle utilisée pour ce canal.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête devicetopology.h

Voir aussi

IPerChannelDbLevel, interface

IPerChannelDbLevel::GetChannelCount

IPerChannelDbLevel::GetLevel

IPerChannelDbLevel::GetLevelRange