Поделиться через


Метод IMMNotificationClient::OnDefaultDeviceChanged (mmdeviceapi.h)

Метод OnDefaultDeviceChanged уведомляет клиента о том, что устройство конечной точки звука по умолчанию для определенной роли устройства изменилось.

Синтаксис

HRESULT OnDefaultDeviceChanged(
  [in] EDataFlow flow,
  [in] ERole     role,
  [in] LPCWSTR   pwstrDefaultDeviceId
);

Параметры

[in] flow

Направление потока данных устройства конечной точки. Этому параметру присваивается одно из следующих значений перечисления EDataFlow :

eRender

eCapture

Направление потока данных для устройства отрисовки — eRender. Направление потока данных для устройства захвата — eCapture.

[in] role

Роль устройства конечной точки звука. Для этого параметра задано одно из следующих значений перечисления ERole :

eConsole

eMultimedia

eCommunications

[in] pwstrDefaultDeviceId

Указатель на строку идентификатора конечной точки , которая идентифицирует устройство конечной точки звука. Этот параметр указывает на строку с расширенными символами, заканчивающуюся null, которая содержит идентификатор конечной точки. Строка остается действительной в течение всего вызова. Если пользователь удалил или отключил устройство по умолчанию для определенной роли и другое устройство не может принять на себя роль, то pwstrDefaultDevice имеет значение NULL.

Возвращаемое значение

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Комментарии

Три входных параметра определяют направление потока данных, роль устройства и строку идентификатора конечной точки нового устройства конечной точки аудио по умолчанию.

В Windows Vista API MMDevice поддерживает роли устройств, но программ пользовательского интерфейса, предоставляемых системой, нет. Пользовательский интерфейс в Windows Vista позволяет пользователю выбрать звуковое устройство по умолчанию для отрисовки и звуковое устройство по умолчанию для захвата. Когда пользователь изменяет устройство отрисовки или захвата по умолчанию, система назначает все три роли устройства (eConsole, eMultimedia и eCommunications) новому устройству. Таким образом, когда пользователь изменяет устройство отрисовки или записи по умолчанию, система вызывает метод OnDefaultDeviceChanged клиента три раза — один раз для каждой из трех ролей устройства.

В будущих версиях Windows пользовательский интерфейс может позволить пользователю назначать отдельные роли разным устройствам. В этом случае, если пользователь изменяет назначение только одной или двух ролей устройства на новое устройство отрисовки или захвата, система будет вызывать метод OnDefaultDeviceChanged клиента только один или два раза (то есть один вызов на измененную роль). В зависимости от того, как метод OnDefaultDeviceChanged реагирует на изменения ролей, поведение звукового приложения, разработанного для запуска в Windows Vista, может измениться при запуске в будущей версии Windows. Дополнительные сведения см. в разделе Роли устройств в Windows Vista.

Пример кода, реализующий метод OnDefaultDeviceChanged , см. в разделе События устройства.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header mmdeviceapi.h

См. также раздел

Интерфейс IMMNotificationClient