|
From: <A_B...@gm...> - 2004-09-29 15:10:00
|
Hi,
I whant to get and set the main volume.
Well, I mean the value from the volume control at the tray bar from windows.
I'm sure it could be done with the Windows API, but I don't know how...
I tried it like this:
double GetWaveVolumePercent(bool blLeft){
unsigned long ulCurrentVolume = 0;
if(waveOutGetVolume(0, (LPDWORD) &ulCurrentVolume) == MMSYSERR_NOERROR){
if(blLeft) return double(double(LOWORD(ulCurrentVolume))*100.0/65535.0);
else return double(double(HIWORD(ulCurrentVolume))*100.0/65535.0);
}
else return 0.0;
}
bool SetWaveVolumePercent(double dlValue, bool blLeft){
unsigned long ulCurrentVolume = 0;
if(dlValue < 0.0) dlValue = 0.0;
else if(dlValue > 100.0) dlValue = 100.0;
if(waveOutGetVolume(0, (LPDWORD) &ulCurrentVolume) == MMSYSERR_NOERROR){
WORD ilNewVolume = int(double(65535.0)/100.0*dlValue);
if(blLeft) ulCurrentVolume = ulCurrentVolume & 0xFFFF0000 | ilNewVolume;
else ulCurrentVolume = ulCurrentVolume & 0x0000FFFF | ilNewVolume*0x10000;
return waveOutSetVolume(0, ulCurrentVolume) == MMSYSERR_NOERROR;
}
else return false;
}
But this is not what I whant and doesn't work at all...
I whant the main volume !!!
Any suggestions ???
thx, Acki
|