2 #ifndef __WIN32K_REGION_H
3 #define __WIN32K_REGION_H
5 #include <win32k/gdiobj.h>
7 /* Internal region data. Can't use RGNDATA structure because buffer is allocated statically */
8 typedef struct _ROSRGNDATA
{
11 } ROSRGNDATA
, *PROSRGNDATA
, *LPROSRGNDATA
;
14 #define RGNDATA_FreeRgn(hRgn) GDIOBJ_FreeObj((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION)
15 #define RGNDATA_LockRgn(hRgn) ((PROSRGNDATA)GDIOBJ_LockObj((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION))
16 #define RGNDATA_UnlockRgn(pRgn) GDIOBJ_UnlockObjByPtr(pRgn)
17 HRGN FASTCALL
RGNDATA_AllocRgn(INT n
);
18 BOOL INTERNAL_CALL
RGNDATA_Cleanup(PVOID ObjectBody
);
20 /* User entry points */
22 NtGdiUnionRectWithRgn(HRGN hDest
, CONST PRECT Rect
);
26 NtGdiCombineRgn(HRGN hDest
,
33 NtGdiCreateEllipticRgn(INT LeftRect
,
40 NtGdiCreateEllipticRgnIndirect(CONST PRECT rc
);
44 NtGdiCreatePolygonRgn(CONST PPOINT pt
,
50 NtGdiCreatePolyPolygonRgn(CONST PPOINT pt
,
51 CONST PINT PolyCounts
,
57 NtGdiCreateRectRgn(INT LeftRect
,
64 NtGdiCreateRectRgnIndirect(CONST PRECT rc
);
68 NtGdiCreateRoundRectRgn(INT LeftRect
,
77 NtGdiEqualRgn(HRGN hSrcRgn1
,
82 NtGdiExtCreateRegion(CONST XFORM
*Xform
,
84 CONST RGNDATA
*RgnData
);
94 NtGdiFrameRgn(HDC hDC
,
102 NtGdiGetRgnBox(HRGN hRgn
,
107 NtGdiInvertRgn(HDC hDC
,
112 NtGdiOffsetRgn(HRGN hRgn
,
118 NtGdiPaintRgn(HDC hDC
,
123 NtGdiPtInRegion(HRGN hRgn
,
129 NtGdiRectInRegion(HRGN hRgn
,
134 NtGdiSelectVisRgn(HDC hdc
,
139 NtGdiSetRectRgn(HRGN hRgn
,
147 NtGdiGetRegionData(HRGN hrgn
,