MODM_SETVOLUME

See also MODM_GETVOLUME

Sent to a MIDI output device driver to set the volume for a device.

MMSYSERR_NOTENABLED

The driver failed to load or initialize.

MMSYSERR_NOTSUPPORTED

The driver does not support changes to volume level.


DWORD dwParam1

Specifies the new volume level. The high-order word contains the right channel setting and the low-order word contains the left channel setting. A value of 0 is silence, and a value of 0xFFFF is full volume. If the driver does not support both left and right channel volume changes, it uses the volume specified in the low-order word. The driver will probably not support the full 16 bits of volume control and should truncate the lower bits if necessary. However, the original value requested with MODM_SETVOLUME should be returned with MODM_GETVOLUME.

DWORD dwParam2

Unused.

This volume message is not the same as the MIDI volume controller message which will be used by sequencers and the mapper. This volume is the final output volume on the card; therefore, only drivers for internal synthesizer devices can support volume level changes. Drivers for MIDI output ports should return a MMSYSERR_NOTSUPPORTED error for this message. Support for volume level changes is optional for internal synthesizer devices. When a driver receives a MODM_GETDEVCAPS message, it should indicate support for volume level changes by setting or clearing the MIDICAPS_VOLUME and MIDICAPS_LRVOLUME bits in the dwSupport field of the MIDIOUTCAPS data structure. If a driver supports the MODM_SETVOLUME message, then it must also support MODM_GETVOLUME.