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 |
---|---|
|
Le paramètre cChannels n’est pas égal au nombre de canaux. |
|
Le pointeur aLevelsDB a la valeur NULL. |
|
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 |