### IDirectDrawClipper::GetClipList

The IDirectDrawClipper::GetClipList method retrieves a copy of the clip list associated with a DirectDrawClipper object. A subset of the clip list can be selected by passing a rectangle that clips the clip list.

HRESULT GetClipList(

LPRECT lpRect,

LPRGNDATA lpClipList,

LPDWORD lpdwSize

);

##### Parameters

lpRect
  Address of a rectangle that will be used to clip the clip list. This parameter can be NULL to retrieve the entire clip list.
lpClipList
  Address of an RGNDATA structure that will contain the resulting copy of the clip list. If this parameter is NULL, the method fills the variable at lpdwSize to the number of bytes necessary to hold the entire clip list.
lpdwSize
  Size of the resulting clip list. When retrieving the clip list, this parameter is the size of the buffer at lpClipList. When lpClipList is NULL, the variable at lpdwSize receives the required size of the buffer, in bytes.

##### 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_GENERIC
DDERR_INVALIDCLIPLIST
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_NOCLIPLIST
DDERR_REGIONTOOSMALL

##### Remarks

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 SDK.

##### See Also

IDirectDrawClipper::SetClipList