Microsoft DirectX 8.0 (Visual Basic) |
object.Restore()
失敗した場合はエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。
DSERR_BUFFERLOST |
DSERR_INVALIDCALL |
DSERR_PRIOLEVELNEEDED |
アプリケーションに入力フォーカスが置かれていないと、DirectSoundSecondaryBuffer8.Restore は成功しないことがある。たとえば、入力フォーカスが置かれているアプリケーションが DSSCL_WRITEPRIMARY (書き込み優先) 協調レベルに設定されている場合、ほかのどのアプリケーションもバッファを復元できない。
DirectSound がバッファ メモリを復元した後、有効なサウンド データを書き込み直す必要がある。DirectSound はメモリ自体を復元するが、メモリの内容は復元できない。
アプリケーションはバッファを指定して DirectSoundSecondaryBuffer8.WriteBuffer または DirectSoundSecondaryBuffer8.Play の各メソッドを呼び出すと、そのバッファが失われている場合に通知を受けられる。バッファが失われている場合、これらのメソッドは DSERR_BUFFERLOST を返す。DirectSoundSecondaryBuffer8.GetStatus メソッドを使って、サウンド バッファのステータスの取得と DSBSTATUS_BUFFERLOST フラグのテストを行うこともできる。