Platform SDK: DirectX

DMUS_PMSG

DMUS_PMSG 構造体は、すべての DirectMusic メッセージに共通する情報によって構成されている。しかし、C は継承をサポートしていないので、次のシンタックスに展開される DMUS_PMSG_PART マクロを含めることにより、この構造体のメンバは (DMUS_PMSG 自体を含め) すべてのメッセージ タイプに含まれる。

typedef struct DMUS_PMSG {
    DWORD              dwSize;
    REFERENCE_TIME     rtTime;
    MUSIC_TIME         mtTime;
    DWORD              dwFlags;
    DWORD              dwPChannel;
    DWORD              dwVirtualTrackID;
    IDirectMusicTool*  pTool;
    IDirectMusicGraph* pGraph;
    DWORD              dwType;
    DWORD              dwVoiceID;
    DWORD              dwGroupID;
    IUnknown*          punkUser;
} DMUS_PMSG;
dwSize
構造体のサイズ。バイト単位で指定する。このメンバは、IDirectMusicPerformance::AllocPMsg によって初期化される。
rtTime
メッセージの演奏を開始する基準タイム。dwFlags により変更される。DMUS_PMSGF_REFTIME が dwFlags 内にある場合だけ使われる。
mtTime
メッセージの演奏を開始するミュージック タイム。dwFlags によって変更される。DMUS_PMSGF_MUSICTIME が dwFlags 内にある場合だけ使われる。
dwFlags
さまざまなビット (「DMUS_PMSGF_FLAGS」と「DMUS_TIME_RESOLVE_FLAGS」を参照)。DMUS_PMSGF_REFTIME または DMUS_PMSGF_MUSICTIME を保持していなければならない。
dwPChannel
パフォーマンス チャンネル (P チャンネル)。ポート、チャンネル グループ、および MIDI チャンネルは、IDirectMusicPerformance::PChannelInfo メソッドを使うことによって、この値から取り出せる。テンポ メッセージなど、チャンネル固有ではないメッセージについては、この値を 0 に設定する。
dwVirtualTrackID
トラックの識別子。メッセージがトラックによって送信されていない場合、0 に設定する。
pTool
ツール インターフェイスのアドレス。IDirectMusicGraph::StampPMsg を使って設定できる。メッセージが出力ツール以外のツールに送られない場合は NULL に設定できる。
pGraph
ツール グラフ インターフェイスのアドレス。IDirectMusicGraph::StampPMsg を使って設定できる。メッセージが出力ツール以外のツールに送られない場合は NULL に設定できる。
dwType
メッセージ タイプ (DMUS_PMSGT_TYPES を参照 )。
dwVoiceID
将来の使用に備えて予約されている。0 を設定しなければならない。
dwGroupID
メッセージがトラックによって生成されている場合、そのメッセージが所属するトラック グループまたはグループの識別子(トラックは、IDirectMusicSegment::InsertTrack メソッドでグループに割り当てられる)。ほとんどの目的について、この値は 0xFFFFFFF でもよい。
punkUser
アプリケーションによって提供される IUnknown インターフェイスのアドレス。このポインタは、メッセージを解放したときに常に解放される。アプリケーションがオブジェクトを保持したい場合は、メッセージを解放する前に、AddRef を呼び出さなければならない。メッセージが COM ポインタを必要としない場合、この値は NULL でもよい。

注意

DMUS_PMSG 構造体は、dwType メンバに以下の値を持つメッセージについて、それ自体によって使われる。

DMUS_PMSGT_STOP
このタイプのメッセージを送信すると、指定されたタイムにパフォーマンスが停止する。
DMUS_PMSGT_DIRTY
制御セグメントが開始または終了するとき、セグメントおよびパフォーマンス グラフ内のすべてのツールは、このタイプのメッセージを受け取る。これは、セグメント内のすべてのツールとパフォーマンス グラフが GetParam の呼び出しでデータをキャッシングする場合、GetParam を再度呼び出して、それぞれのデータをリフレッシュしなければならないことを意味する。このメッセージ タイプが必要なツールは、IDirectMusicTool::GetMediaTypes の呼び出しでこれを指定しなければならない。パフォーマンス グラフ内のツールは、パフォーマンス内の各セグメントについて、メッセージのコピーを 1 部だけ受け取る。このようなツールは、同じタイム スタンプの付いた余分なメッセージを無視しても安全である。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dmusici.h で宣言。

参照

IDirectMusicPerformance::SendPMsg