Platform SDK: DirectX

IDirectDraw7::DuplicateSurface

The IDirectDraw7::DuplicateSurface method duplicates a DirectDrawSurface object.

HRESULT DuplicateSurface(
  LPDIRECTDRAWSURFACE7 lpDDSurface,             
  LPLPDIRECTDRAWSURFACE7 FAR *lplpDupDDSurface  
);

Parameters

lpDDSurface
Address of the IDirectDrawSurface7 interface for the surface to be duplicated.
lplpDupDDSurface
Address of a variable to be filled with an IDirectDrawSurface7 interface pointer for the newly duplicated DirectDrawSurface object.

Return Values

If the method succeeds, the return value is DD_OK.

If it fails, the method can return one of the following error values:

DDERR_CANTDUPLICATE
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_OUTOFMEMORY
DDERR_SURFACELOST

Remarks

This method creates a new DirectDrawSurface object that points to the same surface memory as an existing DirectDrawSurface object. This duplicate can be used just like the original object. The surface memory is released after the last object referring to it is released. A primary surface, 3-D surface, or implicitly created surface cannot be duplicated.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 98.
  Header: Declared in ddraw.h.