Structure MIDIEVENT (mmeapi.h)
La structure MIDIEVENT décrit un événement MIDI dans une mémoire tampon de flux.
Syntaxe
typedef struct midievent_tag {
DWORD dwDeltaTime;
DWORD dwStreamID;
DWORD dwEvent;
DWORD dwParms[1];
} MIDIEVENT;
Membres
dwDeltaTime
Temps, en cycles MIDI, entre l’événement précédent et l’événement actuel. La longueur d’une graduation est définie par le format d’heure et éventuellement le tempo associé au flux. (La définition est identique à la spécification d’une graduation dans un fichier MIDI standard.)
dwStreamID
Réservés au; doit être égal à zéro.
dwEvent
Code d’événement et paramètres d’événement ou longueur. Pour analyser ces informations, utilisez les macros MEVT_EVENTTYPE et MEVT_EVENTPARM . Consultez la section Notes.
dwParms[1]
Si dwEvent spécifie MEVT_F_LONG et la longueur de la mémoire tampon, ce membre contient des paramètres pour l’événement. Ces données de paramètre doivent être remplies avec des zéros afin qu’un nombre intégral de valeurs DWORD soit stocké. Par exemple, si les données d’événement sont de cinq octets, trois octets de bloc doivent suivre les données pour un total de huit octets. Dans ce cas, les 24 bits faibles de dwEvent contiennent la valeur 5.
Si dwEvent spécifie MEVT_F_SHORT, n’utilisez pas ce membre dans la mémoire tampon de flux.
Remarques
L’octet élevé de dwEvent contient des indicateurs et un code d’événement. L’indicateur MEVT_F_LONG ou MEVT_F_SHORT doit être spécifié. L’indicateur MEVT_F_CALLBACK est facultatif. Le tableau suivant décrit ces indicateurs.
Indicateur | Signification |
---|---|
MEVT_F_CALLBACK | Le système génère un rappel lorsque l’événement est sur le point d’être exécuté. |
MEVT_F_LONG | L’événement est long. Les 24 bits faibles de dwEvent contiennent la longueur des paramètres d’événement inclus dans dwParms. |
MEVT_F_SHORT | L’événement est un événement court. Les paramètres d’événement sont contenus dans les 24 bits faibles de dwEvent. |
Le reste de l’octet élevé contient l’un des codes d’événement suivants :
Code de l’événement | Signification |
---|---|
MEVT_COMMENT | Événement long. Les données d’événement seront ignorées. Cet événement est destiné à stocker des informations de commentaire sur le flux qui peuvent être utiles à la création de programmes ou de séquenceurs si les données de flux devaient être stockées dans un fichier au format de flux. Dans une mémoire tampon de ces données, l’octet zéro identifie la classe de commentaire et les octets suivants contiennent les données de commentaire. |
MEVT_LONGMSG | Événement long. Les données d’événement sont transmises textuellement. Les données d’événement sont supposées être des données exclusives du système ; autrement dit, l’exécution de status est effacée lorsque l’événement est exécuté et l’exécution d’status à partir d’événements précédents ne sera pas appliquée aux événements de canal dans les données d’événement. L’utilisation de cet événement pour envoyer un groupe de messages de canal en même temps n’est pas recommandée ; un ensemble d’événements MEVT_SHORTMSG avec zéro heure delta doit être utilisé à la place. |
MEVT_NOP | Événement court. Cet événement est un espace réservé ; il ne fait rien. Les 24 bits inférieurs sont ignorés. Cet événement génère toujours un rappel si MEVT_F_CALLBACK est défini dans dwEvent. |
MEVT_SHORTMSG | Événement court. Les données contenues dans les 24 bits inférieurs de dwEvent sont un message court MIDI. (Pour obtenir une description de la façon dont un message court est empaqueté dans une valeur DWORD, consultez la fonction midiOutShortMsg.) |
MEVT_TEMPO | Événement court. Les données des 24 bits faibles de dwEvent contiennent le nouveau tempo pour les événements suivants. Le tempo est spécifié dans le même format que pour le méta-événement de modification de tempo dans un fichier MIDI, c’est-à-dire en microsecondes par note de trimestre. (Cet événement n’aura aucun effet si le format d’heure spécifié pour le flux est l’heure SMPTE.) |
MEVT_VERSION | Événement long. Les données d’événement doivent contenir une structure MIDISTRMBUFFVER. |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
En-tête | mmeapi.h (inclure Windows.h) |