IDirectDrawClipper::SetClipList

HRESULT SetClipList(LPRGNDATA lpClipList, DWORD dwFlags);

Sets or deletes the clip list used by the IDirectDrawSurface2::Blt, IDirectDrawSurface2::BltBatch, and IDirectDrawSurface2::UpdateOverlay methods on surfaces to which the parent DirectDrawClipper object is attached.

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

DDERR_CLIPPERISUSINGHWND

DDERR_INVALIDCLIPLIST

DDERR_INVALIDOBJECT

DDERR_INVALIDPARAMS

DDERR_OUTOFMEMORY

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.

The clip list cannot be set if a window handle is already associated with the DirectDrawClipper object. Note that the IDirectDrawSurface2::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 Win32 Software Development Kit.