Moin Data,
WaveOutSetVolume erwartet als 2. Parameter ein DWORD, wobei linker/rechter Kanal im nieder/höherwertigen WORD liegen.
So müsste die Methode genügen:
Delphi-Quellcode:
procedure TTWKom.setVolume(Value: Longint);
begin
if active then
begin
fVolume := Value;
waveoutsetvolume(acmOut.FWaveOutHandle, (Word(Value) shl 16) or (Word(Value)));
end;
end;
BTW: Für Dein IntToHexStr kennt Delphi IntToHex.
[EDIT]
Allerdings dürfte das Ganze bei Dir recht leise werden, da der Wertebereich für die Lautstärke von $0000 bis $FFFF reicht (0-65535), Du aber nur 0-255 zulässt.
[/EDIT]