DirectX SDK |
The IDirectDrawSurface7::Restore method restores a surface that has been lost. This occurs when the surface memory associated with the DirectDrawSurface object has been freed.
HRESULT Restore();
None.
If the method succeeds, the return value is DD_OK.
If it fails, the method can return one of the following error values:
DDERR_GENERIC |
DDERR_IMPLICITLYCREATED |
DDERR_INCOMPATIBLEPRIMARY |
DDERR_INVALIDOBJECT |
DDERR_INVALIDPARAMS |
DDERR_NOEXCLUSIVEMODE |
DDERR_OUTOFMEMORY |
DDERR_UNSUPPORTED |
DDERR_WRONGMODE |
This method restores the memory allocated for a surface, but does not reload any bitmaps that might have existed in the surface before it was lost. For more information, see Losing and Restoring Surfaces.
Surfaces can be lost because the mode of the display card was changed or because an application received exclusive access to the display card and freed all surface memory currently allocated on the card. When a DirectDrawSurface object loses its surface memory, many methods return DDERR_SURFACELOST and perform no other function. The IDirectDrawSurface7::Restore method reallocates surface memory and reattaches it to the DirectDrawSurface object.
A single call to this method restores a DirectDrawSurface object's associated implicit surfaces (back buffers, and so on). An attempt to restore an implicitly created surface results in an error. IDirectDrawSurface7::Restore does not work across explicit attachments created by using the IDirectDrawSurface7::AddAttachedSurface method—each of these surfaces must be restored individually.
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 98.
Header: Declared in ddraw.h.