The midiInStart function starts MIDI input on the specified MIDI input device.

MMRESULT midiInStart(
  HMIDIIN hMidiIn  



Handle to the MIDI input device.

Return Values

Returns MMSYSERR_NOERROR if successful or an error otherwise. Possible error values include the following

Value Description
MMSYSERR_INVALHANDLE The specified device handle is invalid.


This function resets the time stamp to zero; time stamp values for subsequently received messages are relative to the time that this function was called.

All messages except system-exclusive messages are sent directly to the client when they are received. System-exclusive messages are placed in the buffers supplied by the midiInAddBuffer function. If there are no buffers in the queue, the system-exclusive data is thrown away without notification to the client and input continues. Buffers are returned to the client when they are full, when a complete system-exclusive message has been received, or when the midiInReset function is used. The dwBytesRecorded member of the MIDIHDR structure will contain the actual length of data received.

Calling this function when input is already started has no effect, and the function returns zero.


**  Windows NT/2000/XP:** Included in Windows NT 3.1 and later.
**  Windows 95/98/Me:** Included in Windows 95 and later.
**  Header:** Declared in Mmsystem.h; include Windows.h.
**  Library:** Use Winmm.lib.

See Also

Musical Instrument Digital Interface (MIDI), MIDI Functions, midiInAddBuffer, midiInReset, MIDIHDR