CLIPOBJ_cEnumStart function (winddi.h)

The CLIPOBJ_cEnumStart function sets parameters for enumerating rectangles in a specified clip region.

Syntax

ENGAPI ULONG CLIPOBJ_cEnumStart(
  [in] CLIPOBJ *pco,
  [in] BOOL    bAll,
  [in] ULONG   iType,
  [in] ULONG   iDirection,
  [in] ULONG   cLimit
);

Parameters

[in] pco

Pointer to the CLIPOBJ structure that defines the clip region to be enumerated.

[in] bAll

Specifies whether the entire region should be enumerated. This parameter is TRUE if the whole region should be enumerated. It is FALSE if only the parts relevant to the present drawing operation should be enumerated.

A driver that caches clip regions must enumerate the entire region.

[in] iType

Specifies the data structures that are to be written by CLIPOBJ_bEnum. This parameter currently must be CT_RECTANGLES, indicating that the region is to be enumerated as a list of rectangles.

[in] iDirection

Determines the order in which the rectangles are to be enumerated. This order can be essential if a DrvBitBlt operation is executing concurrently on the same surface. If the order is not relevant to the device driver, CD_ANY should be specified for complex regions, allowing GDI to optimize the enumeration. This value can be one of the following:

Value Meaning
CD_ANY Any order convenient for GDI.
CD_LEFTDOWN Right to left, top to bottom.
CD_LEFTUP Right to left, bottom to top.
CD_RIGHTDOWN Left to right, top to bottom.
CD_RIGHTUP Left to right, bottom to top.

[in] cLimit

Specifies the maximum number of rectangles to be enumerated. If this parameter is zero, counting is omitted.

Return value

The return value is the count of enumerated rectangles. If the count exceeds cLimit, the return value is 0xFFFFFFFF.

Remarks

A region can be enumerated whether this function is called. By default, the driver only enumerates relevant rectangles, starting at the upper left.

The driver can restart enumeration by calling this function again.

Requirements

Requirement Value
Minimum supported client Available in Windows 2000 and later versions of the Windows operating systems.
Target Platform Universal
Header winddi.h (include Winddi.h)
Library Win32k.lib
DLL Win32k.sys

See also

CLIPOBJ

CLIPOBJ_bEnum

DrvBitBlt