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