MIDIシステムエクスクルーシブまたはストリームバッファを識別するために使われるヘッダを定義します。
typedef struct midihdr_tag { LPSTR lpData; // MIDIデータアドレス DWORD dwBufferLength; // バッファサイズ DWORD dwBytesRecorded; // 実際のデータサイズ DWORD_PTR dwUser; // カスタムユーザデータ DWORD dwFlags; // フラグ struct midihdr_tag FAR *lpNext; // 予約(NULL) DWORD_PTR reserved; // 予約(0) DWORD dwOffset; // バッファのオフセット DWORD_PTR dwReserved[8]; // 予約 } MIDIHDR, *PMIDIHDR, NEAR *NPMIDIHDR, FAR *LPMIDIHDR;
MIDI データを格納したバッファのアドレスが格納されます。
データバッファのサイズが格納されます。
バッファ中の実際のデータサイズが格納されます。 dwBufferLength メンバで指定された値以下でなければなりません。
カスタムユーザーデータが格納されます
バッファに関する情報のフラグが格納されます。以下の値の組み合わせになります。
値 | 意味 |
---|---|
0x00000001 (MHDR_DONE) | バッファが必要でなくなり、アプリケーションに返されていることを示します。このフラグはデバイスドライバによってセットされます。 |
0x00000002 (MHDR_PREPARED) | midiInPrepareHeader 関数または midiOutPrepareHeader 関数の呼び出しによってバッファが準備されたことを示します。このフラグは Windows によってセットされます。 |
0x00000004 (MHDR_INQUEUE) | バッファは再生のためにキューに入れられていることを示します。このフラグは Windows によってセットされます。 |
0x00000008 (MHDR_ISSTRM) | バッファがストリームバッファであることを示します。 |
予約されています。使用してはいけません。
予約されています。使用してはいけません。
コールバック処理時のバッファのオフセットが格納されます。このコールバックは MIDIEVENT 構造体の dwEvent メンバに MEVT_F_CALLBACK フラグが設定されることによって発生します。このオフセットは、どのイベントがコールバックを発生させたのかをアプリケーションが決定できるようにします。
予約されています。使用してはいけません。
Windows 95 以降 / Windows NT 3.1 以降
HSP 変数 | メンバ | ||
---|---|---|---|
メンバ名 | オフセット | サイズ | |
midihdr.0 | lpData | 0 | 4 |
midihdr.1 | dwBufferLength | 4 | 4 |
midihdr.2 | dwBytesRecorded | 8 | 4 |
midihdr.3 | dwUser | 12 | 4 |
midihdr.4 | dwFlags | 16 | 4 |
midihdr.5 | lpNext | 20 | 4 |
midihdr.6 | reserved | 24 | 4 |
midihdr.7 | dwOffset | 28 | 4 |
midihdr.8 | dwReserved[0] | 32 | 4 |
… | … | … | … |
midihdr.15 | dwReserved[7] | 60 | 4 |