Partager via


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

La méthode SetLevel définit le niveau de volume, en décibels, du canal spécifié.

Syntaxe

HRESULT SetLevel(
  [in] UINT    nChannel,
  [in] float   fLevelDB,
  [in] LPCGUID pguidEventContext
);

Paramètres

[in] nChannel

Numéro du canal sélectionné. Si le flux audio a 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] fLevelDB

Nouveau niveau de volume en décibels. Une valeur positive représente un gain et une valeur négative représente l’atténuation.

[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 SetLevel modifie l’état du contrôle de niveau, tous les clients qui ont des interfaces IControlChangeNotify inscrites 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éterminer s’il est ou un autre client 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 nChannel est hors plage.
E_OUTOFMEMORY
Mémoire insuffisante.

Remarques

Si l’appelant spécifie une valeur pour fLevelDB qui est une valeur d’étape exacte, la méthode SetLevel se termine correctement. Un appel suivant à la méthode IPerChannelDbLevel ::GetLevel retourne la valeur définie ou l’une des valeurs suivantes :

  • Si la valeur définie était inférieure à la valeur minimale, la méthode GetLevel retourne la valeur minimale.
  • Si la valeur définie était supérieure à la valeur maximale, la méthode GetLevel retourne la valeur maximale.
  • Si la valeur définie se trouvait entre deux valeurs pas à pas, la méthode GetLevel retourne une valeur qui peut être la valeur d’étape suivante au-dessus ou la valeur pas à pas sous la valeur définie ; les distances relatives entre la valeur définie et les valeurs pas à pas voisines n’ont aucune importance. La valeur retournée par la méthode GetLevel est la valeur qui a le plus d’impact sur le chemin du signal.

Configuration requise

Condition requise Valeur
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