Danke für Eure Antworten, es war schon spät und ich hab das aus dem Kopf geschrieben ohne C&P aus Delphi deshalb die Fehler und auch die HEX Schreibweise weil ich die DEZ Werte nicht aus dem Kopf kannte.
Ich schick mal die GANZE Funktion, es geht darum die Lautstärke von einer Soundkarte zu ermitteln.
Delphi-Quellcode:
uses Classes, SysUtils, Windows, Dialogs, MmSystem;
function GetWaveVolume(uDeviceId:Cardinal; var wLVol: Word; var wRVol: Word): Boolean;
var
WaveOutCaps: TWaveOutCaps;
Volume: dword;
begin
Result := False;
if WaveOutGetDevCaps(uDeviceId, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then
if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then begin
Result := WaveOutGetVolume(uDeviceId, @Volume) = MMSYSERR_NOERROR;
wLVol := HiWord(volume);
wRVol := LoWord(volume);
end;
end;
In wLVol und dRVol ist hier immer $FFFF (65535), setze ich einen Breakpoint in der Funktion dann sehe ich das in Volume aber tatsächlich $19999999 (4294967295) steht.
Es müste also einmal $1999 und einmal $9999 heraus kommen, tut es aber nicht.
Hoffe das es nun komplett ist und ihr eine Lösung habt.