MIDIEVENT-Struktur (mmeapi.h)

Die MIDIEVENT-Struktur beschreibt ein MIDI-Ereignis in einem Streampuffer.

Syntax

typedef struct midievent_tag {
  DWORD dwDeltaTime;
  DWORD dwStreamID;
  DWORD dwEvent;
  DWORD dwParms[1];
} MIDIEVENT;

Member

dwDeltaTime

Zeit in MIDI-Ticks zwischen dem vorherigen Ereignis und dem aktuellen Ereignis. Die Länge eines Teilstrichs wird durch das Zeitformat und möglicherweise das Tempo definiert, das dem Stream zugeordnet ist. (Die Definition ist identisch mit der Spezifikation für einen Tick in einer MIDI-Standarddatei.)

dwStreamID

Reserviert; muss null sein.

dwEvent

Ereigniscode und Ereignisparameter oder Länge. Verwenden Sie zum Analysieren dieser Informationen die Makros MEVT_EVENTTYPE und MEVT_EVENTPARM . Siehe Hinweise.

dwParms[1]

Wenn dwEvent MEVT_F_LONG und die Länge des Puffers angibt, enthält dieser Member Parameter für das Ereignis. Diese Parameterdaten müssen mit Nullen aufgefüllt werden, damit eine ganzzahlige Anzahl von DWORD-Werten gespeichert wird. Wenn die Ereignisdaten beispielsweise fünf Bytes lang sind, müssen drei Padbytes den Daten für insgesamt acht Bytes folgen. In diesem Fall würden die niedrigen 24 Bits von dwEvent den Wert 5 enthalten.

Wenn dwEvent MEVT_F_SHORT angibt, verwenden Sie diesen Member nicht im Streampuffer.

Hinweise

Das hohe Byte von dwEvent enthält Flags und einen Ereigniscode. Es muss entweder das flag MEVT_F_LONG oder MEVT_F_SHORT angegeben werden. Das flag MEVT_F_CALLBACK ist optional. In der folgenden Tabelle werden diese Flags beschrieben.

Flag Bedeutung
MEVT_F_CALLBACK Das System generiert einen Rückruf, wenn das Ereignis ausgeführt werden soll.
MEVT_F_LONG Das Ereignis ist ein langes Ereignis. Die niedrigen 24 Bits von dwEvent enthalten die Länge der ereignisparameter, die in dwParms enthalten sind.
MEVT_F_SHORT Das Ereignis ist ein kurzes Ereignis. Die Ereignisparameter sind in den niedrigen 24 Bits von dwEvent enthalten.
 

Der Rest des hohen Byte enthält einen der folgenden Ereigniscodes:

Ereigniscode Bedeutung
MEVT_COMMENT Long-Ereignis. Die Ereignisdaten werden ignoriert. Dieses Ereignis dient zum Speichern von Kommentarinformationen zum Stream, die für die Erstellung von Programmen oder Sequenzern nützlich sein können, wenn die Datenstromdaten in einer Datei im Streamformat gespeichert werden sollen. In einem Puffer dieser Daten identifiziert das Null-Byte die Kommentarklasse, und nachfolgende Bytes enthalten die Kommentardaten.
MEVT_LONGMSG Long-Ereignis. Die Ereignisdaten werden wörtlich übertragen. Es wird davon ausgegangen, dass es sich bei den Ereignisdaten um systemunabhängige Daten handelt; Das heißt, die Ausführung von status wird gelöscht, wenn das Ereignis ausgeführt wird, und die Ausführung status aus vorherigen Ereignissen wird nicht auf Kanalereignisse in den Ereignisdaten angewendet. Die Verwendung dieses Ereignisses zum gleichzeitigen Senden einer Gruppe von Kanalnachrichten wird nicht empfohlen. Stattdessen sollte eine Reihe von MEVT_SHORTMSG Ereignissen mit null Deltazeiten verwendet werden.
MEVT_NOP Kurzes Ereignis. Dieses Ereignis ist ein Platzhalter; es tut nichts. Die niedrigen 24 Bits werden ignoriert. Dieses Ereignis generiert weiterhin einen Rückruf, wenn MEVT_F_CALLBACK in dwEvent festgelegt ist.
MEVT_SHORTMSG Kurzes Ereignis. Die Daten in den niedrigen 24 Bits von dwEvent sind eine MIDI-Kurznachricht. (Eine Beschreibung, wie eine kurze Nachricht in einen DWORD-Wert gepackt wird, finden Sie in der MidiOutShortMsg-Funktion.)
MEVT_TEMPO Kurzes Ereignis. Die Daten in den niedrigen 24 Bits von dwEvent enthalten das neue Tempo für die folgenden Ereignisse. Das Tempo wird im gleichen Format angegeben wie für das Metaereignis der Tempoänderung in einer MIDI-Datei, d. h. in Mikrosekunden pro Quartalsnote. (Dieses Ereignis hat keine Auswirkung, wenn das für den Stream angegebene Zeitformat SMPTE-Zeit ist.)
MEVT_VERSION Long-Ereignis. Die Ereignisdaten müssen eine MIDISTRMBUFFVER-Struktur enthalten.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile mmeapi.h (Einschließen von Windows.h)

Weitere Informationen

MEVT_EVENTPARM

MEVT_EVENTTYPE

MIDI-Strukturen

MIDISTRMBUFFVER

Musical Instrument Digital Interface (MIDI)

midiOutShortMsg