### IDirectDrawClipper::SetClipList

The IDirectDrawClipper::SetClipList method sets or deletes the clip list used by the IDirectDrawSurface3::Blt, IDirectDrawSurface3::BltBatch, and IDirectDrawSurface3::UpdateOverlay methods on surfaces to which the parent DirectDrawClipper object is attached.

HRESULT SetClipList(

LPRGNDATA lpClipList,

DWORD dwFlags

);

##### Parameters

lpClipList
  Either an address to a valid RGNDATA structure or NULL. If there is an existing clip list associated with the DirectDrawClipper object and this value is NULL, the clip list will be deleted.
dwFlags
  This parameter is currently not used and must be set to 0.

##### 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_CLIPPERISUSINGHWND
DDERR_INVALIDCLIPLIST
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_OUTOFMEMORY

##### Remarks

The clip list cannot be set if a window handle is already associated with the DirectDrawClipper object. Note that the IDirectDrawSurface3::BltFast method cannot clip.

The RGNDATA structure used with this method has the following syntax.

typedef struct _RGNDATA {

RGNDATAHEADER rdh;

char Buffer[1];

} RGNDATA;

The rdh member of the RGNDATA structure is an RGNDATAHEADER structure that has the following syntax.

typedef struct _RGNDATAHEADER {

DWORD dwSize;

DWORD iType;

DWORD nCount;

DWORD nRgnSize;

RECT rcBound;

} RGNDATAHEADER;

For more information about these structures, see the documentation in the Platform Software Development Kit.

##### See Also

IDirectDrawClipper::GetClipList, IDirectDrawSurface3::Blt, IDirectDrawSurface3::BltFast, IDirectDrawSurface3::BltBatch, IDirectDrawSurface3::UpdateOverlay