The midiOutLongMsg function sends a system-exclusive MIDI message to the specified MIDI output device.

MMRESULT midiOutLongMsg(
  HMIDIOUT hmo,            
  LPMIDIHDR lpMidiOutHdr,  
  UINT cbMidiOutHdr        



Handle to the MIDI output device. This parameter can also be the handle of a MIDI stream cast to HMIDIOUT.


Pointer to a MIDIHDR structure that identifies the MIDI buffer.


Size, in bytes, of the MIDIHDR structure.

Return Values

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

Value Description
MIDIERR_NOTREADY The hardware is busy with other data.
MIDIERR_UNPREPARED The buffer pointed to by lpMidiOutHdr has not been prepared.
MMSYSERR_INVALHANDLE The specified device handle is invalid.
MMSYSERR_INVALPARAM The specified pointer or structure is invalid.


Before the buffer is passed to midiOutLongMsg, it must be prepared by using the midiOutPrepareHeader function. The MIDI output device driver determines whether the data is sent synchronously or asynchronously.


**  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, MIDIHDR, midiOutPrepareHeader