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) |