Platform SDK: DirectX

IDirectSoundNotify::SetNotificationPositions

IDirectSoundCaptureBuffer::SetNotificationPositions メソッドは通知位置を設定する。キャプチャや再生の間、呼び出し側が供給した配列内の DSBPOSITIONNOTIFY 構造体のいずれかで指定されているオフセットにキャプチャ位置が達すると、関連するイベントがシグナル送信される。再生時にはカレント プレイ ポジションを追跡する。キャプチャ時には現在の読み込み位置を追跡する。

HRESULT SetNotificationPositions(
  DWORD cPositionNotifies,                  
  LPCDSBPOSITIONNOTIFY lpcPositionNotifies  
);

パラメータ

cPositionNotifies
DSBPOSITIONNOTIFY 構造体の数。
lpcPositionNotifies
DSBPOSITIONNOTIFY 構造体から成る配列へのポインタ。

戻り値

成功すれば DS_OK、失敗すれば次のエラー値のいずれかを返す。

DSERR_INVALIDPARAM
DSERR_OUTOFMEMORY

注意

dwOffset メンバで値 DSBPN_OFFSETSTOP を指定すると、IDirectSoundBuffer::StopIDirectSoundCaptureBuffer::Stop メソッドを呼び出したとき、またはバッファの最後に達してループ再生を行わないときに、関連イベントをシグナル送信するよう DirectSound に指示できる。この値を使うときは、位置通知配列の最後の項目とすべきである。

位置通知配列が既に設定されている場合、この関数をもう一度呼び出すと以前の位置通知配列が置き換えられる。

このメソッドを呼び出すときは、バッファを停止させなければならない。

注 :  VxD ドライバでは、サウンド バッファが DSBCAPS_CTRLPOSITIONNOTIFY で作成される場合、このバッファは常にソフトウェア バッファになる。これは、VxD ドライバ モデルが通知インターフェイスをサポートしないためである。ハードウェアが利用可能な場合は、WDM ドライバにより、位置通知可能なバッファがハードウェアに存在することがある。

ボイス管理の TERMINATEBY フラグと共に LOC_DEFER と NOTIFY を使用している場合、まだ到達せず、通知設定を保持するサウンドは、ボイス管理によって終了されることもある。この場合、通知イベントは発生しない。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dsound.h で宣言。
  インポート ライブラリ : dsound.lib を使用。