Структура MIDIEVENT (mmeapi.h)
Структура MIDIEVENT описывает событие MIDI в буфере потока.
Синтаксис
typedef struct midievent_tag {
DWORD dwDeltaTime;
DWORD dwStreamID;
DWORD dwEvent;
DWORD dwParms[1];
} MIDIEVENT;
Члены
dwDeltaTime
Время между предыдущим событием и текущим событием в тактах MIDI. Длина такта определяется форматом времени и, возможно, временем, связанным с потоком. (Определение идентично спецификации для такта в стандартном MIDI-файле.)
dwStreamID
Защищены; значение должно быть равно нулю.
dwEvent
Код события, параметры или длина события. Чтобы проанализировать эти сведения, используйте макросы MEVT_EVENTTYPE и MEVT_EVENTPARM . См. заметки.
dwParms[1]
Если dwEvent указывает MEVT_F_LONG и длину буфера, этот член содержит параметры для события. Данные этого параметра должны быть заполнены нулями, чтобы сохранить целое количество значений DWORD . Например, если данные события длиной пять байт, то за данными должны следовать три байта на общей сложности восемь байтов. В этом случае низкий 24 бит dwEvent будет содержать значение 5.
Если dwEvent указывает MEVT_F_SHORT, не используйте этот элемент в буфере потока.
Комментарии
Высокий байт dwEvent содержит флаги и код события. Необходимо указать флаг MEVT_F_LONG или MEVT_F_SHORT. Флаг MEVT_F_CALLBACK необязателен. В следующей таблице описаны эти флаги.
Flag | Значение |
---|---|
MEVT_F_CALLBACK | Система создает обратный вызов, когда событие вот-вот будет выполнено. |
MEVT_F_LONG | Событие является длительным. Низкие 24 бит dwEvent содержат длину параметров события, включенных в dwParms. |
MEVT_F_SHORT | Событие является коротким. Параметры события содержатся в dwEvent с низкими 24 битами. |
Остаток большого байта содержит один из следующих кодов событий:
Код события | Значение |
---|---|
MEVT_COMMENT | Длинное событие. Данные события будут игнорироваться. Это событие предназначено для хранения комментариев о потоке, которые могут быть полезны для разработки программ или секвенсоров, если данные потока должны храниться в файле в формате потока. В буфере этих данных нулевой байт определяет класс комментариев, а последующие байты содержат данные комментария. |
MEVT_LONGMSG | Длинное событие. Данные события передаются дословно. Предполагается, что данные события являются данными, исключающими систему; то есть состояние выполнения будет очищено при выполнении события, а состояние выполнения из всех предыдущих событий не будет применяться к событиям канала в данных события. Использовать это событие для одновременной отправки группы сообщений канала не рекомендуется; Вместо этого следует использовать набор событий MEVT_SHORTMSG с нулевым разностным временем. |
MEVT_NOP | Короткое событие. Это событие является заполнителем; он ничего не делает. Низкие 24 бита игнорируются. Это событие по-прежнему создает обратный вызов, если MEVT_F_CALLBACK задано в dwEvent. |
MEVT_SHORTMSG | Короткое событие. Данные в низком 24 бит dwEvent являются коротким сообщением MIDI. (Описание того, как короткое сообщение упаковывается в значение DWORD, см. в функции midiOutShortMsg.) |
MEVT_TEMPO | Короткое событие. Данные в низких 24 битах dwEvent содержат новый темп для следующих событий. Tempo указывается в том же формате, что и для мета-события изменения темпа в MIDI-файле, то есть в микросекундах на квартальную заметку. (Это событие не будет действовать, если для потока задан формат времени SMPTE.) |
MEVT_VERSION | Длинное событие. Данные события должны содержать структуру MIDISTRMBUFFVER. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | mmeapi.h (включая Windows.h) |