// The volume range is 0-0xffff. UINT MaxDevs = waveOutGetNumDevs(); WAVEOUTCAPS woc; for (UINT DID = 0; DID < MaxDevs - 1; DID++) { MMRESULT res = waveOutGetDevCaps(DID, &woc, sizeof(AUXCAPS)); if ((res == MMSYSERR_NOERROR) && (woc.dwSupport & WAVECAPS_LRVOLUME)) break; } if (DID == MaxDevs - 1) DID = AUX_MAPPER; // MASTER VOLUME #define MLEFTVOL 0x1000 #define MRIGHTVOL 0x1000 auxSetVolume(DID, MAKELONG(MLEFTVOL, MRIGHTVOL)); // WAVE VOLUME #define WLEFTVOL 0x8000 #define WRIGHTVOL 0x8000 waveOutSetVolume((HWAVEOUT)DID, MAKELONG(WLEFTVOL, WRIGHTVOL)); //Updated on 13rd Sep 2001, now detects the waveOut volume device ID.