Platform SDK: DirectX

IDirectMusicTool::Flush

パフォーマンスが停止したときに、キュー内にある各メッセージに対して IDirectMusicTool::Flush メソッドが呼び出される。ツールはこのメソッドを使って、メッセージのフラッシュ (解放) に必要なあらゆることを行える。たとえば、出力ツールはこのメソッドを使って、保留されているあらゆるノートオフ メッセージが即座に処理されるようにする。

HRESULT Flush(
  IDirectMusicPerformance* pPerf, 
  DMUS_PMSG* pPMSG,
  REFERENCE_TIME rtTime
);

パラメータ

pPerf
IDirectMusicPerformance インターフェイスのアドレス。
pPMSG
フラッシュされるメッセージ。
rtTime
フラッシュを行うタイム。

戻り値

戻り値は実装によって決まる。成功すれば次のいずれかを返す。

DMUS_S_REQUEUE
DMUS_S_FREE
S_OK

失敗すれば E_POINTER を返す。

注意

メッセージは自らの dwFlags メンバに DMUS_PMSGF_TOOL_FLUSH を設定する。DMUS_PMSG を参照すること。

メソッドが DMUS_S_REQUEUE を返した場合、指定されたメッセージをツールが取得したいと考えていることを意味する。この結果、ツールはメッセージに新しいタイム スタンプとパラメータを書き込んでもう一度キューに入れるか、メッセージに他の配信タイプを割り当ててもう一度キューに入れる。

戻り値が DMUS_S_FREE の場合、ツールはメッセージを自動的に解放したいと考えており、メッセージをもう一度キューに入れたいとは考えていないことを意味する。

戻り値が S_OK の場合、ツールはメッセージを自動的に解放したいとは考えていない。おそらく何らかの理由でツールはメッセージを保持しているか、既に自ら解放した。

pPerf によって表されるパフォーマンスへの循環参照は作成しないこと。詳細については、「DirectMusic ツール」を参照すること。

動作環境

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