IDirectDrawSurface5::SetSurfaceDesc

This method sets the characteristics of an existing surface.

HRESULT SetSurfaceDesc(
  LPDDSURFACEDESC2 lpddsd2, 
  DWORD dwFlags
); 

Parameters

  • lpddsd2
    Address of a DDSURFACEDESC2 structure that contains the new surface characteristics.
  • dwFlags
    This parameter is currently not used and must be set to zero.

Return Values

If the method succeeds, the return value is DD_OK.

If the method fails, the return value may be one of the following error values:

DDERR_INVALIDPARAMS
DDERR_INVALIDOBJECT
DDERR_SURFACELOST
DDERR_SURFACEBUSY
DDERR_INVALIDSURFACETYPE
DDERR_INVALIDPIXELFORMAT
DDERR_INVALIDCAPS
DDERR_UNSUPPORTED
DDERR_GENERIC

Remarks

The SetSurfaceDesc method allows a surface to use data from a previously allocated buffer without copying. You can only use this method to set the surface data and pixel format that is used by an explicit system memory surface. The new surface memory is allocated by the client application and, as such, the client application must also deallocate it.

Using this method incorrectly can cause unpredictable behavior. In particular, the DirectDrawSurface object will not deallocate surface memory that it did not allocate. Therefore, when the surface memory is no longer needed, be sure to deallocate it. When this method is called, DirectDraw frees the original surface memory that was allocated implicitly when the surface was created.

If your video driver supports allocating system memory surfaces, do not use SetSurfaceDesc as some drivers do not respond correctly to this method. Instead, use the IDirectDraw4::CreateSurface method to allocate the surfaces.

Requirements

OS Versions: Windows CE 2.12 and later. Version 2.12 requires DXPAK 1.0 or later.
Header: Ddraw.h.
Link Library: Ddraw.lib.

 Last updated on Thursday, April 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.