Embedding sound files

How could I embed a sound file (preferably midi) into an application so that it runs when a game is being played (and for a few extra points, how can I add an option (perhaps in a drop-menu) to turn the sound off?)
Who is Participating?
thresher_sharkConnect With a Mentor Commented:
Okay, I am glad everything has worked out for you.  I just found the class yesterday, and I too have found it to work very well.  Thanks!
Well, to add a file into an application, do this:

1) Select the "Resources" tab on the window in the main area of Developer Studio.

2) Right click on the name of your project.  This brings up a popup menu.

3) Select "Insert..."

4) Click the custom button.

5) Name the resource something like "Midi"

6) Right click on the "IDR_MIDI1" resource.

7) Click import.

8) Select the name of the midi file you want to bring into your project.

9) Voila! Now you have a midi file embedded in the EXE (no external file required).

Now, if you don't need a separate file embedded in the EXE (i.e. if you are okay with distributing external files), then your job is much easier.

You can simply use the PlaySound function to play a sound file.
Here is an example as to how to use the PlaySound function:

PlaySound ("C:\\yourdir\\yoursound.mid", NULL, SND_ASYNC | SND_FILENAME);

To stop the sound, use:


Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

If you have any further questions regarding this, please don't hesitate to ask.  Thanks!
MephistoAuthor Commented:
Where can I place a call to the PlaySound function?
MephistoAuthor Commented:
And if I do embed the file into the EXE, how can I call a function to play the embedded soundfile?
You _would_ use the SND_MEMORY or SND_RESOURCE flgs.  But the problem is that thresher_shark's answer is all wet: PlaySound() doesn't work on MIDI files (or data); only on WAV files (or data).

B ekiM

Hence the "comment" ... mikeblas is correct, after some research I discovered you can't use the PlaySound function.  You can use a great class that I got of the internet though, go to:


which has an excellent class for playing MIDI files from the resource.  PlaySound only works with WAVE files :-(

If you have any other questions, please feel free to ask.  Thanks!
MephistoAuthor Commented:
Thank you very much....   the midi class is extremely helpful..   throw something into an answer if you want the points for it.. every bit of the original question has been answered or I figured out on my own.....
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.