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