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_EVENTTYPEMEVT_EVENTPARM 宏。 請參閱<備註>。

dwParms[1]

如果 dwEvent 指定MEVT_F_LONG和緩衝區的長度,這個成員會包含事件的參數。 此參數數據必須以零填補,以便儲存 DWORD 值的整數。 例如,如果事件數據長度為五個字節,則三個填補位元組必須遵循總計八個字節的數據。 在此情況下, dwEvent 的低 24 位會包含值 5。

如果 dwEvent 指定MEVT_F_SHORT,請勿在數據流緩衝區中使用這個成員。

備註

dwEvent的高位元組包含旗標和事件程序代碼。 必須指定MEVT_F_LONG或MEVT_F_SHORT旗標。 MEVT_F_CALLBACK旗標是選擇性的。 下表描述這些旗標。

旗標 意義
MEVT_F_CALLBACK 當事件即將執行時,系統會產生回呼。
MEVT_F_LONG 事件是長事件。 dwEvent 的低 24 位包含 dwParms 中包含的事件參數長度。
MEVT_F_SHORT 事件是簡短事件。 事件參數包含在 dwEvent 的低 24 位中。
 

高位元組的其餘部分包含下列其中一個事件代碼:

事件程序代碼 意義
MEVT_COMMENT Long 事件。 將會忽略事件數據。 如果串流數據是以數據流格式儲存,此事件的目的是要儲存數據流的相關意見資訊,這對於撰寫程式或排序器可能很有用。 在這個數據的緩衝區中,零位元節會識別批注類別,而後續位元組則包含批注數據。
MEVT_LONGMSG Long 事件。 事件數據會逐字傳輸。 事件數據假設為系統獨佔數據;也就是說,執行事件時會清除執行狀態,且任何先前事件的執行狀態將不會套用至事件數據中的任何通道事件。 不建議同時使用此事件來傳送一組通道訊息;應改用一組具有零差異時間的MEVT_SHORTMSG事件。
MEVT_NOP 簡短事件。 此事件是佔位元;它不會執行任何動作。 會忽略低 24 位。 如果在 dwEvent 中設定MEVT_F_CALLBACK,此事件仍會產生回呼。
MEVT_SHORTMSG 簡短事件。 dwEvent 低 24 位中的數據是 MIDI 簡短訊息。 (如需如何將簡短訊息封裝成 DWORD 值的描述,請參閱 midiOutShortMsg 函式。)
MEVT_TEMPO 簡短事件。 dwEvent 低 24 位中的數據包含下列事件的新暫存專案。 tempo 的指定格式與 MIDI 檔案中的 tempo 變更中繼事件格式相同,也就是每季記事以微秒為單位。 (如果為數據流指定的時間格式為 SMPTE time.) ,此事件將沒有任何作用
MEVT_VERSION Long 事件。 事件數據必須包含 MIDISTRMBUFFVER 結構。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
標頭 mmeapi.h (包含 Windows.h)

另請參閱

MEVT_EVENTPARM

MEVT_EVENTTYPE

MIDI 結構

MIDISTRMBUFFVER

樂器數位介面 (MIDI)

midiOutShortMsg