Поделиться через


Функция midiOutPrepareHeader (mmeapi.h)

Функция midiOutPrepareHeader подготавливает к выводу монопольный midI-буфер или буфер потока.

Синтаксис

MMRESULT midiOutPrepareHeader(
  HMIDIOUT  hmo,
  LPMIDIHDR pmh,
  UINT      cbmh
);

Параметры

hmo

Дескриптор вывода MIDI. Чтобы получить дескриптор устройства, вызовите midiOutOpen. Этот параметр также может быть дескриптором потока MIDI, приведения к типу HMIDIOUT .

pmh

Указатель на структуру MIDIHDR , определяющую подготавливаемый буфер.

Перед вызовом функции задайте элементы lpData, dwBufferLength и dwFlags структуры MIDIHDR . Элемент dwFlags должен иметь нулевое значение.

cbmh

Размер структуры MIDIHDR в байтах.

Возвращаемое значение

Возвращает MMSYSERR_NOERROR в случае успешного выполнения или ошибку в противном случае. Возможные значения ошибок:

Код возврата Описание
MMSYSERR_INVALHANDLE
Указанный дескриптор устройства недопустим.
MMSYSERR_INVALPARAM
Указанный адрес недопустим или заданный буфер потока больше 64 КБ.
MMSYSERR_NOMEM
Системе не удается выделить или заблокировать память.

Комментарии

Перед передачей блока данных MIDI драйверу устройства необходимо подготовить буфер, передав его в функцию midiOutPrepareHeader . После подготовки заголовка не изменяйте буфер. После завершения работы драйвера с помощью буфера вызовите функцию midiOutUnprepareHeader .

Приложение может повторно использовать один и тот же буфер или выделить несколько буферов и вызвать midiOutPrepareHeader для каждого буфера. При повторном использовании одного и того же буфера нет необходимости подготавливать его каждый раз. Вы можете вызвать midiOutPrepareHeader один раз в начале, а затем вызвать midiOutUnprepareHeader один раз в конце.

Размер буфера потока не может превышать 64 КБ.

Подготовка уже подготовленного заголовка не оказывает никакого влияния, и функция возвращает MMSYSERR_NOERROR.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header mmeapi.h (включая Windows.h)
Библиотека Winmm.lib
DLL Winmm.dll

См. также раздел

Выделение и подготовка блоков данных MIDI

Функции MIDI

midiOutUnprepareHeader