Avoid buffer overflows in builtin dll loading (with the help of Dmitry
[wine/multimedia.git] / include / path.h
blobdb3f197cfd3831fc49bf15bf33d2180cc88bc8a4
1 /*
2 * Graphics paths (BeginPath, EndPath etc.)
4 * Copyright 1997, 1998 Martin Boehme
5 */
7 #ifndef __WINE_PATH_H
8 #define __WINE_PATH_H
10 #include "windef.h"
12 /* It should not be necessary to access the contents of the GdiPath
13 * structure directly; if you find that the exported functions don't
14 * allow you to do what you want, then please place a new exported
15 * function that does this job in path.c.
18 typedef enum tagGdiPathState
20 PATH_Null,
21 PATH_Open,
22 PATH_Closed
23 } GdiPathState;
25 typedef struct tagGdiPath
27 GdiPathState state;
28 POINT *pPoints;
29 BYTE *pFlags;
30 int numEntriesUsed, numEntriesAllocated;
31 BOOL newStroke;
32 } GdiPath;
34 #define PATH_IsPathOpen(path) ((path).state==PATH_Open)
35 /* Returns TRUE if the specified path is in the open state, i.e. in the
36 * state where points will be added to the path, or FALSE otherwise. This
37 * function is implemented as a macro for performance reasons.
40 extern void PATH_InitGdiPath(GdiPath *pPath);
41 extern void PATH_DestroyGdiPath(GdiPath *pPath);
42 extern BOOL PATH_AssignGdiPath(GdiPath *pPathDest,
43 const GdiPath *pPathSrc);
45 struct tagDC;
47 extern BOOL PATH_MoveTo(struct tagDC *dc);
48 extern BOOL PATH_LineTo(struct tagDC *dc, INT x, INT y);
49 extern BOOL PATH_Rectangle(struct tagDC *dc, INT x1, INT y1,
50 INT x2, INT y2);
51 extern BOOL PATH_Ellipse(struct tagDC *dc, INT x1, INT y1,
52 INT x2, INT y2);
53 extern BOOL PATH_Arc(struct tagDC *dc, INT x1, INT y1, INT x2, INT y2,
54 INT xStart, INT yStart, INT xEnd, INT yEnd);
55 extern BOOL PATH_PolyBezierTo(struct tagDC *dc, const POINT *pt, DWORD cbCount);
56 extern BOOL PATH_PolyBezier(struct tagDC *dc, const POINT *pt, DWORD cbCount);
57 extern BOOL PATH_PolylineTo(struct tagDC *dc, const POINT *pt, DWORD cbCount);
58 extern BOOL PATH_Polyline(struct tagDC *dc, const POINT *pt, DWORD cbCount);
59 extern BOOL PATH_Polygon(struct tagDC *dc, const POINT *pt, DWORD cbCount);
60 extern BOOL PATH_PolyPolyline(struct tagDC *dc, const POINT *pt, const DWORD *counts,
61 DWORD polylines);
62 extern BOOL PATH_PolyPolygon(struct tagDC *dc, const POINT *pt, const INT *counts,
63 UINT polygons);
64 #endif /* __WINE_PATH_H */