Click to open or copy the files for the MIDImon sample.
MIDImon is a Windows with Multimedia application that records and displays incoming MIDI information. It uses a low-level callback function to get timestamped MIDI input. The callback function puts the incoming MIDI event information (source device, timestamp, and raw MIDI data) in a circular input buffer and notifies the application by posting a MM_MIDIINPUT message. When the application processes the MM_MIDIINPUT message, it removes the MIDI event from the input buffer and puts it in a display buffer. Information in the display buffer is converted to text and displayed in a scrollable window. Incoming MIDI data can be sent to the MIDI Mapper if the user chooses. Filtering is provided for the display buffer, but not for data sent to the Mapper.
This sample uses the following keywords:
aboutdlgproc; adddisplayevent; alloccallbackinstancedata; alloccircularbuffer; allocdisplaybuffer; beginpaint; checkeventfilter; checkmenuitem; commandmsg; createsolidbrush; createwindow; defwindowproc; deleteobject; dialogbox; dispatchmessage; domenuitemcheck; drawmenubar; enddialog; endpaint; error; fillrect; freecallbackinstancedata; freecircularbuffer; freedisplaybuffer; getclientrect; getdc; getdisplayevent; getdisplaytext; getevent; getmenu; getmessage; getpreferences; getprivateprofileint; getstockobject; getstringres; getsyscolor; getsystemmetrics; gettextextentpoint; gettextmetrics; getwindowrect; globalalloc; globalfree; globallock; globalsmartpagelock; globalsmartpageunlock; globalunlock; initfirstinstance; invalidaterect; lineto; loadcursor; loadicon; loadstring; max; messagebeep; messagebox; midiinclose; midiingetdevcaps; midiingeterrortext; midiingetnumdevs; midiinopen; midiinputhandler; midiinreset; midiinstart; midiinstop; midioutclose; midioutgeterrortext; midioutopen; midioutshortmsg; min; modifymenu; movetoex; postmessage; postquitmessage; putevent; registerclass; releasedc; resetdisplaybuffer; scrollwindow; selectobject; sendmessage; setbkmode; setpreferences; setscrollpos; setscrollrange; setupcustomchecks; showwindow; sprintf; switch; textout; translatemessage; updatewindow; winmain; wndproc; writeprivateprofilestring; wsprintf