Add a .gitattributes with "* text=auto" so that new lines are
[pdfium.git] / core / src / fxge / Microsoft SDK / include / GdiPlusFlat.h
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