Fixed a file descriptor leak in the PE loader.
[wine] / include / path.h
1 /*
2  * Graphics paths (BeginPath, EndPath etc.)
3  *
4  * Copyright 1997, 1998 Martin Boehme
5  */
6
7 #ifndef __WINE_PATH_H
8 #define __WINE_PATH_H
9
10 #include "windef.h"
11
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.
16  */
17
18 typedef enum tagGdiPathState
19 {
20    PATH_Null,
21    PATH_Open,
22    PATH_Closed
23 } GdiPathState;
24
25 typedef struct tagGdiPath
26 {
27    GdiPathState state;
28    POINT      *pPoints;
29    BYTE         *pFlags;
30    int          numEntriesUsed, numEntriesAllocated;
31    BOOL       newStroke;
32 } GdiPath;
33
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.
38  */
39
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);
44
45 extern BOOL PATH_MoveTo(HDC hdc);
46 extern BOOL PATH_LineTo(HDC hdc, INT x, INT y);
47 extern BOOL PATH_Rectangle(HDC hdc, INT x1, INT y1,
48    INT x2, INT y2);
49 extern BOOL PATH_Ellipse(HDC hdc, INT x1, INT y1,
50    INT x2, INT y2);
51 extern BOOL PATH_Arc(HDC hdc, INT x1, INT y1, INT x2, INT y2,
52    INT xStart, INT yStart, INT xEnd, INT yEnd);
53 extern BOOL PATH_PolyBezierTo(HDC hdc, const POINT *pt, DWORD cbCount);
54 extern BOOL PATH_PolyBezier(HDC hdc, const POINT *pt, DWORD cbCount);
55 extern BOOL PATH_PolylineTo(HDC hdc, const POINT *pt, DWORD cbCount);
56 extern BOOL PATH_Polyline(HDC hdc, const POINT *pt, DWORD cbCount);
57 extern BOOL PATH_Polygon(HDC hdc, const POINT *pt, DWORD cbCount);
58 extern BOOL PATH_PolyPolyline(HDC hdc, const POINT *pt, const DWORD *counts,
59                               DWORD polylines);
60 extern BOOL PATH_PolyPolygon(HDC hdc, const POINT *pt, const INT *counts,
61                              UINT polygons);
62 #endif /* __WINE_PATH_H */
63
64