6 DCPATH_ACTIVE
= 0x0001,
8 DCPATH_CLOCKWISE
= 0x0004,
11 DCPATH_SAVESTATE
= 0x80000000
14 typedef HGDIOBJ HPATH
, *PHPATH
;
16 typedef enum tagGdiPathState
25 BASEOBJECT BaseObject
;
28 POINTFX ptfxSubPathStart
;
30 // Things to convert from:
35 int numEntriesAllocated
;
39 typedef struct _EPATHOBJ
43 } EPATHOBJ
, *PEPATHOBJ
;
45 #define PATH_AllocPath() ((PPATH) GDIOBJ_AllocObj(GDIObjType_PATH_TYPE))
46 #define PATH_AllocPathWithHandle() ((PPATH) GDIOBJ_AllocObjWithHandle (GDI_OBJECT_TYPE_PATH, sizeof(PATH)))
47 #define PATH_FreePath(pPath) GDIOBJ_FreeObj((POBJ)pPath, GDIObjType_PATH_TYPE)
48 #define PATH_FreeExtPathByHandle(hPath) GDIOBJ_FreeObjByHandle((HGDIOBJ) hPath, GDI_OBJECT_TYPE_PATH)
49 #define PATH_LockPath(hPath) ((PPATH)GDIOBJ_ShareLockObj((HGDIOBJ)hPath, GDI_OBJECT_TYPE_PATH))
50 #define PATH_UnlockPath(pPath) GDIOBJ_vDereferenceObject((POBJ)pPath)
53 #define PATH_IsPathOpen(dclevel) ( ((dclevel).hPath) && ((dclevel).flPath & DCPATH_ACTIVE) )
55 BOOL FASTCALL
PATH_Arc (PDC dc
, INT x1
, INT y1
, INT x2
, INT y2
, INT xStart
, INT yStart
, INT xEnd
, INT yEnd
, INT lines
);
56 BOOL FASTCALL
PATH_Ellipse (PDC dc
, INT x1
, INT y1
, INT x2
, INT y2
);
57 VOID FASTCALL
PATH_EmptyPath (PPATH pPath
);
58 BOOL FASTCALL
PATH_LineTo (PDC dc
, INT x
, INT y
);
59 BOOL FASTCALL
PATH_MoveTo (PDC dc
);
60 BOOL FASTCALL
PATH_PolyBezier (PDC dc
, const POINT
*pts
, DWORD cbPoints
);
61 BOOL FASTCALL
PATH_PolyBezierTo (PDC dc
, const POINT
*pts
, DWORD cbPoints
);
62 BOOL FASTCALL
PATH_PolyDraw(PDC dc
, const POINT
*pts
, const BYTE
*types
, DWORD cbPoints
);
63 BOOL FASTCALL
PATH_Polygon (PDC dc
, const POINT
*pts
, DWORD cbPoints
);
64 BOOL FASTCALL
PATH_Polyline (PDC dc
, const POINT
*pts
, DWORD cbPoints
);
65 BOOL FASTCALL
PATH_PolylineTo (PDC dc
, const POINT
*pts
, DWORD cbPoints
);
66 BOOL FASTCALL
PATH_PolyPolygon ( PDC dc
, const POINT
* pts
, const INT
* counts
, UINT polygons
);
67 BOOL FASTCALL
PATH_PolyPolyline( PDC dc
, const POINT
* pts
, const DWORD
* counts
, DWORD polylines
);
68 BOOL FASTCALL
PATH_Rectangle (PDC dc
, INT x1
, INT y1
, INT x2
, INT y2
);
69 BOOL FASTCALL
PATH_RoundRect(DC
*dc
, INT x1
, INT y1
, INT x2
, INT y2
, INT ell_width
, INT ell_height
);
70 BOOL FASTCALL
PATH_PathToRegion (PPATH pPath
, INT nPolyFillMode
, HRGN
*pHrgn
);
71 BOOL FASTCALL
PATH_ExtTextOut(PDC dc
,INT x
,INT y
,UINT flags
,const RECTL
*lprc
,LPCWSTR str
,UINT count
,const INT
*dx
);
73 BOOL FASTCALL
PATH_AddEntry (PPATH pPath
, const POINT
*pPoint
, BYTE flags
);
74 BOOL FASTCALL
PATH_AddFlatBezier (PPATH pPath
, POINT
*pt
, BOOL closed
);
75 BOOL FASTCALL
PATH_DoArcPart (PPATH pPath
, FLOAT_POINT corners
[], double angleStart
, double angleEnd
, BYTE startEntryType
);
76 BOOL FASTCALL
PATH_FillPath( PDC dc
, PPATH pPath
);
77 BOOL FASTCALL
PATH_FlattenPath (PPATH pPath
);
78 VOID FASTCALL
PATH_NormalizePoint (FLOAT_POINT corners
[], const FLOAT_POINT
*pPoint
, double *pX
, double *pY
);
80 BOOL FASTCALL
PATH_ReserveEntries (PPATH pPath
, INT numEntries
);
81 VOID FASTCALL
PATH_ScaleNormalizedPoint (FLOAT_POINT corners
[], double x
, double y
, POINT
*pPoint
);
82 BOOL FASTCALL
PATH_StrokePath(DC
*dc
, PPATH pPath
);
83 BOOL
PATH_CheckCorners(DC
*dc
, POINT corners
[], INT x1
, INT y1
, INT x2
, INT y2
);
85 VOID FASTCALL
IntGdiCloseFigure(PPATH pPath
);
86 BOOL FASTCALL
PATH_Delete(HPATH hPath
);
88 VOID FASTCALL
IntGetCurrentPositionEx(PDC dc
, LPPOINT pt
);