Microsoft DirectX 8.0 (C++) |
メッセージを受け取る次のツールへのポインタをメッセージにスタンプする。ツールは、メッセージを処理した後、このメソッドを呼び出さなければならない。
HRESULT StampPMsg( DMUS_PMSG* pPMSG );
成功した場合は 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 で宣言。