Kleiner Tipp
Hallo zusammen,
Zuerst mal verwendest du die mmSystem.dll im %SystemRoot%\System32.
Der Folgende Code ist in Delphi geschrieben, es sollte aber kein Problem sein, ihn in C zu konvertieren. ACHTUNG: Hier behandle ich WAVEOUT und nicht den MASTER!
//----------- CODE START ------------------------
//Lautstärke auslesen
procedure GetVolume(var volL, volR: Word);
var
hWO : HWAVEOUT;
waveF : TWAVEFORMATEX;
vol : DWORD;
begin
volL:= 0;
volR:= 0;
FillChar(waveF, SizeOf(waveF), 0);
waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
waveOutGetVolume(hWO, @vol);
volL := vol and $FFFF;
volR:= vol shr 16;
waveOutClose(hWO);
end;
//Lautstärke einlesen
procedure SetVolume(const volL, volR: Word);
var
hWO : HWAVEOUT;
waveF : TWAVEFORMATEX;
vol : DWORD;
begin
FillChar(waveF, SizeOf(waveF), 0);
waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
vol:= volL + volR shl 16;
waveOutSetVolume(hWO, vol);
waveOutClose(hWO);
end;
//Boga Aufruf
procedure TForm1.setVol(step : Integer);
var
VolLi, VolRe: Word;
begin
GetVolume(VolLi,VolRe);
SetVolume(VolLi,VolRe);
end;
//----------- CODE END ------------------------
Hoffe es nützt dir was, sonst schaust du einmach mal auf der Microsoft seite vorbei und guckts dir die MAPI Referenc in MSDN an.