>>58
「MIDIイベントをイベントオブジェクトで管理する」の意味が
よく分からんですが... CreateEvent?

例えばSMFでいえば
MIDIイベント
メタイベント
システムエクスクルーシブイベント
がありますよね?なので私の場合は
typedef struct {
 int Tick; // Tick累算値
 BYTE cVal[4]; // MIDIイベント
 int iVal; // イベント固有データ
}MEvent, *LPMEvent;
typedef std::vector<MEvent> MEvents;
みたいに1レコードをトラック別に可変長配列で管理してます
あとは、MMタイマのコールバックで経過時間とTick値を計算して
イベント毎の処理(midiOutShortMsgやmidiOutLongMsg)を行います。
この方式だと演奏時の負荷はかなり低い(5%くらい)ですよ