midiStreamOut function (mmeapi.h)

The midiStreamOut function plays or queues a stream (buffer) of MIDI data to a MIDI output device.

Syntax

MMRESULT midiStreamOut(
  HMIDISTRM hms,
  LPMIDIHDR pmh,
  UINT      cbmh
);

Parameters

hms

Handle to a MIDI stream. This handle must have been returned by a call to the midiStreamOpen function. This handle identifies the output device.

pmh

Pointer to a MIDIHDR structure that identifies the MIDI buffer.

cbmh

Size, in bytes, of the MIDIHDR structure.

Return value

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

Return code Description
MMSYSERR_NOMEM
The system is unable to allocate or lock memory.
MIDIERR_STILLPLAYING
The output buffer pointed to by lpMidiHdr is still playing or is queued from a previous call to midiStreamOut.
MIDIERR_UNPREPARED
The header pointed to by lpMidiHdr has not been prepared.
MMSYSERR_INVALHANDLE
The specified device handle is invalid.
MMSYSERR_INVALPARAM
The pointer specified by lpMidiHdr is invalid.

Remarks

Before the buffer is passed to midiStreamOpen, it must be prepared by using the midiOutPrepareHeader function.

Because the midiStreamOpen function opens the output device in paused mode, you must call the midiStreamRestart function before you can use midiStreamOut to start the playback.

For the current implementation of this function, the buffer must be smaller than 64K.

The buffer pointed to by the MIDIHDR structure contains one or more MIDI events, each of which is defined by a MIDIEVENT structure.

Requirements

Requirement Value
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