Сведения об 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 передает эти значения по ссылке. Переменная типа HRESULT, а переменная pEnumerator
hr
— указатель на интерфейс IMMDeviceEnumerator объекта перечислителя устройств. IMMDeviceEnumerator предоставляет методы перечисления устройств конечной точки аудио. Сведения о операторе __uuidof, функции CoCreateInstance и константах CLSCTX_Xxx см. в документации по пакету SDK для Windows.
Через интерфейс IMMDeviceEnumerator клиент может получить ссылки на другие интерфейсы в API MMDevice. API MMDevice реализует следующие интерфейсы.
Интерфейс | Description |
---|---|
IMMDevice | Представляет звуковое устройство. |
IMMDeviceCollection | Представляет коллекцию звуковых устройств. |
IMMDeviceEnumerator | Предоставляет методы перечисления звуковых устройств. |
IMMEndpoint | Представляет устройство конечной точки аудио. |
Кроме того, клиенты API MMDevice, требующие уведомления об изменениях состояния на устройствах аудио конечной точки, должны реализовать следующий интерфейс.
Интерфейс | Description |
---|---|
IMMNotificationClient | Предоставляет уведомления о добавлении или удалении устройства аудио конечной точки при изменении состояния или свойств устройства или при изменении роли по умолчанию, назначенной устройству. |
См. также