Microsoft DirectX 8.0 (C++)

IDirectMusicGraph8::StampPMsg

メッセージを受け取る次のツールへのポインタをメッセージにスタンプする。ツールは、メッセージを処理した後、このメソッドを呼び出さなければならない。

HRESULT StampPMsg(
  DMUS_PMSG* pPMSG
);

パラメータ

pPMSG
スタンプの対象となるメッセージを保持する構造体のアドレス。この構造体は、DMUS_PMSG の派生タイプである。

戻り値

成功した場合は S_OK または DMUS_S_LAST_TOOL を返す。「注意」を参照すること。

失敗した場合は E_POINTER を返す。

注意

エントリ時に、このメッセージ構造体の DMUS_PMSG 部に含まれる pTool メンバは現在のツールを指す。StampPMsg はこのメンバを使って、現在のツールを決定し、グラフ内の次のツールを見つける。NULL の値はグラフ内の最初のツールを表す。

pGraph メンバが指すオブジェクトは、ツールを保持するグラフを表す。StampPMsg 内部では、この値がツール自体の値と共にスタンプされる。複数のツールグラフが存在する場合、メッセージがセグメント状態からパフォーマンスへ移動する過程で、この値が変更されることがある。

dwType の値は、メッセージのメディア タイプに等しく、次のツールを見つけるのに使われる。メディア タイプとしてサポートされているのは、IDirectMusicTool8::GetMediaTypes メソッドが返す値である。

このメソッドは pTool が指す現在の IDirectMusicTool8 に対して Release を呼び出し、グラフ内の次のツールに置き換え、新しいツールに対して AddRef を呼び出す。このメソッドは、次のツールが IDirectMusicTool8::GetMsgDeliveryType メソッドで返すタイプに基づいて、メッセージに正しい引き渡しタイプ フラグも割り当てる。このフラグは、メッセージを次のツールに配信する時期を決定する。

ツールは、必ず、ほかのタスクがすべて実行されてから StampPMsg を呼び出す。オーディオパスが使用されている場合は、StampPMsg によって、メッセージ構造体の dwPChannel メンバの値が変更される場合がある。この値を使用するツールは、StampPMsg を呼び出した後、この値を使用できなくなる。

DirectMusicSegmentState と DirectMusicPerformance の各オブジェクトでのこのメソッドを実装すると、成功した場合、常に S_OK を返す。DirectMusicGraph で実装すると、メッセージの受け取りを待っている出力ツールのほかにツールがない場合、DMUS_S_LAST_TOOL を返す。

動作環境

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

参照

DirectMusic ツール