Сведения об 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 | Предоставляет уведомления о добавлении или удалении устройства аудио конечной точки при изменении состояния или свойств устройства или при изменении роли по умолчанию, назначенной устройству. |
Связанные разделы
-
устройствах звуковых конечных точек