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


Функция midiOutSetVolume (mmeapi.h)

Функция midiOutSetVolume задает объем устройства вывода MIDI.

Синтаксис

MMRESULT midiOutSetVolume(
  HMIDIOUT hmo,
  DWORD    dwVolume
);

Параметры

hmo

Обработка на открытом устройстве вывода MIDI. Этот параметр также может содержать дескриптор MIDI-потока, если он приведен к HMIDIOUT. Этот параметр также может быть идентификатором устройства.

dwVolume

Новый параметр тома. Слово низкого порядка содержит параметр громкости левого канала, а слово высокого порядка — параметр правого канала. Значение 0xFFFF представляет полный объем, а значение 0x0000 — тишину.

Если устройство не поддерживает как левое, так и правое управление громкостью, слово dwVolume низкого порядка задает уровень моно тома, а слово высокого порядка игнорируется.

Возвращаемое значение

Возвращает MMSYSERR_NOERROR в случае успешного выполнения или ошибку в противном случае. Возможные значения ошибок:

Код возврата Описание
MMSYSERR_INVALHANDLE
Указанный дескриптор устройства недопустим.
MMSYSERR_NOMEM
Системе не удается выделить или заблокировать память.
MMSYSERR_NOTSUPPORTED
Функция не поддерживается.

Комментарии

Если используется идентификатор устройства, результат вызова midiOutSetVolume применяется ко всем экземплярам устройства. Если используется дескриптор устройства, результат применяется только к экземпляру устройства, на который ссылается дескриптор устройства.

Не все устройства поддерживают изменение тома. Вы можете определить, поддерживает ли устройство его, запросив его с помощью функции midiOutGetDevCaps и флага MIDICAPS_VOLUME.

Вы также можете определить, поддерживает ли устройство управление громкостями в левом и правом каналах, запросив устройство с помощью функции midiOutGetDevCaps и флага MIDICAPS_LRVOLUME.

Устройства, которые не поддерживают полный 16-разрядный элемент управления на уровне тома, используют биты высокого порядка запрошенного параметра тома. Например, устройство, поддерживающее 4 бита регулятора громкости, создает один и тот же параметр тома для следующих значений уровня тома: 0x4000, 0x43be и 0x4fff. Функция midiOutGetVolume возвращает полное 16-разрядное значение, заданное midiOutSetVolume, независимо от возможностей устройства.

Параметры тома интерпретируются логарифмически. Это означает, что предполагаемое увеличение объема одинаково при увеличении уровня громкости от 0x5000 до 0x6000, как и от 0x4000 до 0x5000.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header mmeapi.h (включая Windows.h)
Библиотека Winmm.lib
DLL Winmm.dll

См. также раздел

Функции MIDI