Naja, für WAVE-Dateien ein CODEC zu benutzen ist durchaus standardgemäß, das ist im Format ja definitiv so vorgesehen - und MP3 als Codec wird sogar mit Windows ausgeliefert (eher coDEC als CODec). Zudem gibt's eine ganze
API-Sammlung dazu (ACM - Audio Compression Manager).
Es gibt viele Programme, die von sich aus schon bei MP3-Dateien den kleinen Riff-Header davor schreiben, damit die MP3-Datei vom Format her eine WAVE-Datei ist (habe ich auf jeden Fall schon häufiger mal gesehen).
Das sieht dann so aus:
Code:
00000000 5249 4646 4AE8 0F00 RIFFJ... <- "RIFF" + Dateigröße
00000008 5741 5645 666D 7420 WAVE
0000000C 1E00 0000 fmt .... <- "fmt "-Chunk
00000014 5500 0200 2256 0000 581B 0000 0100 0000 U..."V..X....... <- Formatbeschreibung
00000024 0C00 0100 0200 0000 B600 0100 7105 ............q.
00000032 6661 6374 0400 0000 fact.... <- "fact"-Chunk
0000003A 31B8 6400 1.d. <- Codec-spezifisches
0000003E 6461 7461 0CE8 0F00 data.... <- "data"-Chunk
00000046 <hier kommt der originale Inhalt der MP3-Datei>
Wobei man natürlich die Daten auf mehrere "data"-Chunks aufteilen könnte.
Ich habe das gerade mal ausprobiert und das
Abspielen einer solchen Ressource mit PlaySound funktioniert ganz problemlos (unter XP).
//EDIT:
blaues ergänzt.