Я хочу изменить общую громкость с помощью функции
MMRESULT waveOutSetVolume(
HWAVEOUT hwo,
DWORD dwVolume
);
hwo
Handle to an open waveform-audio output device. This parameter can also be a device identifier.
Как мне создать обработчик для Master Volume?
dwVolume
Specifies a new volume setting. The low-order word contains the left-channel volume setting, and the high-order word contains the right-channel setting. A value of 0xFFFF represents full volume, and a value of 0x0000 is silence.
If a device does not support both left and right volume control, the low-order word of dwVolume specifies the volume level, and the high-order word is ignored.
Как передать громкость (например, 75) в функцию?
Попробуй так: Как программно изменить основной объем? не работает для меня!
В Vista + нет никаких изменений громкости waveOutXxx
API. Вместо этого используйте WASAPI:
Если устройство имеет аппаратный регулятор громкости, изменения, внесенные в элемент управления
сквозьIAudioEndpointVolume
интерфейс влияет на уровень громкости
как в режиме совместного использования, так и в эксклюзивном режиме. Если устройству не хватает оборудования
регуляторы громкости и отключения звука, изменения в программном обеспечении громкости и отключения звука
элементы управления через этот интерфейс влияют на уровень громкости в общем
режим, но не в эксклюзивном режиме. В эксклюзивном режиме приложение
и аудиооборудование обменивается аудиоданными напрямую, минуя
программные средства управления.
Других решений пока нет …