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


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

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

Синтаксис

MMRESULT midiInOpen(
  LPHMIDIIN phmi,
  UINT      uDeviceID,
  DWORD_PTR dwCallback,
  DWORD_PTR dwInstance,
  DWORD     fdwOpen
);

Параметры

phmi

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

uDeviceID

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

dwCallback

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

dwInstance

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

fdwOpen

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

Значение Значение
CALLBACK_FUNCTION Параметр dwCallback является адресом процедуры обратного вызова.
CALLBACK_NULL Механизм обратного вызова отсутствует. Это значение является параметром по умолчанию.
CALLBACK_THREAD Параметр dwCallback является идентификатором потока.
CALLBACK_WINDOW Параметр dwCallback является дескриптором окна.
MIDI_IO_STATUS Если этот параметр также указывает CALLBACK_FUNCTION, в функцию обратного вызова отправляются MIM_MOREDATA сообщения, а также MIM_DATA сообщения. Или, если этот параметр также указывает CALLBACK_WINDOW, MM_MIM_MOREDATA сообщения отправляются в окно, а также MM_MIM_DATA сообщения. Этот флаг не влияет на обратные вызовы событий или потоков.
 

Большинство приложений, использующих механизм обратного вызова, указывают CALLBACK_FUNCTION для этого параметра.

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

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

Код возврата Описание
MMSYSERR_ALLOCATED
Указанный ресурс уже выделен.
MMSYSERR_BADDEVICEID
Указанный идентификатор устройства выходит за пределы диапазона.
MMSYSERR_INVALFLAG
Недопустимые флаги, заданные параметром dwFlags .
MMSYSERR_INVALPARAM
Указан недопустимый указатель или структура.
MMSYSERR_NOMEM
Система не может выделить или заблокировать память.

Комментарии

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

Если для получения сведений о обратном вызове выбрано окно или поток, в процедуру или поток окна отправляются следующие сообщения для указания хода выполнения входных данных MIDI: MM_MIM_OPEN, MM_MIM_CLOSE, MM_MIM_DATA, MM_MIM_LONGDATA, MM_MIM_ERROR, MM_MIM_LONGERROR и MM_MIM_MOREDATA.

Если функция выбрана для получения сведений о обратном вызове, в нее отправляются следующие сообщения для указания хода выполнения входных данных MIDI: MIM_OPEN, MIM_CLOSE, MIM_DATA, MIM_LONGDATA, MIM_ERROR, MIM_LONGERROR и MIM_MOREDATA.

Требования

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

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

Функции MIDI