Zamiast tak kombinować, plecam zajrzeć do Microsoft Multimedia Programmer's Reference i przyjrzec się flagom dla:
PlaySound(nazwa, moduł, flagi);
Szczególnie przydatna może się okazać:
SND_NOSTOP
. Oto wyciąg z tej dokumentacji:
The specified sound event will yield to another sound event that is already playing. If a sound cannot be played because the resource needed to generate that sound is busy playing another sound, the function immediately returns FALSE without playing the requested sound.
If this flag is not specified, PlaySound attempts to stop the currently playing sound so that the device can be used to play the new sound.