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 |