Microsoft DirectX 8.0 (C++)

DMUS_NOTIFICATION_PMSG

通知のメッセージ データを保持する。

typedef struct DMUS_NOTIFICATION_PMSG {
    DMUS_PMSG_PART
    GUID   guidNotificationType;
    DWORD  dwNotificationOption;
    DWORD  dwField1;
    DWORD  dwField2;
} DMUS_NOTIFICATION_PMSG;
DMUS_PMSG_PART
共通のメッセージ メンバに展開されるマクロ。「DMUS_PMSG」を参照すること。
guidNotificationType
通知タイプの識別子。次のタイプが定義されている。
GUID_NOTIFICATION_CHORD
コード チェンジ。
GUID_NOTIFICATION_COMMAND
コマンド イベント。
GUID_NOTIFICATION_MEASUREANDBEAT
小節および拍イベント。
GUID_NOTIFICATION_PERFORMANCE
パフォーマンス イベント。dwNotificationOption でさらに定義される。
GUID_NOTIFICATION_RECOMPOSE
トラックは再アレンジされた。現在のバージョンでは、これは常にコード トラックである。
GUID_NOTIFICATION_SEGMENT
セグメント イベント。dwNotificationOption でさらに定義される。
dwNotificationOption
通知サブタイプの識別子。

通知タイプが GUID_NOTIFICATION_SEGMENT の場合、このメンバは次のいずれかの値を保持する。

DMUS_NOTIFICATION_SEGABORT
セグメントが途中で停止した。またはプライマリ セグメントのキューから削除された。
DMUS_NOTIFICATION_SEGALMOSTEND
セグメントが終了タイムから準備時間を引いたタイムに達した。
DMUS_NOTIFICATION_SEGEND
セグメントが終了した。
DMUS_NOTIFICATION_SEGLOOP
セグメントがループした。
DMUS_NOTIFICATION_SEGSTART
セグメントが開始した。

通知タイプが GUID_NOTIFICATION_COMMAND の場合、このメンバは次のいずれかの値を保持する。

DMUS_NOTIFICATION_GROOVE
グルーブ レベルが変化する。
DMUS_NOTIFICATION_EMBELLISHMENT
装飾コマンド (イントロ、フィル、ブレーク、またはエンド)。

通知タイプが GUID_NOTIFICATION_PERFORMANCE の場合、このメンバは次のいずれかの値を保持する。

DMUS_NOTIFICATION_MUSICALMOSTEND
現在再生中のプライマリ セグメントが、終了タイムから準備時間を引いたタイムに達したが、キューにはもう再生するプライマリ セグメントはない。
DMUS_NOTIFICATION_MUSICSTARTED
再生が開始した。
DMUS_NOTIFICATION_MUSICSTOPPED
再生が停止した。

通知タイプが GUID_NOTIFICATION_MEASUREANDBEAT の場合、このメンバは DMUS_NOTIFICATION_MEASUREBEAT を保持する。その他のサブタイプは定義されない。

通知タイプが GUID_NOTIFICATION_CHORD の場合、このメンバは DMUS_NOTIFICATION_CHORD を保持する。その他のサブタイプは定義されない。

通知タイプが GUID_NOTIFICATION_RECOMPOSE の場合、このメンバは DMUS_NOTIFICATION_RECOMPOSE を保持する。その他のサブタイプは定義されない。

dwField1
通知タイプに固有の追加データ。GUID_NOTIFICATION_MEASUREANDBEAT 通知の場合、このメンバは小節内の拍番号を返す。
dwField2
通知タイプに固有の追加データ。将来の使用またはアプリケーションによって定義される使用に備えて予約されている。

注意

ほとんどの通知について、punkUser メンバ (「DMUS_PMSG」を参照) は、セグメント状態の IUnknown ポインタを保持する。これは、コードおよびコマンドの取得に使用すると非常に便利である。その場合、IDirectMusicSegmentState8 インターフェイスを照会し、IDirectMusicSegmentState8::GetSegment を呼び出して IDirectMusicSegment8 ポインタを取得する。次に、IDirectMusicSegment8::GetParam メソッドを呼び出して、通知メッセージの mtTime メンバで指定されたタイムにコードまたはコマンドを取得する。

GUID_NOTIFICATION_PERFORMANCE タイプの通知の場合、punkUser メンバは常に NULL である。

アプリケーションは独自の通知メッセージ タイプおよびサブタイプを定義でき、それでは不足のデータについては dwField1dwField2 を使用できる。そのようなカスタム通知メッセージは、その他のメッセージと同様に、割り当ておよび送信できる。アプリケーションによって定義されたトラックは、GUID (guidNotificationType) IDirectMusicTrack8::AddNotificationType に渡された後に、特定タイプのメッセージを送信できる。

動作環境

  ヘッダー : dmusici.h で宣言。

参照

通知とイベントの処理IDirectMusicPerformance8::SendPMsg