IMMDeviceEnumerator::EnumAudioEndpoints, méthode (mmdeviceapi.h)
La méthode EnumAudioEndpoints génère une collection d’appareils de point de terminaison audio qui répondent aux critères spécifiés.
Syntaxe
HRESULT EnumAudioEndpoints(
[in] EDataFlow dataFlow,
[in] DWORD dwStateMask,
[out] IMMDeviceCollection **ppDevices
);
Paramètres
[in] dataFlow
Direction du flux de données pour les appareils de point de terminaison dans la collection. L’appelant doit définir ce paramètre sur l’une des valeurs d’énumération EDataFlow suivantes :
eRender
eCapture
eAll
Si l’appelant spécifie eAll, la méthode inclut à la fois des points de terminaison de rendu et de capture dans la collection.
[in] dwStateMask
État ou états des points de terminaison à inclure dans la collection. L’appelant doit définir ce paramètre sur la valeur OR au niveau du bit d’une ou plusieurs des constantes DEVICE_STATE_XXX suivantes :
DEVICE_STATE_ACTIVE
DEVICE_STATE_DISABLED
DEVICE_STATE_NOTPRESENT
DEVICE_STATE_UNPLUGGED
Par exemple, si l’appelant définit le paramètre dwStateMask sur DEVICE_STATE_ACTIVE | DEVICE_STATE_UNPLUGGED, la méthode inclut des points de terminaison qui sont actifs ou débranchés de leurs prises jack, mais exclut les points de terminaison qui se trouvent sur des cartes audio qui ont été désactivées ou qui ne sont pas présentes. Pour inclure tous les points de terminaison, quel que soit leur état, définissez dwStateMask = DEVICE_STATEMASK_ALL.
[out] ppDevices
Pointeur vers une variable pointeur dans laquelle la méthode écrit l’adresse de l’interface IMMDeviceCollection de l’objet device-collection. Grâce à cette méthode, l’appelant obtient une référence comptée à l’interface. L’appelant est chargé de libérer l’interface, lorsqu’elle n’est plus nécessaire, en appelant la méthode Release de l’interface. Si l’appel d’EnumAudioEndpoints échoue, *ppDevices a la valeur 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 ppDevices a la valeur NULL. |
|
Le dataFlow de paramètre ou dwStateMask est hors de portée. |
|
Mémoire insuffisante. |
Notes
Par exemple, l’appel suivant énumère tous les appareils de point de terminaison de rendu audio actuellement actifs (présents et non désactivés) :
hr = pDevEnum->EnumAudioEndpoints(
eRender, DEVICE_STATE_ACTIVE,
&pEndpoints);
Dans le fragment de code précédent, la variable hr est de type HRESULT, pDevEnum est un pointeur vers une interface IMMDeviceEnumerator et pEndpoints est un pointeur vers une interface IMMDeviceCollection .
Exemples
Pour obtenir un exemple de code qui appelle la méthode EnumAudioEndpoints , consultez Propriétés de l’appareil.
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 | mmdeviceapi.h |