Partager via


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
E_POINTER
Le paramètre ppDevices a la valeur NULL.
E_INVALIDARG
Le dataFlow de paramètre ou dwStateMask est hors de portée.
E_OUTOFMEMORY
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

Voir aussi

IMMDeviceCollection Interface

IMMDeviceEnumerator Interface