MIDIHDR

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;

メンバ

lpData

MIDI データを格納したバッファのアドレスが格納されます。

dwBufferLength

データバッファのサイズが格納されます。

dwBytesRecorded

バッファ中の実際のデータサイズが格納されます。 dwBufferLength メンバで指定された値以下でなければなりません。

dwUser

カスタムユーザーデータが格納されます

dwFlags

バッファに関する情報のフラグが格納されます。以下の値の組み合わせになります。

意味
0x00000001 (MHDR_DONE)

バッファが必要でなくなり、アプリケーションに返されていることを示します。このフラグはデバイスドライバによってセットされます。

0x00000002 (MHDR_PREPARED)

midiInPrepareHeader 関数または midiOutPrepareHeader 関数の呼び出しによってバッファが準備されたことを示します。このフラグは Windows によってセットされます。

0x00000004 (MHDR_INQUEUE)

バッファは再生のためにキューに入れられていることを示します。このフラグは Windows によってセットされます。

0x00000008 (MHDR_ISSTRM)

バッファがストリームバッファであることを示します。

lpNext

予約されています。使用してはいけません。

reserved

予約されています。使用してはいけません。

dwOffset

コールバック処理時のバッファのオフセットが格納されます。このコールバックは MIDIEVENT 構造体の dwEvent メンバに MEVT_F_CALLBACK フラグが設定されることによって発生します。このオフセットは、どのイベントがコールバックを発生させたのかをアプリケーションが決定できるようにします。

dwReserved

予約されています。使用してはいけません。

対応情報

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