IMMDeviceEnumerator::EnumAudioEndpoints-Methode (mmdeviceapi.h)

Die EnumAudioEndpoints-Methode generiert eine Sammlung von Audioendpunktgeräten, die die angegebenen Kriterien erfüllen.

Syntax

HRESULT EnumAudioEndpoints(
  [in]  EDataFlow           dataFlow,
  [in]  DWORD               dwStateMask,
  [out] IMMDeviceCollection **ppDevices
);

Parameter

[in] dataFlow

Die Datenflussrichtung für die Endpunktgeräte in der Sammlung. Der Aufrufer sollte diesen Parameter auf einen der folgenden EDataFlow-Enumerationswerte festlegen:

eRender

eCapture

eAll

Wenn der Aufrufer eAll angibt, enthält die Methode sowohl Rendering- als auch Erfassungsendpunkte in der Auflistung.

[in] dwStateMask

Der Zustand oder die Zustände der Endpunkte, die in die Auflistung eingeschlossen werden sollen. Der Aufrufer sollte diesen Parameter auf den bitweisen OR einer oder mehrerer der folgenden DEVICE_STATE_XXX Konstanten festlegen:

DEVICE_STATE_ACTIVE

DEVICE_STATE_DISABLED

DEVICE_STATE_NOTPRESENT

DEVICE_STATE_UNPLUGGED

Wenn der Aufrufer beispielsweise den dwStateMask-Parameter auf DEVICE_STATE_ACTIVE | DEVICE_STATE_UNPLUGGED enthält die Methode Endpunkte, die entweder aktiv sind oder von ihren Buchsen getrennt sind, aber Endpunkte, die sich auf audioadaptern befinden, die deaktiviert wurden oder nicht vorhanden sind. Legen Sie dwStateMask = DEVICE_STATEMASK_ALL fest, um alle Endpunkte unabhängig vom Zustand einzubeziehen.

[out] ppDevices

Zeiger auf eine Zeigervariable, in die die -Methode die Adresse der IMMDeviceCollection-Schnittstelle des Gerätesammlungsobjekts schreibt. Mit dieser Methode erhält der Aufrufer einen gezählten Verweis auf die Schnittstelle. Der Aufrufer ist für das Freigeben der Schnittstelle verantwortlich, wenn sie nicht mehr benötigt wird, indem die Release-Methode der Schnittstelle aufgerufen wird. Wenn der EnumAudioEndpoints-Aufruf fehlschlägt , ist *ppDevicesNULL.

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, können mögliche Rückgabecodes die in der folgenden Tabelle gezeigten Werte umfassen, sind jedoch nicht darauf beschränkt.

Rückgabecode Beschreibung
E_POINTER
Der Parameter ppDevices ist NULL.
E_INVALIDARG
Parameter dataFlow oder dwStateMask liegen außerhalb des Bereichs.
E_OUTOFMEMORY
Nicht genügend Arbeitsspeicher.

Hinweise

Der folgende Aufruf listet beispielsweise alle Audiorenderingendpunkte auf, die derzeit aktiv (vorhanden und nicht deaktiviert) sind:


  hr = pDevEnum->EnumAudioEndpoints(
                   eRender, DEVICE_STATE_ACTIVE,
                   &pEndpoints);

Im vorherigen Codefragment ist die Variable hr vom Typ HRESULT, pDevEnum ist ein Zeiger auf eine IMMDeviceEnumerator-Schnittstelle , und pEndpoints ist ein Zeiger auf eine IMMDeviceCollection-Schnittstelle .

Beispiele

Ein Codebeispiel, das die EnumAudioEndpoints-Methode aufruft , finden Sie unter Geräteeigenschaften.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile mmdeviceapi.h

Weitere Informationen

IMMDeviceCollection-Schnittstelle

IMMDeviceEnumerator-Schnittstelle