• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**************************************************************************\
2 *
3 * Copyright (c) 1998-2000, Microsoft Corp.  All Rights Reserved.
4 *
5 * Module Name:
6 *
7 *   GdiplusFlat.h
8 *
9 * Abstract:
10 *
11 *   Flat GDI+ API wrappers - header file
12 *
13 \**************************************************************************/
14 
15 // TODO: this file style needs to be made internally consistent with the way
16 //       it handles breaking the long argument lists across multiple lines
17 
18 #ifndef _FLATAPI_H
19 #define _FLATAPI_H
20 
21 #define WINGDIPAPI __stdcall
22 
23 // currently, only C++ wrapper API's force const.
24 
25 #define GDIPCONST const
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 #ifndef DCR_USE_NEW_175866
32 
33 VOID
34 WINGDIPAPI
35 GdipDisplayPaletteWindowNotify(WindowNotifyEnum notify);
36 
37 #endif
38 
39 //----------------------------------------------------------------------------
40 // GraphicsPath methods
41 //----------------------------------------------------------------------------
42 
43 GpStatus WINGDIPAPI
44 GdipCreatePath(GpFillMode brushMode, GpPath **path);
45 
46 GpStatus WINGDIPAPI
47 GdipCreatePath2(GDIPCONST GpPointF*, GDIPCONST BYTE*, INT, GpFillMode,
48                                     GpPath **path);
49 
50 GpStatus WINGDIPAPI
51 GdipCreatePath2I(GDIPCONST GpPoint*, GDIPCONST BYTE*, INT, GpFillMode,
52                                      GpPath **path);
53 
54 GpStatus WINGDIPAPI
55 GdipClonePath(GpPath* path, GpPath **clonePath);
56 
57 GpStatus WINGDIPAPI
58 GdipDeletePath(GpPath* path);
59 
60 GpStatus WINGDIPAPI
61 GdipResetPath(GpPath* path);
62 
63 GpStatus WINGDIPAPI
64 GdipGetPointCount(GpPath* path, INT* count);
65 
66 GpStatus WINGDIPAPI
67 GdipGetPathTypes(GpPath* path, BYTE* types, INT count);
68 
69 GpStatus WINGDIPAPI
70 GdipGetPathPoints(GpPath*, GpPointF* points, INT count);
71 
72 GpStatus WINGDIPAPI
73 GdipGetPathPointsI(GpPath*, GpPoint* points, INT count);
74 
75 GpStatus WINGDIPAPI
76 GdipGetPathFillMode(GpPath *path, GpFillMode *fillmode);
77 
78 GpStatus WINGDIPAPI
79 GdipSetPathFillMode(GpPath *path, GpFillMode fillmode);
80 
81 GpStatus WINGDIPAPI
82 GdipGetPathData(GpPath *path, GpPathData* pathData);
83 
84 GpStatus WINGDIPAPI
85 GdipStartPathFigure(GpPath *path);
86 
87 GpStatus WINGDIPAPI
88 GdipClosePathFigure(GpPath *path);
89 
90 GpStatus WINGDIPAPI
91 GdipClosePathFigures(GpPath *path);
92 
93 GpStatus WINGDIPAPI
94 GdipSetPathMarker(GpPath* path);
95 
96 GpStatus WINGDIPAPI
97 GdipClearPathMarkers(GpPath* path);
98 
99 GpStatus WINGDIPAPI
100 GdipReversePath(GpPath* path);
101 
102 GpStatus WINGDIPAPI
103 GdipGetPathLastPoint(GpPath* path, GpPointF* lastPoint);
104 
105 GpStatus WINGDIPAPI
106 GdipAddPathLine(GpPath *path, REAL x1, REAL y1, REAL x2, REAL y2);
107 
108 GpStatus WINGDIPAPI
109 GdipAddPathLine2(GpPath *path, GDIPCONST GpPointF *points, INT count);
110 
111 GpStatus WINGDIPAPI
112 GdipAddPathArc(GpPath *path, REAL x, REAL y, REAL width, REAL height,
113                         REAL startAngle, REAL sweepAngle);
114 
115 GpStatus WINGDIPAPI
116 GdipAddPathBezier(GpPath *path, REAL x1, REAL y1, REAL x2, REAL y2,
117                            REAL x3, REAL y3, REAL x4, REAL y4);
118 
119 GpStatus WINGDIPAPI
120 GdipAddPathBeziers(GpPath *path, GDIPCONST GpPointF *points, INT count);
121 
122 GpStatus WINGDIPAPI
123 GdipAddPathCurve(GpPath *path, GDIPCONST GpPointF *points, INT count);
124 
125 GpStatus WINGDIPAPI
126 GdipAddPathCurve2(GpPath *path, GDIPCONST GpPointF *points, INT count,
127                            REAL tension);
128 
129 GpStatus WINGDIPAPI
130 GdipAddPathCurve3(GpPath *path, GDIPCONST GpPointF *points, INT count,
131                            INT offset, INT numberOfSegments, REAL tension);
132 
133 GpStatus WINGDIPAPI
134 GdipAddPathClosedCurve(GpPath *path, GDIPCONST GpPointF *points, INT count);
135 
136 GpStatus WINGDIPAPI
137 GdipAddPathClosedCurve2(GpPath *path, GDIPCONST GpPointF *points, INT count,
138                                  REAL tension);
139 
140 GpStatus WINGDIPAPI
141 GdipAddPathRectangle(GpPath *path, REAL x, REAL y, REAL width, REAL height);
142 
143 GpStatus WINGDIPAPI
144 GdipAddPathRectangles(GpPath *path, GDIPCONST GpRectF *rects, INT count);
145 
146 GpStatus WINGDIPAPI
147 GdipAddPathEllipse(GpPath *path, REAL x, REAL y, REAL width,
148                             REAL height);
149 
150 GpStatus WINGDIPAPI
151 GdipAddPathPie(GpPath *path, REAL x, REAL y, REAL width, REAL height,
152                         REAL startAngle, REAL sweepAngle);
153 
154 GpStatus WINGDIPAPI
155 GdipAddPathPolygon(GpPath *path, GDIPCONST GpPointF *points, INT count);
156 
157 GpStatus WINGDIPAPI
158 GdipAddPathPath(GpPath *path, GDIPCONST GpPath* addingPath, BOOL connect);
159 
160 GpStatus WINGDIPAPI
161 GdipAddPathString(GpPath *path, GDIPCONST WCHAR *string,
162                         INT length, GDIPCONST GpFontFamily *family, INT style,
163                         REAL emSize, GDIPCONST RectF *layoutRect,
164                         GDIPCONST GpStringFormat *format);
165 
166 GpStatus WINGDIPAPI
167 GdipAddPathStringI(GpPath *path, GDIPCONST WCHAR *string,
168                         INT length, GDIPCONST GpFontFamily *family, INT style,
169                         REAL emSize, GDIPCONST Rect *layoutRect,
170                         GDIPCONST GpStringFormat *format);
171 
172 GpStatus WINGDIPAPI
173 GdipAddPathLineI(GpPath *path, INT x1, INT y1, INT x2, INT y2);
174 
175 GpStatus WINGDIPAPI
176 GdipAddPathLine2I(GpPath *path, GDIPCONST GpPoint *points, INT count);
177 
178 GpStatus WINGDIPAPI
179 GdipAddPathArcI(GpPath *path, INT x, INT y, INT width, INT height,
180                         REAL startAngle, REAL sweepAngle);
181 
182 GpStatus WINGDIPAPI
183 GdipAddPathBezierI(GpPath *path, INT x1, INT y1, INT x2, INT y2,
184                            INT x3, INT y3, INT x4, INT y4);
185 
186 GpStatus WINGDIPAPI
187 GdipAddPathBeziersI(GpPath *path, GDIPCONST GpPoint *points, INT count);
188 
189 GpStatus WINGDIPAPI
190 GdipAddPathCurveI(GpPath *path, GDIPCONST GpPoint *points, INT count);
191 
192 GpStatus WINGDIPAPI
193 GdipAddPathCurve2I(GpPath *path, GDIPCONST GpPoint *points, INT count,
194                            REAL tension);
195 
196 GpStatus WINGDIPAPI
197 GdipAddPathCurve3I(GpPath *path, GDIPCONST GpPoint *points, INT count,
198                            INT offset, INT numberOfSegments, REAL tension);
199 
200 GpStatus WINGDIPAPI
201 GdipAddPathClosedCurveI(GpPath *path, GDIPCONST GpPoint *points, INT count);
202 
203 GpStatus WINGDIPAPI
204 GdipAddPathClosedCurve2I(GpPath *path, GDIPCONST GpPoint *points, INT count,
205                                  REAL tension);
206 
207 GpStatus WINGDIPAPI
208 GdipAddPathRectangleI(GpPath *path, INT x, INT y, INT width, INT height);
209 
210 GpStatus WINGDIPAPI
211 GdipAddPathRectanglesI(GpPath *path, GDIPCONST GpRect *rects, INT count);
212 
213 GpStatus WINGDIPAPI
214 GdipAddPathEllipseI(GpPath *path, INT x, INT y, INT width, INT height);
215 
216 GpStatus WINGDIPAPI
217 GdipAddPathPieI(GpPath *path, INT x, INT y, INT width, INT height,
218                         REAL startAngle, REAL sweepAngle);
219 
220 GpStatus WINGDIPAPI
221 GdipAddPathPolygonI(GpPath *path, GDIPCONST GpPoint *points, INT count);
222 
223 GpStatus WINGDIPAPI
224 GdipFlattenPath(GpPath *path, GpMatrix* matrix, REAL flatness);
225 
226 GpStatus WINGDIPAPI
227 GdipWindingModeOutline(
228     GpPath *path,
229     GpMatrix *matrix,
230     REAL flatness
231 );
232 
233 
234 #ifdef DCR_USE_NEW_202903
235 
236 GpStatus WINGDIPAPI
237 GdipWidenPath(
238     GpPath *nativePath,
239     GpPen *pen,
240     GpMatrix *matrix,
241     REAL flatness
242 );
243 
244 #else
245 
246 GpStatus WINGDIPAPI
247 GdipWidenPathWithMinimumResolutions(GpPath *path, GpPen *pen, REAL minXres,
248             REAL minYres, GpMatrix *matrix, BOOL removeSelftIntersects);
249 
250 #endif
251 
252 GpStatus WINGDIPAPI
253 GdipWarpPath(GpPath *path, GpMatrix* matrix,
254             GDIPCONST GpPointF *points, INT count,
255             REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight,
256             WarpMode warpMode, REAL flatness);
257 
258 GpStatus WINGDIPAPI
259 GdipTransformPath(GpPath* path, GpMatrix* matrix);
260 
261 GpStatus WINGDIPAPI
262 GdipGetPathWorldBounds(GpPath* path, GpRectF* bounds, GDIPCONST GpMatrix *matrix,
263                   GDIPCONST GpPen *pen);
264 
265 GpStatus WINGDIPAPI
266 GdipGetPathWorldBoundsI(GpPath* path, GpRect* bounds, GDIPCONST GpMatrix *matrix,
267                    GDIPCONST GpPen *pen);
268 
269 GpStatus WINGDIPAPI
270 GdipIsVisiblePathPoint(GpPath* path, REAL x, REAL y,
271                        GpGraphics *graphics, BOOL *result);
272 
273 GpStatus WINGDIPAPI
274 GdipIsVisiblePathPointI(GpPath* path, INT x, INT y,
275                         GpGraphics *graphics, BOOL *result);
276 
277 GpStatus WINGDIPAPI
278 GdipIsOutlineVisiblePathPoint(GpPath* path, REAL x, REAL y, GpPen *pen,
279                               GpGraphics *graphics, BOOL *result);
280 
281 GpStatus WINGDIPAPI
282 GdipIsOutlineVisiblePathPointI(GpPath* path, INT x, INT y, GpPen *pen,
283                                GpGraphics *graphics, BOOL *result);
284 
285 
286 //----------------------------------------------------------------------------
287 // Path Enumeration methods
288 //----------------------------------------------------------------------------
289 
290 GpStatus WINGDIPAPI
291 GdipCreatePathIter(GpPathIterator **iterator, GpPath* path);
292 
293 GpStatus WINGDIPAPI
294 GdipDeletePathIter(GpPathIterator *iterator);
295 
296 GpStatus WINGDIPAPI
297 GdipPathIterNextSubpath(GpPathIterator* iterator, INT *resultCount,
298         INT* startIndex, INT* endIndex, BOOL* isClosed);
299 
300 GpStatus WINGDIPAPI
301 GdipPathIterNextSubpathPath(GpPathIterator* iterator, INT* resultCount,
302         GpPath* path, BOOL* isClosed);
303 
304 GpStatus WINGDIPAPI
305 GdipPathIterNextPathType(GpPathIterator* iterator, INT* resultCount,
306         BYTE* pathType, INT* startIndex, INT* endIndex);
307 
308 GpStatus WINGDIPAPI
309 GdipPathIterNextMarker(GpPathIterator* iterator, INT *resultCount,
310         INT* startIndex, INT* endIndex);
311 
312 GpStatus WINGDIPAPI
313 GdipPathIterNextMarkerPath(GpPathIterator* iterator, INT* resultCount,
314         GpPath* path);
315 
316 GpStatus WINGDIPAPI
317 GdipPathIterGetCount(GpPathIterator* iterator, INT* count);
318 
319 GpStatus WINGDIPAPI
320 GdipPathIterGetSubpathCount(GpPathIterator* iterator, INT* count);
321 
322 GpStatus WINGDIPAPI
323 GdipPathIterIsValid(GpPathIterator* iterator, BOOL* valid);
324 
325 GpStatus WINGDIPAPI
326 GdipPathIterHasCurve(GpPathIterator* iterator, BOOL* hasCurve);
327 
328 GpStatus WINGDIPAPI
329 GdipPathIterRewind(GpPathIterator* iterator);
330 
331 GpStatus WINGDIPAPI
332 GdipPathIterEnumerate(GpPathIterator* iterator, INT* resultCount,
333     GpPointF *points, BYTE *types, INT count);
334 
335 GpStatus WINGDIPAPI
336 GdipPathIterCopyData(GpPathIterator* iterator, INT* resultCount,
337     GpPointF* points, BYTE* types, INT startIndex, INT endIndex);
338 
339 //----------------------------------------------------------------------------
340 // Matrix methods
341 //----------------------------------------------------------------------------
342 
343 GpStatus WINGDIPAPI
344 GdipCreateMatrix(GpMatrix **matrix);
345 
346 GpStatus WINGDIPAPI
347 GdipCreateMatrix2(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx,
348                                       REAL dy, GpMatrix **matrix);
349 
350 GpStatus WINGDIPAPI
351 GdipCreateMatrix3(GDIPCONST GpRectF *rect, GDIPCONST GpPointF *dstplg,
352                                       GpMatrix **matrix);
353 
354 GpStatus WINGDIPAPI
355 GdipCreateMatrix3I(GDIPCONST GpRect *rect, GDIPCONST GpPoint *dstplg,
356                                        GpMatrix **matrix);
357 
358 GpStatus WINGDIPAPI
359 GdipCloneMatrix(GpMatrix *matrix, GpMatrix **cloneMatrix);
360 
361 GpStatus WINGDIPAPI
362 GdipDeleteMatrix(GpMatrix *matrix);
363 
364 GpStatus WINGDIPAPI
365 GdipSetMatrixElements(GpMatrix *matrix, REAL m11, REAL m12, REAL m21, REAL m22,
366                       REAL dx, REAL dy);
367 
368 GpStatus WINGDIPAPI
369 GdipMultiplyMatrix(GpMatrix *matrix, GpMatrix* matrix2,
370                             GpMatrixOrder order);
371 
372 GpStatus WINGDIPAPI
373 GdipTranslateMatrix(GpMatrix *matrix, REAL offsetX, REAL offsetY,
374                     GpMatrixOrder order);
375 
376 GpStatus WINGDIPAPI
377 GdipScaleMatrix(GpMatrix *matrix, REAL scaleX, REAL scaleY,
378                 GpMatrixOrder order);
379 
380 GpStatus WINGDIPAPI
381 GdipRotateMatrix(GpMatrix *matrix, REAL angle, GpMatrixOrder order);
382 
383 GpStatus WINGDIPAPI
384 GdipShearMatrix(GpMatrix *matrix, REAL shearX, REAL shearY,
385                 GpMatrixOrder order);
386 
387 GpStatus WINGDIPAPI
388 GdipInvertMatrix(GpMatrix *matrix);
389 
390 GpStatus WINGDIPAPI
391 GdipTransformMatrixPoints(GpMatrix *matrix, GpPointF *pts, INT count);
392 
393 GpStatus WINGDIPAPI
394 GdipTransformMatrixPointsI(GpMatrix *matrix, GpPoint *pts, INT count);
395 
396 GpStatus WINGDIPAPI
397 GdipVectorTransformMatrixPoints(GpMatrix *matrix, GpPointF *pts,
398                                          INT count);
399 
400 GpStatus WINGDIPAPI
401 GdipVectorTransformMatrixPointsI(GpMatrix *matrix, GpPoint *pts,
402                                          INT count);
403 
404 GpStatus WINGDIPAPI
405 GdipGetMatrixElements(GDIPCONST GpMatrix *matrix, REAL *matrixOut);
406 
407 GpStatus WINGDIPAPI
408 GdipIsMatrixInvertible(GDIPCONST GpMatrix *matrix, BOOL *result);
409 
410 GpStatus WINGDIPAPI
411 GdipIsMatrixIdentity(GDIPCONST GpMatrix *matrix, BOOL *result);
412 
413 GpStatus WINGDIPAPI
414 GdipIsMatrixEqual(GDIPCONST GpMatrix *matrix, GDIPCONST GpMatrix *matrix2, BOOL *result);
415 
416 //----------------------------------------------------------------------------
417 // Region methods
418 //----------------------------------------------------------------------------
419 
420 GpStatus WINGDIPAPI
421 GdipCreateRegion(GpRegion **region);
422 
423 GpStatus WINGDIPAPI
424 GdipCreateRegionRect(GDIPCONST GpRectF *rect, GpRegion **region);
425 
426 GpStatus WINGDIPAPI
427 GdipCreateRegionRectI(GDIPCONST GpRect *rect, GpRegion **region);
428 
429 GpStatus WINGDIPAPI
430 GdipCreateRegionPath(GpPath *path, GpRegion **region);
431 
432 GpStatus WINGDIPAPI
433 GdipCreateRegionRgnData(GDIPCONST BYTE *regionData, INT size, GpRegion **region);
434 
435 GpStatus WINGDIPAPI
436 GdipCreateRegionHrgn(HRGN hRgn, GpRegion **region);
437 
438 GpStatus WINGDIPAPI
439 GdipCloneRegion(GpRegion *region, GpRegion **cloneRegion);
440 
441 GpStatus WINGDIPAPI
442 GdipDeleteRegion(GpRegion *region);
443 
444 GpStatus WINGDIPAPI
445 GdipSetInfinite(GpRegion *region);
446 
447 GpStatus WINGDIPAPI
448 GdipSetEmpty(GpRegion *region);
449 
450 GpStatus WINGDIPAPI
451 GdipCombineRegionRect(GpRegion *region, GDIPCONST GpRectF *rect,
452                       CombineMode combineMode);
453 
454 GpStatus WINGDIPAPI
455 GdipCombineRegionRectI(GpRegion *region, GDIPCONST GpRect *rect,
456                        CombineMode combineMode);
457 
458 GpStatus WINGDIPAPI
459 GdipCombineRegionPath(GpRegion *region, GpPath *path, CombineMode combineMode);
460 
461 GpStatus WINGDIPAPI
462 GdipCombineRegionRegion(GpRegion *region,  GpRegion *region2,
463                         CombineMode combineMode);
464 
465 GpStatus WINGDIPAPI
466 GdipTranslateRegion(GpRegion *region, REAL dx, REAL dy);
467 
468 GpStatus WINGDIPAPI
469 GdipTranslateRegionI(GpRegion *region, INT dx, INT dy);
470 
471 GpStatus WINGDIPAPI
472 GdipTransformRegion(GpRegion *region, GpMatrix *matrix);
473 
474 GpStatus WINGDIPAPI
475 GdipGetRegionBounds(GpRegion *region, GpGraphics *graphics,
476                              GpRectF *rect);
477 
478 GpStatus WINGDIPAPI
479 GdipGetRegionBoundsI(GpRegion *region, GpGraphics *graphics,
480                              GpRect *rect);
481 
482 GpStatus WINGDIPAPI
483 GdipGetRegionHRgn(GpRegion *region, GpGraphics *graphics, HRGN *hRgn);
484 
485 GpStatus WINGDIPAPI
486 GdipIsEmptyRegion(GpRegion *region, GpGraphics *graphics,
487                            BOOL *result);
488 
489 GpStatus WINGDIPAPI
490 GdipIsInfiniteRegion(GpRegion *region, GpGraphics *graphics,
491                               BOOL *result);
492 
493 GpStatus WINGDIPAPI
494 GdipIsEqualRegion(GpRegion *region, GpRegion *region2,
495                            GpGraphics *graphics, BOOL *result);
496 
497 GpStatus WINGDIPAPI
498 GdipGetRegionDataSize(GpRegion *region, UINT * bufferSize);
499 
500 GpStatus WINGDIPAPI
501 GdipGetRegionData(GpRegion *region, BYTE * buffer, UINT bufferSize, UINT * sizeFilled);
502 
503 GpStatus WINGDIPAPI
504 GdipIsVisibleRegionPoint(GpRegion *region, REAL x, REAL y,
505                                   GpGraphics *graphics, BOOL *result);
506 
507 GpStatus WINGDIPAPI
508 GdipIsVisibleRegionPointI(GpRegion *region, INT x, INT y,
509                                   GpGraphics *graphics, BOOL *result);
510 
511 GpStatus WINGDIPAPI
512 GdipIsVisibleRegionRect(GpRegion *region, REAL x, REAL y, REAL width,
513                         REAL height, GpGraphics *graphics, BOOL *result);
514 
515 GpStatus WINGDIPAPI
516 GdipIsVisibleRegionRectI(GpRegion *region, INT x, INT y, INT width,
517                          INT height, GpGraphics *graphics, BOOL *result);
518 
519 GpStatus WINGDIPAPI
520 GdipGetRegionScansCount(GpRegion *region, UINT* count, GpMatrix* matrix);
521 
522 GpStatus WINGDIPAPI
523 GdipGetRegionScans(GpRegion *region, GpRectF* rects, INT* count, GpMatrix* matrix);
524 
525 GpStatus WINGDIPAPI
526 GdipGetRegionScansI(GpRegion *region, GpRect* rects, INT* count, GpMatrix* matrix);
527 
528 //----------------------------------------------------------------------------
529 // Brush methods
530 //----------------------------------------------------------------------------
531 
532 GpStatus WINGDIPAPI
533 GdipCloneBrush(GpBrush *brush, GpBrush **cloneBrush);
534 
535 GpStatus WINGDIPAPI
536 GdipDeleteBrush(GpBrush *brush);
537 
538 GpStatus WINGDIPAPI
539 GdipGetBrushType(GpBrush *brush, GpBrushType *type);
540 
541 //----------------------------------------------------------------------------
542 // Hatch Brush methods
543 //----------------------------------------------------------------------------
544 
545 GpStatus WINGDIPAPI
546 GdipCreateHatchBrush(GpHatchStyle hatchstyle, ARGB forecol,
547                               ARGB backcol, GpHatch **brush);
548 
549 GpStatus WINGDIPAPI
550 GdipGetHatchStyle(GpHatch *brush, GpHatchStyle *hatchstyle);
551 
552 GpStatus WINGDIPAPI
553 GdipGetHatchForegroundColor(GpHatch *brush, ARGB* forecol);
554 
555 GpStatus WINGDIPAPI
556 GdipGetHatchBackgroundColor(GpHatch *brush, ARGB* backcol);
557 
558 //----------------------------------------------------------------------------
559 // Texture Brush methods
560 //----------------------------------------------------------------------------
561 
562 GpStatus WINGDIPAPI
563 GdipCreateTexture(GpImage *image, GpWrapMode wrapmode,
564                            GpTexture **texture);
565 
566 GpStatus WINGDIPAPI
567 GdipCreateTexture2(GpImage *image, GpWrapMode wrapmode, REAL x,
568                    REAL y, REAL width, REAL height, GpTexture **texture);
569 
570 GpStatus WINGDIPAPI
571 GdipCreateTextureIA(GpImage *image, GDIPCONST GpImageAttributes *imageAttributes,
572                     REAL x, REAL y, REAL width, REAL height,
573                     GpTexture **texture);
574 
575 GpStatus WINGDIPAPI
576 GdipCreateTexture2I(GpImage *image, GpWrapMode wrapmode, INT x,
577                     INT y, INT width, INT height, GpTexture **texture);
578 
579 GpStatus WINGDIPAPI
580 GdipCreateTextureIAI(GpImage *image, GDIPCONST GpImageAttributes *imageAttributes,
581                      INT x, INT y, INT width, INT height,
582                      GpTexture **texture);
583 
584 
585 GpStatus WINGDIPAPI
586 GdipGetTextureTransform(GpTexture *brush, GpMatrix *matrix);
587 
588 GpStatus WINGDIPAPI
589 GdipSetTextureTransform(GpTexture *brush, GDIPCONST GpMatrix *matrix);
590 
591 GpStatus WINGDIPAPI
592 GdipResetTextureTransform(GpTexture* brush);
593 
594 GpStatus WINGDIPAPI
595 GdipMultiplyTextureTransform(GpTexture* brush, GDIPCONST GpMatrix *matrix,
596                             GpMatrixOrder order);
597 
598 GpStatus WINGDIPAPI
599 GdipTranslateTextureTransform(GpTexture* brush, REAL dx, REAL dy,
600                             GpMatrixOrder order);
601 
602 GpStatus WINGDIPAPI
603 GdipScaleTextureTransform(GpTexture* brush, REAL sx, REAL sy,
604                             GpMatrixOrder order);
605 
606 GpStatus WINGDIPAPI
607 GdipRotateTextureTransform(GpTexture* brush, REAL angle, GpMatrixOrder order);
608 
609 GpStatus WINGDIPAPI
610 GdipSetTextureWrapMode(GpTexture *brush, GpWrapMode wrapmode);
611 
612 GpStatus WINGDIPAPI
613 GdipGetTextureWrapMode(GpTexture *brush, GpWrapMode *wrapmode);
614 
615 GpStatus WINGDIPAPI
616 GdipGetTextureImage(GpTexture *brush, GpImage **image);
617 
618 //----------------------------------------------------------------------------
619 // Solid Brush methods
620 //----------------------------------------------------------------------------
621 
622 GpStatus WINGDIPAPI
623 GdipCreateSolidFill(ARGB color, GpSolidFill **brush);
624 
625 GpStatus WINGDIPAPI
626 GdipSetSolidFillColor(GpSolidFill *brush, ARGB color);
627 
628 GpStatus WINGDIPAPI
629 GdipGetSolidFillColor(GpSolidFill *brush, ARGB *color);
630 
631 //----------------------------------------------------------------------------
632 // LineBrush methods
633 //----------------------------------------------------------------------------
634 
635 GpStatus WINGDIPAPI
636 GdipCreateLineBrush(GDIPCONST GpPointF* point1,
637                     GDIPCONST GpPointF* point2,
638                     ARGB color1, ARGB color2,
639                     GpWrapMode wrapMode,
640                     GpLineGradient **lineGradient);
641 
642 GpStatus WINGDIPAPI
643 GdipCreateLineBrushI(GDIPCONST GpPoint* point1,
644                      GDIPCONST GpPoint* point2,
645                      ARGB color1, ARGB color2,
646                      GpWrapMode wrapMode,
647                      GpLineGradient **lineGradient);
648 
649 GpStatus WINGDIPAPI
650 GdipCreateLineBrushFromRect(GDIPCONST GpRectF* rect,
651                             ARGB color1, ARGB color2,
652                             LinearGradientMode mode,
653                             GpWrapMode wrapMode,
654                             GpLineGradient **lineGradient);
655 
656 GpStatus WINGDIPAPI
657 GdipCreateLineBrushFromRectI(GDIPCONST GpRect* rect,
658                              ARGB color1, ARGB color2,
659                              LinearGradientMode mode,
660                              GpWrapMode wrapMode,
661                              GpLineGradient **lineGradient);
662 
663 GpStatus WINGDIPAPI
664 GdipCreateLineBrushFromRectWithAngle(GDIPCONST GpRectF* rect,
665                                      ARGB color1, ARGB color2,
666                                      REAL angle,
667                                      BOOL isAngleScalable,
668                                      GpWrapMode wrapMode,
669                                      GpLineGradient **lineGradient);
670 
671 GpStatus WINGDIPAPI
672 GdipCreateLineBrushFromRectWithAngleI(GDIPCONST GpRect* rect,
673                                      ARGB color1, ARGB color2,
674                                      REAL angle,
675                                      BOOL isAngleScalable,
676                                      GpWrapMode wrapMode,
677                                      GpLineGradient **lineGradient);
678 
679 GpStatus WINGDIPAPI
680 GdipSetLinePoints(GpLineGradient *brush,
681                   GDIPCONST GpPointF* point1,
682                   GDIPCONST GpPointF* point2);
683 
684 GpStatus WINGDIPAPI
685 GdipSetLinePointsI(GpLineGradient *brush,
686                    GDIPCONST GpPoint* point1,
687                    GDIPCONST GpPoint* point2);
688 
689 GpStatus WINGDIPAPI
690 GdipGetLinePoints(GpLineGradient *brush, GpPointF* points);
691 
692 GpStatus WINGDIPAPI
693 GdipGetLinePointsI(GpLineGradient *brush, GpPoint* points);
694 
695 GpStatus WINGDIPAPI
696 GdipSetLineColors(GpLineGradient *brush, ARGB color1, ARGB color2);
697 
698 GpStatus WINGDIPAPI
699 GdipGetLineColors(GpLineGradient *brush, ARGB* colors);
700 
701 GpStatus WINGDIPAPI
702 GdipGetLineRect(GpLineGradient *brush, GpRectF *rect);
703 
704 GpStatus WINGDIPAPI
705 GdipGetLineRectI(GpLineGradient *brush, GpRect *rect);
706 
707 GpStatus WINGDIPAPI
708 GdipSetLineGammaCorrection(GpLineGradient *brush, BOOL useGammaCorrection);
709 
710 GpStatus WINGDIPAPI
711 GdipGetLineGammaCorrection(GpLineGradient *brush, BOOL *useGammaCorrection);
712 
713 GpStatus WINGDIPAPI
714 GdipGetLineBlendCount(GpLineGradient *brush, INT *count);
715 
716 GpStatus WINGDIPAPI
717 GdipGetLineBlend(GpLineGradient *brush, REAL *blend, REAL* positions,
718                  INT count);
719 
720 GpStatus WINGDIPAPI
721 GdipSetLineBlend(GpLineGradient *brush, GDIPCONST REAL *blend,
722                  GDIPCONST REAL* positions, INT count);
723 
724 GpStatus WINGDIPAPI
725 GdipGetLinePresetBlendCount(GpLineGradient *brush, INT *count);
726 
727 GpStatus WINGDIPAPI
728 GdipGetLinePresetBlend(GpLineGradient *brush, ARGB *blend,
729                                            REAL* positions, INT count);
730 
731 GpStatus WINGDIPAPI
732 GdipSetLinePresetBlend(GpLineGradient *brush, GDIPCONST ARGB *blend,
733                        GDIPCONST REAL* positions, INT count);
734 
735 GpStatus WINGDIPAPI
736 GdipSetLineSigmaBlend(GpLineGradient *brush, REAL focus, REAL scale);
737 
738 GpStatus WINGDIPAPI
739 GdipSetLineLinearBlend(GpLineGradient *brush, REAL focus, REAL scale);
740 
741 GpStatus WINGDIPAPI
742 GdipSetLineWrapMode(GpLineGradient *brush, GpWrapMode wrapmode);
743 
744 GpStatus WINGDIPAPI
745 GdipGetLineWrapMode(GpLineGradient *brush, GpWrapMode *wrapmode);
746 
747 GpStatus WINGDIPAPI
748 GdipGetLineTransform(GpLineGradient *brush, GpMatrix *matrix);
749 
750 GpStatus WINGDIPAPI
751 GdipSetLineTransform(GpLineGradient *brush, GDIPCONST GpMatrix *matrix);
752 
753 GpStatus WINGDIPAPI
754 GdipResetLineTransform(GpLineGradient* brush);
755 
756 GpStatus WINGDIPAPI
757 GdipMultiplyLineTransform(GpLineGradient* brush, GDIPCONST GpMatrix *matrix,
758                             GpMatrixOrder order);
759 
760 GpStatus WINGDIPAPI
761 GdipTranslateLineTransform(GpLineGradient* brush, REAL dx, REAL dy,
762                             GpMatrixOrder order);
763 
764 GpStatus WINGDIPAPI
765 GdipScaleLineTransform(GpLineGradient* brush, REAL sx, REAL sy,
766                             GpMatrixOrder order);
767 
768 GpStatus WINGDIPAPI
769 GdipRotateLineTransform(GpLineGradient* brush, REAL angle, GpMatrixOrder order);
770 
771 //----------------------------------------------------------------------------
772 // PathGradient Brush
773 //----------------------------------------------------------------------------
774 
775 GpStatus WINGDIPAPI
776 GdipCreatePathGradient(GDIPCONST GpPointF* points,
777                                     INT count,
778                                     GpWrapMode wrapMode,
779                                     GpPathGradient **polyGradient);
780 
781 GpStatus WINGDIPAPI
782 GdipCreatePathGradientI(GDIPCONST GpPoint* points,
783                                     INT count,
784                                     GpWrapMode wrapMode,
785                                     GpPathGradient **polyGradient);
786 
787 GpStatus WINGDIPAPI
788 GdipCreatePathGradientFromPath(GDIPCONST GpPath* path,
789                                     GpPathGradient **polyGradient);
790 
791 GpStatus WINGDIPAPI
792 GdipGetPathGradientCenterColor(
793                         GpPathGradient *brush, ARGB* colors);
794 
795 GpStatus WINGDIPAPI
796 GdipSetPathGradientCenterColor(
797                         GpPathGradient *brush, ARGB colors);
798 
799 GpStatus WINGDIPAPI
800 GdipGetPathGradientSurroundColorsWithCount(
801                         GpPathGradient *brush, ARGB* color, INT* count);
802 
803 GpStatus WINGDIPAPI
804 GdipSetPathGradientSurroundColorsWithCount(
805                         GpPathGradient *brush,
806                         GDIPCONST ARGB* color, INT* count);
807 
808 GpStatus WINGDIPAPI
809 GdipGetPathGradientPath(GpPathGradient *brush, GpPath *path);
810 
811 GpStatus WINGDIPAPI
812 GdipSetPathGradientPath(GpPathGradient *brush, GDIPCONST GpPath *path);
813 
814 GpStatus WINGDIPAPI
815 GdipGetPathGradientCenterPoint(
816                         GpPathGradient *brush, GpPointF* points);
817 
818 GpStatus WINGDIPAPI
819 GdipGetPathGradientCenterPointI(
820                         GpPathGradient *brush, GpPoint* points);
821 
822 GpStatus WINGDIPAPI
823 GdipSetPathGradientCenterPoint(
824                         GpPathGradient *brush, GDIPCONST GpPointF* points);
825 
826 GpStatus WINGDIPAPI
827 GdipSetPathGradientCenterPointI(
828                         GpPathGradient *brush, GDIPCONST GpPoint* points);
829 
830 GpStatus WINGDIPAPI
831 GdipGetPathGradientRect(GpPathGradient *brush, GpRectF *rect);
832 
833 GpStatus WINGDIPAPI
834 GdipGetPathGradientRectI(GpPathGradient *brush, GpRect *rect);
835 
836 GpStatus WINGDIPAPI
837 GdipGetPathGradientPointCount(GpPathGradient *brush, INT* count);
838 
839 GpStatus WINGDIPAPI
840 GdipGetPathGradientSurroundColorCount(GpPathGradient *brush, INT* count);
841 
842 GpStatus WINGDIPAPI
843 GdipSetPathGradientGammaCorrection(GpPathGradient *brush, BOOL useGammaCorrection);
844 
845 GpStatus WINGDIPAPI
846 GdipGetPathGradientGammaCorrection(GpPathGradient *brush, BOOL *useGammaCorrection);
847 
848 GpStatus WINGDIPAPI
849 GdipGetPathGradientBlendCount(GpPathGradient *brush,
850                                              INT *count);
851 
852 GpStatus WINGDIPAPI
853 GdipGetPathGradientBlend(GpPathGradient *brush,
854                                     REAL *blend, REAL *positions, INT count);
855 
856 GpStatus WINGDIPAPI
857 GdipSetPathGradientBlend(GpPathGradient *brush,
858                 GDIPCONST REAL *blend, GDIPCONST REAL *positions, INT count);
859 
860 GpStatus WINGDIPAPI
861 GdipGetPathGradientPresetBlendCount(GpPathGradient *brush, INT *count);
862 
863 GpStatus WINGDIPAPI
864 GdipGetPathGradientPresetBlend(GpPathGradient *brush, ARGB *blend,
865                                                 REAL* positions, INT count);
866 
867 GpStatus WINGDIPAPI
868 GdipSetPathGradientPresetBlend(GpPathGradient *brush, GDIPCONST ARGB *blend,
869                                         GDIPCONST REAL* positions, INT count);
870 
871 GpStatus WINGDIPAPI
872 GdipSetPathGradientSigmaBlend(GpPathGradient *brush, REAL focus, REAL scale);
873 
874 GpStatus WINGDIPAPI
875 GdipSetPathGradientLinearBlend(GpPathGradient *brush, REAL focus, REAL scale);
876 
877 GpStatus WINGDIPAPI
878 GdipGetPathGradientWrapMode(GpPathGradient *brush,
879                                          GpWrapMode *wrapmode);
880 
881 GpStatus WINGDIPAPI
882 GdipSetPathGradientWrapMode(GpPathGradient *brush,
883                                          GpWrapMode wrapmode);
884 
885 GpStatus WINGDIPAPI
886 GdipGetPathGradientTransform(GpPathGradient *brush,
887                                           GpMatrix *matrix);
888 
889 GpStatus WINGDIPAPI
890 GdipSetPathGradientTransform(GpPathGradient *brush,
891                                           GpMatrix *matrix);
892 
893 GpStatus WINGDIPAPI
894 GdipResetPathGradientTransform(GpPathGradient* brush);
895 
896 GpStatus WINGDIPAPI
897 GdipMultiplyPathGradientTransform(GpPathGradient* brush, GDIPCONST GpMatrix *matrix,
898                             GpMatrixOrder order);
899 
900 GpStatus WINGDIPAPI
901 GdipTranslatePathGradientTransform(GpPathGradient* brush, REAL dx, REAL dy,
902                             GpMatrixOrder order);
903 
904 GpStatus WINGDIPAPI
905 GdipScalePathGradientTransform(GpPathGradient* brush, REAL sx, REAL sy,
906                             GpMatrixOrder order);
907 
908 GpStatus WINGDIPAPI
909 GdipRotatePathGradientTransform(GpPathGradient* brush, REAL angle,
910                             GpMatrixOrder order);
911 
912 GpStatus WINGDIPAPI
913 GdipGetPathGradientFocusScales(GpPathGradient *brush, REAL* xScale, REAL* yScale);
914 
915 GpStatus WINGDIPAPI
916 GdipSetPathGradientFocusScales(GpPathGradient *brush, REAL xScale, REAL yScale);
917 
918 //----------------------------------------------------------------------------
919 // Pen methods
920 //----------------------------------------------------------------------------
921 
922 GpStatus WINGDIPAPI
923 GdipCreatePen1(ARGB color, REAL width, GpUnit unit, GpPen **pen);
924 
925 GpStatus WINGDIPAPI
926 GdipCreatePen2(GpBrush *brush, REAL width, GpUnit unit,
927                         GpPen **pen);
928 
929 GpStatus WINGDIPAPI
930 GdipClonePen(GpPen *pen, GpPen **clonepen);
931 
932 GpStatus WINGDIPAPI
933 GdipDeletePen(GpPen *pen);
934 
935 GpStatus WINGDIPAPI
936 GdipSetPenWidth(GpPen *pen, REAL width);
937 
938 GpStatus WINGDIPAPI
939 GdipGetPenWidth(GpPen *pen, REAL *width);
940 
941 GpStatus WINGDIPAPI
942 GdipSetPenUnit(GpPen *pen, GpUnit unit);
943 
944 GpStatus WINGDIPAPI
945 GdipGetPenUnit(GpPen *pen, GpUnit *unit);
946 
947 #ifdef DCR_USE_NEW_197819
948 GpStatus WINGDIPAPI
949 GdipSetPenLineCap197819(GpPen *pen, GpLineCap startCap, GpLineCap endCap,
950                   GpDashCap dashCap);
951 #else
952 GpStatus WINGDIPAPI
953 GdipSetPenLineCap(GpPen *pen, GpLineCap startCap, GpLineCap endCap,
954                   GpLineCap dashCap);
955 #endif // DCR_USE_NEW_197819
956 
957 
958 GpStatus WINGDIPAPI
959 GdipSetPenStartCap(GpPen *pen, GpLineCap startCap);
960 
961 GpStatus WINGDIPAPI
962 GdipSetPenEndCap(GpPen *pen, GpLineCap endCap);
963 
964 #ifdef DCR_USE_NEW_197819
965 GpStatus WINGDIPAPI
966 GdipSetPenDashCap197819(GpPen *pen, GpDashCap dashCap);
967 #else
968 GpStatus WINGDIPAPI
969 GdipSetPenDashCap(GpPen *pen, GpLineCap dashCap);
970 #endif // DCR_USE_NEW_197819
971 
972 GpStatus WINGDIPAPI
973 GdipGetPenStartCap(GpPen *pen, GpLineCap *startCap);
974 
975 GpStatus WINGDIPAPI
976 GdipGetPenEndCap(GpPen *pen, GpLineCap *endCap);
977 
978 #ifdef DCR_USE_NEW_197819
979 GpStatus WINGDIPAPI
980 GdipGetPenDashCap197819(GpPen *pen, GpDashCap *dashCap);
981 #else
982 GpStatus WINGDIPAPI
983 GdipGetPenDashCap(GpPen *pen, GpLineCap *dashCap);
984 #endif // DCR_USE_NEW_197819
985 
986 GpStatus WINGDIPAPI
987 GdipSetPenLineJoin(GpPen *pen, GpLineJoin lineJoin);
988 
989 GpStatus WINGDIPAPI
990 GdipGetPenLineJoin(GpPen *pen, GpLineJoin *lineJoin);
991 
992 GpStatus WINGDIPAPI
993 GdipSetPenCustomStartCap(GpPen *pen, GpCustomLineCap* customCap);
994 
995 GpStatus WINGDIPAPI
996 GdipGetPenCustomStartCap(GpPen *pen, GpCustomLineCap** customCap);
997 
998 GpStatus WINGDIPAPI
999 GdipSetPenCustomEndCap(GpPen *pen, GpCustomLineCap* customCap);
1000 
1001 GpStatus WINGDIPAPI
1002 GdipGetPenCustomEndCap(GpPen *pen, GpCustomLineCap** customCap);
1003 
1004 GpStatus WINGDIPAPI
1005 GdipSetPenMiterLimit(GpPen *pen, REAL miterLimit);
1006 
1007 GpStatus WINGDIPAPI
1008 GdipGetPenMiterLimit(GpPen *pen, REAL *miterLimit);
1009 
1010 GpStatus WINGDIPAPI
1011 GdipSetPenMode(GpPen *pen, GpPenAlignment penMode);
1012 
1013 GpStatus WINGDIPAPI
1014 GdipGetPenMode(GpPen *pen, GpPenAlignment *penMode);
1015 
1016 GpStatus WINGDIPAPI
1017 GdipSetPenTransform(GpPen *pen, GpMatrix *matrix);
1018 
1019 GpStatus WINGDIPAPI
1020 GdipGetPenTransform(GpPen *pen, GpMatrix *matrix);
1021 
1022 GpStatus WINGDIPAPI
1023 GdipResetPenTransform(GpPen *pen);
1024 
1025 GpStatus WINGDIPAPI
1026 GdipMultiplyPenTransform(GpPen *pen, GDIPCONST GpMatrix *matrix,
1027                            GpMatrixOrder order);
1028 
1029 GpStatus WINGDIPAPI
1030 GdipTranslatePenTransform(GpPen *pen, REAL dx, REAL dy,
1031                             GpMatrixOrder order);
1032 
1033 GpStatus WINGDIPAPI
1034 GdipScalePenTransform(GpPen *pen, REAL sx, REAL sy,
1035                             GpMatrixOrder order);
1036 
1037 GpStatus WINGDIPAPI
1038 GdipRotatePenTransform(GpPen *pen, REAL angle, GpMatrixOrder order);
1039 
1040 GpStatus WINGDIPAPI
1041 GdipSetPenColor(GpPen *pen, ARGB argb);
1042 
1043 GpStatus WINGDIPAPI
1044 GdipGetPenColor(GpPen *pen, ARGB *argb);
1045 
1046 GpStatus WINGDIPAPI
1047 GdipSetPenBrushFill(GpPen *pen, GpBrush *brush);
1048 
1049 GpStatus WINGDIPAPI
1050 GdipGetPenBrushFill(GpPen *pen, GpBrush **brush);
1051 
1052 GpStatus WINGDIPAPI
1053 GdipGetPenFillType(GpPen *pen, GpPenType* type);
1054 
1055 GpStatus WINGDIPAPI
1056 GdipGetPenDashStyle(GpPen *pen, GpDashStyle *dashstyle);
1057 
1058 GpStatus WINGDIPAPI
1059 GdipSetPenDashStyle(GpPen *pen, GpDashStyle dashstyle);
1060 
1061 GpStatus WINGDIPAPI
1062 GdipGetPenDashOffset(GpPen *pen, REAL *offset);
1063 
1064 GpStatus WINGDIPAPI
1065 GdipSetPenDashOffset(GpPen *pen, REAL offset);
1066 
1067 GpStatus WINGDIPAPI
1068 GdipGetPenDashCount(GpPen *pen, INT *count);
1069 
1070 GpStatus WINGDIPAPI
1071 GdipSetPenDashArray(GpPen *pen, GDIPCONST REAL *dash, INT count);
1072 
1073 GpStatus WINGDIPAPI
1074 GdipGetPenDashArray(GpPen *pen, REAL *dash, INT count);
1075 
1076 GpStatus WINGDIPAPI
1077 GdipGetPenCompoundCount(GpPen *pen, INT *count);
1078 
1079 GpStatus WINGDIPAPI
1080 GdipSetPenCompoundArray(GpPen *pen, GDIPCONST REAL *dash, INT count);
1081 
1082 GpStatus WINGDIPAPI
1083 GdipGetPenCompoundArray(GpPen *pen, REAL *dash, INT count);
1084 
1085 //----------------------------------------------------------------------------
1086 // CustomLineCap methods
1087 //----------------------------------------------------------------------------
1088 
1089 GpStatus WINGDIPAPI
1090 GdipCreateCustomLineCap(GpPath* fillPath, GpPath* strokePath,
1091    GpLineCap baseCap, REAL baseInset, GpCustomLineCap **customCap);
1092 
1093 GpStatus WINGDIPAPI
1094 GdipDeleteCustomLineCap(GpCustomLineCap* customCap);
1095 
1096 GpStatus WINGDIPAPI
1097 GdipCloneCustomLineCap(GpCustomLineCap* customCap,
1098                        GpCustomLineCap** clonedCap);
1099 
1100 GpStatus WINGDIPAPI
1101 GdipGetCustomLineCapType(GpCustomLineCap* customCap,
1102                        CustomLineCapType* capType);
1103 
1104 GpStatus WINGDIPAPI
1105 GdipSetCustomLineCapStrokeCaps(GpCustomLineCap* customCap,
1106                                GpLineCap startCap, GpLineCap endCap);
1107 
1108 GpStatus WINGDIPAPI
1109 GdipGetCustomLineCapStrokeCaps(GpCustomLineCap* customCap,
1110                                GpLineCap* startCap, GpLineCap* endCap);
1111 
1112 GpStatus WINGDIPAPI
1113 GdipSetCustomLineCapStrokeJoin(GpCustomLineCap* customCap, GpLineJoin lineJoin);
1114 
1115 GpStatus WINGDIPAPI
1116 GdipGetCustomLineCapStrokeJoin(GpCustomLineCap* customCap, GpLineJoin* lineJoin);
1117 
1118 GpStatus WINGDIPAPI
1119 GdipSetCustomLineCapBaseCap(GpCustomLineCap* customCap, GpLineCap baseCap);
1120 
1121 GpStatus WINGDIPAPI
1122 GdipGetCustomLineCapBaseCap(GpCustomLineCap* customCap, GpLineCap* baseCap);
1123 
1124 GpStatus WINGDIPAPI
1125 GdipSetCustomLineCapBaseInset(GpCustomLineCap* customCap, REAL inset);
1126 
1127 GpStatus WINGDIPAPI
1128 GdipGetCustomLineCapBaseInset(GpCustomLineCap* customCap, REAL* inset);
1129 
1130 GpStatus WINGDIPAPI
1131 GdipSetCustomLineCapWidthScale(GpCustomLineCap* customCap, REAL widthScale);
1132 
1133 GpStatus WINGDIPAPI
1134 GdipGetCustomLineCapWidthScale(GpCustomLineCap* customCap, REAL* widthScale);
1135 
1136 //----------------------------------------------------------------------------
1137 // AdjustableArrowCap methods
1138 //----------------------------------------------------------------------------
1139 
1140 GpStatus WINGDIPAPI
1141 GdipCreateAdjustableArrowCap(REAL height, REAL width, BOOL isFilled,
1142                              GpAdjustableArrowCap **cap);
1143 
1144 GpStatus WINGDIPAPI
1145 GdipSetAdjustableArrowCapHeight(GpAdjustableArrowCap* cap, REAL height);
1146 
1147 GpStatus WINGDIPAPI
1148 GdipGetAdjustableArrowCapHeight(GpAdjustableArrowCap* cap, REAL* height);
1149 
1150 GpStatus WINGDIPAPI
1151 GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap* cap, REAL width);
1152 
1153 GpStatus WINGDIPAPI
1154 GdipGetAdjustableArrowCapWidth(GpAdjustableArrowCap* cap, REAL* width);
1155 
1156 GpStatus WINGDIPAPI
1157 GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap* cap, REAL middleInset);
1158 
1159 GpStatus WINGDIPAPI
1160 GdipGetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap* cap, REAL* middleInset);
1161 
1162 GpStatus WINGDIPAPI
1163 GdipSetAdjustableArrowCapFillState(GpAdjustableArrowCap* cap, BOOL fillState);
1164 
1165 GpStatus WINGDIPAPI
1166 GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap* cap, BOOL* fillState);
1167 
1168 //----------------------------------------------------------------------------
1169 // Image methods
1170 //----------------------------------------------------------------------------
1171 
1172 GpStatus WINGDIPAPI
1173 GdipLoadImageFromStream(IStream* stream, GpImage **image);
1174 
1175 GpStatus WINGDIPAPI
1176 GdipLoadImageFromFile(GDIPCONST WCHAR* filename, GpImage **image);
1177 
1178 GpStatus WINGDIPAPI
1179 GdipLoadImageFromStreamICM(IStream* stream, GpImage **image);
1180 
1181 GpStatus WINGDIPAPI
1182 GdipLoadImageFromFileICM(GDIPCONST WCHAR* filename, GpImage **image);
1183 
1184 GpStatus WINGDIPAPI
1185 GdipCloneImage(GpImage *image, GpImage **cloneImage);
1186 
1187 GpStatus WINGDIPAPI
1188 GdipDisposeImage(GpImage *image);
1189 
1190 GpStatus WINGDIPAPI
1191 GdipSaveImageToFile(GpImage *image, GDIPCONST WCHAR* filename,
1192                     GDIPCONST CLSID* clsidEncoder, GDIPCONST EncoderParameters* encoderParams);
1193 
1194 GpStatus WINGDIPAPI
1195 GdipSaveImageToStream(GpImage *image, IStream* stream,
1196                       GDIPCONST CLSID* clsidEncoder, GDIPCONST EncoderParameters* encoderParams);
1197 
1198 GpStatus WINGDIPAPI
1199 GdipSaveAdd(GpImage *image, GDIPCONST EncoderParameters* encoderParams);
1200 
1201 GpStatus WINGDIPAPI
1202 GdipSaveAddImage(GpImage *image, GpImage* newImage,
1203                  GDIPCONST EncoderParameters* encoderParams);
1204 
1205 GpStatus WINGDIPAPI
1206 GdipGetImageGraphicsContext(GpImage *image, GpGraphics **graphics);
1207 
1208 GpStatus WINGDIPAPI
1209 GdipGetImageBounds(GpImage *image, GpRectF *srcRect, GpUnit *srcUnit);
1210 
1211 GpStatus WINGDIPAPI
1212 GdipGetImageDimension(GpImage *image, REAL *width, REAL *height);
1213 
1214 GpStatus WINGDIPAPI
1215 GdipGetImageType(GpImage *image, ImageType *type);
1216 
1217 GpStatus WINGDIPAPI
1218 GdipGetImageWidth(GpImage *image, UINT *width);
1219 
1220 GpStatus WINGDIPAPI
1221 GdipGetImageHeight(GpImage *image, UINT *height);
1222 
1223 GpStatus WINGDIPAPI
1224 GdipGetImageHorizontalResolution(GpImage *image, REAL *resolution);
1225 
1226 GpStatus WINGDIPAPI
1227 GdipGetImageVerticalResolution(GpImage *image, REAL *resolution);
1228 
1229 GpStatus WINGDIPAPI
1230 GdipGetImageFlags(GpImage *image, UINT *flags);
1231 
1232 GpStatus WINGDIPAPI
1233 GdipGetImageRawFormat(GpImage *image, GUID *format);
1234 
1235 GpStatus WINGDIPAPI
1236 GdipGetImagePixelFormat(GpImage *image, PixelFormat *format);
1237 
1238 GpStatus WINGDIPAPI
1239 GdipGetImageThumbnail(GpImage *image, UINT thumbWidth, UINT thumbHeight,
1240                       GpImage **thumbImage,
1241                       GetThumbnailImageAbort callback, VOID * callbackData);
1242 
1243 GpStatus WINGDIPAPI
1244 GdipGetEncoderParameterListSize(GpImage *image, GDIPCONST CLSID* clsidEncoder,
1245                                 UINT* size);
1246 
1247 GpStatus WINGDIPAPI
1248 GdipGetEncoderParameterList(GpImage *image, GDIPCONST CLSID* clsidEncoder,
1249                             UINT size, EncoderParameters* buffer);
1250 
1251 GpStatus WINGDIPAPI
1252 GdipImageGetFrameDimensionsCount(GpImage* image, UINT* count);
1253 
1254 GpStatus WINGDIPAPI
1255 GdipImageGetFrameDimensionsList(GpImage* image, GUID* dimensionIDs, UINT count);
1256 
1257 GpStatus WINGDIPAPI
1258 GdipImageGetFrameCount(GpImage *image, GDIPCONST GUID* dimensionID, UINT* count);
1259 
1260 GpStatus WINGDIPAPI
1261 GdipImageSelectActiveFrame(GpImage *image, GDIPCONST GUID* dimensionID,
1262                            UINT frameIndex);
1263 
1264 GpStatus WINGDIPAPI
1265 GdipImageRotateFlip(GpImage *image, RotateFlipType rfType);
1266 
1267 GpStatus WINGDIPAPI
1268 GdipGetImagePalette(GpImage *image, ColorPalette *palette, INT size);
1269 
1270 GpStatus WINGDIPAPI
1271 GdipSetImagePalette(GpImage *image, GDIPCONST ColorPalette *palette);
1272 
1273 GpStatus WINGDIPAPI
1274 GdipGetImagePaletteSize(GpImage *image, INT *size);
1275 
1276 GpStatus WINGDIPAPI
1277 GdipGetPropertyCount(GpImage *image, UINT* numOfProperty);
1278 
1279 GpStatus WINGDIPAPI
1280 GdipGetPropertyIdList(GpImage *image, UINT numOfProperty, PROPID* list);
1281 
1282 GpStatus WINGDIPAPI
1283 GdipGetPropertyItemSize(GpImage *image, PROPID propId, UINT* size);
1284 
1285 GpStatus WINGDIPAPI
1286 GdipGetPropertyItem(GpImage *image, PROPID propId,UINT propSize,
1287                     PropertyItem* buffer);
1288 
1289 GpStatus WINGDIPAPI
1290 GdipGetPropertySize(GpImage *image, UINT* totalBufferSize, UINT* numProperties);
1291 
1292 GpStatus WINGDIPAPI
1293 GdipGetAllPropertyItems(GpImage *image, UINT totalBufferSize,
1294                         UINT numProperties, PropertyItem* allItems);
1295 
1296 GpStatus WINGDIPAPI
1297 GdipRemovePropertyItem(GpImage *image, PROPID propId);
1298 
1299 GpStatus WINGDIPAPI
1300 GdipSetPropertyItem(GpImage *image, GDIPCONST PropertyItem* item);
1301 
1302 GpStatus WINGDIPAPI
1303 GdipImageForceValidation(GpImage *image);
1304 
1305 GpStatus WINGDIPAPI
1306 GdipGetImageLayout(GpImage *image, ImageLayout* layout);
1307 
1308 GpStatus WINGDIPAPI
1309 GdipSetImageLayout(GpImage *image, GDIPCONST ImageLayout layout);
1310 
1311 //----------------------------------------------------------------------------
1312 // Bitmap methods
1313 //----------------------------------------------------------------------------
1314 
1315 GpStatus WINGDIPAPI
1316 GdipCreateBitmapFromStream(IStream* stream, GpBitmap **bitmap);
1317 
1318 GpStatus WINGDIPAPI
1319 GdipCreateBitmapFromFile(GDIPCONST WCHAR* filename, GpBitmap **bitmap);
1320 
1321 GpStatus WINGDIPAPI
1322 GdipCreateBitmapFromStreamICM(IStream* stream, GpBitmap **bitmap);
1323 
1324 GpStatus WINGDIPAPI
1325 GdipCreateBitmapFromFileICM(GDIPCONST WCHAR* filename, GpBitmap **bitmap);
1326 
1327 GpStatus WINGDIPAPI
1328 GdipCreateBitmapFromScan0(INT width,
1329                           INT height,
1330                           INT stride,
1331                           PixelFormat format,
1332                           BYTE* scan0,
1333                           GpBitmap** bitmap);
1334 
1335 GpStatus WINGDIPAPI
1336 GdipCreateBitmapFromGraphics(INT width,
1337                              INT height,
1338                              GpGraphics* target,
1339                              GpBitmap** bitmap);
1340 
1341 GpStatus WINGDIPAPI
1342 GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7* surface,
1343                                       GpBitmap** bitmap);
1344 
1345 GpStatus WINGDIPAPI
1346 GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO* gdiBitmapInfo,
1347                            VOID* gdiBitmapData,
1348                            GpBitmap** bitmap);
1349 
1350 GpStatus WINGDIPAPI
1351 GdipCreateBitmapFromHBITMAP(HBITMAP hbm,
1352                             HPALETTE hpal,
1353                             GpBitmap** bitmap);
1354 
1355 GpStatus WINGDIPAPI
1356 GdipCreateHBITMAPFromBitmap(GpBitmap* bitmap,
1357                             HBITMAP* hbmReturn,
1358                             ARGB background);
1359 
1360 GpStatus WINGDIPAPI
1361 GdipCreateBitmapFromHICON(HICON hicon,
1362                           GpBitmap** bitmap);
1363 
1364 GpStatus WINGDIPAPI
1365 GdipCreateHICONFromBitmap(GpBitmap* bitmap,
1366                           HICON* hbmReturn);
1367 
1368 GpStatus WINGDIPAPI
1369 GdipCreateBitmapFromResource(HINSTANCE hInstance,
1370                              GDIPCONST WCHAR* lpBitmapName,
1371                              GpBitmap** bitmap);
1372 
1373 GpStatus WINGDIPAPI
1374 GdipCloneBitmapArea(REAL x, REAL y, REAL width, REAL height,
1375                             PixelFormat format,
1376                             GpBitmap *srcBitmap,
1377                             GpBitmap **dstBitmap);
1378 
1379 GpStatus WINGDIPAPI
1380 GdipCloneBitmapAreaI(INT x,
1381                      INT y,
1382                      INT width,
1383                      INT height,
1384                      PixelFormat format,
1385                      GpBitmap *srcBitmap,
1386                      GpBitmap **dstBitmap);
1387 
1388 GpStatus WINGDIPAPI
1389 GdipBitmapLockBits(GpBitmap* bitmap,
1390                    GDIPCONST GpRect* rect,
1391                    UINT flags,
1392                    PixelFormat format,
1393                    BitmapData* lockedBitmapData);
1394 
1395 GpStatus WINGDIPAPI
1396 GdipBitmapUnlockBits(GpBitmap* bitmap,
1397                      BitmapData* lockedBitmapData);
1398 
1399 GpStatus WINGDIPAPI
1400 GdipBitmapGetPixel(GpBitmap* bitmap, INT x, INT y, ARGB *color);
1401 
1402 GpStatus WINGDIPAPI
1403 GdipBitmapSetPixel(GpBitmap* bitmap, INT x, INT y, ARGB color);
1404 
1405 GpStatus WINGDIPAPI
1406 GdipBitmapSetResolution(GpBitmap* bitmap, REAL xdpi, REAL ydpi);
1407 
1408 //----------------------------------------------------------------------------
1409 // ImageAttributes methods
1410 //----------------------------------------------------------------------------
1411 
1412 GpStatus WINGDIPAPI
1413 GdipCreateImageAttributes(GpImageAttributes **imageattr);
1414 
1415 GpStatus WINGDIPAPI
1416 GdipCloneImageAttributes(GDIPCONST GpImageAttributes *imageattr,
1417                          GpImageAttributes **cloneImageattr);
1418 
1419 GpStatus WINGDIPAPI
1420 GdipDisposeImageAttributes(GpImageAttributes *imageattr);
1421 
1422 GpStatus WINGDIPAPI
1423 GdipSetImageAttributesToIdentity(GpImageAttributes *imageattr,
1424                                  ColorAdjustType type);
1425 GpStatus WINGDIPAPI
1426 GdipResetImageAttributes(GpImageAttributes *imageattr,
1427                          ColorAdjustType type);
1428 
1429 GpStatus WINGDIPAPI
1430 GdipSetImageAttributesColorMatrix(GpImageAttributes *imageattr,
1431                                ColorAdjustType type,
1432                                BOOL enableFlag,
1433                                GDIPCONST ColorMatrix* colorMatrix,
1434                                GDIPCONST ColorMatrix* grayMatrix,
1435                                ColorMatrixFlags flags);
1436 
1437 GpStatus WINGDIPAPI
1438 GdipSetImageAttributesThreshold(GpImageAttributes *imageattr,
1439                                 ColorAdjustType type,
1440                                 BOOL enableFlag,
1441                                 REAL threshold);
1442 
1443 GpStatus WINGDIPAPI
1444 GdipSetImageAttributesGamma(GpImageAttributes *imageattr,
1445                             ColorAdjustType type,
1446                             BOOL enableFlag,
1447                             REAL gamma);
1448 
1449 GpStatus WINGDIPAPI
1450 GdipSetImageAttributesNoOp(GpImageAttributes *imageattr,
1451                            ColorAdjustType type,
1452                            BOOL enableFlag);
1453 
1454 GpStatus WINGDIPAPI
1455 GdipSetImageAttributesColorKeys(GpImageAttributes *imageattr,
1456                                 ColorAdjustType type,
1457                                 BOOL enableFlag,
1458                                 ARGB colorLow,
1459                                 ARGB colorHigh);
1460 
1461 GpStatus WINGDIPAPI
1462 GdipSetImageAttributesOutputChannel(GpImageAttributes *imageattr,
1463                                     ColorAdjustType type,
1464                                     BOOL enableFlag,
1465                                     ColorChannelFlags channelFlags);
1466 
1467 GpStatus WINGDIPAPI
1468 GdipSetImageAttributesOutputChannelColorProfile(GpImageAttributes *imageattr,
1469                                                 ColorAdjustType type,
1470                                                 BOOL enableFlag,
1471                                                 GDIPCONST WCHAR *colorProfileFilename);
1472 
1473 GpStatus WINGDIPAPI
1474 GdipSetImageAttributesRemapTable(GpImageAttributes *imageattr,
1475                                  ColorAdjustType type,
1476                                  BOOL enableFlag,
1477                                  UINT mapSize,
1478                                  GDIPCONST ColorMap *map);
1479 GpStatus WINGDIPAPI
1480 GdipSetImageAttributesWrapMode(
1481     GpImageAttributes *imageAttr,
1482     WrapMode wrap,
1483     ARGB argb,
1484     BOOL clamp
1485 );
1486 
1487 GpStatus WINGDIPAPI
1488 GdipSetImageAttributesICMMode(
1489     GpImageAttributes *imageAttr,
1490     BOOL on
1491 );
1492 
1493 GpStatus WINGDIPAPI
1494 GdipGetImageAttributesAdjustedPalette(
1495     GpImageAttributes *imageAttr,
1496     ColorPalette * colorPalette,
1497     ColorAdjustType colorAdjustType
1498 );
1499 
1500 //----------------------------------------------------------------------------
1501 // Graphics methods
1502 //----------------------------------------------------------------------------
1503 
1504 GpStatus WINGDIPAPI
1505 GdipFlush(GpGraphics *graphics, GpFlushIntention intention);
1506 
1507 GpStatus WINGDIPAPI
1508 GdipCreateFromHDC(HDC hdc, GpGraphics **graphics);
1509 
1510 GpStatus WINGDIPAPI
1511 GdipCreateFromHDC2(HDC hdc, HANDLE hDevice, GpGraphics **graphics);
1512 
1513 GpStatus WINGDIPAPI
1514 GdipCreateFromHWND(HWND hwnd, GpGraphics **graphics);
1515 
1516 GpStatus WINGDIPAPI
1517 GdipCreateFromHWNDICM(HWND hwnd, GpGraphics **graphics);
1518 
1519 GpStatus WINGDIPAPI
1520 GdipDeleteGraphics(GpGraphics *graphics);
1521 
1522 GpStatus WINGDIPAPI
1523 GdipGetDC(GpGraphics* graphics, HDC * hdc);
1524 
1525 GpStatus WINGDIPAPI
1526 GdipReleaseDC(GpGraphics* graphics, HDC hdc);
1527 
1528 GpStatus WINGDIPAPI
1529 GdipSetCompositingMode(GpGraphics *graphics, CompositingMode compositingMode);
1530 
1531 GpStatus WINGDIPAPI
1532 GdipGetCompositingMode(GpGraphics *graphics, CompositingMode *compositingMode);
1533 
1534 GpStatus WINGDIPAPI
1535 GdipSetRenderingOrigin(GpGraphics *graphics, INT x, INT y);
1536 
1537 GpStatus WINGDIPAPI
1538 GdipGetRenderingOrigin(GpGraphics *graphics, INT *x, INT *y);
1539 
1540 GpStatus WINGDIPAPI
1541 GdipSetCompositingQuality(GpGraphics *graphics, CompositingQuality compositingQuality);
1542 
1543 GpStatus WINGDIPAPI
1544 GdipGetCompositingQuality(GpGraphics *graphics, CompositingQuality *compositingQuality);
1545 
1546 GpStatus WINGDIPAPI
1547 GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode smoothingMode);
1548 
1549 GpStatus WINGDIPAPI
1550 GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *smoothingMode);
1551 
1552 GpStatus WINGDIPAPI
1553 GdipSetPixelOffsetMode(GpGraphics* graphics, PixelOffsetMode pixelOffsetMode);
1554 
1555 GpStatus WINGDIPAPI
1556 GdipGetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode *pixelOffsetMode);
1557 
1558 GpStatus WINGDIPAPI
1559 GdipSetTextRenderingHint(GpGraphics *graphics, TextRenderingHint mode);
1560 
1561 GpStatus WINGDIPAPI
1562 GdipGetTextRenderingHint(GpGraphics *graphics, TextRenderingHint *mode);
1563 
1564 #ifdef DCR_USE_NEW_188922
1565 GpStatus  WINGDIPAPI
1566 GdipSetTextContrast(GpGraphics *graphics, UINT contrast);
1567 
1568 GpStatus  WINGDIPAPI
1569 GdipGetTextContrast(GpGraphics *graphics, UINT * contrast);
1570 #else
1571 GpStatus  WINGDIPAPI
1572 GdipSetTextGammaValue(GpGraphics *graphics, UINT gammaValue);
1573 
1574 GpStatus  WINGDIPAPI
1575 GdipGetTextGammaValue(GpGraphics *graphics, UINT * gammaValue);
1576 #endif // DCR_USE_NEW_188922
1577 
1578 
1579 GpStatus WINGDIPAPI
1580 GdipSetInterpolationMode(GpGraphics *graphics, InterpolationMode interpolationMode);
1581 
1582 GpStatus WINGDIPAPI
1583 GdipGetInterpolationMode(GpGraphics *graphics, InterpolationMode *interpolationMode);
1584 
1585 GpStatus WINGDIPAPI
1586 GdipSetWorldTransform(GpGraphics *graphics, GpMatrix *matrix);
1587 
1588 GpStatus WINGDIPAPI
1589 GdipResetWorldTransform(GpGraphics *graphics);
1590 
1591 GpStatus WINGDIPAPI
1592 GdipMultiplyWorldTransform(GpGraphics *graphics, GDIPCONST GpMatrix *matrix,
1593                            GpMatrixOrder order);
1594 
1595 GpStatus WINGDIPAPI
1596 GdipTranslateWorldTransform(GpGraphics *graphics, REAL dx, REAL dy,
1597                             GpMatrixOrder order);
1598 
1599 GpStatus WINGDIPAPI
1600 GdipScaleWorldTransform(GpGraphics *graphics, REAL sx, REAL sy,
1601                         GpMatrixOrder order);
1602 
1603 GpStatus WINGDIPAPI
1604 GdipRotateWorldTransform(GpGraphics *graphics, REAL angle, GpMatrixOrder order);
1605 
1606 GpStatus WINGDIPAPI
1607 GdipGetWorldTransform(GpGraphics *graphics, GpMatrix *matrix);
1608 
1609 GpStatus WINGDIPAPI
1610 GdipResetPageTransform(GpGraphics *graphics);
1611 
1612 GpStatus WINGDIPAPI
1613 GdipGetPageUnit(GpGraphics *graphics, GpUnit *unit);
1614 
1615 GpStatus WINGDIPAPI
1616 GdipGetPageScale(GpGraphics *graphics, REAL *scale);
1617 
1618 GpStatus WINGDIPAPI
1619 GdipSetPageUnit(GpGraphics *graphics, GpUnit unit);
1620 
1621 GpStatus WINGDIPAPI
1622 GdipSetPageScale(GpGraphics *graphics, REAL scale);
1623 
1624 GpStatus WINGDIPAPI
1625 GdipGetDpiX(GpGraphics *graphics, REAL* dpi);
1626 
1627 GpStatus WINGDIPAPI
1628 GdipGetDpiY(GpGraphics *graphics, REAL* dpi);
1629 
1630 GpStatus WINGDIPAPI
1631 GdipTransformPoints(GpGraphics *graphics, GpCoordinateSpace destSpace,
1632                              GpCoordinateSpace srcSpace, GpPointF *points,
1633                              INT count);
1634 
1635 GpStatus WINGDIPAPI
1636 GdipTransformPointsI(GpGraphics *graphics, GpCoordinateSpace destSpace,
1637                              GpCoordinateSpace srcSpace, GpPoint *points,
1638                              INT count);
1639 
1640 GpStatus WINGDIPAPI
1641 GdipGetNearestColor(GpGraphics *graphics, ARGB* argb);
1642 
1643 // Create the Win9x Halftone Palette (even on NT) with correct Desktop colors
1644 HPALETTE WINGDIPAPI
1645 GdipCreateHalftonePalette();
1646 
1647 GpStatus WINGDIPAPI
1648 GdipDrawLine(GpGraphics *graphics, GpPen *pen, REAL x1, REAL y1,
1649                       REAL x2, REAL y2);
1650 
1651 GpStatus WINGDIPAPI
1652 GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1, INT y1,
1653                       INT x2, INT y2);
1654 
1655 GpStatus WINGDIPAPI
1656 GdipDrawLines(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points,
1657                        INT count);
1658 
1659 GpStatus WINGDIPAPI
1660 GdipDrawLinesI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points,
1661                        INT count);
1662 
1663 GpStatus WINGDIPAPI
1664 GdipDrawArc(GpGraphics *graphics, GpPen *pen, REAL x, REAL y,
1665             REAL width, REAL height, REAL startAngle, REAL sweepAngle);
1666 
1667 GpStatus WINGDIPAPI
1668 GdipDrawArcI(GpGraphics *graphics, GpPen *pen, INT x, INT y,
1669                      INT width, INT height, REAL startAngle, REAL sweepAngle);
1670 
1671 GpStatus WINGDIPAPI
1672 GdipDrawBezier(GpGraphics *graphics, GpPen *pen, REAL x1, REAL y1,
1673                         REAL x2, REAL y2, REAL x3, REAL y3, REAL x4, REAL y4);
1674 
1675 GpStatus WINGDIPAPI
1676 GdipDrawBezierI(GpGraphics *graphics, GpPen *pen, INT x1, INT y1,
1677                         INT x2, INT y2, INT x3, INT y3, INT x4, INT y4);
1678 
1679 GpStatus WINGDIPAPI
1680 GdipDrawBeziers(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points,
1681                          INT count);
1682 
1683 GpStatus WINGDIPAPI
1684 GdipDrawBeziersI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points,
1685                          INT count);
1686 
1687 GpStatus WINGDIPAPI
1688 GdipDrawRectangle(GpGraphics *graphics, GpPen *pen, REAL x, REAL y,
1689                       REAL width, REAL height);
1690 
1691 GpStatus WINGDIPAPI
1692 GdipDrawRectangleI(GpGraphics *graphics, GpPen *pen, INT x, INT y,
1693                       INT width, INT height);
1694 
1695 GpStatus WINGDIPAPI
1696 GdipDrawRectangles(GpGraphics *graphics, GpPen *pen, GDIPCONST GpRectF *rects,
1697                        INT count);
1698 
1699 GpStatus WINGDIPAPI
1700 GdipDrawRectanglesI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpRect *rects,
1701                        INT count);
1702 
1703 GpStatus WINGDIPAPI
1704 GdipDrawEllipse(GpGraphics *graphics, GpPen *pen, REAL x, REAL y,
1705                          REAL width, REAL height);
1706 
1707 GpStatus WINGDIPAPI
1708 GdipDrawEllipseI(GpGraphics *graphics, GpPen *pen, INT x, INT y,
1709                          INT width, INT height);
1710 
1711 GpStatus WINGDIPAPI
1712 GdipDrawPie(GpGraphics *graphics, GpPen *pen, REAL x, REAL y,
1713                      REAL width, REAL height, REAL startAngle, REAL sweepAngle);
1714 
1715 GpStatus WINGDIPAPI
1716 GdipDrawPieI(GpGraphics *graphics, GpPen *pen, INT x, INT y,
1717                      INT width, INT height, REAL startAngle, REAL sweepAngle);
1718 
1719 GpStatus WINGDIPAPI
1720 GdipDrawPolygon(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points,
1721                          INT count);
1722 
1723 GpStatus WINGDIPAPI
1724 GdipDrawPolygonI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points,
1725                          INT count);
1726 
1727 GpStatus WINGDIPAPI
1728 GdipDrawPath(GpGraphics *graphics, GpPen *pen, GpPath *path);
1729 
1730 GpStatus WINGDIPAPI
1731 GdipDrawCurve(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points,
1732                        INT count);
1733 
1734 GpStatus WINGDIPAPI
1735 GdipDrawCurveI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points,
1736                        INT count);
1737 
1738 GpStatus WINGDIPAPI
1739 GdipDrawCurve2(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points,
1740                        INT count, REAL tension);
1741 
1742 GpStatus WINGDIPAPI
1743 GdipDrawCurve2I(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points,
1744                        INT count, REAL tension);
1745 
1746 GpStatus WINGDIPAPI
1747 GdipDrawCurve3(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points,
1748                INT count, INT offset, INT numberOfSegments, REAL tension);
1749 
1750 GpStatus WINGDIPAPI
1751 GdipDrawCurve3I(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points,
1752                 INT count, INT offset, INT numberOfSegments, REAL tension);
1753 
1754 GpStatus WINGDIPAPI
1755 GdipDrawClosedCurve(GpGraphics *graphics, GpPen *pen,
1756                     GDIPCONST GpPointF *points, INT count);
1757 
1758 GpStatus WINGDIPAPI
1759 GdipDrawClosedCurveI(GpGraphics *graphics, GpPen *pen,
1760                      GDIPCONST GpPoint *points, INT count);
1761 
1762 GpStatus WINGDIPAPI
1763 GdipDrawClosedCurve2(GpGraphics *graphics, GpPen *pen,
1764                      GDIPCONST GpPointF *points, INT count, REAL tension);
1765 
1766 GpStatus WINGDIPAPI
1767 GdipDrawClosedCurve2I(GpGraphics *graphics, GpPen *pen,
1768                       GDIPCONST GpPoint *points, INT count, REAL tension);
1769 
1770 GpStatus WINGDIPAPI
1771 GdipGraphicsClear(GpGraphics *graphics, ARGB color);
1772 
1773 GpStatus WINGDIPAPI
1774 GdipFillRectangle(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y,
1775                   REAL width, REAL height);
1776 
1777 GpStatus WINGDIPAPI
1778 GdipFillRectangleI(GpGraphics *graphics, GpBrush *brush, INT x, INT y,
1779                    INT width, INT height);
1780 
1781 GpStatus WINGDIPAPI
1782 GdipFillRectangles(GpGraphics *graphics, GpBrush *brush,
1783                    GDIPCONST GpRectF *rects, INT count);
1784 
1785 GpStatus WINGDIPAPI
1786 GdipFillRectanglesI(GpGraphics *graphics, GpBrush *brush,
1787                     GDIPCONST GpRect *rects, INT count);
1788 
1789 GpStatus WINGDIPAPI
1790 GdipFillPolygon(GpGraphics *graphics, GpBrush *brush,
1791                 GDIPCONST GpPointF *points, INT count, GpFillMode fillMode);
1792 
1793 GpStatus WINGDIPAPI
1794 GdipFillPolygonI(GpGraphics *graphics, GpBrush *brush,
1795                  GDIPCONST GpPoint *points, INT count, GpFillMode fillMode);
1796 
1797 GpStatus WINGDIPAPI
1798 GdipFillPolygon2(GpGraphics *graphics, GpBrush *brush,
1799                  GDIPCONST GpPointF *points, INT count);
1800 
1801 GpStatus WINGDIPAPI
1802 GdipFillPolygon2I(GpGraphics *graphics, GpBrush *brush,
1803                   GDIPCONST GpPoint *points, INT count);
1804 
1805 GpStatus WINGDIPAPI
1806 GdipFillEllipse(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y,
1807                 REAL width, REAL height);
1808 
1809 GpStatus WINGDIPAPI
1810 GdipFillEllipseI(GpGraphics *graphics, GpBrush *brush, INT x, INT y,
1811                  INT width, INT height);
1812 
1813 GpStatus WINGDIPAPI
1814 GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y,
1815             REAL width, REAL height, REAL startAngle, REAL sweepAngle);
1816 
1817 GpStatus WINGDIPAPI
1818 GdipFillPieI(GpGraphics *graphics, GpBrush *brush, INT x, INT y,
1819              INT width, INT height, REAL startAngle, REAL sweepAngle);
1820 
1821 GpStatus WINGDIPAPI
1822 GdipFillPath(GpGraphics *graphics, GpBrush *brush, GpPath *path);
1823 
1824 GpStatus WINGDIPAPI
1825 GdipFillClosedCurve(GpGraphics *graphics, GpBrush *brush,
1826                               GDIPCONST GpPointF *points, INT count);
1827 
1828 GpStatus WINGDIPAPI
1829 GdipFillClosedCurveI(GpGraphics *graphics, GpBrush *brush,
1830                               GDIPCONST GpPoint *points, INT count);
1831 
1832 GpStatus WINGDIPAPI
1833 GdipFillClosedCurve2(GpGraphics *graphics, GpBrush *brush,
1834                               GDIPCONST GpPointF *points, INT count,
1835                               REAL tension, GpFillMode fillMode);
1836 
1837 GpStatus WINGDIPAPI
1838 GdipFillClosedCurve2I(GpGraphics *graphics, GpBrush *brush,
1839                               GDIPCONST GpPoint *points, INT count,
1840                               REAL tension, GpFillMode fillMode);
1841 
1842 GpStatus WINGDIPAPI
1843 GdipFillRegion(GpGraphics *graphics, GpBrush *brush,
1844                         GpRegion *region);
1845 
1846 GpStatus WINGDIPAPI
1847 GdipDrawImage(GpGraphics *graphics, GpImage *image, REAL x, REAL y);
1848 
1849 GpStatus WINGDIPAPI
1850 GdipDrawImageI(GpGraphics *graphics, GpImage *image, INT x, INT y);
1851 
1852 GpStatus WINGDIPAPI
1853 GdipDrawImageRect(GpGraphics *graphics, GpImage *image, REAL x, REAL y,
1854                            REAL width, REAL height);
1855 
1856 GpStatus WINGDIPAPI
1857 GdipDrawImageRectI(GpGraphics *graphics, GpImage *image, INT x, INT y,
1858                            INT width, INT height);
1859 
1860 GpStatus WINGDIPAPI
1861 GdipDrawImagePoints(GpGraphics *graphics, GpImage *image,
1862                              GDIPCONST GpPointF *dstpoints, INT count);
1863 
1864 GpStatus WINGDIPAPI
1865 GdipDrawImagePointsI(GpGraphics *graphics, GpImage *image,
1866                              GDIPCONST GpPoint *dstpoints, INT count);
1867 
1868 GpStatus WINGDIPAPI
1869 GdipDrawImagePointRect(GpGraphics *graphics, GpImage *image, REAL x,
1870                                 REAL y, REAL srcx, REAL srcy, REAL srcwidth,
1871                                 REAL srcheight, GpUnit srcUnit);
1872 
1873 GpStatus WINGDIPAPI
1874 GdipDrawImagePointRectI(GpGraphics *graphics, GpImage *image, INT x,
1875                                 INT y, INT srcx, INT srcy, INT srcwidth,
1876                                 INT srcheight, GpUnit srcUnit);
1877 
1878 GpStatus WINGDIPAPI
1879 GdipDrawImageRectRect(GpGraphics *graphics, GpImage *image, REAL dstx,
1880                       REAL dsty, REAL dstwidth, REAL dstheight,
1881                       REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight,
1882                       GpUnit srcUnit,
1883                       GDIPCONST GpImageAttributes* imageAttributes,
1884                       DrawImageAbort callback, VOID * callbackData);
1885 
1886 GpStatus WINGDIPAPI
1887 GdipDrawImageRectRectI(GpGraphics *graphics, GpImage *image, INT dstx,
1888                        INT dsty, INT dstwidth, INT dstheight,
1889                        INT srcx, INT srcy, INT srcwidth, INT srcheight,
1890                        GpUnit srcUnit,
1891                        GDIPCONST GpImageAttributes* imageAttributes,
1892                        DrawImageAbort callback, VOID * callbackData);
1893 
1894 GpStatus WINGDIPAPI
1895 GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image,
1896                         GDIPCONST GpPointF *points, INT count, REAL srcx,
1897                         REAL srcy, REAL srcwidth, REAL srcheight,
1898                         GpUnit srcUnit,
1899                         GDIPCONST GpImageAttributes* imageAttributes,
1900                         DrawImageAbort callback, VOID * callbackData);
1901 
1902 GpStatus WINGDIPAPI
1903 GdipDrawImagePointsRectI(GpGraphics *graphics, GpImage *image,
1904                          GDIPCONST GpPoint *points, INT count, INT srcx,
1905                          INT srcy, INT srcwidth, INT srcheight,
1906                          GpUnit srcUnit,
1907                          GDIPCONST GpImageAttributes* imageAttributes,
1908                          DrawImageAbort callback, VOID * callbackData);
1909 
1910 GpStatus WINGDIPAPI
1911 GdipEnumerateMetafileDestPoint(
1912     GpGraphics *            graphics,
1913     GDIPCONST GpMetafile *  metafile,
1914     GDIPCONST PointF &      destPoint,
1915     EnumerateMetafileProc   callback,
1916     VOID *                  callbackData,
1917     GDIPCONST GpImageAttributes *     imageAttributes
1918     );
1919 
1920 GpStatus WINGDIPAPI
1921 GdipEnumerateMetafileDestPointI(
1922     GpGraphics *            graphics,
1923     GDIPCONST GpMetafile *  metafile,
1924     GDIPCONST Point &       destPoint,
1925     EnumerateMetafileProc   callback,
1926     VOID *                  callbackData,
1927     GDIPCONST GpImageAttributes *     imageAttributes
1928     );
1929 
1930 GpStatus WINGDIPAPI
1931 GdipEnumerateMetafileDestRect(
1932     GpGraphics *            graphics,
1933     GDIPCONST GpMetafile *  metafile,
1934     GDIPCONST RectF &       destRect,
1935     EnumerateMetafileProc   callback,
1936     VOID *                  callbackData,
1937     GDIPCONST GpImageAttributes *     imageAttributes
1938     );
1939 
1940 GpStatus WINGDIPAPI
1941 GdipEnumerateMetafileDestRectI(
1942     GpGraphics *            graphics,
1943     GDIPCONST GpMetafile *  metafile,
1944     GDIPCONST Rect &        destRect,
1945     EnumerateMetafileProc   callback,
1946     VOID *                  callbackData,
1947     GDIPCONST GpImageAttributes *     imageAttributes
1948     );
1949 
1950 GpStatus WINGDIPAPI
1951 GdipEnumerateMetafileDestPoints(
1952     GpGraphics *            graphics,
1953     GDIPCONST GpMetafile *  metafile,
1954     GDIPCONST PointF *      destPoints,
1955     INT                     count,
1956     EnumerateMetafileProc   callback,
1957     VOID *                  callbackData,
1958     GDIPCONST GpImageAttributes *     imageAttributes
1959     );
1960 
1961 GpStatus WINGDIPAPI
1962 GdipEnumerateMetafileDestPointsI(
1963     GpGraphics *            graphics,
1964     GDIPCONST GpMetafile *  metafile,
1965     GDIPCONST Point *       destPoints,
1966     INT                     count,
1967     EnumerateMetafileProc   callback,
1968     VOID *                  callbackData,
1969     GDIPCONST GpImageAttributes *     imageAttributes
1970     );
1971 
1972 GpStatus WINGDIPAPI
1973 GdipEnumerateMetafileSrcRectDestPoint(
1974     GpGraphics *            graphics,
1975     GDIPCONST GpMetafile *  metafile,
1976     GDIPCONST PointF &      destPoint,
1977     GDIPCONST RectF &       srcRect,
1978     Unit                    srcUnit,
1979     EnumerateMetafileProc   callback,
1980     VOID *                  callbackData,
1981     GDIPCONST GpImageAttributes *     imageAttributes
1982     );
1983 
1984 GpStatus WINGDIPAPI
1985 GdipEnumerateMetafileSrcRectDestPointI(
1986     GpGraphics *            graphics,
1987     GDIPCONST GpMetafile *  metafile,
1988     GDIPCONST Point &       destPoint,
1989     GDIPCONST Rect &        srcRect,
1990     Unit                    srcUnit,
1991     EnumerateMetafileProc   callback,
1992     VOID *                  callbackData,
1993     GDIPCONST GpImageAttributes *     imageAttributes
1994     );
1995 
1996 GpStatus WINGDIPAPI
1997 GdipEnumerateMetafileSrcRectDestRect(
1998     GpGraphics *            graphics,
1999     GDIPCONST GpMetafile *  metafile,
2000     GDIPCONST RectF &       destRect,
2001     GDIPCONST RectF &       srcRect,
2002     Unit                    srcUnit,
2003     EnumerateMetafileProc   callback,
2004     VOID *                  callbackData,
2005     GDIPCONST GpImageAttributes *     imageAttributes
2006     );
2007 
2008 GpStatus WINGDIPAPI
2009 GdipEnumerateMetafileSrcRectDestRectI(
2010     GpGraphics *            graphics,
2011     GDIPCONST GpMetafile *  metafile,
2012     GDIPCONST Rect &        destRect,
2013     GDIPCONST Rect &        srcRect,
2014     Unit                    srcUnit,
2015     EnumerateMetafileProc   callback,
2016     VOID *                  callbackData,
2017     GDIPCONST GpImageAttributes *     imageAttributes
2018     );
2019 
2020 GpStatus WINGDIPAPI
2021 GdipEnumerateMetafileSrcRectDestPoints(
2022     GpGraphics *            graphics,
2023     GDIPCONST GpMetafile *  metafile,
2024     GDIPCONST PointF *      destPoints,
2025     INT                     count,
2026     GDIPCONST RectF &       srcRect,
2027     Unit                    srcUnit,
2028     EnumerateMetafileProc   callback,
2029     VOID *                  callbackData,
2030     GDIPCONST GpImageAttributes *     imageAttributes
2031     );
2032 
2033 GpStatus WINGDIPAPI
2034 GdipEnumerateMetafileSrcRectDestPointsI(
2035     GpGraphics *            graphics,
2036     GDIPCONST GpMetafile *  metafile,
2037     GDIPCONST Point *       destPoints,
2038     INT                     count,
2039     GDIPCONST Rect &        srcRect,
2040     Unit                    srcUnit,
2041     EnumerateMetafileProc   callback,
2042     VOID *                  callbackData,
2043     GDIPCONST GpImageAttributes *     imageAttributes
2044     );
2045 
2046 GpStatus WINGDIPAPI
2047 GdipPlayMetafileRecord(
2048     GDIPCONST GpMetafile *  metafile,
2049     EmfPlusRecordType       recordType,
2050     UINT                    flags,
2051     UINT                    dataSize,
2052     GDIPCONST BYTE *        data
2053     );
2054 
2055 GpStatus WINGDIPAPI
2056 GdipSetClipGraphics(GpGraphics *graphics, GpGraphics *srcgraphics,
2057                     CombineMode combineMode);
2058 
2059 GpStatus WINGDIPAPI
2060 GdipSetClipRect(GpGraphics *graphics, REAL x, REAL y,
2061                          REAL width, REAL height, CombineMode combineMode);
2062 
2063 GpStatus WINGDIPAPI
2064 GdipSetClipRectI(GpGraphics *graphics, INT x, INT y,
2065                          INT width, INT height, CombineMode combineMode);
2066 
2067 GpStatus WINGDIPAPI
2068 GdipSetClipPath(GpGraphics *graphics, GpPath *path, CombineMode combineMode);
2069 
2070 GpStatus WINGDIPAPI
2071 GdipSetClipRegion(GpGraphics *graphics, GpRegion *region,
2072                   CombineMode combineMode);
2073 
2074 GpStatus WINGDIPAPI
2075 GdipSetClipHrgn(GpGraphics *graphics, HRGN hRgn, CombineMode combineMode);
2076 
2077 GpStatus WINGDIPAPI
2078 GdipResetClip(GpGraphics *graphics);
2079 
2080 GpStatus WINGDIPAPI
2081 GdipTranslateClip(GpGraphics *graphics, REAL dx, REAL dy);
2082 
2083 GpStatus WINGDIPAPI
2084 GdipTranslateClipI(GpGraphics *graphics, INT dx, INT dy);
2085 
2086 GpStatus WINGDIPAPI
2087 GdipGetClip(GpGraphics *graphics, GpRegion *region);
2088 
2089 GpStatus WINGDIPAPI
2090 GdipGetClipBounds(GpGraphics *graphics, GpRectF *rect);
2091 
2092 GpStatus WINGDIPAPI
2093 GdipGetClipBoundsI(GpGraphics *graphics, GpRect *rect);
2094 
2095 GpStatus WINGDIPAPI
2096 GdipIsClipEmpty(GpGraphics *graphics, BOOL *result);
2097 
2098 GpStatus WINGDIPAPI
2099 GdipGetVisibleClipBounds(GpGraphics *graphics, GpRectF *rect);
2100 
2101 GpStatus WINGDIPAPI
2102 GdipGetVisibleClipBoundsI(GpGraphics *graphics, GpRect *rect);
2103 
2104 GpStatus WINGDIPAPI
2105 GdipIsVisibleClipEmpty(GpGraphics *graphics, BOOL *result);
2106 
2107 GpStatus WINGDIPAPI
2108 GdipIsVisiblePoint(GpGraphics *graphics, REAL x, REAL y,
2109                            BOOL *result);
2110 
2111 GpStatus WINGDIPAPI
2112 GdipIsVisiblePointI(GpGraphics *graphics, INT x, INT y,
2113                            BOOL *result);
2114 
2115 GpStatus WINGDIPAPI
2116 GdipIsVisibleRect(GpGraphics *graphics, REAL x, REAL y,
2117                            REAL width, REAL height, BOOL *result);
2118 
2119 GpStatus WINGDIPAPI
2120 GdipIsVisibleRectI(GpGraphics *graphics, INT x, INT y,
2121                            INT width, INT height, BOOL *result);
2122 
2123 GpStatus WINGDIPAPI
2124 GdipSaveGraphics(GpGraphics *graphics, GraphicsState *state);
2125 
2126 GpStatus WINGDIPAPI
2127 GdipRestoreGraphics(GpGraphics *graphics, GraphicsState state);
2128 
2129 GpStatus WINGDIPAPI
2130 GdipBeginContainer(GpGraphics *graphics, GDIPCONST GpRectF* dstrect,
2131                    GDIPCONST GpRectF *srcrect, GpUnit unit, GraphicsContainer *state);
2132 
2133 GpStatus WINGDIPAPI
2134 GdipBeginContainerI(GpGraphics *graphics, GDIPCONST GpRect* dstrect,
2135                     GDIPCONST GpRect *srcrect, GpUnit unit, GraphicsContainer *state);
2136 
2137 GpStatus WINGDIPAPI
2138 GdipBeginContainer2(GpGraphics *graphics, GraphicsContainer* state);
2139 
2140 GpStatus WINGDIPAPI
2141 GdipEndContainer(GpGraphics *graphics, GraphicsContainer state);
2142 
2143 GpStatus
2144 GdipGetMetafileHeaderFromWmf(
2145     HMETAFILE           hWmf,
2146     GDIPCONST APMFileHeader *     apmFileHeader,
2147     MetafileHeader *    header
2148     );
2149 
2150 GpStatus
2151 WINGDIPAPI
2152 GdipGetMetafileHeaderFromEmf(
2153     HENHMETAFILE        hEmf,
2154     MetafileHeader *    header
2155     );
2156 
2157 GpStatus
2158 WINGDIPAPI
2159 GdipGetMetafileHeaderFromFile(
2160     GDIPCONST WCHAR*        filename,
2161     MetafileHeader *    header
2162     );
2163 
2164 GpStatus
2165 WINGDIPAPI
2166 GdipGetMetafileHeaderFromStream(
2167     IStream *           stream,
2168     MetafileHeader *    header
2169     );
2170 
2171 GpStatus
2172 WINGDIPAPI
2173 GdipGetMetafileHeaderFromMetafile(
2174     GpMetafile *        metafile,
2175     MetafileHeader *    header
2176     );
2177 
2178 GpStatus
2179 WINGDIPAPI
2180 GdipGetHemfFromMetafile(
2181     GpMetafile *        metafile,
2182     HENHMETAFILE *      hEmf
2183     );
2184 
2185 GpStatus WINGDIPAPI
2186 GdipCreateStreamOnFile(GDIPCONST WCHAR * filename, UINT access, IStream **stream);
2187 
2188 GpStatus WINGDIPAPI
2189 GdipCreateMetafileFromWmf(HMETAFILE hWmf, BOOL deleteWmf,
2190                           GDIPCONST APMFileHeader * apmFileHeader, GpMetafile **metafile);
2191 
2192 GpStatus WINGDIPAPI
2193 GdipCreateMetafileFromEmf(HENHMETAFILE hEmf, BOOL deleteEmf,
2194                           GpMetafile **metafile);
2195 
2196 GpStatus WINGDIPAPI
2197 GdipCreateMetafileFromFile(GDIPCONST WCHAR* file, GpMetafile **metafile);
2198 
2199 GpStatus WINGDIPAPI
2200 GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR* file, GDIPCONST APMFileHeader * apmFileHeader, GpMetafile **metafile);
2201 
2202 GpStatus WINGDIPAPI
2203 GdipCreateMetafileFromStream(IStream * stream, GpMetafile **metafile);
2204 
2205 GpStatus WINGDIPAPI
2206 GdipRecordMetafile(
2207     HDC                 referenceHdc,
2208     EmfType             type,
2209     GDIPCONST GpRectF * frameRect,
2210     MetafileFrameUnit   frameUnit,
2211     GDIPCONST WCHAR *   description,
2212     GpMetafile **       metafile
2213     );
2214 
2215 GpStatus WINGDIPAPI
2216 GdipRecordMetafileI(
2217     HDC                 referenceHdc,
2218     EmfType             type,
2219     GDIPCONST GpRect *  frameRect,
2220     MetafileFrameUnit   frameUnit,
2221     GDIPCONST WCHAR *   description,
2222     GpMetafile **       metafile
2223     );
2224 
2225 GpStatus WINGDIPAPI
2226 GdipRecordMetafileFileName(
2227     GDIPCONST WCHAR*    fileName,
2228     HDC                 referenceHdc,
2229     EmfType             type,
2230     GDIPCONST GpRectF * frameRect,
2231     MetafileFrameUnit   frameUnit,
2232     GDIPCONST WCHAR *   description,
2233     GpMetafile **       metafile
2234     );
2235 
2236 GpStatus WINGDIPAPI
2237 GdipRecordMetafileFileNameI(
2238     GDIPCONST WCHAR*    fileName,
2239     HDC                 referenceHdc,
2240     EmfType             type,
2241     GDIPCONST GpRect *  frameRect,
2242     MetafileFrameUnit   frameUnit,
2243     GDIPCONST WCHAR *   description,
2244     GpMetafile **       metafile
2245     );
2246 
2247 GpStatus WINGDIPAPI
2248 GdipRecordMetafileStream(
2249     IStream *           stream,
2250     HDC                 referenceHdc,
2251     EmfType             type,
2252     GDIPCONST GpRectF * frameRect,
2253     MetafileFrameUnit   frameUnit,
2254     GDIPCONST WCHAR *   description,
2255     GpMetafile **       metafile
2256     );
2257 
2258 GpStatus WINGDIPAPI
2259 GdipRecordMetafileStreamI(
2260     IStream *           stream,
2261     HDC                 referenceHdc,
2262     EmfType             type,
2263     GDIPCONST GpRect *  frameRect,
2264     MetafileFrameUnit   frameUnit,
2265     GDIPCONST WCHAR *   description,
2266     GpMetafile **       metafile
2267     );
2268 
2269 GpStatus WINGDIPAPI
2270 GdipSetMetafileDownLevelRasterizationLimit(
2271     GpMetafile *            metafile,
2272     UINT                    metafileRasterizationLimitDpi
2273     );
2274 
2275 GpStatus WINGDIPAPI
2276 GdipGetMetafileDownLevelRasterizationLimit(
2277     GDIPCONST GpMetafile *  metafile,
2278     UINT *                  metafileRasterizationLimitDpi
2279     );
2280 
2281 GpStatus WINGDIPAPI
2282 GdipGetImageDecodersSize(UINT *numDecoders, UINT *size);
2283 
2284 GpStatus WINGDIPAPI
2285 GdipGetImageDecoders(UINT numDecoders,
2286                      UINT size,
2287                      ImageCodecInfo *decoders);
2288 
2289 GpStatus WINGDIPAPI
2290 GdipGetImageEncodersSize(UINT *numEncoders, UINT *size);
2291 
2292 GpStatus WINGDIPAPI
2293 GdipGetImageEncoders(UINT numEncoders,
2294                      UINT size,
2295                      ImageCodecInfo *encoders);
2296 
2297 GpStatus WINGDIPAPI
2298 GdipAddImageCodec(GDIPCONST ImageCodecInfo *codec);
2299 
2300 GpStatus WINGDIPAPI
2301 GdipRemoveImageCodec(GDIPCONST ImageCodecInfo *codec);
2302 
2303 #ifndef DCR_USE_NEW_186091
2304 GpStatus WINGDIPAPI
2305 GdipGetGraphicsPixel(GpGraphics* graphics, REAL x, REAL y, ARGB* argb);
2306 #endif
2307 
2308 GpStatus WINGDIPAPI
2309 GdipComment(GpGraphics* graphics, UINT sizeData, GDIPCONST BYTE * data);
2310 
2311 GpStatus WINGDIPAPI
2312 GdipGetGraphicsLayout(GpGraphics* graphics, GraphicsLayout* layout);
2313 
2314 GpStatus WINGDIPAPI
2315 GdipSetGraphicsLayout(GpGraphics* graphics, GDIPCONST GraphicsLayout layout);
2316 
2317 //----------------------------------------------------------------------------
2318 // FontFamily
2319 //----------------------------------------------------------------------------
2320 
2321 GpStatus WINGDIPAPI
2322 GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name,
2323                              GpFontCollection *fontCollection,
2324                              GpFontFamily **FontFamily);
2325 
2326 GpStatus WINGDIPAPI
2327 GdipDeleteFontFamily(GpFontFamily *FontFamily);
2328 
2329 GpStatus WINGDIPAPI
2330 GdipCloneFontFamily(GpFontFamily *FontFamily, GpFontFamily **clonedFontFamily);
2331 
2332 GpStatus WINGDIPAPI
2333 GdipGetGenericFontFamilySansSerif(GpFontFamily **nativeFamily);
2334 
2335 GpStatus WINGDIPAPI
2336 GdipGetGenericFontFamilySerif(GpFontFamily **nativeFamily);
2337 
2338 GpStatus WINGDIPAPI
2339 GdipGetGenericFontFamilyMonospace(GpFontFamily **nativeFamily);
2340 
2341 
2342 GpStatus WINGDIPAPI
2343 GdipGetFamilyName(
2344     GDIPCONST GpFontFamily  *family,
2345     WCHAR                name[LF_FACESIZE],
2346     LANGID               language
2347 );
2348 
2349 GpStatus   WINGDIPAPI
2350 GdipIsStyleAvailable(GDIPCONST GpFontFamily *family, INT style, BOOL * IsStyleAvailable);
2351 
2352 GpStatus WINGDIPAPI
2353 GdipFontCollectionEnumerable(
2354     GpFontCollection* fontCollection,
2355     GpGraphics* graphics,
2356     INT *       numFound
2357 );
2358 
2359 GpStatus WINGDIPAPI GdipFontCollectionEnumerate(
2360     GpFontCollection* fontCollection,
2361     INT             numSought,
2362     GpFontFamily*   gpfamilies[],
2363     INT*            numFound,
2364     GpGraphics*     graphics
2365 );
2366 
2367 //-----------------------------------
2368 // New API
2369 //-----------------------------------
2370 
2371 GpStatus WINGDIPAPI
2372 GdipGetEmHeight(GDIPCONST GpFontFamily *family, INT style, UINT16 * EmHeight);
2373 
2374 GpStatus WINGDIPAPI
2375 GdipGetCellAscent(GDIPCONST GpFontFamily *family, INT style, UINT16 * CellAscent);
2376 
2377 GpStatus WINGDIPAPI
2378 GdipGetCellDescent(GDIPCONST GpFontFamily *family, INT style, UINT16 * CellDescent);
2379 
2380 GpStatus WINGDIPAPI
2381 GdipGetLineSpacing(GDIPCONST GpFontFamily *family, INT style, UINT16 * LineSpacing);
2382 
2383 
2384 //----------------------------------------------------------------------------
2385 // Font
2386 //----------------------------------------------------------------------------
2387 
2388 GpStatus WINGDIPAPI
2389 GdipCreateFontFromDC(
2390     HDC        hdc,
2391     GpFont   **font
2392 );
2393 
2394 GpStatus WINGDIPAPI
2395 GdipCreateFontFromLogfontA(
2396     HDC        hdc,
2397     GDIPCONST LOGFONTA  *logfont,
2398     GpFont   **font
2399 );
2400 
2401 GpStatus WINGDIPAPI
2402 GdipCreateFontFromLogfontW(
2403     HDC        hdc,
2404     GDIPCONST LOGFONTW  *logfont,
2405     GpFont   **font
2406 );
2407 
2408 GpStatus WINGDIPAPI
2409 GdipCreateFont(
2410     GDIPCONST GpFontFamily  *fontFamily,
2411     REAL                 emSize,
2412     INT                  style,
2413     Unit                 unit,
2414     GpFont             **font
2415 );
2416 
2417 GpStatus WINGDIPAPI
2418 GdipCloneFont(GpFont* font, GpFont** cloneFont);
2419 
2420 GpStatus WINGDIPAPI
2421 GdipDeleteFont(GpFont* font);
2422 
2423 GpStatus WINGDIPAPI
2424 GdipGetFamily(GpFont *font, GpFontFamily **family);
2425 
2426 GpStatus WINGDIPAPI
2427 GdipGetFontStyle(GpFont *font, INT *style);
2428 
2429 GpStatus WINGDIPAPI
2430 GdipGetFontSize(GpFont *font, REAL *size);
2431 
2432 GpStatus WINGDIPAPI
2433 GdipGetFontUnit(GpFont *font, Unit *unit);
2434 
2435 GpStatus WINGDIPAPI
2436 GdipGetFontHeight(GDIPCONST GpFont *font, GDIPCONST GpGraphics *graphics, REAL *height);
2437 
2438 #ifdef DCR_USE_NEW_125467
2439 GpStatus WINGDIPAPI
2440 GdipGetFontHeightGivenDPI(GDIPCONST GpFont *font, REAL dpi, REAL *height);
2441 #endif
2442 
2443 GpStatus WINGDIPAPI
2444 GdipGetLogFontA(GpFont * font, GpGraphics *graphics, LOGFONTA * logfontA);
2445 
2446 GpStatus WINGDIPAPI
2447 GdipGetLogFontW(GpFont * font, GpGraphics *graphics, LOGFONTW * logfontW);
2448 
2449 // FontCollection
2450 
2451 GpStatus WINGDIPAPI
2452 GdipNewInstalledFontCollection(GpFontCollection** fontCollection);
2453 
2454 GpStatus WINGDIPAPI
2455 GdipNewPrivateFontCollection(GpFontCollection** fontCollection);
2456 
2457 GpStatus WINGDIPAPI
2458 GdipDeletePrivateFontCollection(GpFontCollection** fontCollection);
2459 
2460 GpStatus WINGDIPAPI
2461 GdipGetFontCollectionFamilyCount(
2462     GpFontCollection* fontCollection,
2463     INT *       numFound
2464 );
2465 
2466 GpStatus WINGDIPAPI
2467 GdipGetFontCollectionFamilyList(
2468     GpFontCollection* fontCollection,
2469     INT             numSought,
2470     GpFontFamily*   gpfamilies[],
2471     INT*            numFound
2472 );
2473 
2474 #ifndef DCR_USE_NEW_235072
2475 GpStatus WINGDIPAPI
2476 GdipInstallFontFile(
2477     GpFontCollection* fontCollection,
2478     GDIPCONST WCHAR* filename
2479 );
2480 
2481 GpStatus WINGDIPAPI
2482 GdipUninstallFontFile(
2483     GpFontCollection* fontCollection,
2484     GDIPCONST WCHAR* filename
2485 );
2486 #endif
2487 
2488 GpStatus WINGDIPAPI
2489 GdipPrivateAddFontFile(
2490     GpFontCollection* fontCollection,
2491     GDIPCONST WCHAR* filename
2492 );
2493 
2494 GpStatus WINGDIPAPI
2495 GdipPrivateAddMemoryFont(
2496     GpFontCollection* fontCollection,
2497     GDIPCONST void* memory,
2498     INT length
2499 );
2500 
2501 //----------------------------------------------------------------------------
2502 // Text
2503 //----------------------------------------------------------------------------
2504 
2505 GpStatus WINGDIPAPI
2506 GdipDrawString(
2507     GpGraphics               *graphics,
2508     GDIPCONST WCHAR          *string,
2509     INT                       length,
2510     GDIPCONST GpFont         *font,
2511     GDIPCONST RectF          *layoutRect,
2512     GDIPCONST GpStringFormat *stringFormat,
2513     GDIPCONST GpBrush        *brush
2514 );
2515 
2516 GpStatus WINGDIPAPI
2517 GdipMeasureString(
2518     GpGraphics               *graphics,
2519     GDIPCONST WCHAR          *string,
2520     INT                       length,
2521     GDIPCONST GpFont         *font,
2522     GDIPCONST RectF          *layoutRect,
2523     GDIPCONST GpStringFormat *stringFormat,
2524     RectF                    *boundingBox,
2525     INT                      *codepointsFitted,
2526     INT                      *linesFilled
2527 );
2528 
2529 #ifndef DCR_USE_NEW_174340
2530 GpStatus WINGDIPAPI
2531 GdipMeasureStringRegion(
2532     GpGraphics               *graphics,
2533     GDIPCONST WCHAR          *string,
2534     INT                       length,
2535     GDIPCONST GpFont         *font,
2536     GDIPCONST RectF          &layoutRect,
2537     GDIPCONST GpStringFormat *stringFormat,
2538     INT                       firstCharacterIndex,
2539     INT                       characterCount,
2540     GpRegion                 *region
2541 );
2542 #endif
2543 
2544 #ifdef DCR_USE_NEW_174340
2545 GpStatus
2546 WINGDIPAPI
2547 GdipMeasureCharacterRanges(
2548     GpGraphics               *graphics,
2549     GDIPCONST WCHAR          *string,
2550     INT                       length,
2551     GDIPCONST GpFont         *font,
2552     GDIPCONST RectF          &layoutRect,
2553     GDIPCONST GpStringFormat *stringFormat,
2554     INT                       regionCount,
2555     GpRegion                **regions
2556 );
2557 #endif
2558 
2559 GpStatus WINGDIPAPI
2560 GdipDrawDriverString(
2561     GpGraphics *graphics,
2562     GDIPCONST UINT16 *text,
2563     INT length,
2564     GDIPCONST GpFont *font,
2565     GDIPCONST GpBrush *brush,
2566     GDIPCONST PointF *positions,
2567     INT flags,
2568     GDIPCONST GpMatrix *matrix
2569 );
2570 
2571 GpStatus WINGDIPAPI
2572 GdipMeasureDriverString(
2573     GpGraphics *graphics,
2574     GDIPCONST UINT16 *text,
2575     INT length,
2576     GDIPCONST GpFont *font,
2577     GDIPCONST PointF *positions,
2578     INT flags,
2579     GDIPCONST GpMatrix *matrix,
2580     RectF *boundingBox
2581 );
2582 
2583 #ifndef DCR_USE_NEW_168772
2584 GpStatus WINGDIPAPI
2585 GdipDriverStringPointToCodepoint(
2586     GpGraphics *graphics,
2587     GDIPCONST UINT16 *text,
2588     INT length,
2589     GDIPCONST GpFont *font,
2590     GDIPCONST PointF *positions,
2591     INT flags,
2592     GpMatrix *matrix,
2593     GDIPCONST PointF *hit,
2594     INT *index,
2595     BOOL *rightEdge,
2596     REAL *distance
2597 );
2598 #endif
2599 
2600 //----------------------------------------------------------------------------
2601 // String format APIs
2602 //----------------------------------------------------------------------------
2603 
2604 GpStatus WINGDIPAPI
2605 GdipCreateStringFormat(
2606     INT               formatAttributes,
2607     LANGID            language,
2608     GpStringFormat  **format
2609 );
2610 
2611 GpStatus WINGDIPAPI
2612 GdipStringFormatGetGenericDefault(GpStringFormat **format);
2613 
2614 GpStatus WINGDIPAPI
2615 GdipStringFormatGetGenericTypographic(GpStringFormat **format);
2616 
2617 GpStatus WINGDIPAPI
2618 GdipDeleteStringFormat(GpStringFormat *format);
2619 
2620 GpStatus WINGDIPAPI
2621 GdipCloneStringFormat(GDIPCONST GpStringFormat *format, GpStringFormat **newFormat);
2622 
2623 GpStatus WINGDIPAPI
2624 GdipSetStringFormatFlags(GpStringFormat *format, INT flags);
2625 
2626 GpStatus WINGDIPAPI GdipGetStringFormatFlags(GDIPCONST GpStringFormat *format, INT *flags);
2627 
2628 #ifndef DCR_USE_NEW_152154
2629 GpStatus WINGDIPAPI
2630 GdipSetStringFormatLineSpacing(GpStringFormat *format, REAL amount,
2631                                LineSpacing method);
2632 
2633 GpStatus WINGDIPAPI
2634 GdipGetStringFormatLineSpacingAmount(GDIPCONST GpStringFormat *format, REAL *amount);
2635 GpStatus WINGDIPAPI
2636 GdipGetStringFormatLineSpacingMethod(GDIPCONST GpStringFormat *format, LineSpacing *method);
2637 #endif
2638 
2639 GpStatus WINGDIPAPI
2640 GdipSetStringFormatAlign(GpStringFormat *format, StringAlignment align);
2641 
2642 GpStatus WINGDIPAPI
2643 GdipGetStringFormatAlign(GDIPCONST GpStringFormat *format, StringAlignment *align);
2644 
2645 GpStatus WINGDIPAPI
2646 GdipSetStringFormatLineAlign(GpStringFormat *format,
2647                              StringAlignment align);
2648 
2649 GpStatus WINGDIPAPI
2650 GdipGetStringFormatLineAlign(GDIPCONST GpStringFormat *format,
2651                              StringAlignment *align);
2652 
2653 GpStatus WINGDIPAPI
2654 GdipSetStringFormatTrimming(
2655     GpStringFormat  *format,
2656     StringTrimming   trimming
2657 );
2658 
2659 GpStatus WINGDIPAPI
2660 GdipGetStringFormatTrimming(
2661     GDIPCONST GpStringFormat *format,
2662     StringTrimming       *trimming
2663 );
2664 
2665 GpStatus WINGDIPAPI
2666 GdipSetStringFormatHotkeyPrefix(GpStringFormat *format, INT hotkeyPrefix);
2667 
2668 GpStatus WINGDIPAPI
2669 GdipGetStringFormatHotkeyPrefix(GDIPCONST GpStringFormat *format, INT *hotkeyPrefix);
2670 
2671 GpStatus WINGDIPAPI
2672 GdipSetStringFormatTabStops(GpStringFormat *format, REAL firstTabOffset, INT count, GDIPCONST REAL *tabStops);
2673 
2674 GpStatus WINGDIPAPI
2675 GdipGetStringFormatTabStops(GDIPCONST GpStringFormat *format, INT count, REAL *firstTabOffset, REAL *tabStops);
2676 
2677 GpStatus WINGDIPAPI
2678 GdipGetStringFormatTabStopCount(GDIPCONST GpStringFormat *format, INT * count);
2679 
2680 #ifdef DCR_USE_NEW_146933
2681 GpStatus WINGDIPAPI
2682 GdipSetStringFormatDigitSubstitution(GpStringFormat *format, LANGID language,
2683                                      StringDigitSubstitute substitute);
2684 
2685 GpStatus WINGDIPAPI
2686 GdipGetStringFormatDigitSubstitution(GDIPCONST GpStringFormat *format, LANGID *language,
2687                                      StringDigitSubstitute *substitute);
2688 #endif // DCR_USE_NEW_146933
2689 
2690 #ifdef DCR_USE_NEW_174340
2691 GpStatus WINGDIPAPI
2692 GdipGetStringFormatMeasurableCharacterRangeCount(
2693     GDIPCONST GpStringFormat    *format,
2694     INT                         *count
2695 );
2696 
2697 GpStatus WINGDIPAPI
2698 GdipSetStringFormatMeasurableCharacterRanges(
2699     GpStringFormat              *format,
2700     INT                         rangeCount,
2701     GDIPCONST CharacterRange    *ranges
2702 );
2703 #endif
2704 
2705 //----------------------------------------------------------------------------
2706 // Cached Bitmap APIs
2707 //----------------------------------------------------------------------------
2708 
2709 GpStatus WINGDIPAPI
2710 GdipCreateCachedBitmap(
2711     GpBitmap *bitmap,
2712     GpGraphics *graphics,
2713     GpCachedBitmap **cachedBitmap
2714 );
2715 
2716 GpStatus WINGDIPAPI
2717 GdipDeleteCachedBitmap(GpCachedBitmap *cachedBitmap);
2718 
2719 GpStatus WINGDIPAPI
2720 GdipDrawCachedBitmap(
2721     GpGraphics *graphics,
2722     GpCachedBitmap *cachedBitmap,
2723     INT x,
2724     INT y
2725 );
2726 
2727 UINT WINGDIPAPI
2728 GdipEmfToWmfBits(
2729     HENHMETAFILE hemf,
2730     UINT         cbData16,
2731     LPBYTE       pData16,
2732     INT          iMapMode,
2733     INT          eFlags
2734 );
2735 
2736 #ifdef __cplusplus
2737 }
2738 #endif
2739 
2740 #endif // !_FLATAPI_H
2741