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


Сведения об API MMDevice

API мультимедийного устройства Windows (MMDevice) позволяет аудио-клиентам обнаруживать конечных точек аудиоустройств, определять их возможности и создавать экземпляры драйверов для этих устройств.

Файл заголовка Mmdeviceapi.h определяет интерфейсы в API MMDevice.

API MMDevice состоит из нескольких интерфейсов. Интерфейс IMMDeviceEnumerator является первым из них. Чтобы получить доступ к интерфейсам в API MMDevice, клиент получает ссылку на интерфейс IMMDeviceEnumerator интерфейса объекта перечисления устройств, вызвав функцию CoCreateInstance, как показано в следующем фрагменте кода:

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

В предыдущем фрагменте кода CLSID_MMDeviceEnumerator и IID_IMMDeviceEnumerator — это значения GUID, присоединенные в качестве атрибутов к объекту класса MMDeviceEnumerator, а также к интерфейсу IMMDeviceEnumerator. Вызов CoCreateInstance передает эти значения по ссылке. Переменная hr имеет тип HRESULT, а переменная pEnumerator — указатель на интерфейс IMMDeviceEnumerator интерфейса объекта перечисления устройств. IMMDeviceEnumerator предоставляет методы перечисления конечных аудиоустройств. Сведения о операторе __uuidof, функция CoCreateInstance и константы CLSCTX_Xxx см. в документации по пакету SDK для Windows.

Через интерфейс IMMDeviceEnumerator клиент может получить ссылки на другие интерфейсы в API MMDevice. API MMDevice реализует следующие интерфейсы.

Интерфейс Описание
IMMDevice Представляет звуковое устройство.
IMMDeviceCollection Представляет коллекцию звуковых устройств.
IMMDeviceEnumerator Предоставляет методы перечисления звуковых устройств.
IMMEndpoint Представляет устройство конечной точки аудио.

 

Кроме того, клиенты API MMDevice, требующие уведомления об изменениях состояния на устройствах аудио конечной точки, должны реализовать следующий интерфейс.

Интерфейс Описание
IMMNotificationClient Предоставляет уведомления о добавлении или удалении устройства аудио конечной точки при изменении состояния или свойств устройства или при изменении роли по умолчанию, назначенной устройству.

 

устройствах звуковых конечных точек

Справочник по программированию