IDirectDrawSurface2::DeleteAttachedSurface

HRESULT DeleteAttachedSurface(DWORD dwFlags,

LPDIRECTDRAWSURFACE2 lpDDSAttachedSurface);

Detaches two attached surfaces. The detached surface is not released.

·Returns DD_OK if successful, or one of the following error values otherwise:

DDERR_CANNOTDETACHSURFACE

DDERR_INVALIDOBJECT

DDERR_INVALIDPARAMS

DDERR_SURFACELOST

DDERR_SURFACENOTATTACHED

dwFlags

This parameter is currently not used and must be set to 0.

lpDDSAttachedSurface

Address of the DirectDraw surface to be detached. If this parameter is NULL, all attached surfaces are detached.

Implicit attachments, those formed by DirectDraw rather than the IDirectDrawSurface2::AddAttachedSurface method, cannot be detached. Detaching surfaces from a flipping chain can alter other surfaces in the chain. If a front buffer is detached from a flipping chain, the next surface in the chain becomes the front buffer, and the following surface becomes the back buffer. If a back buffer is detached from a chain, the following surface becomes a back buffer. If a plain surface is detached from a chain, the chain simply becomes shorter. If a flipping chain has only two surfaces and they are detached, the chain is destroyed and both surfaces return to their previous designations.