midiOutUnprepareHeader function

The midiOutUnprepareHeader function cleans up the preparation performed by the midiOutPrepareHeader function.

Syntax

MMRESULT midiOutUnprepareHeader(
   HMIDIOUT  hmo,
   LPMIDIHDR lpMidiOutHdr,
   UINT      cbMidiOutHdr
);

Parameters

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

  • lpMidiOutHdr
    Pointer to a MIDIHDR structure identifying the buffer to be cleaned up.

  • cbMidiOutHdr
    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
MIDIERR_STILLPLAYING

The buffer pointed to by lpMidiOutHdr is still in the queue.

MMSYSERR_INVALHANDLE

The specified device handle is invalid.

MMSYSERR_INVALPARAM

The specified pointer or structure is invalid.

 

Remarks

This function is complementary to the midiOutPrepareHeader function. You must call midiOutUnprepareHeader before freeing the buffer. After passing a buffer to the device driver with the midiOutLongMsg function, you must wait until the device driver is finished with the buffer before calling midiOutUnprepareHeader.

Unpreparing a buffer that has not been prepared has no effect, and the function returns MMSYSERR_NOERROR.

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Mmsystem.h (include Windows.h)

Library

Winmm.lib

DLL

Winmm.dll

See also

Allocating and Preparing MIDI Data Blocks

MIDI Functions