Informationen zur MMDevice-API

Mit der MMDevice-API (Windows Multimedia Device) können Audioclients Audioendpunkte ermitteln, deren Funktionen bestimmen und Treiberinstanzen für diese Geräte erstellen.

Die Headerdatei Mmdeviceapi.h definiert die Schnittstellen in der MMDevice-API.

Die MMDevice-API besteht aus mehreren Schnittstellen. Die erste davon ist die IMMDeviceEnumerator-Schnittstelle . Um auf die Schnittstellen in der MMDevice-API zuzugreifen, ruft ein Client einen Verweis auf die IMMDeviceEnumerator-Schnittstelle eines device-enumerator-Objekts ab, indem die CoCreateInstance-Funktion aufgerufen wird, wie im folgenden Codefragment gezeigt:

  const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
  const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
  hr = CoCreateInstance(
         CLSID_MMDeviceEnumerator, NULL,
         CLSCTX_ALL, IID_IMMDeviceEnumerator,
         (void**)&pEnumerator);

Im vorherigen Codefragment sind CLSID_MMDeviceEnumerator und IID_IMMDeviceEnumerator die GUID-Werte, die als Attribute an das MMDeviceEnumerator-Klassenobjekt und an die IMMDeviceEnumerator-Schnittstelle angefügt werden. Der CoCreateInstance-Aufruf übergibt diese Werte nach Verweis. Die Variable hr hat den Typ HRESULT, und die Variable pEnumerator ist ein Zeiger auf die IMMDeviceEnumerator-Schnittstelle eines Device-Enumerator-Objekts. IMMDeviceEnumerator stellt Methoden zum Aufzählen von Audioendpunktgeräten bereit. Informationen zum __uuidof-Operator , zur CoCreateInstance-Funktion und zu den CLSCTX_Xxx-Konstanten finden Sie in der Windows SDK-Dokumentation.

Über die IMMDeviceEnumerator-Schnittstelle kann der Client Verweise auf die anderen Schnittstellen in der MMDevice-API abrufen. Die MMDevice-API implementiert die folgenden Schnittstellen.

Schnittstelle BESCHREIBUNG
IMMDevice Stellt ein Audiogerät dar.
IMMDeviceCollection Stellt eine Sammlung von Audiogeräten dar.
IMMDeviceEnumerator Stellt Methoden zum Aufzählen von Audiogeräten bereit.
IMMEndpoint Stellt ein Audioendpunktgerät dar.

 

Darüber hinaus sollten Clients der MMDevice-API, die eine Benachrichtigung über status Änderungen auf Audioendpunktgeräten erfordern, die folgende Schnittstelle implementieren.

Schnittstelle BESCHREIBUNG
IMMNotificationClient Stellt Benachrichtigungen bereit, wenn ein Audioendpunktgerät hinzugefügt oder entfernt wird, wenn sich der Zustand oder die Eigenschaften eines Geräts ändern oder wenn eine Änderung der einem Gerät zugewiesenen Standardrolle vorliegt.

 

Audioendpunktgeräte

Programmierverzeichnis