Thema: Delphi Dword -> word ?

Einzelnen Beitrag anzeigen

Schucki

Registriert seit: 17. Jul 2004
158 Beiträge
 
Delphi 2010 Architect
 
#4

AW: Dword -> word ?

  Alt 18. Mär 2017, 09:49
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.
Frank
  Mit Zitat antworten Zitat