Platform SDK: DirectX

IDirectDrawSurface7::Restore

IDirectDrawSurface7::Restore メソッドは、消失されたサーフェスをリストアする。これは、DirectDrawSurface オブジェクトに関連付けられたサーフェス メモリを解放するときに生じる。

HRESULT Restore();

パラメータ

なし。

戻り値

成功すれば、DD_OK を返す。

失敗すれば、以下のエラー値のいずれかを返す。

DDERR_GENERIC
DDERR_IMPLICITLYCREATED
DDERR_INCOMPATIBLEPRIMARY
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_NOEXCLUSIVEMODE
DDERR_OUTOFMEMORY
DDERR_UNSUPPORTED
DDERR_WRONGMODE

注意

このメソッドは、サーフェスに割り当てられていたメモリをリストアするが、サーフェスの消失前に存在していた可能性があるビットマップは再ロードしない。詳細については、「サーフェスの消失とリストア」を参照すること。

ディスプレイ カードのモードが変更されると、またはアプリケーションでディスプレイ カードへの排他アクセスを受け取り、カードに割り当てられている現在のサーフェス メモリをすべて解放すると、サーフェスが消失する場合がある。DirectDrawSurface オブジェクトでそのサーフェス メモリが消失すると、多くのメソッドは DDERR_SURFACELOST を返し、その他あらゆる機能を実行しなくなる。IDirectDrawSurface7::Restore メソッドは、サーフェス メモリを割り当て直し、DirectDrawSurface オブジェクトに再度アタッチする。

このメソッドの単一の呼び出しを行うと、DirectDrawSurface オブジェクトの関連付けられている暗黙的なサーフェス (バック バッファなど) がリストアされる。暗黙的に作成されたサーフェスをリストアしようとすると、エラーが発生する。IDirectDrawSurface7::Restore は、IDirectDrawSurface7::AddAttachedSurface メソッドによる明示的なアタッチに対しては作用しない。つまり、これらのサーフェスは個別にリストアしなければならない。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 98 が必要。
  ヘッダー : ddraw.h で宣言。

参照

IDirectDrawSurface7::IsLost