MIDIEVENT 구조체(mmeapi.h)

MIDIEVENT 구조체는 스트림 버퍼의 MIDI 이벤트를 설명합니다.

구문

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

멤버

dwDeltaTime

이전 이벤트와 현재 이벤트 사이의 시간(MIDI 틱)입니다. 틱의 길이는 시간 형식 및 스트림과 연결된 tempo로 정의됩니다. (정의는 표준 MIDI 파일의 틱 사양과 동일합니다.)

dwStreamID

예약; 0이어야 합니다.

dwEvent

이벤트 코드 및 이벤트 매개 변수 또는 길이입니다. 이 정보를 구문 분석하려면 MEVT_EVENTTYPEMEVT_EVENTPARM 매크로를 사용합니다. 설명 부분을 참조하세요.

dwParms[1]

dwEvent가 MEVT_F_LONG 및 버퍼 길이를 지정하는 경우 이 멤버는 이벤트에 대한 매개 변수를 포함합니다. 이 매개 변수 데이터는 정수 DWORD 값이 저장되도록 0으로 패딩되어야 합니다. 예를 들어 이벤트 데이터가 5바이트 길이의 경우 3개의 패드 바이트가 총 8바이트 동안 데이터를 따라야 합니다. 이 경우 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 이벤트는 짧은 이벤트입니다. 이벤트 매개 변수는 낮은 24비트 dwEvent에 포함됩니다.
 

상위 바이트의 나머지 부분에는 다음 이벤트 코드 중 하나가 포함됩니다.

이벤트 코드 의미
MEVT_COMMENT 긴 이벤트입니다. 이벤트 데이터는 무시됩니다. 이 이벤트는 스트림 데이터를 스트림 형식으로 파일에 저장해야 하는 경우 프로그램 또는 시퀀서를 작성하는 데 유용할 수 있는 스트림에 대한 해설 정보를 저장하기 위한 것입니다. 이 데이터의 버퍼에서 0바이트는 주석 클래스를 식별하고 후속 바이트에는 주석 데이터가 포함됩니다.
MEVT_LONGMSG 긴 이벤트입니다. 이벤트 데이터는 축자 그대로 전송됩니다. 이벤트 데이터는 시스템 전용 데이터로 간주됩니다. 즉, 이벤트가 실행되고 이전 이벤트의 실행 상태 이벤트 데이터의 채널 이벤트에 적용되지 않을 때 상태 실행이 지워집니다. 이 이벤트를 사용하여 채널 메시지 그룹을 동시에 보내는 것은 권장되지 않습니다. 대신 델타 시간이 0인 MEVT_SHORTMSG 이벤트 집합을 사용해야 합니다.
MEVT_NOP 짧은 이벤트입니다. 이 이벤트는 자리 표시자입니다. 아무 것도 수행하지 않습니다. 낮은 24비트 는 무시됩니다. 이 이벤트는 dwEvent에서 MEVT_F_CALLBACK 설정된 경우에도 콜백을 생성합니다.
MEVT_SHORTMSG 짧은 이벤트입니다. dwEvent의 하위 24비트의 데이터는 MIDI 짧은 메시지입니다. (짧은 메시지가 DWORD 값으로 압축되는 방법에 대한 설명은 midiOutShortMsg 함수를 참조하세요.)
MEVT_TEMPO 짧은 이벤트입니다. dwEvent의 하위 24비트 데이터에는 다음 이벤트에 대한 새 tempo가 포함됩니다. tempo는 MIDI 파일의 tempo change 메타 이벤트(즉, 분기당 마이크로초)와 동일한 형식으로 지정됩니다. (스트림에 지정된 시간 형식이 SMPTE 시간인 경우 이 이벤트는 영향을 주지 않습니다.)
MEVT_VERSION 긴 이벤트입니다. 이벤트 데이터에는 MIDISTRMBUFFVER 구조체가 포함되어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 mmeapi.h(Windows.h 포함)

추가 정보

MEVT_EVENTPARM

MEVT_EVENTTYPE

MIDI 구조체

MIDISTRMBUFFVER

악기 디지털 인터페이스(MIDI)

midiOutShortMsg