IDirectMusicPerformance

IDirectMusicPerformance::Stop

オブジェクトの再生を停止します。

HRESULT Stop(
    IDirectMusicSegment* pSegment,
    IDirectMusicSegmentState* pSegmentState,
    MUSIC_TIME   mtTime,
    DWORD        dwFlags
);

メソッドのインデックス: 5

パラメータ

pSegment

演奏を停止するセグメントの IDirectMusicSegment インターフェースポインタを指定します。このセグメントに基づくすべてのセグメント状態は、mtTime の時点で停止されます。

pSegmentState

演奏を停止するセグメント状態の IDirectMusicSegmentState インターフェースポインタを指定します。

mtTime

停止するタイムを指定します。このタイムが過去のタイムである場合や、値として 0 を指定した場合には、演奏が即座に停止されます。

dwFlags

演奏の停止タイムを指定するフラグ値を指定します。

以下の値のいずれかの値か、 DMUS_SEGF_REFTIME と別のフラグいずれか1つを組み合わせた値を指定できます。

機能
0

直ちに停止します。

0x40 (DMUS_SEGF_REFTIME)

i64StopTime の値は基準タイムであることを指定します。このフラグが指定されない場合は i64StopTime の値はミュージックタイムです。

0x800 (DMUS_SEGF_GRID)

i64StopTime の位置にある、またはそれ以降の次のグリッド境界で停止します。

0x1000 (DMUS_SEGF_BEAT)

i64StopTime の位置にある、またはそれ以降の次の拍境界で停止します。

0x2000 (DMUS_SEGF_MEASURE)

i64StopTime の位置にある、またはそれ以降の次の小節境界で停止します。

0x4000 (DMUS_SEGF_DEFAULT)

デフォルト境界で停止します。

0x800000 (DMUS_SEGF_SEGMENTEND)

プライマリセグメントの最後で停止します。

0x1000000 (DMUS_SEGF_MARKER)

次のマーカーで停止します。

戻り値

成功すると 0x00000000 (S_OK) が返ります。

無効なポインタが渡されたことで失敗すると 0x80004003 (E_POINTER) が返ります。

解説

pSegmentpSegmentState の両方に 0 (NULL) を指定した場合は、パフォーマンスのすべての音楽は停止し、現在キューに置かれているすべてのセグメントが解放されます。 pSegmentpSegmentState のどちらか一方が 0 (NULL) 以外の値である場合、指定されたセグメントまたはセグメント状態がパフォーマンスから削除されます。

すべてのパラメータに 0 (NULL) を設定すると、すべての演奏が即座に停止し、コントローラ リセットメッセージおよびノートオフメッセージがマップされたすべてのパフォーマンスチャンネルに送信さます。