Microsoft DirectX 8.0 (C++)

IDirectSoundBuffer8::Restore

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

HRESULT Restore();

パラメータ

なし。

戻り値

成功した場合は DS_OK を返す。

失敗した場合は、次のいずれかのエラー値を返す。

DSERR_BUFFERLOST
DSERR_INVALIDCALL
DSERR_INVALIDPARAM
DSERR_PRIOLEVELNEEDED

注意

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

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

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

動作環境

  ヘッダー : dsound.h で宣言。

参照

IDirectSoundBuffer8::LockIDirectSoundBuffer8::PlayIDirectSoundBuffer8::GetStatus