I have found Windows WILL play MP3s, but it is not documented. What decoder it uses, I don't know, but it seems to work on all installations of Windows I've tried.
You need to use the MCI interface and open an MP3 as 'all device types', like so:
Code:
MCI_OPEN_PARMS op; // <- data structure
op.dwCallback = NULL;
op.lpstrDeviceType = (char*)MCI_ALL_DEVICE_ID; // <- integer value cast as char*
op.lpstrElementName = fName.c_str(); // <-filename string
op.lpstrAlias = NULL;
// Send command to
mciSendCommand( NULL, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_WAIT, (DWORD)&op) );
Check out the MS documentation for MCI and mciSendCommand.
Personally, if you want your alarm clock to play a 'ping' or short sound, I would stick with wavs & PlaySound.