A few years back, I wrote some util library around DShow/DSound to let me play MP3s in a Windows C++ application. Is that still the normal way to do it in a C++/MFC app, or
PlaySound() natively supports MP3 as long as it is embedded in a WAV file. People don't realize that WAV is a container format.
Download the ffmpeg utilities to convert the header and preserve the codec:
ffmpeg -i input.mp3 -c copy -f wav embedded_mp3.wav