Struttura MIDIEVENT (mmeapi.h)
La struttura MIDIEVENT descrive un evento MIDI in un buffer di flusso.
Sintassi
typedef struct midievent_tag {
DWORD dwDeltaTime;
DWORD dwStreamID;
DWORD dwEvent;
DWORD dwParms[1];
} MIDIEVENT;
Members
dwDeltaTime
Tempo, in tick MIDI, tra l'evento precedente e l'evento corrente. La lunghezza di un segno di graduazione è definita dal formato temporale e possibilmente dal tempo associato al flusso. La definizione è identica alla specifica di un tick in un file MIDI standard.
dwStreamID
Riservati; deve essere zero.
dwEvent
Codice evento e parametri di evento o lunghezza. Per analizzare queste informazioni, utilizzare le macro MEVT_EVENTTYPE e MEVT_EVENTPARM . Vedere la sezione Osservazioni.
dwParms[1]
Se dwEvent specifica MEVT_F_LONG e la lunghezza del buffer, questo membro contiene parametri per l'evento. Questi dati dei parametri devono essere riempiti con zeri in modo che vengano archiviati un numero integrale di valori DWORD . Ad esempio, se i dati dell'evento hanno una lunghezza di cinque byte, tre byte di pad devono seguire i dati per un totale di otto byte. In questo caso, i 24 bit bassi di dwEvent conterranno il valore 5.
Se dwEvent specifica MEVT_F_SHORT, non usare questo membro nel buffer del flusso.
Commenti
Il byte elevato di dwEvent contiene flag e codice evento. È necessario specificare il flag MEVT_F_LONG o MEVT_F_SHORT. Il flag MEVT_F_CALLBACK è facoltativo. Nella tabella seguente vengono descritti questi flag.
Contrassegno | Significato |
---|---|
MEVT_F_CALLBACK | Il sistema genera un callback quando l'evento sta per essere eseguito. |
MEVT_F_LONG | L'evento è un evento lungo. I 24 bit bassi di dwEvent contengono la lunghezza dei parametri dell'evento inclusi in dwParms. |
MEVT_F_SHORT | L'evento è un evento breve. I parametri dell'evento sono contenuti nei 24 bit bassi di dwEvent. |
Il resto del byte elevato contiene uno dei codici evento seguenti:
Codice evento | Significato |
---|---|
MEVT_COMMENT | Evento lungo. I dati dell'evento verranno ignorati. Questo evento è progettato per archiviare informazioni sui commenti sul flusso che potrebbero essere utili per la creazione di programmi o sequencer se i dati del flusso dovevano essere archiviati in un file in formato flusso. In un buffer di questi dati, il byte zero identifica la classe di commento e i byte successivi contengono i dati del commento. |
MEVT_LONGMSG | Evento lungo. I dati dell'evento vengono trasmessi verbatim. Si presuppone che i dati dell'evento siano dati esclusivi del sistema; ovvero, lo stato di esecuzione verrà cancellato quando l'evento viene eseguito e lo stato di esecuzione da qualsiasi evento precedente non verrà applicato ad alcun evento del canale nei dati dell'evento. Non è consigliabile usare questo evento per inviare un gruppo di messaggi di canale contemporaneamente; È consigliabile usare invece un set di eventi MEVT_SHORTMSG con tempi delta zero. |
MEVT_NOP | Evento breve. Questo evento è un segnaposto; non fa nulla. I 24 bit bassi vengono ignorati. Questo evento genererà comunque un callback se MEVT_F_CALLBACK è impostato in dwEvent. |
MEVT_SHORTMSG | Evento breve. I dati nei 24 bit bassi di dwEvent sono un breve messaggio MIDI. Per una descrizione del modo in cui un breve messaggio viene compresso in un valore DWORD, vedere la funzione midiOutShortMsg. |
MEVT_TEMPO | Evento breve. I dati nei 24 bit bassi di dwEvent contengono il nuovo tempo per gli eventi seguenti. Il tempo viene specificato nello stesso formato per il meta-evento di modifica tempo in un file MIDI, ovvero in microsecondi per ogni trimestre nota. Questo evento non avrà alcun effetto se il formato di ora specificato per il flusso è L'ora SMPTE. |
MEVT_VERSION | Evento lungo. I dati dell'evento devono contenere una struttura MIDISTRMBUFFVER. |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | mmeapi.h (include Windows.h) |