midiInStart function

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


MMRESULT midiInStart(



Handle to the MIDI input device.

Return Value

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

Return code Description
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.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header mmeapi.h (include Windows.h)
Library Winmm.lib
DLL Winmm.dll

See Also

MIDI Functions