Sorry if this overstates the obvious ...
- Are you sure this line of code is executing?
- According to RobS, any of the other SystemSounds games?
I looked into the reflector. Whatever the SystemSounds call, the returned SystemSound instance initialized with the type (e.g. 0x40 for Asterix) for the system sound you want to play. Then it is passed to the Win32 bool MessageBeep method (int type). Imported as:
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)] internal static extern bool MessageBeep(int type);
The return bool is in no way saved - i.e. you cannot get it: (
Exceptions are not swallowed, so you should get them if they are thrown.
Hope this helps (although probably just telling you what you already know)
source share