Platform SDK: DirectX |
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 を使用。
IDirectSoundBuffer、IDirectSoundBuffer::Lock、IDirectSoundBuffer::Play、IDirectSoundBuffer::GetStatus