waveOutWriteする前段階で、lpDataの指すバッファに対して自前で音量調節してやりゃいい。
8bitと16bitでunsignedとsignedの違いがあるからそこだけ注意するとして、
基本的には buffer * volume / max_volume のように計算するだけだから簡単なものだよ。