1 /*
2 * reactos/lib/gdi32/objects/path.c
3 *
4 * GDI32.DLL Path
5 *
6 * When you implement one of these functions,
7 * remove its stub from this file.
8 *
9 */
10
11 #include <precomp.h>
12
13 /*
14 * @implemented
15 */
16 BOOL
17 WINAPI
AbortPath(HDC hdc)18 AbortPath(
19 HDC hdc)
20 {
21 HANDLE_METADC0P(BOOL, AbortPath, FALSE, hdc);
22 return NtGdiAbortPath(hdc);
23 }
24
25
26 /*
27 * @implemented
28 */
29 BOOL
30 WINAPI
BeginPath(HDC hdc)31 BeginPath(
32 HDC hdc)
33 {
34 HANDLE_METADC0P(BOOL, BeginPath, FALSE, hdc);
35 return NtGdiBeginPath(hdc);
36 }
37
38 /*
39 * @implemented
40 */
41 BOOL
42 WINAPI
CloseFigure(HDC hdc)43 CloseFigure(
44 HDC hdc)
45 {
46 HANDLE_METADC0P(BOOL, CloseFigure, FALSE, hdc);
47 return NtGdiCloseFigure(hdc);
48 }
49
50
51 /*
52 * @implemented
53 */
54 BOOL
55 WINAPI
EndPath(HDC hdc)56 EndPath(
57 HDC hdc)
58 {
59 HANDLE_METADC0P(BOOL, EndPath, FALSE, hdc);
60 return NtGdiEndPath( hdc );
61 }
62
63
64 /*
65 * @implemented
66 */
67 BOOL
68 WINAPI
FillPath(HDC hdc)69 FillPath(
70 HDC hdc)
71 {
72 HANDLE_METADC0P(BOOL, FillPath, FALSE, hdc);
73 return NtGdiFillPath( hdc );
74 }
75
76
77 /*
78 * @implemented
79 */
80 BOOL
81 WINAPI
FlattenPath(HDC hdc)82 FlattenPath(
83 HDC hdc)
84 {
85 HANDLE_METADC0P(BOOL, FlattenPath, FALSE, hdc);
86 return NtGdiFlattenPath ( hdc );
87 }
88
89
90 /*
91 * @implemented
92 */
93 INT
94 WINAPI
GetPath(HDC hdc,LPPOINT pptlBuf,LPBYTE pjTypes,INT cptBuf)95 GetPath(HDC hdc,
96 LPPOINT pptlBuf,
97 LPBYTE pjTypes,
98 INT cptBuf)
99 {
100 INT retValue = -1;
101
102 if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
103 {
104 SetLastError(ERROR_INVALID_PARAMETER);
105 }
106 else
107 {
108 retValue = NtGdiGetPath(hdc,pptlBuf,pjTypes,cptBuf);
109 }
110
111 return retValue;
112 }
113
114
115 /*
116 * @implemented
117 */
118 HRGN
119 WINAPI
PathToRegion(HDC hdc)120 PathToRegion(
121 HDC hdc)
122 {
123 HANDLE_METADC0P(HRGN, AbortPath, NULL, hdc);
124 return NtGdiPathToRegion(hdc);
125 }
126
127 /*
128 * @implemented
129 */
130 BOOL
131 WINAPI
SetMiterLimit(HDC hdc,FLOAT a1,PFLOAT a2)132 SetMiterLimit(
133 HDC hdc,
134 FLOAT a1,
135 PFLOAT a2
136 )
137 {
138 BOOL Ret;
139 gxf_long worker, worker1;
140
141 worker.f = a1;
142 Ret = NtGdiSetMiterLimit ( hdc, worker.l, a2 ? &worker1.l : NULL );
143 if (a2 && Ret) *a2 = worker1.f;
144 return Ret;
145 }
146
147
148 /*
149 * @implemented
150 */
151 BOOL
152 WINAPI
StrokeAndFillPath(HDC hdc)153 StrokeAndFillPath(
154 HDC hdc)
155 {
156 HANDLE_METADC0P(BOOL, StrokeAndFillPath, FALSE, hdc);
157 return NtGdiStrokeAndFillPath ( hdc );
158 }
159
160
161 /*
162 * @implemented
163 */
164 BOOL
165 WINAPI
StrokePath(HDC hdc)166 StrokePath(
167 HDC hdc)
168 {
169 HANDLE_METADC0P(BOOL, StrokePath, FALSE, hdc);
170 return NtGdiStrokePath ( hdc );
171 }
172
173
174 /*
175 * @implemented
176 */
177 BOOL
178 WINAPI
WidenPath(HDC hdc)179 WidenPath(
180 HDC hdc)
181 {
182 HANDLE_METADC0P(BOOL, WidenPath, FALSE, hdc);
183 return NtGdiWidenPath ( hdc );
184 }
185
186 /*
187 * @implemented
188 */
189 BOOL
190 WINAPI
SelectClipPath(HDC hdc,int iMode)191 SelectClipPath(
192 HDC hdc,
193 int iMode)
194 {
195 HANDLE_EMETAFDC(BOOL, SelectClipPath, FALSE, hdc, iMode);
196 return NtGdiSelectClipPath(hdc, iMode);
197 }
198