midiOutUnprepareHeader (winmm)
Last changed: -


C# Signature:

[DllImport("winmm.dll", SetLastError=true)]
static extern UInt32 midiOutUnprepareHeader(IntPtr hMidiOut, IntPtr lpMidiOutHdr, UInt32 cbMidiOutHdr); // LD83

VB Signature:

Declare Function midiOutUnprepareHeader Lib "winmm.dll" (hMidiOut AS Intptr, lpMidiOutHdr AS IntPtr, cbMidiOutHdr) AS UInt32 ' LD83

User-Defined Types:

hMidiOut - 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.


Returns MMRESULT. Possible values are:


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.

Alternative Managed API:

Do you know one? Please contribute it!


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 MMRESULT of MMSYSERR_NOERROR.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!