Всем привет,
первый раз задаю здесь вопрос, поэтому прошу быть помягче
Как известно, в Vista поменяли способ работы со звуковыми устройствами и управление микшером через функции mixer* перестало нормально функционировать. Для этого теперь есть
MMDevice и EndpointVolume API.
С помощью этих новых интерфейсов у меня получается управлять уровнем записи микрофона (recording volume), но мне нужно регулировать уровень воспроизведения (playback volume —
скриншот микшера). Каким образом я могу это сделать? В документации внятного ответа на этот вопрос нет.
На официальном форуме ответа мне тоже никто пока не дал
На данный момент пытаюсь достичь цели следующим образом:
1. Получаю указатель на интерфейс IMMDeviceEnumerator
2. Перебираю все endpoint'ы в системе (используя флаги eAll и DEVICE_STATEMASK_ALL, т.е. вообще все)
3. Мне возвращаются все устройства: колонки, spdif, линейный выход.. и, собственно, микрофон (ОДИН).
4. Активирую микрофон функцией Activate
5. Теперь, если я пытаюсь изменить уровень с помощью SetMasterVolumeLevelScalar — меняется уровень записи (recording level), а уровень воспроизведения (playback level) остается прежним.
Как мне добраться до уровня воспроизведения? Через IConnector/IPart и IDeviceTopology?

Пробовал, но дальше одной точки перебор не идет.. (на двух разных звуковых картах).
Очень надеюсь на вашу помощь!
Спасибо.