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


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

Функция midiOutOpen открывает устройство вывода MIDI для воспроизведения.

Синтаксис

MMRESULT midiOutOpen(
  LPHMIDIOUT phmo,
  UINT       uDeviceID,
  DWORD_PTR  dwCallback,
  DWORD_PTR  dwInstance,
  DWORD      fdwOpen
);

Параметры

phmo

Указатель на дескриптор HMIDIOUT . Это расположение заполняется дескриптором, определяющим открытое устройство вывода MIDI. Дескриптор используется для идентификации устройства в вызовах других функций вывода MIDI.

uDeviceID

Идентификатор открываемого устройства вывода MIDI.

dwCallback

Указатель на функцию обратного вызова, дескриптор событий, идентификатор потока или дескриптор окна или потока, вызываемого во время воспроизведения MIDI, для обработки сообщений, связанных с ходом воспроизведения. Если обратный вызов не нульен, укажите значение NULL для этого параметра. Дополнительные сведения о функции обратного вызова см. в разделе MidiOutProc.

dwInstance

Данные экземпляра пользователя, передаваемые обратному вызову. Этот параметр не используется с обратными вызовами окна или потоками.

fdwOpen

Флаг обратного вызова для открытия устройства. Это могут быть следующие значения.

Значение Значение
CALLBACK_EVENT Параметр dwCallback является дескриптором события. Этот механизм обратного вызова предназначен только для выходных данных.
CALLBACK_FUNCTION Параметр dwCallback является адресом функции обратного вызова.
CALLBACK_NULL Механизм обратного вызова отсутствует. Это значение является значением по умолчанию.
CALLBACK_THREAD Параметр dwCallback является идентификатором потока.
CALLBACK_WINDOW Параметр dwCallback является дескриптором окна.

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

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

Код возврата Описание
MIDIERR_NODEVICE
MidI-порт не найден. Эта ошибка возникает только при открытии модуля сопоставления.
MMSYSERR_ALLOCATED
Указанный ресурс уже выделен.
MMSYSERR_BADDEVICEID
Указанный идентификатор устройства выходит за пределы диапазона.
MMSYSERR_INVALPARAM
Указанный указатель или структура недопустимы.
MMSYSERR_NOMEM
Системе не удается выделить или заблокировать память.

Комментарии

Чтобы определить количество устройств вывода MIDI, присутствующих в системе, используйте функцию midiOutGetNumDevs . Идентификатор устройства, заданный wDeviceID , варьируется от нуля до единицы меньше, чем количество присутствующих устройств. MIDI_MAPPER также можно использовать в качестве идентификатора устройства.

Если окно или поток выбраны для получения сведений о обратном вызове, в процедуру или поток окна отправляются следующие сообщения для указания хода выполнения выходных данных MIDI: MM_MOM_OPEN, MM_MOM_CLOSE и MM_MOM_DONE.

Если функция выбрана для получения сведений обратного вызова, в нее отправляются следующие сообщения для указания хода выполнения вывода MIDI: MOM_OPEN, MOM_CLOSE и MOM_DONE.

Требования

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

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

Функции MIDI