When writing a Windows 95 program using VC++, how do you play a MIDI sound file?
Musical Instrument Digital Interface (MIDI) is a standard used by electronic keyboards long before Microsoft developed Windows. MIDI defines a protocol for transmitting and storing musical information.
The Win32 API provides several routines for working with MIDI data. Like so many things in Windows, there are a number of ways to play a MIDI file. For our purposes, we’ll try to find the simplest.
ShellExecute (hWnd, “open”, “c:\windows\media\Canyon.mid”, NULL, NULL, SW_SHOWNORMAL);ShellExecute and ShellExecuteEx are powerful routines that will open any type of supported file. Unfortunately, while this displays the specified MIDI file in the media player, I could see no simple way to automatically play the file. The user must manually click “play.”If that doesn’t suit you, you may want to try an MCI window class.
HWND hMCIWnd;hMCIWnd = MCIWndCreate(NULL, hInst, 0, “c:\windows\media\Canyon.mid”);MCIWndPlay(hMCIWnd);The MCI window class can handle all sorts of multimedia formats. You also have the option of displaying the media controls in a window of their own or in your own window. Many other options are supported. (Note that you will need to include vfw.h, and add vfw32.lib to your list of import libraries.)