Функция 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 в случае успешного выполнения или ошибку в противном случае. Возможные значения ошибок:
Код возврата | Описание |
---|---|
|
MidI-порт не найден. Эта ошибка возникает только при открытии модуля сопоставления. |
|
Указанный ресурс уже выделен. |
|
Указанный идентификатор устройства выходит за пределы диапазона. |
|
Указанный указатель или структура недопустимы. |
|
Системе не удается выделить или заблокировать память. |
Комментарии
Чтобы определить количество устройств вывода 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 |