IMMNotificationClient::OnDefaultDeviceChanged-Methode (mmdeviceapi.h)
Die OnDefaultDeviceChanged-Methode benachrichtigt den Client, dass das Standard-Audioendpunktgerät für eine bestimmte Geräterolle geändert wurde.
Syntax
HRESULT OnDefaultDeviceChanged(
[in] EDataFlow flow,
[in] ERole role,
[in] LPCWSTR pwstrDefaultDeviceId
);
Parameter
[in] flow
Die Datenflussrichtung des Endpunktgeräts. Dieser Parameter ist auf einen der folgenden EDataFlow-Enumerationswerte festgelegt:
eRender
eCapture
Die Datenflussrichtung für ein Renderinggerät lautet eRender. Die Datenflussrichtung für ein Erfassungsgerät lautet eCapture.
[in] role
Die Geräterolle des Audioendpunktgeräts. Dieser Parameter ist auf einen der folgenden ERole-Enumerationswerte festgelegt:
eConsole
eMultimedia
eCommunications
[in] pwstrDefaultDeviceId
Zeiger auf die Endpunkt-ID-Zeichenfolge , die das Audioendpunktgerät identifiziert. Dieser Parameter verweist auf eine MIT NULL endende Breitzeichenzeichenfolge, die die Endpunkt-ID enthält. Die Zeichenfolge bleibt für die Dauer des Aufrufs gültig. Wenn der Benutzer das Standardgerät für eine bestimmte Rolle entfernt oder deaktiviert hat und kein anderes Gerät verfügbar ist, um diese Rolle zu übernehmen, ist pwstrDefaultDeviceNULL.
Rückgabewert
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Bei einem Fehler wird ein Fehlercode zurückgegeben.
Hinweise
Die drei Eingabeparameter geben die Datenflussrichtung, die Geräterolle und die Endpunkt-ID-Zeichenfolge des neuen Standard-Audioendpunktgeräts an.
In Windows Vista unterstützt die MMDevice-API Geräterollen, die vom System bereitgestellten Benutzeroberflächenprogramme hingegen nicht. Über die Benutzeroberfläche in Windows Vista kann der Benutzer ein Standardaudiogerät für das Rendern und ein Standardaudiogerät für die Aufnahme auswählen. Wenn der Benutzer das Standardrendering- oder Aufnahmegerät ändert, weist das System dem neuen Gerät alle drei Geräterollen (eConsole, eMultimedia und eCommunications) zu. Wenn der Benutzer also das Standardrendering- oder Aufnahmegerät ändert, ruft das System dreimal die OnDefaultDeviceChanged-Methode des Clients auf – einmal für jede der drei Geräterollen.
In einer zukünftigen Version von Windows kann der Benutzer über die Benutzeroberfläche verschiedenen Geräten einzelne Rollen zuweisen. Wenn der Benutzer in diesem Fall die Zuweisung von nur einer oder zwei Geräterollen in ein neues Rendering- oder Erfassungsgerät ändert, ruft das System die OnDefaultDeviceChanged-Methode des Clients nur ein- oder zweimal auf (d. a. einen Aufruf pro geänderter Rolle). Je nachdem, wie die OnDefaultDeviceChanged-Methode auf Rollenänderungen reagiert, kann sich das Verhalten einer Audioanwendung ändern, die für die Ausführung in Windows Vista entwickelt wurde, wenn sie in einer zukünftigen Version von Windows ausgeführt wird. Weitere Informationen finden Sie unter Geräterollen in Windows Vista.
Ein Codebeispiel, das die OnDefaultDeviceChanged-Methode implementiert, finden Sie unter Geräteereignisse.
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 |