Platform SDK: DirectX

IDirectSoundBuffer::Restore

IDirectSoundBuffer::Restore メソッドは、指定された DirectSoundBuffer オブジェクトに関連付けられていた、失われたサウンド バッファへのメモリ割り当てを復元する。

HRESULT Restore();

パラメータ

なし。

戻り値

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

DSERR_BUFFERLOST
DSERR_INVALIDCALL
DSERR_INVALIDPARAM
DSERR_PRIOLEVELNEEDED

注意

アプリケーションに入力フォーカスが置かれていないと、IDirectSoundBuffer::Restore は成功しないことがある。たとえば、入力フォーカスが置かれているアプリケーションが DSSCL_WRITEPRIMARY (書き込み優先) 協調レベルに設定されている場合、他のどのアプリケーションもバッファを復元できない。同様に DSSCL_WRITEPRIMARY 協調レベルのアプリケーションがプライマリ サウンド バッファを復元するには、入力フォーカスが必要である。

DirectSound がバッファ メモリを復元した後、有効なサウンド データを書き込み直す必要がある。DirectSound はメモリを復元するが、メモリの内容は復元できない。

アプリケーションはバッファを指定して IDirectSoundBuffer::Lock または IDirectSoundBuffer::Play の各メソッドを呼び出すと、そのバッファが失われている場合に通知を受けられる。バッファが失われている場合は、これらのメソッドは DSERR_BUFFERLOST を返す。IDirectSoundBuffer::GetStatus メソッドを使って、サウンド バッファのステータスの取得と DSBSTATUS_BUFFERLOST フラグのテストを行うこともできる。

動作環境

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

参照

IDirectSoundBufferIDirectSoundBuffer::LockIDirectSoundBuffer::PlayIDirectSoundBuffer::GetStatus