2004-07-24 Casper S. Hornstrup <chorns@users.sourceforge.net>
authorCasper Hornstrup <chorns@users.sourceforge.net>
Fri, 23 Jul 2004 21:54:55 +0000 (21:54 +0000)
committerCasper Hornstrup <chorns@users.sourceforge.net>
Fri, 23 Jul 2004 21:54:55 +0000 (21:54 +0000)
* Makefile (DLLS): Add gdiplus.
* apistatus.lst: Add gdiplus.dll.
* baseaddress.cfg (TARGET_BASE_LIB_GDIPLUS): Declare.
* bootdata/packages/reactos.dff: Add gdiplus.dll.
* include/ntos/rtl.h (InsertTailList): Remove dependency on RtlAssert.
* lib/gdiplus/(gdiplus, include, tests, tests/tests): New directories.
* lib/gdiplus/(.cvsignore, gdiplus.def, gdiplus.edf, gdiplus.rc,
makefile): New files.
* lib/gdiplus/gdiplus/(.cvsignore, *.c): Ditto.
* lib/gdiplus/include/(debug.h, GdiPlusPrivate.h): Ditto.
* lib/gdiplus/tests/(.cvsignore, Makefile, passthrough.c): Ditto.
* lib/gdiplus/tests/tests/(.cvsignore, test-1.c): Ditto.

svn path=/trunk/; revision=10265

46 files changed:
reactos/ChangeLog
reactos/Makefile
reactos/apistatus.lst
reactos/baseaddress.cfg
reactos/bootdata/packages/reactos.dff
reactos/include/ntos/rtl.h
reactos/lib/gdiplus/.cvsignore [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus.def [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus.edf [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus.rc [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/.cvsignore [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/arrow.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/bitmap.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/brush.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/clip.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/codec.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/container.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/dllmain.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/draw.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/effect.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/fill.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/font.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/graphics.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/image.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/linecap.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/linegradient.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/matrix.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/memory.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/metafile.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/palette.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/path.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/pathgradient.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/pathiterator.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/pen.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/region.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/string.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/texture.c [new file with mode: 0644]
reactos/lib/gdiplus/gdiplus/transform.c [new file with mode: 0644]
reactos/lib/gdiplus/include/GdiPlusPrivate.h [new file with mode: 0644]
reactos/lib/gdiplus/include/debug.h [new file with mode: 0644]
reactos/lib/gdiplus/makefile [new file with mode: 0644]
reactos/lib/gdiplus/tests/.cvsignore [new file with mode: 0644]
reactos/lib/gdiplus/tests/Makefile [new file with mode: 0644]
reactos/lib/gdiplus/tests/passthrough.c [new file with mode: 0644]
reactos/lib/gdiplus/tests/tests/.cvsignore [new file with mode: 0644]
reactos/lib/gdiplus/tests/tests/test-1.c [new file with mode: 0644]

index c581f2e..e21b8ac 100644 (file)
@@ -1,3 +1,18 @@
+2004-07-24  Casper S. Hornstrup  <chorns@users.sourceforge.net>
+
+       * Makefile (DLLS): Add gdiplus.
+       * apistatus.lst: Add gdiplus.dll.
+       * baseaddress.cfg (TARGET_BASE_LIB_GDIPLUS): Declare.
+       * bootdata/packages/reactos.dff: Add gdiplus.dll.
+       * include/ntos/rtl.h (InsertTailList): Remove dependency on RtlAssert.
+       * lib/gdiplus/(gdiplus, include, tests, tests/tests): New directories.
+       * lib/gdiplus/(.cvsignore, gdiplus.def, gdiplus.edf, gdiplus.rc,
+       makefile): New files.
+       * lib/gdiplus/gdiplus/(.cvsignore, *.c): Ditto.
+       * lib/gdiplus/include/(debug.h, GdiPlusPrivate.h): Ditto.
+       * lib/gdiplus/tests/(.cvsignore, Makefile, passthrough.c): Ditto.
+       * lib/gdiplus/tests/tests/(.cvsignore, test-1.c): Ditto.
+
 2004-07-23  Casper S. Hornstrup  <chorns@users.sourceforge.net>
 
        * Makefile, drivers/video/makefile, lib/cpl/Makefile, ntoskrnl/Makefile,
index 52ba3c6..714b11e 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.238 2004/07/23 20:03:24 chorns Exp $
+# $Id: Makefile,v 1.239 2004/07/23 21:54:53 chorns Exp $
 #
 # Global makefile
 #
@@ -43,7 +43,7 @@ DLLS_CPL = cpl
 # User mode libraries
 # libpcap packet epsapi
 DLLS = acledit advapi32 cabinet cards comctl32 crtdll comdlg32 d3d8thk expat fmifs freetype \
-       gdi32 imagehlp imm32 iphlpapi kernel32 lzexpand mpr msacm msafd msgina msimg32 msvcrt \
+       gdi32 gdiplus imagehlp imm32 iphlpapi kernel32 lzexpand mpr msacm msafd msgina msimg32 msvcrt \
        msvcrt20 msvideo mswsock netapi32 ntdll ole32 oleaut32 oledlg packet psapi richedit \
        rpcrt4 samlib secur32 setupapi shell32 shlwapi snmpapi syssetup twain unicode user32 \
        userenv version wininet winmm winspool ws2help ws2_32 wsock32 wshirda \
index 0a75519..b165081 100755 (executable)
@@ -6,6 +6,7 @@
 advapi32.dll reactos/lib/advapi32
 crtdll.dll reactos/lib/crtdll
 gdi32.dll reactos/lib/gdi32
+gdiplus.dll reactos/lib/gdiplus
 iphlpapi.dll reactos/lib/iphlpapi
 kernel32.dll reactos/lib/kernel32
 lz32.dll reactos/lib/lzexpand
index 293f7bd..78f39c0 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: baseaddress.cfg,v 1.17 2004/07/09 20:18:49 weiden Exp $
+# $Id: baseaddress.cfg,v 1.18 2004/07/23 21:54:53 chorns Exp $
 #
 # Please try to keep this up2date. Please clean up 
 # after yourself.
@@ -23,6 +23,7 @@ TARGET_BASE_LIB_DSOUND                        =0x50000000
 TARGET_BASE_LIB_EXPAT          =0x79000000
 TARGET_BASE_LIB_FMIFS          =0x76df0000
 TARGET_BASE_LIB_GDI32          =0x77ed0000
+TARGET_BASE_LIB_GDIPLUS =0x76a00000
 TARGET_BASE_LIB_GLU32                  =0x50000000
 TARGET_BASE_LIB_IMAGEHLP       =0x76c90000
 TARGET_BASE_LIB_IMM32          =0x75e60000
index 8ed34fa..fae2c0b 100755 (executable)
@@ -62,6 +62,7 @@ lib\expat\libexpat.dll                  1
 lib\fmifs\fmifs.dll                     1
 lib\freetype\freetype.dll               1
 lib\gdi32\gdi32.dll                     1
+lib\gdiplus\gdiplus.dll                 1
 lib\imm32\imm32.dll                     1
 lib\iphlpapi\iphlpapi.dll               1
 lib\kbddv\kbddv.dll                     1
index f2ef70d..47c49b3 100755 (executable)
@@ -1,4 +1,4 @@
-/* $Id: rtl.h,v 1.30 2004/06/20 23:37:52 gdalsnes Exp $
+/* $Id: rtl.h,v 1.31 2004/07/23 21:54:54 chorns Exp $
  * 
  */
 #ifndef __DDK_RTL_H
        (ListEntry)->Blink = OldBlink; \
        OldBlink->Flink = (ListEntry); \
        (ListHead)->Blink = (ListEntry); \
-       assert((ListEntry) != NULL); \
-       assert((ListEntry)->Blink != NULL); \
-       assert((ListEntry)->Blink->Flink == (ListEntry)); \
-       assert((ListEntry)->Flink != NULL); \
-       assert((ListEntry)->Flink->Blink == (ListEntry)); \
 }
 
 /*
diff --git a/reactos/lib/gdiplus/.cvsignore b/reactos/lib/gdiplus/.cvsignore
new file mode 100644 (file)
index 0000000..0a57412
--- /dev/null
@@ -0,0 +1,5 @@
+*.coff
+*.sym
+*.dll
+*.o
+*.map
diff --git a/reactos/lib/gdiplus/gdiplus.def b/reactos/lib/gdiplus/gdiplus.def
new file mode 100644 (file)
index 0000000..886c41a
--- /dev/null
@@ -0,0 +1,631 @@
+LIBRARY gdiplus.dll
+EXPORTS
+GdiplusStartup@12
+GdiplusShutdown@4
+GdipCreateAdjustableArrowCap@16
+GdipSetAdjustableArrowCapHeight@8
+GdipGetAdjustableArrowCapHeight@8
+GdipSetAdjustableArrowCapWidth@8
+GdipGetAdjustableArrowCapWidth@8
+GdipSetAdjustableArrowCapMiddleInset@8
+GdipGetAdjustableArrowCapMiddleInset@8
+GdipSetAdjustableArrowCapFillState@8
+GdipGetAdjustableArrowCapFillState@8
+GdipCreateBitmapFromStream@8
+GdipCreateBitmapFromFile@8
+GdipCreateBitmapFromStreamICM@8
+GdipCreateBitmapFromFileICM@8
+GdipCreateBitmapFromScan0@24
+GdipCreateBitmapFromGraphics@16
+GdipCreateBitmapFromDirectDrawSurface@8
+GdipCreateBitmapFromGdiDib@12
+GdipCreateBitmapFromHBITMAP@12
+GdipCreateHBITMAPFromBitmap@12
+GdipCreateBitmapFromHICON@8
+GdipCreateHICONFromBitmap@8
+GdipCreateBitmapFromResource@12
+GdipCloneBitmapArea@28
+GdipCloneBitmapAreaI@28
+GdipBitmapLockBits@20
+GdipBitmapUnlockBits@8
+GdipBitmapGetPixel@16
+GdipBitmapSetPixel@16
+GdipBitmapSetResolution@12
+GdipBitmapConvertFormat@24
+GdipInitializePalette@20
+GdipBitmapApplyEffect@24
+GdipBitmapCreateApplyEffect@36
+GdipBitmapGetHistogram@28
+GdipBitmapGetHistogramSize@8
+GdipCreateEffect@20
+GdipDeleteEffect@4
+GdipGetEffectParameterSize@8
+GdipSetEffectParameters@12
+GdipGetEffectParameters@12
+GdipTestControl@8
+GdipCloneBrush@8
+GdipDeleteBrush@4
+GdipGetBrushType@8
+GdipCreateCachedBitmap@12
+GdipDeleteCachedBitmap@4
+GdipDrawCachedBitmap@16
+GdipEmfToWmfBits@20
+GdipCreateCustomLineCap@20
+GdipDeleteCustomLineCap@4
+GdipCloneCustomLineCap@8
+GdipGetCustomLineCapType@8
+GdipSetCustomLineCapStrokeCaps@12
+GdipGetCustomLineCapStrokeCaps@12
+GdipSetCustomLineCapStrokeJoin@8
+GdipGetCustomLineCapStrokeJoin@8
+GdipSetCustomLineCapBaseCap@8
+GdipGetCustomLineCapBaseCap@8
+GdipSetCustomLineCapBaseInset@8
+GdipGetCustomLineCapBaseInset@8
+GdipSetCustomLineCapWidthScale@8
+GdipGetCustomLineCapWidthScale@8
+GdipCreateFontFromDC@8
+GdipCreateFontFromLogfontA@12
+GdipCreateFontFromLogfontW@12
+GdipCreateFont@20
+GdipCloneFont@8
+GdipDeleteFont@4
+GdipGetFamily@8
+GdipGetFontStyle@8
+GdipGetFontSize@8
+GdipGetFontUnit@8
+GdipGetFontHeight@12
+GdipGetFontHeightGivenDPI@12
+GdipGetLogFontA@12
+GdipGetLogFontW@12
+GdipNewInstalledFontCollection@4
+GdipNewPrivateFontCollection@4
+GdipDeletePrivateFontCollection@4
+GdipGetFontCollectionFamilyCount@8
+GdipGetFontCollectionFamilyList@16
+GdipPrivateAddFontFile@8
+GdipPrivateAddMemoryFont@12
+GdipCreateFontFamilyFromName@12
+GdipDeleteFontFamily@4
+GdipCloneFontFamily@8
+GdipGetGenericFontFamilySansSerif@4
+GdipGetGenericFontFamilySerif@4
+GdipGetGenericFontFamilyMonospace@4
+GdipGetFamilyName@12
+GdipIsStyleAvailable@12
+GdipFontCollectionEnumerable@12
+GdipFontCollectionEnumerate@20
+GdipGetEmHeight@12
+GdipGetCellAscent@12
+GdipGetCellDescent@12
+GdipGetLineSpacing@12
+GdipFlush@8
+GdipCreateFromHDC@8
+GdipCreateFromHDC2@12
+GdipCreateFromHWND@8
+GdipCreateFromHWNDICM@8
+GdipDeleteGraphics@4
+GdipGetDC@8
+GdipReleaseDC@8
+GdipSetCompositingMode@8
+GdipGetCompositingMode@8
+GdipSetRenderingOrigin@12
+GdipGetRenderingOrigin@12
+GdipSetCompositingQuality@8
+GdipGetCompositingQuality@8
+GdipSetSmoothingMode@8
+GdipGetSmoothingMode@8
+GdipSetPixelOffsetMode@8
+GdipGetPixelOffsetMode@8
+GdipSetTextRenderingHint@8
+GdipGetTextRenderingHint@8
+GdipSetTextContrast@8
+GdipGetTextContrast@8
+GdipSetInterpolationMode@8
+GdipGetInterpolationMode@8
+GdipSetWorldTransform@8
+GdipResetWorldTransform@4
+GdipMultiplyWorldTransform@12
+GdipTranslateWorldTransform@16
+GdipScaleWorldTransform@16
+GdipRotateWorldTransform@12
+GdipGetWorldTransform@8
+GdipResetPageTransform@4
+GdipGetPageUnit@8
+GdipGetPageScale@8
+GdipSetPageUnit@8
+GdipSetPageScale@8
+GdipGetDpiX@8
+GdipGetDpiY@8
+GdipTransformPoints@20
+GdipTransformPointsI@20
+GdipGetNearestColor@8
+GdipCreateHalftonePalette@0
+GdipDrawLine@24
+GdipDrawLineI@24
+GdipDrawLines@16
+GdipDrawLinesI@16
+GdipDrawArc@32
+GdipDrawArcI@32
+GdipDrawBezier@40
+GdipDrawBezierI@40
+GdipDrawBeziers@16
+GdipDrawBeziersI@16
+GdipDrawRectangle@24
+GdipDrawRectangleI@24
+GdipDrawRectangles@16
+GdipDrawRectanglesI@16
+GdipDrawEllipse@24
+GdipDrawEllipseI@24
+GdipDrawPie@32
+GdipDrawPieI@32
+GdipDrawPolygon@16
+GdipDrawPolygonI@16
+GdipDrawPath@12
+GdipDrawCurve@16
+GdipDrawCurveI@16
+GdipDrawCurve2@20
+GdipDrawCurve2I@20
+GdipDrawCurve3@28
+GdipDrawCurve3I@28
+GdipDrawClosedCurve@16
+GdipDrawClosedCurveI@16
+GdipDrawClosedCurve2@20
+GdipDrawClosedCurve2I@20
+GdipGraphicsClear@8
+GdipFillRectangle@24
+GdipFillRectangleI@24
+GdipFillRectangles@16
+GdipFillRectanglesI@16
+GdipFillPolygon@20
+GdipFillPolygonI@20
+GdipFillPolygon2@16
+GdipFillPolygon2I@16
+GdipFillEllipse@24
+GdipFillEllipseI@24
+GdipFillPie@32
+GdipFillPieI@32
+GdipFillPath@12
+GdipFillClosedCurve@16
+GdipFillClosedCurveI@16
+GdipFillClosedCurveI@16
+GdipFillClosedCurve2I@24
+GdipFillRegion@12
+GdipDrawImage@16
+GdipDrawImageI@16
+GdipDrawImageRect@24
+GdipDrawImageRectI@24
+GdipDrawImagePoints@16
+GdipDrawImagePointsI@16
+GdipDrawImagePointRect@36
+GdipDrawImagePointRectI@36
+GdipDrawImageRectRect@56
+GdipDrawImageRectRectI@56
+GdipDrawImagePointsRect@48
+GdipDrawImagePointsRectI@48
+GdipDrawImageFX@28
+GdipEnumerateMetafileDestPoint@24
+GdipEnumerateMetafileDestPointI@24
+GdipEnumerateMetafileDestRect@24
+GdipEnumerateMetafileDestRectI@24
+GdipEnumerateMetafileDestPoints@28
+GdipEnumerateMetafileDestPointsI@28
+GdipEnumerateMetafileSrcRectDestPoint@32
+GdipEnumerateMetafileSrcRectDestPointI@32
+GdipEnumerateMetafileSrcRectDestRect@32
+GdipEnumerateMetafileSrcRectDestRectI@32
+GdipEnumerateMetafileSrcRectDestPoints@36
+GdipEnumerateMetafileSrcRectDestPointsI@36
+GdipPlayMetafileRecord@20
+GdipSetClipGraphics@12
+GdipSetClipRect@24
+GdipSetClipRectI@24
+GdipSetClipPath@12
+GdipSetClipRegion@12
+GdipSetClipHrgn@12
+GdipResetClip@4
+GdipTranslateClip@12
+GdipTranslateClipI@12
+GdipGetClip@8
+GdipGetClipBounds@8
+GdipGetClipBoundsI@8
+GdipIsClipEmpty@8
+GdipGetVisibleClipBounds@8
+GdipGetVisibleClipBoundsI@8
+GdipIsVisibleClipEmpty@8
+GdipIsVisiblePoint@16
+GdipIsVisiblePointI@16
+GdipIsVisibleRect@24
+GdipIsVisibleRectI@24
+GdipSaveGraphics@8
+GdipRestoreGraphics@8
+GdipBeginContainer@20
+GdipBeginContainerI@20
+GdipBeginContainer2@8
+GdipEndContainer@8
+GdipGetMetafileHeaderFromEmf@8
+GdipGetMetafileHeaderFromFile@8
+GdipGetMetafileHeaderFromStream@8
+GdipGetMetafileHeaderFromMetafile@8
+GdipGetHemfFromMetafile@8
+GdipCreateStreamOnFile@12
+GdipCreateMetafileFromWmf@16
+GdipCreateMetafileFromEmf@12
+GdipCreateMetafileFromFile@8
+GdipCreateMetafileFromWmfFile@12
+GdipCreateMetafileFromStream@8
+GdipRecordMetafile@24
+GdipRecordMetafileI@24
+GdipRecordMetafileFileName@28
+GdipRecordMetafileFileNameI@28
+GdipRecordMetafileStream@28
+GdipRecordMetafileStreamI@28
+GdipSetMetafileDownLevelRasterizationLimit@8
+GdipGetMetafileDownLevelRasterizationLimit@8
+GdipGetImageDecodersSize@8
+GdipGetImageDecoders@12
+GdipGetImageEncodersSize@8
+GdipGetImageEncoders@12
+GdipComment@12
+GdipComment@12
+GdipCreatePath2@20
+GdipCreatePath2I@20
+GdipClonePath@8
+GdipDeletePath@4
+GdipResetPath@4
+GdipGetPointCount@8
+GdipGetPathTypes@12
+GdipGetPathPoints@12
+GdipGetPathPointsI@12
+GdipGetPathFillMode@8
+GdipSetPathFillMode@8
+GdipGetPathData@8
+GdipStartPathFigure@4
+GdipClosePathFigure@4
+GdipClosePathFigures@4
+GdipSetPathMarker@4
+GdipClearPathMarkers@4
+GdipReversePath@4
+GdipGetPathLastPoint@8
+GdipAddPathLine@20
+GdipAddPathLine2@12
+GdipAddPathArc@28
+GdipAddPathBezier@36
+GdipAddPathBeziers@12
+GdipAddPathCurve@12
+GdipAddPathCurve2@16
+GdipAddPathCurve3@24
+GdipAddPathClosedCurve@12
+GdipAddPathClosedCurve2@16
+GdipAddPathRectangle@20
+GdipAddPathRectangles@12
+GdipAddPathEllipse@20
+GdipAddPathPie@28
+GdipAddPathPolygon@12
+GdipAddPathPath@12
+GdipAddPathString@32
+GdipAddPathStringI@32
+GdipAddPathLineI@20
+GdipAddPathLine2I@12
+GdipAddPathArcI@28
+GdipAddPathBezierI@36
+GdipAddPathBeziersI@12
+GdipAddPathCurveI@12
+GdipAddPathCurve2I@16
+GdipAddPathCurve3I@24
+GdipAddPathClosedCurveI@12
+GdipAddPathClosedCurve2I@16
+GdipAddPathRectangleI@20
+GdipAddPathRectanglesI@12
+GdipAddPathEllipseI@20
+GdipAddPathPieI@28
+GdipAddPathPolygonI@12
+GdipFlattenPath@12
+GdipWindingModeOutline@12
+GdipWidenPath@16
+GdipWarpPath@40
+GdipTransformPath@8
+GdipGetPathWorldBounds@16
+GdipGetPathWorldBoundsI@16
+GdipIsVisiblePathPoint@20
+GdipIsVisiblePathPointI@20
+GdipIsOutlineVisiblePathPoint@24
+GdipIsOutlineVisiblePathPointI@24
+GdipCreateHatchBrush@16
+GdipGetHatchStyle@8
+GdipGetHatchForegroundColor@8
+GdipGetHatchBackgroundColor@8
+GdipLoadImageFromStream@8
+GdipLoadImageFromFile@8
+GdipLoadImageFromStreamICM@8
+GdipLoadImageFromFileICM@8
+GdipCloneImage@8
+GdipDisposeImage@4
+GdipSaveImageToFile@16
+GdipSaveImageToStream@16
+GdipSaveAdd@8
+GdipSaveAddImage@12
+GdipGetImageGraphicsContext@8
+GdipGetImageBounds@12
+GdipGetImageDimension@12
+GdipGetImageType@8
+GdipGetImageWidth@8
+GdipGetImageHeight@8
+GdipGetImageHorizontalResolution@8
+GdipGetImageVerticalResolution@8
+GdipGetImageFlags@8
+GdipGetImageRawFormat@8
+GdipGetImagePixelFormat@8
+GdipGetImageThumbnail@24
+GdipGetEncoderParameterListSize@12
+GdipGetEncoderParameterList@16
+GdipImageGetFrameDimensionsCount@8
+GdipImageGetFrameDimensionsList@12
+GdipImageGetFrameCount@12
+GdipImageSelectActiveFrame@12
+GdipImageRotateFlip@8
+GdipGetImagePalette@12
+GdipSetImagePalette@8
+GdipGetImagePaletteSize@8
+GdipGetPropertyCount@8
+GdipGetPropertyIdList@12
+GdipGetPropertyItemSize@12
+GdipGetPropertyItem@16
+GdipGetPropertySize@12
+GdipGetAllPropertyItems@16
+GdipRemovePropertyItem@8
+GdipSetPropertyItem@8
+GdipFindFirstImageItem@8
+GdipFindNextImageItem@8
+GdipGetImageItemData@8
+GdipConvertToEmfPlus@24
+GdipConvertToEmfPlusToFile@28
+GdipConvertToEmfPlusToStream@28
+GdipImageForceValidation@4
+GdipCreateImageAttributes@4
+GdipCloneImageAttributes@8
+GdipDisposeImageAttributes@4
+GdipSetImageAttributesToIdentity@8
+GdipResetImageAttributes@8
+GdipSetImageAttributesColorMatrix@24
+GdipSetImageAttributesThreshold@16
+GdipSetImageAttributesGamma@16
+GdipSetImageAttributesNoOp@12
+GdipSetImageAttributesColorKeys@20
+GdipSetImageAttributesOutputChannel@16
+GdipSetImageAttributesOutputChannelColorProfile@16
+GdipSetImageAttributesRemapTable@20
+GdipSetImageAttributesWrapMode@16
+GdipSetImageAttributesICMMode@8
+GdipGetImageAttributesAdjustedPalette@12
+GdipSetImageAttributesCachedBackground@8
+GdipCreateLineBrush@24
+GdipCreateLineBrushI@24
+GdipCreateLineBrushFromRect@24
+GdipCreateLineBrushFromRectI@24
+GdipCreateLineBrushFromRectWithAngle@28
+GdipCreateLineBrushFromRectWithAngleI@28
+GdipSetLineColors@12
+GdipGetLineColors@8
+GdipGetLineRect@8
+GdipGetLineRectI@8
+GdipSetLineGammaCorrection@8
+GdipGetLineGammaCorrection@8
+GdipGetLineBlendCount@8
+GdipGetLineBlend@16
+GdipSetLineBlend@16
+GdipGetLinePresetBlendCount@8
+GdipGetLinePresetBlend@16
+GdipSetLinePresetBlend@16
+GdipSetLineSigmaBlend@12
+GdipSetLineLinearBlend@12
+GdipSetLineWrapMode@8
+GdipGetLineWrapMode@8
+GdipGetLineTransform@8
+GdipSetLineTransform@8
+GdipResetLineTransform@4
+GdipMultiplyLineTransform@12
+GdipTranslateLineTransform@16
+GdipScaleLineTransform@16
+GdipRotateLineTransform@12
+GdipCreateMatrix@4
+GdipCreateMatrix2@28
+GdipCreateMatrix3@12
+GdipCreateMatrix3I@12
+GdipCloneMatrix@8
+GdipDeleteMatrix@4
+GdipSetMatrixElements@28
+GdipMultiplyMatrix@12
+GdipTranslateMatrix@16
+GdipScaleMatrix@16
+GdipRotateMatrix@12
+GdipShearMatrix@16
+GdipInvertMatrix@4
+GdipTransformMatrixPoints@12
+GdipTransformMatrixPointsI@12
+GdipVectorTransformMatrixPoints@12
+GdipVectorTransformMatrixPointsI@12
+GdipGetMatrixElements@8
+GdipIsMatrixInvertible@8
+GdipIsMatrixIdentity@8
+GdipIsMatrixEqual@12
+GdipAlloc@4
+GdipFree@4
+GdiplusNotificationHook@4
+GdiplusNotificationUnhook@4
+GdipCreatePathGradient@16
+GdipCreatePathGradientI@16
+GdipCreatePathGradientFromPath@8
+GdipGetPathGradientCenterColor@8
+GdipSetPathGradientCenterColor@8
+GdipGetPathGradientSurroundColorsWithCount@12
+GdipSetPathGradientSurroundColorsWithCount@12
+GdipGetPathGradientPath@8
+GdipSetPathGradientPath@8
+GdipGetPathGradientCenterPoint@8
+GdipGetPathGradientCenterPointI@8
+GdipSetPathGradientCenterPoint@8
+GdipSetPathGradientCenterPointI@8
+GdipGetPathGradientRect@8
+GdipGetPathGradientRectI@8
+GdipGetPathGradientPointCount@8
+GdipGetPathGradientSurroundColorCount@8
+GdipSetPathGradientGammaCorrection@8
+GdipGetPathGradientGammaCorrection@8
+GdipGetPathGradientBlendCount@8
+GdipGetPathGradientBlend@16
+GdipSetPathGradientBlend@16
+GdipGetPathGradientPresetBlendCount@8
+GdipGetPathGradientPresetBlend@16
+GdipSetPathGradientPresetBlend@16
+GdipSetPathGradientSigmaBlend@12
+GdipSetPathGradientSigmaBlend@12
+GdipGetPathGradientWrapMode@8
+GdipSetPathGradientWrapMode@8
+GdipGetPathGradientTransform@8
+GdipSetPathGradientTransform@8
+GdipResetPathGradientTransform@4
+GdipMultiplyPathGradientTransform@12
+GdipTranslatePathGradientTransform@16
+GdipScalePathGradientTransform@16
+GdipRotatePathGradientTransform@12
+GdipGetPathGradientFocusScales@12
+GdipSetPathGradientFocusScales@12
+GdipCreatePathIter@8
+GdipDeletePathIter@4
+GdipPathIterNextSubpath@20
+GdipPathIterNextSubpathPath@16
+GdipPathIterNextPathType@20
+GdipPathIterNextMarker@16
+GdipPathIterNextMarkerPath@12
+GdipPathIterGetCount@8
+GdipPathIterGetSubpathCount@8
+GdipPathIterIsValid@8
+GdipPathIterHasCurve@8
+GdipPathIterRewind@4
+GdipPathIterEnumerate@20
+GdipPathIterCopyData@24
+GdipCreatePen1@16
+GdipCreatePen2@16
+GdipClonePen@8
+GdipDeletePen@4
+GdipSetPenWidth@8
+GdipGetPenWidth@8
+GdipSetPenUnit@8
+GdipGetPenUnit@8
+GdipSetPenLineCap197819@16
+GdipSetPenStartCap@8
+GdipSetPenEndCap@8
+GdipSetPenDashCap197819@8
+GdipGetPenStartCap@8
+GdipGetPenEndCap@8
+GdipGetPenDashCap197819@8
+GdipSetPenLineJoin@8
+GdipGetPenLineJoin@8
+GdipSetPenCustomStartCap@8
+GdipGetPenCustomStartCap@8
+GdipSetPenCustomEndCap@8
+GdipGetPenCustomEndCap@8
+GdipSetPenMiterLimit@8
+GdipGetPenMiterLimit@8
+GdipSetPenMode@8
+GdipGetPenMode@8
+GdipSetPenTransform@8
+GdipGetPenTransform@8
+GdipResetPenTransform@4
+GdipMultiplyPenTransform@12
+GdipTranslatePenTransform@16
+GdipScalePenTransform@16
+GdipRotatePenTransform@12
+GdipSetPenColor@8
+GdipGetPenColor@8
+GdipSetPenBrushFill@8
+GdipGetPenBrushFill@8
+GdipGetPenFillType@8
+GdipGetPenDashStyle@8
+GdipSetPenDashStyle@8
+GdipGetPenDashOffset@8
+GdipSetPenDashOffset@8
+GdipGetPenDashCount@8
+GdipSetPenDashArray@12
+GdipGetPenDashArray@12
+GdipGetPenCompoundCount@8
+GdipSetPenCompoundArray@12
+GdipGetPenCompoundArray@12
+GdipCreateRegion@4
+GdipCreateRegionRect@8
+GdipCreateRegionRectI@8
+GdipCreateRegionPath@8
+GdipCreateRegionRgnData@12
+GdipCreateRegionHrgn@8
+GdipCloneRegion@8
+GdipDeleteRegion@4
+GdipSetInfinite@4
+GdipSetEmpty@4
+GdipCombineRegionRect@12
+GdipCombineRegionRectI@12
+GdipCombineRegionPath@12
+GdipCombineRegionRegion@12
+GdipTranslateRegion@12
+GdipTranslateRegionI@12
+GdipTransformRegion@8
+GdipGetRegionBounds@12
+GdipGetRegionBoundsI@12
+GdipGetRegionHRgn@12
+GdipIsEmptyRegion@12
+GdipIsInfiniteRegion@12
+GdipIsEqualRegion@16
+GdipGetRegionDataSize@8
+GdipGetRegionData@16
+GdipIsVisibleRegionPoint@20
+GdipIsVisibleRegionPointI@20
+GdipIsVisibleRegionRect@28
+GdipIsVisibleRegionRectI@28
+GdipGetRegionScansCount@12
+GdipGetRegionScans@16
+GdipGetRegionScansI@16
+GdipCreateSolidFill@8
+GdipSetSolidFillColor@8
+GdipGetSolidFillColor@8
+GdipCreateStringFormat@12
+GdipStringFormatGetGenericDefault@4
+GdipStringFormatGetGenericTypographic@4
+GdipDeleteStringFormat@4
+GdipCloneStringFormat@8
+GdipSetStringFormatFlags@8
+GdipGetStringFormatFlags@8
+GdipSetStringFormatAlign@8
+GdipGetStringFormatAlign@8
+GdipSetStringFormatLineAlign@8
+GdipGetStringFormatLineAlign@8
+GdipSetStringFormatTrimming@8
+GdipGetStringFormatTrimming@8
+GdipSetStringFormatHotkeyPrefix@8
+GdipGetStringFormatHotkeyPrefix@8
+GdipSetStringFormatTabStops@16
+GdipGetStringFormatTabStops@16
+GdipGetStringFormatTabStopCount@8
+GdipSetStringFormatDigitSubstitution@12
+GdipGetStringFormatDigitSubstitution@12
+GdipGetStringFormatMeasurableCharacterRangeCount@8
+GdipSetStringFormatMeasurableCharacterRanges@12
+GdipDrawString@28
+GdipMeasureString@36
+GdipMeasureCharacterRanges@32
+GdipDrawDriverString@32
+GdipMeasureDriverString@32
+GdipCreateTexture@12
+GdipCreateTexture2@28
+GdipCreateTextureIA@28
+GdipCreateTexture2I@28
+GdipCreateTextureIAI@28
+GdipGetTextureTransform@8
+GdipSetTextureTransform@8
+GdipResetTextureTransform@4
+GdipMultiplyTextureTransform@12
+GdipTranslateTextureTransform@16
+GdipScaleTextureTransform@16
+GdipRotateTextureTransform@12
+GdipSetTextureWrapMode@8
+GdipGetTextureWrapMode@8
+GdipGetTextureImage@8
\ No newline at end of file
diff --git a/reactos/lib/gdiplus/gdiplus.edf b/reactos/lib/gdiplus/gdiplus.edf
new file mode 100644 (file)
index 0000000..3a1f0e2
--- /dev/null
@@ -0,0 +1,631 @@
+LIBRARY gdiplus.dll
+EXPORTS
+GdiplusStartup=GdiplusStartup@12
+GdiplusShutdown=GdiplusShutdown@4
+GdipCreateAdjustableArrowCap=GdipCreateAdjustableArrowCap@16
+GdipSetAdjustableArrowCapHeight=GdipSetAdjustableArrowCapHeight@8
+GdipGetAdjustableArrowCapHeight=GdipGetAdjustableArrowCapHeight@8
+GdipSetAdjustableArrowCapWidth=GdipSetAdjustableArrowCapWidth@8
+GdipGetAdjustableArrowCapWidth=GdipGetAdjustableArrowCapWidth@8
+GdipSetAdjustableArrowCapMiddleInset=GdipSetAdjustableArrowCapMiddleInset@8
+GdipGetAdjustableArrowCapMiddleInset=GdipGetAdjustableArrowCapMiddleInset@8
+GdipSetAdjustableArrowCapFillState=GdipSetAdjustableArrowCapFillState@8
+GdipGetAdjustableArrowCapFillState=GdipGetAdjustableArrowCapFillState@8
+GdipCreateBitmapFromStream=GdipCreateBitmapFromStream@8
+GdipCreateBitmapFromFile=GdipCreateBitmapFromFile@8
+GdipCreateBitmapFromStreamICM=GdipCreateBitmapFromStreamICM@8
+GdipCreateBitmapFromFileICM=GdipCreateBitmapFromFileICM@8
+GdipCreateBitmapFromScan0=GdipCreateBitmapFromScan0@24
+GdipCreateBitmapFromGraphics=GdipCreateBitmapFromGraphics@16
+GdipCreateBitmapFromDirectDrawSurface=GdipCreateBitmapFromDirectDrawSurface@8
+GdipCreateBitmapFromGdiDib=GdipCreateBitmapFromGdiDib@12
+GdipCreateBitmapFromHBITMAP=GdipCreateBitmapFromHBITMAP@12
+GdipCreateHBITMAPFromBitmap=GdipCreateHBITMAPFromBitmap@12
+GdipCreateBitmapFromHICON=GdipCreateBitmapFromHICON@8
+GdipCreateHICONFromBitmap=GdipCreateHICONFromBitmap@8
+GdipCreateBitmapFromResource=GdipCreateBitmapFromResource@12
+GdipCloneBitmapArea=GdipCloneBitmapArea@28
+GdipCloneBitmapAreaI=GdipCloneBitmapAreaI@28
+GdipBitmapLockBits=GdipBitmapLockBits@20
+GdipBitmapUnlockBits=GdipBitmapUnlockBits@8
+GdipBitmapGetPixel=GdipBitmapGetPixel@16
+GdipBitmapSetPixel=GdipBitmapSetPixel@16
+GdipBitmapSetResolution=GdipBitmapSetResolution@12
+GdipBitmapConvertFormat=GdipBitmapConvertFormat@24
+GdipInitializePalette=GdipInitializePalette@20
+GdipBitmapApplyEffect=GdipBitmapApplyEffect@24
+GdipBitmapCreateApplyEffect=GdipBitmapCreateApplyEffect@36
+GdipBitmapGetHistogram=GdipBitmapGetHistogram@28
+GdipBitmapGetHistogramSize=GdipBitmapGetHistogramSize@8
+GdipCreateEffect=GdipCreateEffect@20
+GdipDeleteEffect=GdipDeleteEffect@4
+GdipGetEffectParameterSize=GdipGetEffectParameterSize@8
+GdipSetEffectParameters=GdipSetEffectParameters@12
+GdipGetEffectParameters=GdipGetEffectParameters@12
+GdipTestControl=GdipTestControl@8
+GdipCloneBrush=GdipCloneBrush@8
+GdipDeleteBrush=GdipDeleteBrush@4
+GdipGetBrushType=GdipGetBrushType@8
+GdipCreateCachedBitmap=GdipCreateCachedBitmap@12
+GdipDeleteCachedBitmap=GdipDeleteCachedBitmap@4
+GdipDrawCachedBitmap=GdipDrawCachedBitmap@16
+GdipEmfToWmfBits=GdipEmfToWmfBits@20
+GdipCreateCustomLineCap=GdipCreateCustomLineCap@20
+GdipDeleteCustomLineCap=GdipDeleteCustomLineCap@4
+GdipCloneCustomLineCap=GdipCloneCustomLineCap@8
+GdipGetCustomLineCapType=GdipGetCustomLineCapType@8
+GdipSetCustomLineCapStrokeCaps=GdipSetCustomLineCapStrokeCaps@12
+GdipGetCustomLineCapStrokeCaps=GdipGetCustomLineCapStrokeCaps@12
+GdipSetCustomLineCapStrokeJoin=GdipSetCustomLineCapStrokeJoin@8
+GdipGetCustomLineCapStrokeJoin=GdipGetCustomLineCapStrokeJoin@8
+GdipSetCustomLineCapBaseCap=GdipSetCustomLineCapBaseCap@8
+GdipGetCustomLineCapBaseCap=GdipGetCustomLineCapBaseCap@8
+GdipSetCustomLineCapBaseInset=GdipSetCustomLineCapBaseInset@8
+GdipGetCustomLineCapBaseInset=GdipGetCustomLineCapBaseInset@8
+GdipSetCustomLineCapWidthScale=GdipSetCustomLineCapWidthScale@8
+GdipGetCustomLineCapWidthScale=GdipGetCustomLineCapWidthScale@8
+GdipCreateFontFromDC=GdipCreateFontFromDC@8
+GdipCreateFontFromLogfontA=GdipCreateFontFromLogfontA@12
+GdipCreateFontFromLogfontW=GdipCreateFontFromLogfontW@12
+GdipCreateFont=GdipCreateFont@20
+GdipCloneFont=GdipCloneFont@8
+GdipDeleteFont=GdipDeleteFont@4
+GdipGetFamily=GdipGetFamily@8
+GdipGetFontStyle=GdipGetFontStyle@8
+GdipGetFontSize=GdipGetFontSize@8
+GdipGetFontUnit=GdipGetFontUnit@8
+GdipGetFontHeight=GdipGetFontHeight@12
+GdipGetFontHeightGivenDPI=GdipGetFontHeightGivenDPI@12
+GdipGetLogFontA=GdipGetLogFontA@12
+GdipGetLogFontW=GdipGetLogFontW@12
+GdipNewInstalledFontCollection=GdipNewInstalledFontCollection@4
+GdipNewPrivateFontCollection=GdipNewPrivateFontCollection@4
+GdipDeletePrivateFontCollection=GdipDeletePrivateFontCollection@4
+GdipGetFontCollectionFamilyCount=GdipGetFontCollectionFamilyCount@8
+GdipGetFontCollectionFamilyList=GdipGetFontCollectionFamilyList@16
+GdipPrivateAddFontFile=GdipPrivateAddFontFile@8
+GdipPrivateAddMemoryFont=GdipPrivateAddMemoryFont@12
+GdipCreateFontFamilyFromName=GdipCreateFontFamilyFromName@12
+GdipDeleteFontFamily=GdipDeleteFontFamily@4
+GdipCloneFontFamily=GdipCloneFontFamily@8
+GdipGetGenericFontFamilySansSerif=GdipGetGenericFontFamilySansSerif@4
+GdipGetGenericFontFamilySerif=GdipGetGenericFontFamilySerif@4
+GdipGetGenericFontFamilyMonospace=GdipGetGenericFontFamilyMonospace@4
+GdipGetFamilyName=GdipGetFamilyName@12
+GdipIsStyleAvailable=GdipIsStyleAvailable@12
+GdipFontCollectionEnumerable=GdipFontCollectionEnumerable@12
+GdipFontCollectionEnumerate=GdipFontCollectionEnumerate@20
+GdipGetEmHeight=GdipGetEmHeight@12
+GdipGetCellAscent=GdipGetCellAscent@12
+GdipGetCellDescent=GdipGetCellDescent@12
+GdipGetLineSpacing=GdipGetLineSpacing@12
+GdipFlush=GdipFlush@8
+GdipCreateFromHDC=GdipCreateFromHDC@8
+GdipCreateFromHDC2=GdipCreateFromHDC2@12
+GdipCreateFromHWND=GdipCreateFromHWND@8
+GdipCreateFromHWNDICM=GdipCreateFromHWNDICM@8
+GdipDeleteGraphics=GdipDeleteGraphics@4
+GdipGetDC=GdipGetDC@8
+GdipReleaseDC=GdipReleaseDC@8
+GdipSetCompositingMode=GdipSetCompositingMode@8
+GdipGetCompositingMode=GdipGetCompositingMode@8
+GdipSetRenderingOrigin=GdipSetRenderingOrigin@12
+GdipGetRenderingOrigin=GdipGetRenderingOrigin@12
+GdipSetCompositingQuality=GdipSetCompositingQuality@8
+GdipGetCompositingQuality=GdipGetCompositingQuality@8
+GdipSetSmoothingMode=GdipSetSmoothingMode@8
+GdipGetSmoothingMode=GdipGetSmoothingMode@8
+GdipSetPixelOffsetMode=GdipSetPixelOffsetMode@8
+GdipGetPixelOffsetMode=GdipGetPixelOffsetMode@8
+GdipSetTextRenderingHint=GdipSetTextRenderingHint@8
+GdipGetTextRenderingHint=GdipGetTextRenderingHint@8
+GdipSetTextContrast=GdipSetTextContrast@8
+GdipGetTextContrast=GdipGetTextContrast@8
+GdipSetInterpolationMode=GdipSetInterpolationMode@8
+GdipGetInterpolationMode=GdipGetInterpolationMode@8
+GdipSetWorldTransform=GdipSetWorldTransform@8
+GdipResetWorldTransform=GdipResetWorldTransform@4
+GdipMultiplyWorldTransform=GdipMultiplyWorldTransform@12
+GdipTranslateWorldTransform=GdipTranslateWorldTransform@16
+GdipScaleWorldTransform=GdipScaleWorldTransform@16
+GdipRotateWorldTransform=GdipRotateWorldTransform@12
+GdipGetWorldTransform=GdipGetWorldTransform@8
+GdipResetPageTransform=GdipResetPageTransform@4
+GdipGetPageUnit=GdipGetPageUnit@8
+GdipGetPageScale=GdipGetPageScale@8
+GdipSetPageUnit=GdipSetPageUnit@8
+GdipSetPageScale=GdipSetPageScale@8
+GdipGetDpiX=GdipGetDpiX@8
+GdipGetDpiY=GdipGetDpiY@8
+GdipTransformPoints=GdipTransformPoints@20
+GdipTransformPointsI=GdipTransformPointsI@20
+GdipGetNearestColor=GdipGetNearestColor@8
+GdipCreateHalftonePalette=GdipCreateHalftonePalette@0
+GdipDrawLine=GdipDrawLine@24
+GdipDrawLineI=GdipDrawLineI@24
+GdipDrawLines=GdipDrawLines@16
+GdipDrawLinesI=GdipDrawLinesI@16
+GdipDrawArc=GdipDrawArc@32
+GdipDrawArcI=GdipDrawArcI@32
+GdipDrawBezier=GdipDrawBezier@40
+GdipDrawBezierI=GdipDrawBezierI@40
+GdipDrawBeziers=GdipDrawBeziers@16
+GdipDrawBeziersI=GdipDrawBeziersI@16
+GdipDrawRectangle=GdipDrawRectangle@24
+GdipDrawRectangleI=GdipDrawRectangleI@24
+GdipDrawRectangles=GdipDrawRectangles@16
+GdipDrawRectanglesI=GdipDrawRectanglesI@16
+GdipDrawEllipse=GdipDrawEllipse@24
+GdipDrawEllipseI=GdipDrawEllipseI@24
+GdipDrawPie=GdipDrawPie@32
+GdipDrawPieI=GdipDrawPieI@32
+GdipDrawPolygon=GdipDrawPolygon@16
+GdipDrawPolygonI=GdipDrawPolygonI@16
+GdipDrawPath=GdipDrawPath@12
+GdipDrawCurve=GdipDrawCurve@16
+GdipDrawCurveI=GdipDrawCurveI@16
+GdipDrawCurve2=GdipDrawCurve2@20
+GdipDrawCurve2I=GdipDrawCurve2I@20
+GdipDrawCurve3=GdipDrawCurve3@28
+GdipDrawCurve3I=GdipDrawCurve3I@28
+GdipDrawClosedCurve=GdipDrawClosedCurve@16
+GdipDrawClosedCurveI=GdipDrawClosedCurveI@16
+GdipDrawClosedCurve2=GdipDrawClosedCurve2@20
+GdipDrawClosedCurve2I=GdipDrawClosedCurve2I@20
+GdipGraphicsClear=GdipGraphicsClear@8
+GdipFillRectangle=GdipFillRectangle@24
+GdipFillRectangleI=GdipFillRectangleI@24
+GdipFillRectangles=GdipFillRectangles@16
+GdipFillRectanglesI=GdipFillRectanglesI@16
+GdipFillPolygon=GdipFillPolygon@20
+GdipFillPolygonI=GdipFillPolygonI@20
+GdipFillPolygon2=GdipFillPolygon2@16
+GdipFillPolygon2I=GdipFillPolygon2I@16
+GdipFillEllipse=GdipFillEllipse@24
+GdipFillEllipseI=GdipFillEllipseI@24
+GdipFillPie=GdipFillPie@32
+GdipFillPieI=GdipFillPieI@32
+GdipFillPath=GdipFillPath@12
+GdipFillClosedCurve=GdipFillClosedCurve@16
+GdipFillClosedCurveI=GdipFillClosedCurveI@16
+GdipFillClosedCurveI=GdipFillClosedCurveI@16
+GdipFillClosedCurve2I=GdipFillClosedCurve2I@24
+GdipFillRegion=GdipFillRegion@12
+GdipDrawImage=GdipDrawImage@16
+GdipDrawImageI=GdipDrawImageI@16
+GdipDrawImageRect=GdipDrawImageRect@24
+GdipDrawImageRectI=GdipDrawImageRectI@24
+GdipDrawImagePoints=GdipDrawImagePoints@16
+GdipDrawImagePointsI=GdipDrawImagePointsI@16
+GdipDrawImagePointRect=GdipDrawImagePointRect@36
+GdipDrawImagePointRectI=GdipDrawImagePointRectI@36
+GdipDrawImageRectRect=GdipDrawImageRectRect@56
+GdipDrawImageRectRectI=GdipDrawImageRectRectI@56
+GdipDrawImagePointsRect=GdipDrawImagePointsRect@48
+GdipDrawImagePointsRectI=GdipDrawImagePointsRectI@48
+GdipDrawImageFX=GdipDrawImageFX@28
+GdipEnumerateMetafileDestPoint=GdipEnumerateMetafileDestPoint@24
+GdipEnumerateMetafileDestPointI=GdipEnumerateMetafileDestPointI@24
+GdipEnumerateMetafileDestRect=GdipEnumerateMetafileDestRect@24
+GdipEnumerateMetafileDestRectI=GdipEnumerateMetafileDestRectI@24
+GdipEnumerateMetafileDestPoints=GdipEnumerateMetafileDestPoints@28
+GdipEnumerateMetafileDestPointsI=GdipEnumerateMetafileDestPointsI@28
+GdipEnumerateMetafileSrcRectDestPoint=GdipEnumerateMetafileSrcRectDestPoint@32
+GdipEnumerateMetafileSrcRectDestPointI=GdipEnumerateMetafileSrcRectDestPointI@32
+GdipEnumerateMetafileSrcRectDestRect=GdipEnumerateMetafileSrcRectDestRect@32
+GdipEnumerateMetafileSrcRectDestRectI=GdipEnumerateMetafileSrcRectDestRectI@32
+GdipEnumerateMetafileSrcRectDestPoints=GdipEnumerateMetafileSrcRectDestPoints@36
+GdipEnumerateMetafileSrcRectDestPointsI=GdipEnumerateMetafileSrcRectDestPointsI@36
+GdipPlayMetafileRecord=GdipPlayMetafileRecord@20
+GdipSetClipGraphics=GdipSetClipGraphics@12
+GdipSetClipRect=GdipSetClipRect@24
+GdipSetClipRectI=GdipSetClipRectI@24
+GdipSetClipPath=GdipSetClipPath@12
+GdipSetClipRegion=GdipSetClipRegion@12
+GdipSetClipHrgn=GdipSetClipHrgn@12
+GdipResetClip=GdipResetClip@4
+GdipTranslateClip=GdipTranslateClip@12
+GdipTranslateClipI=GdipTranslateClipI@12
+GdipGetClip=GdipGetClip@8
+GdipGetClipBounds=GdipGetClipBounds@8
+GdipGetClipBoundsI=GdipGetClipBoundsI@8
+GdipIsClipEmpty=GdipIsClipEmpty@8
+GdipGetVisibleClipBounds=GdipGetVisibleClipBounds@8
+GdipGetVisibleClipBoundsI=GdipGetVisibleClipBoundsI@8
+GdipIsVisibleClipEmpty=GdipIsVisibleClipEmpty@8
+GdipIsVisiblePoint=GdipIsVisiblePoint@16
+GdipIsVisiblePointI=GdipIsVisiblePointI@16
+GdipIsVisibleRect=GdipIsVisibleRect@24
+GdipIsVisibleRectI=GdipIsVisibleRectI@24
+GdipSaveGraphics=GdipSaveGraphics@8
+GdipRestoreGraphics=GdipRestoreGraphics@8
+GdipBeginContainer=GdipBeginContainer@20
+GdipBeginContainerI=GdipBeginContainerI@20
+GdipBeginContainer2=GdipBeginContainer2@8
+GdipEndContainer=GdipEndContainer@8
+GdipGetMetafileHeaderFromEmf=GdipGetMetafileHeaderFromEmf@8
+GdipGetMetafileHeaderFromFile=GdipGetMetafileHeaderFromFile@8
+GdipGetMetafileHeaderFromStream=GdipGetMetafileHeaderFromStream@8
+GdipGetMetafileHeaderFromMetafile=GdipGetMetafileHeaderFromMetafile@8
+GdipGetHemfFromMetafile=GdipGetHemfFromMetafile@8
+GdipCreateStreamOnFile=GdipCreateStreamOnFile@12
+GdipCreateMetafileFromWmf=GdipCreateMetafileFromWmf@16
+GdipCreateMetafileFromEmf=GdipCreateMetafileFromEmf@12
+GdipCreateMetafileFromFile=GdipCreateMetafileFromFile@8
+GdipCreateMetafileFromWmfFile=GdipCreateMetafileFromWmfFile@12
+GdipCreateMetafileFromStream=GdipCreateMetafileFromStream@8
+GdipRecordMetafile=GdipRecordMetafile@24
+GdipRecordMetafileI=GdipRecordMetafileI@24
+GdipRecordMetafileFileName=GdipRecordMetafileFileName@28
+GdipRecordMetafileFileNameI=GdipRecordMetafileFileNameI@28
+GdipRecordMetafileStream=GdipRecordMetafileStream@28
+GdipRecordMetafileStreamI=GdipRecordMetafileStreamI@28
+GdipSetMetafileDownLevelRasterizationLimit=GdipSetMetafileDownLevelRasterizationLimit@8
+GdipGetMetafileDownLevelRasterizationLimit=GdipGetMetafileDownLevelRasterizationLimit@8
+GdipGetImageDecodersSize=GdipGetImageDecodersSize@8
+GdipGetImageDecoders=GdipGetImageDecoders@12
+GdipGetImageEncodersSize=GdipGetImageEncodersSize@8
+GdipGetImageEncoders=GdipGetImageEncoders@12
+GdipComment=GdipComment@12
+GdipComment=GdipComment@12
+GdipCreatePath2=GdipCreatePath2@20
+GdipCreatePath2I=GdipCreatePath2I@20
+GdipClonePath=GdipClonePath@8
+GdipDeletePath=GdipDeletePath@4
+GdipResetPath=GdipResetPath@4
+GdipGetPointCount=GdipGetPointCount@8
+GdipGetPathTypes=GdipGetPathTypes@12
+GdipGetPathPoints=GdipGetPathPoints@12
+GdipGetPathPointsI=GdipGetPathPointsI@12
+GdipGetPathFillMode=GdipGetPathFillMode@8
+GdipSetPathFillMode=GdipSetPathFillMode@8
+GdipGetPathData=GdipGetPathData@8
+GdipStartPathFigure=GdipStartPathFigure@4
+GdipClosePathFigure=GdipClosePathFigure@4
+GdipClosePathFigures=GdipClosePathFigures@4
+GdipSetPathMarker=GdipSetPathMarker@4
+GdipClearPathMarkers=GdipClearPathMarkers@4
+GdipReversePath=GdipReversePath@4
+GdipGetPathLastPoint=GdipGetPathLastPoint@8
+GdipAddPathLine=GdipAddPathLine@20
+GdipAddPathLine2=GdipAddPathLine2@12
+GdipAddPathArc=GdipAddPathArc@28
+GdipAddPathBezier=GdipAddPathBezier@36
+GdipAddPathBeziers=GdipAddPathBeziers@12
+GdipAddPathCurve=GdipAddPathCurve@12
+GdipAddPathCurve2=GdipAddPathCurve2@16
+GdipAddPathCurve3=GdipAddPathCurve3@24
+GdipAddPathClosedCurve=GdipAddPathClosedCurve@12
+GdipAddPathClosedCurve2=GdipAddPathClosedCurve2@16
+GdipAddPathRectangle=GdipAddPathRectangle@20
+GdipAddPathRectangles=GdipAddPathRectangles@12
+GdipAddPathEllipse=GdipAddPathEllipse@20
+GdipAddPathPie=GdipAddPathPie@28
+GdipAddPathPolygon=GdipAddPathPolygon@12
+GdipAddPathPath=GdipAddPathPath@12
+GdipAddPathString=GdipAddPathString@32
+GdipAddPathStringI=GdipAddPathStringI@32
+GdipAddPathLineI=GdipAddPathLineI@20
+GdipAddPathLine2I=GdipAddPathLine2I@12
+GdipAddPathArcI=GdipAddPathArcI@28
+GdipAddPathBezierI=GdipAddPathBezierI@36
+GdipAddPathBeziersI=GdipAddPathBeziersI@12
+GdipAddPathCurveI=GdipAddPathCurveI@12
+GdipAddPathCurve2I=GdipAddPathCurve2I@16
+GdipAddPathCurve3I=GdipAddPathCurve3I@24
+GdipAddPathClosedCurveI=GdipAddPathClosedCurveI@12
+GdipAddPathClosedCurve2I=GdipAddPathClosedCurve2I@16
+GdipAddPathRectangleI=GdipAddPathRectangleI@20
+GdipAddPathRectanglesI=GdipAddPathRectanglesI@12
+GdipAddPathEllipseI=GdipAddPathEllipseI@20
+GdipAddPathPieI=GdipAddPathPieI@28
+GdipAddPathPolygonI=GdipAddPathPolygonI@12
+GdipFlattenPath=GdipFlattenPath@12
+GdipWindingModeOutline=GdipWindingModeOutline@12
+GdipWidenPath=GdipWidenPath@16
+GdipWarpPath=GdipWarpPath@40
+GdipTransformPath=GdipTransformPath@8
+GdipGetPathWorldBounds=GdipGetPathWorldBounds@16
+GdipGetPathWorldBoundsI=GdipGetPathWorldBoundsI@16
+GdipIsVisiblePathPoint=GdipIsVisiblePathPoint@20
+GdipIsVisiblePathPointI=GdipIsVisiblePathPointI@20
+GdipIsOutlineVisiblePathPoint=GdipIsOutlineVisiblePathPoint@24
+GdipIsOutlineVisiblePathPointI=GdipIsOutlineVisiblePathPointI@24
+GdipCreateHatchBrush=GdipCreateHatchBrush@16
+GdipGetHatchStyle=GdipGetHatchStyle@8
+GdipGetHatchForegroundColor=GdipGetHatchForegroundColor@8
+GdipGetHatchBackgroundColor=GdipGetHatchBackgroundColor@8
+GdipLoadImageFromStream=GdipLoadImageFromStream@8
+GdipLoadImageFromFile=GdipLoadImageFromFile@8
+GdipLoadImageFromStreamICM=GdipLoadImageFromStreamICM@8
+GdipLoadImageFromFileICM=GdipLoadImageFromFileICM@8
+GdipCloneImage=GdipCloneImage@8
+GdipDisposeImage=GdipDisposeImage@4
+GdipSaveImageToFile=GdipSaveImageToFile@16
+GdipSaveImageToStream=GdipSaveImageToStream@16
+GdipSaveAdd=GdipSaveAdd@8
+GdipSaveAddImage=GdipSaveAddImage@12
+GdipGetImageGraphicsContext=GdipGetImageGraphicsContext@8
+GdipGetImageBounds=GdipGetImageBounds@12
+GdipGetImageDimension=GdipGetImageDimension@12
+GdipGetImageType=GdipGetImageType@8
+GdipGetImageWidth=GdipGetImageWidth@8
+GdipGetImageHeight=GdipGetImageHeight@8
+GdipGetImageHorizontalResolution=GdipGetImageHorizontalResolution@8
+GdipGetImageVerticalResolution=GdipGetImageVerticalResolution@8
+GdipGetImageFlags=GdipGetImageFlags@8
+GdipGetImageRawFormat=GdipGetImageRawFormat@8
+GdipGetImagePixelFormat=GdipGetImagePixelFormat@8
+GdipGetImageThumbnail=GdipGetImageThumbnail@24
+GdipGetEncoderParameterListSize=GdipGetEncoderParameterListSize@12
+GdipGetEncoderParameterList=GdipGetEncoderParameterList@16
+GdipImageGetFrameDimensionsCount=GdipImageGetFrameDimensionsCount@8
+GdipImageGetFrameDimensionsList=GdipImageGetFrameDimensionsList@12
+GdipImageGetFrameCount=GdipImageGetFrameCount@12
+GdipImageSelectActiveFrame=GdipImageSelectActiveFrame@12
+GdipImageRotateFlip=GdipImageRotateFlip@8
+GdipGetImagePalette=GdipGetImagePalette@12
+GdipSetImagePalette=GdipSetImagePalette@8
+GdipGetImagePaletteSize=GdipGetImagePaletteSize@8
+GdipGetPropertyCount=GdipGetPropertyCount@8
+GdipGetPropertyIdList=GdipGetPropertyIdList@12
+GdipGetPropertyItemSize=GdipGetPropertyItemSize@12
+GdipGetPropertyItem=GdipGetPropertyItem@16
+GdipGetPropertySize=GdipGetPropertySize@12
+GdipGetAllPropertyItems=GdipGetAllPropertyItems@16
+GdipRemovePropertyItem=GdipRemovePropertyItem@8
+GdipSetPropertyItem=GdipSetPropertyItem@8
+GdipFindFirstImageItem=GdipFindFirstImageItem@8
+GdipFindNextImageItem=GdipFindNextImageItem@8
+GdipGetImageItemData=GdipGetImageItemData@8
+GdipConvertToEmfPlus=GdipConvertToEmfPlus@24
+GdipConvertToEmfPlusToFile=GdipConvertToEmfPlusToFile@28
+GdipConvertToEmfPlusToStream=GdipConvertToEmfPlusToStream@28
+GdipImageForceValidation=GdipImageForceValidation@4
+GdipCreateImageAttributes=GdipCreateImageAttributes@4
+GdipCloneImageAttributes=GdipCloneImageAttributes@8
+GdipDisposeImageAttributes=GdipDisposeImageAttributes@4
+GdipSetImageAttributesToIdentity=GdipSetImageAttributesToIdentity@8
+GdipResetImageAttributes=GdipResetImageAttributes@8
+GdipSetImageAttributesColorMatrix=GdipSetImageAttributesColorMatrix@24
+GdipSetImageAttributesThreshold=GdipSetImageAttributesThreshold@16
+GdipSetImageAttributesGamma=GdipSetImageAttributesGamma@16
+GdipSetImageAttributesNoOp=GdipSetImageAttributesNoOp@12
+GdipSetImageAttributesColorKeys=GdipSetImageAttributesColorKeys@20
+GdipSetImageAttributesOutputChannel=GdipSetImageAttributesOutputChannel@16
+GdipSetImageAttributesOutputChannelColorProfile=GdipSetImageAttributesOutputChannelColorProfile@16
+GdipSetImageAttributesRemapTable=GdipSetImageAttributesRemapTable@20
+GdipSetImageAttributesWrapMode=GdipSetImageAttributesWrapMode@16
+GdipSetImageAttributesICMMode=GdipSetImageAttributesICMMode@8
+GdipGetImageAttributesAdjustedPalette=GdipGetImageAttributesAdjustedPalette@12
+GdipSetImageAttributesCachedBackground=GdipSetImageAttributesCachedBackground@8
+GdipCreateLineBrush=GdipCreateLineBrush@24
+GdipCreateLineBrushI=GdipCreateLineBrushI@24
+GdipCreateLineBrushFromRect=GdipCreateLineBrushFromRect@24
+GdipCreateLineBrushFromRectI=GdipCreateLineBrushFromRectI@24
+GdipCreateLineBrushFromRectWithAngle=GdipCreateLineBrushFromRectWithAngle@28
+GdipCreateLineBrushFromRectWithAngleI=GdipCreateLineBrushFromRectWithAngleI@28
+GdipSetLineColors=GdipSetLineColors@12
+GdipGetLineColors=GdipGetLineColors@8
+GdipGetLineRect=GdipGetLineRect@8
+GdipGetLineRectI=GdipGetLineRectI@8
+GdipSetLineGammaCorrection=GdipSetLineGammaCorrection@8
+GdipGetLineGammaCorrection=GdipGetLineGammaCorrection@8
+GdipGetLineBlendCount=GdipGetLineBlendCount@8
+GdipGetLineBlend=GdipGetLineBlend@16
+GdipSetLineBlend=GdipSetLineBlend@16
+GdipGetLinePresetBlendCount=GdipGetLinePresetBlendCount@8
+GdipGetLinePresetBlend=GdipGetLinePresetBlend@16
+GdipSetLinePresetBlend=GdipSetLinePresetBlend@16
+GdipSetLineSigmaBlend=GdipSetLineSigmaBlend@12
+GdipSetLineLinearBlend=GdipSetLineLinearBlend@12
+GdipSetLineWrapMode=GdipSetLineWrapMode@8
+GdipGetLineWrapMode=GdipGetLineWrapMode@8
+GdipGetLineTransform=GdipGetLineTransform@8
+GdipSetLineTransform=GdipSetLineTransform@8
+GdipResetLineTransform=GdipResetLineTransform@4
+GdipMultiplyLineTransform=GdipMultiplyLineTransform@12
+GdipTranslateLineTransform=GdipTranslateLineTransform@16
+GdipScaleLineTransform=GdipScaleLineTransform@16
+GdipRotateLineTransform=GdipRotateLineTransform@12
+GdipCreateMatrix=GdipCreateMatrix@4
+GdipCreateMatrix2=GdipCreateMatrix2@28
+GdipCreateMatrix3=GdipCreateMatrix3@12
+GdipCreateMatrix3I=GdipCreateMatrix3I@12
+GdipCloneMatrix=GdipCloneMatrix@8
+GdipDeleteMatrix=GdipDeleteMatrix@4
+GdipSetMatrixElements=GdipSetMatrixElements@28
+GdipMultiplyMatrix=GdipMultiplyMatrix@12
+GdipTranslateMatrix=GdipTranslateMatrix@16
+GdipScaleMatrix=GdipScaleMatrix@16
+GdipRotateMatrix=GdipRotateMatrix@12
+GdipShearMatrix=GdipShearMatrix@16
+GdipInvertMatrix=GdipInvertMatrix@4
+GdipTransformMatrixPoints=GdipTransformMatrixPoints@12
+GdipTransformMatrixPointsI=GdipTransformMatrixPointsI@12
+GdipVectorTransformMatrixPoints=GdipVectorTransformMatrixPoints@12
+GdipVectorTransformMatrixPointsI=GdipVectorTransformMatrixPointsI@12
+GdipGetMatrixElements=GdipGetMatrixElements@8
+GdipIsMatrixInvertible=GdipIsMatrixInvertible@8
+GdipIsMatrixIdentity=GdipIsMatrixIdentity@8
+GdipIsMatrixEqual=GdipIsMatrixEqual@12
+GdipAlloc=GdipAlloc@4
+GdipFree=GdipFree@4
+GdiplusNotificationHook=GdiplusNotificationHook@4
+GdiplusNotificationUnhook=GdiplusNotificationUnhook@4
+GdipCreatePathGradient=GdipCreatePathGradient@16
+GdipCreatePathGradientI=GdipCreatePathGradientI@16
+GdipCreatePathGradientFromPath=GdipCreatePathGradientFromPath@8
+GdipGetPathGradientCenterColor=GdipGetPathGradientCenterColor@8
+GdipSetPathGradientCenterColor=GdipSetPathGradientCenterColor@8
+GdipGetPathGradientSurroundColorsWithCount=GdipGetPathGradientSurroundColorsWithCount@12
+GdipSetPathGradientSurroundColorsWithCount=GdipSetPathGradientSurroundColorsWithCount@12
+GdipGetPathGradientPath=GdipGetPathGradientPath@8
+GdipSetPathGradientPath=GdipSetPathGradientPath@8
+GdipGetPathGradientCenterPoint=GdipGetPathGradientCenterPoint@8
+GdipGetPathGradientCenterPointI=GdipGetPathGradientCenterPointI@8
+GdipSetPathGradientCenterPoint=GdipSetPathGradientCenterPoint@8
+GdipSetPathGradientCenterPointI=GdipSetPathGradientCenterPointI@8
+GdipGetPathGradientRect=GdipGetPathGradientRect@8
+GdipGetPathGradientRectI=GdipGetPathGradientRectI@8
+GdipGetPathGradientPointCount=GdipGetPathGradientPointCount@8
+GdipGetPathGradientSurroundColorCount=GdipGetPathGradientSurroundColorCount@8
+GdipSetPathGradientGammaCorrection=GdipSetPathGradientGammaCorrection@8
+GdipGetPathGradientGammaCorrection=GdipGetPathGradientGammaCorrection@8
+GdipGetPathGradientBlendCount=GdipGetPathGradientBlendCount@8
+GdipGetPathGradientBlend=GdipGetPathGradientBlend@16
+GdipSetPathGradientBlend=GdipSetPathGradientBlend@16
+GdipGetPathGradientPresetBlendCount=GdipGetPathGradientPresetBlendCount@8
+GdipGetPathGradientPresetBlend=GdipGetPathGradientPresetBlend@16
+GdipSetPathGradientPresetBlend=GdipSetPathGradientPresetBlend@16
+GdipSetPathGradientSigmaBlend=GdipSetPathGradientSigmaBlend@12
+GdipSetPathGradientSigmaBlend=GdipSetPathGradientSigmaBlend@12
+GdipGetPathGradientWrapMode=GdipGetPathGradientWrapMode@8
+GdipSetPathGradientWrapMode=GdipSetPathGradientWrapMode@8
+GdipGetPathGradientTransform=GdipGetPathGradientTransform@8
+GdipSetPathGradientTransform=GdipSetPathGradientTransform@8
+GdipResetPathGradientTransform=GdipResetPathGradientTransform@4
+GdipMultiplyPathGradientTransform=GdipMultiplyPathGradientTransform@12
+GdipTranslatePathGradientTransform=GdipTranslatePathGradientTransform@16
+GdipScalePathGradientTransform=GdipScalePathGradientTransform@16
+GdipRotatePathGradientTransform=GdipRotatePathGradientTransform@12
+GdipGetPathGradientFocusScales=GdipGetPathGradientFocusScales@12
+GdipSetPathGradientFocusScales=GdipSetPathGradientFocusScales@12
+GdipCreatePathIter=GdipCreatePathIter@8
+GdipDeletePathIter=GdipDeletePathIter@4
+GdipPathIterNextSubpath=GdipPathIterNextSubpath@20
+GdipPathIterNextSubpathPath=GdipPathIterNextSubpathPath@16
+GdipPathIterNextPathType=GdipPathIterNextPathType@20
+GdipPathIterNextMarker=GdipPathIterNextMarker@16
+GdipPathIterNextMarkerPath=GdipPathIterNextMarkerPath@12
+GdipPathIterGetCount=GdipPathIterGetCount@8
+GdipPathIterGetSubpathCount=GdipPathIterGetSubpathCount@8
+GdipPathIterIsValid=GdipPathIterIsValid@8
+GdipPathIterHasCurve=GdipPathIterHasCurve@8
+GdipPathIterRewind=GdipPathIterRewind@4
+GdipPathIterEnumerate=GdipPathIterEnumerate@20
+GdipPathIterCopyData=GdipPathIterCopyData@24
+GdipCreatePen1=GdipCreatePen1@16
+GdipCreatePen2=GdipCreatePen2@16
+GdipClonePen=GdipClonePen@8
+GdipDeletePen=GdipDeletePen@4
+GdipSetPenWidth=GdipSetPenWidth@8
+GdipGetPenWidth=GdipGetPenWidth@8
+GdipSetPenUnit=GdipSetPenUnit@8
+GdipGetPenUnit=GdipGetPenUnit@8
+GdipSetPenLineCap197819=GdipSetPenLineCap197819@16
+GdipSetPenStartCap=GdipSetPenStartCap@8
+GdipSetPenEndCap=GdipSetPenEndCap@8
+GdipSetPenDashCap197819=GdipSetPenDashCap197819@8
+GdipGetPenStartCap=GdipGetPenStartCap@8
+GdipGetPenEndCap=GdipGetPenEndCap@8
+GdipGetPenDashCap197819=GdipGetPenDashCap197819@8
+GdipSetPenLineJoin=GdipSetPenLineJoin@8
+GdipGetPenLineJoin=GdipGetPenLineJoin@8
+GdipSetPenCustomStartCap=GdipSetPenCustomStartCap@8
+GdipGetPenCustomStartCap=GdipGetPenCustomStartCap@8
+GdipSetPenCustomEndCap=GdipSetPenCustomEndCap@8
+GdipGetPenCustomEndCap=GdipGetPenCustomEndCap@8
+GdipSetPenMiterLimit=GdipSetPenMiterLimit@8
+GdipGetPenMiterLimit=GdipGetPenMiterLimit@8
+GdipSetPenMode=GdipSetPenMode@8
+GdipGetPenMode=GdipGetPenMode@8
+GdipSetPenTransform=GdipSetPenTransform@8
+GdipGetPenTransform=GdipGetPenTransform@8
+GdipResetPenTransform=GdipResetPenTransform@4
+GdipMultiplyPenTransform=GdipMultiplyPenTransform@12
+GdipTranslatePenTransform=GdipTranslatePenTransform@16
+GdipScalePenTransform=GdipScalePenTransform@16
+GdipRotatePenTransform=GdipRotatePenTransform@12
+GdipSetPenColor=GdipSetPenColor@8
+GdipGetPenColor=GdipGetPenColor@8
+GdipSetPenBrushFill=GdipSetPenBrushFill@8
+GdipGetPenBrushFill=GdipGetPenBrushFill@8
+GdipGetPenFillType=GdipGetPenFillType@8
+GdipGetPenDashStyle=GdipGetPenDashStyle@8
+GdipSetPenDashStyle=GdipSetPenDashStyle@8
+GdipGetPenDashOffset=GdipGetPenDashOffset@8
+GdipSetPenDashOffset=GdipSetPenDashOffset@8
+GdipGetPenDashCount=GdipGetPenDashCount@8
+GdipSetPenDashArray=GdipSetPenDashArray@12
+GdipGetPenDashArray=GdipGetPenDashArray@12
+GdipGetPenCompoundCount=GdipGetPenCompoundCount@8
+GdipSetPenCompoundArray=GdipSetPenCompoundArray@12
+GdipGetPenCompoundArray=GdipGetPenCompoundArray@12
+GdipCreateRegion=GdipCreateRegion@4
+GdipCreateRegionRect=GdipCreateRegionRect@8
+GdipCreateRegionRectI=GdipCreateRegionRectI@8
+GdipCreateRegionPath=GdipCreateRegionPath@8
+GdipCreateRegionRgnData=GdipCreateRegionRgnData@12
+GdipCreateRegionHrgn=GdipCreateRegionHrgn@8
+GdipCloneRegion=GdipCloneRegion@8
+GdipDeleteRegion=GdipDeleteRegion@4
+GdipSetInfinite=GdipSetInfinite@4
+GdipSetEmpty=GdipSetEmpty@4
+GdipCombineRegionRect=GdipCombineRegionRect@12
+GdipCombineRegionRectI=GdipCombineRegionRectI@12
+GdipCombineRegionPath=GdipCombineRegionPath@12
+GdipCombineRegionRegion=GdipCombineRegionRegion@12
+GdipTranslateRegion=GdipTranslateRegion@12
+GdipTranslateRegionI=GdipTranslateRegionI@12
+GdipTransformRegion=GdipTransformRegion@8
+GdipGetRegionBounds=GdipGetRegionBounds@12
+GdipGetRegionBoundsI=GdipGetRegionBoundsI@12
+GdipGetRegionHRgn=GdipGetRegionHRgn@12
+GdipIsEmptyRegion=GdipIsEmptyRegion@12
+GdipIsInfiniteRegion=GdipIsInfiniteRegion@12
+GdipIsEqualRegion=GdipIsEqualRegion@16
+GdipGetRegionDataSize=GdipGetRegionDataSize@8
+GdipGetRegionData=GdipGetRegionData@16
+GdipIsVisibleRegionPoint=GdipIsVisibleRegionPoint@20
+GdipIsVisibleRegionPointI=GdipIsVisibleRegionPointI@20
+GdipIsVisibleRegionRect=GdipIsVisibleRegionRect@28
+GdipIsVisibleRegionRectI=GdipIsVisibleRegionRectI@28
+GdipGetRegionScansCount=GdipGetRegionScansCount@12
+GdipGetRegionScans=GdipGetRegionScans@16
+GdipGetRegionScansI=GdipGetRegionScansI@16
+GdipCreateSolidFill=GdipCreateSolidFill@8
+GdipSetSolidFillColor=GdipSetSolidFillColor@8
+GdipGetSolidFillColor=GdipGetSolidFillColor@8
+GdipCreateStringFormat=GdipCreateStringFormat@12
+GdipStringFormatGetGenericDefault=GdipStringFormatGetGenericDefault@4
+GdipStringFormatGetGenericTypographic=GdipStringFormatGetGenericTypographic@4
+GdipDeleteStringFormat=GdipDeleteStringFormat@4
+GdipCloneStringFormat=GdipCloneStringFormat@8
+GdipSetStringFormatFlags=GdipSetStringFormatFlags@8
+GdipGetStringFormatFlags=GdipGetStringFormatFlags@8
+GdipSetStringFormatAlign=GdipSetStringFormatAlign@8
+GdipGetStringFormatAlign=GdipGetStringFormatAlign@8
+GdipSetStringFormatLineAlign=GdipSetStringFormatLineAlign@8
+GdipGetStringFormatLineAlign=GdipGetStringFormatLineAlign@8
+GdipSetStringFormatTrimming=GdipSetStringFormatTrimming@8
+GdipGetStringFormatTrimming=GdipGetStringFormatTrimming@8
+GdipSetStringFormatHotkeyPrefix=GdipSetStringFormatHotkeyPrefix@8
+GdipGetStringFormatHotkeyPrefix=GdipGetStringFormatHotkeyPrefix@8
+GdipSetStringFormatTabStops=GdipSetStringFormatTabStops@16
+GdipGetStringFormatTabStops=GdipGetStringFormatTabStops@16
+GdipGetStringFormatTabStopCount=GdipGetStringFormatTabStopCount@8
+GdipSetStringFormatDigitSubstitution=GdipSetStringFormatDigitSubstitution@12
+GdipGetStringFormatDigitSubstitution=GdipGetStringFormatDigitSubstitution@12
+GdipGetStringFormatMeasurableCharacterRangeCount=GdipGetStringFormatMeasurableCharacterRangeCount@8
+GdipSetStringFormatMeasurableCharacterRanges=GdipSetStringFormatMeasurableCharacterRanges@12
+GdipDrawString=GdipDrawString@28
+GdipMeasureString=GdipMeasureString@36
+GdipMeasureCharacterRanges=GdipMeasureCharacterRanges@32
+GdipDrawDriverString=GdipDrawDriverString@32
+GdipMeasureDriverString=GdipMeasureDriverString@32
+GdipCreateTexture=GdipCreateTexture@12
+GdipCreateTexture2=GdipCreateTexture2@28
+GdipCreateTextureIA=GdipCreateTextureIA@28
+GdipCreateTexture2I=GdipCreateTexture2I@28
+GdipCreateTextureIAI=GdipCreateTextureIAI@28
+GdipGetTextureTransform=GdipGetTextureTransform@8
+GdipSetTextureTransform=GdipSetTextureTransform@8
+GdipResetTextureTransform=GdipResetTextureTransform@4
+GdipMultiplyTextureTransform=GdipMultiplyTextureTransform@12
+GdipTranslateTextureTransform=GdipTranslateTextureTransform@16
+GdipScaleTextureTransform=GdipScaleTextureTransform@16
+GdipRotateTextureTransform=GdipRotateTextureTransform@12
+GdipSetTextureWrapMode=GdipSetTextureWrapMode@8
+GdipGetTextureWrapMode=GdipGetTextureWrapMode@8
+GdipGetTextureImage=GdipGetTextureImage@8
\ No newline at end of file
diff --git a/reactos/lib/gdiplus/gdiplus.rc b/reactos/lib/gdiplus/gdiplus.rc
new file mode 100644 (file)
index 0000000..538db16
--- /dev/null
@@ -0,0 +1,38 @@
+#include <defines.h>
+#include <reactos/resource.h>
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+VS_VERSION_INFO VERSIONINFO
+       FILEVERSION     RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
+       PRODUCTVERSION  RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
+       FILEFLAGSMASK   0x3fL
+#ifdef _DEBUG
+       FILEFLAGS       0x1L
+#else
+       FILEFLAGS       0x0L
+#endif
+       FILEOS          0x40004L
+       FILETYPE        0x2L
+       FILESUBTYPE     0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName",       RES_STR_COMPANY_NAME
+            VALUE "FileDescription",   "GDI+\0"
+            VALUE "FileVersion",       RES_STR_FILE_VERSION
+            VALUE "InternalName",      "gdiplus\0"
+            VALUE "LegalCopyright",    RES_STR_LEGAL_COPYRIGHT
+            VALUE "OriginalFilename",  "gdiplus.dll\0"
+            VALUE "ProductName",       RES_STR_PRODUCT_NAME
+            VALUE "ProductVersion",    RES_STR_PRODUCT_VERSION
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
diff --git a/reactos/lib/gdiplus/gdiplus/.cvsignore b/reactos/lib/gdiplus/gdiplus/.cvsignore
new file mode 100644 (file)
index 0000000..5761abc
--- /dev/null
@@ -0,0 +1 @@
+*.o
diff --git a/reactos/lib/gdiplus/gdiplus/arrow.c b/reactos/lib/gdiplus/gdiplus/arrow.c
new file mode 100644 (file)
index 0000000..bf113d3
--- /dev/null
@@ -0,0 +1,90 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateAdjustableArrowCap(REAL height,
+  REAL width,
+  BOOL isFilled,
+  GpAdjustableArrowCap **cap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetAdjustableArrowCapHeight(GpAdjustableArrowCap* cap,
+  REAL height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetAdjustableArrowCapHeight(GpAdjustableArrowCap* cap, REAL* height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap* cap,
+  REAL width)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI GdipGetAdjustableArrowCapWidth(GpAdjustableArrowCap* cap,
+  REAL* width)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap* cap,
+  REAL middleInset)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI GdipGetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap* cap,
+  REAL* middleInset)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI GdipSetAdjustableArrowCapFillState(GpAdjustableArrowCap* cap,
+  BOOL fillState)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap* cap,
+  BOOL* fillState)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/bitmap.c b/reactos/lib/gdiplus/gdiplus/bitmap.c
new file mode 100644 (file)
index 0000000..25af3e6
--- /dev/null
@@ -0,0 +1,346 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromStream(IStream* stream,
+  GpBitmap **bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromFile(GDIPCONST WCHAR* filename,
+  GpBitmap **bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromStreamICM(IStream* stream,
+  GpBitmap **bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromFileICM(GDIPCONST WCHAR* filename,
+  GpBitmap **bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromScan0(INT width,
+  INT height,
+  INT stride,
+  PixelFormat format,
+  BYTE* scan0,
+  GpBitmap** bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromGraphics(INT width,
+  INT height,
+  GpGraphics* target,
+  GpBitmap** bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7* surface,
+GpBitmap** bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO* gdiBitmapInfo,
+  VOID* gdiBitmapData,
+  GpBitmap** bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromHBITMAP(HBITMAP hbm,
+  HPALETTE hpal,
+  GpBitmap** bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateHBITMAPFromBitmap(GpBitmap* bitmap,
+  HBITMAP* hbmReturn,
+  ARGB background)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromHICON(HICON hicon,
+  GpBitmap** bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateHICONFromBitmap(GpBitmap* bitmap,
+  HICON* hbmReturn)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateBitmapFromResource(HINSTANCE hInstance,
+  GDIPCONST WCHAR* lpBitmapName,
+  GpBitmap** bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneBitmapArea(REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  PixelFormat format,
+  GpBitmap *srcBitmap,
+  GpBitmap **dstBitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneBitmapAreaI(INT x,
+  INT y,
+  INT width,
+  INT height,
+  PixelFormat format,
+  GpBitmap *srcBitmap,
+  GpBitmap **dstBitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapLockBits(GpBitmap* bitmap,
+  GDIPCONST GpRect* rect,
+  UINT flags,
+  PixelFormat format,
+  BitmapData* lockedBitmapData)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapUnlockBits(GpBitmap* bitmap,
+  BitmapData* lockedBitmapData)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapGetPixel(GpBitmap* bitmap,
+  INT x,
+  INT y,
+  ARGB *color)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapSetPixel(GpBitmap* bitmap,
+  INT x,
+  INT y,
+  ARGB color)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapSetResolution(GpBitmap* bitmap,
+  REAL xdpi,
+  REAL ydpi)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapConvertFormat(IN GpBitmap *pInputBitmap,
+  PixelFormat format,
+  DitherType dithertype,
+  PaletteType palettetype,
+  ColorPalette *palette,
+  REAL alphaThresholdPercent)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipInitializePalette(OUT ColorPalette *palette,
+  PaletteType palettetype,
+  INT optimalColors,
+  BOOL useTransparentColor,
+  GpBitmap *bitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapApplyEffect(GpBitmap* bitmap,
+  CGpEffect *effect,
+  RECT *roi,
+  BOOL useAuxData,
+  VOID **auxData,
+  INT *auxDataSize)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapCreateApplyEffect(GpBitmap **inputBitmaps,
+  INT numInputs,
+  CGpEffect *effect,
+  RECT *roi,
+  RECT *outputRect,
+  GpBitmap **outputBitmap,
+  BOOL useAuxData,
+  VOID **auxData,
+  INT *auxDataSize)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapGetHistogram(GpBitmap* bitmap,
+  IN HistogramFormat format,
+  IN UINT NumberOfEntries,
+  OUT UINT *channel0,
+  OUT UINT *channel1,
+  OUT UINT *channel2,
+  OUT UINT *channel3)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBitmapGetHistogramSize(IN HistogramFormat format,
+  OUT UINT *NumberOfEntries)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateCachedBitmap(GpBitmap *bitmap,
+  GpGraphics *graphics,
+  GpCachedBitmap **cachedBitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteCachedBitmap(GpCachedBitmap *cachedBitmap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawCachedBitmap(GpGraphics *graphics,
+  GpCachedBitmap *cachedBitmap,
+  INT x,
+  INT y)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/brush.c b/reactos/lib/gdiplus/gdiplus/brush.c
new file mode 100644 (file)
index 0000000..fe099ae
--- /dev/null
@@ -0,0 +1,74 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneBrush(GpBrush *brush,
+  GpBrush **cloneBrush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteBrush(GpBrush *brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetBrushType(GpBrush *brush,
+  GpBrushType *type)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateHatchBrush(GpHatchStyle hatchstyle,
+  ARGB forecol,
+  ARGB backcol,
+  GpHatch **brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetHatchStyle(GpHatch *brush,
+  GpHatchStyle *hatchstyle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetHatchForegroundColor(GpHatch *brush,
+  ARGB* forecol)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetHatchBackgroundColor(GpHatch *brush,
+  ARGB* backcol)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/clip.c b/reactos/lib/gdiplus/gdiplus/clip.c
new file mode 100644 (file)
index 0000000..5fbd411
--- /dev/null
@@ -0,0 +1,228 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetClipGraphics(GpGraphics *graphics,
+  GpGraphics *srcgraphics,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetClipRect(GpGraphics *graphics,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetClipRectI(GpGraphics *graphics,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetClipPath(GpGraphics *graphics,
+  GpPath *path,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetClipRegion(GpGraphics *graphics,
+  GpRegion *region,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetClipHrgn(GpGraphics *graphics,
+  HRGN hRgn,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetClip(GpGraphics *graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslateClip(GpGraphics *graphics,
+  REAL dx,
+  REAL dy)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslateClipI(GpGraphics *graphics,
+  INT dx,
+  INT dy)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetClip(GpGraphics *graphics,
+  GpRegion *region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetClipBounds(GpGraphics *graphics,
+  GpRectF *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetClipBoundsI(GpGraphics *graphics,
+  GpRect *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsClipEmpty(GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetVisibleClipBounds(GpGraphics *graphics,
+  GpRectF *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetVisibleClipBoundsI(GpGraphics *graphics,
+  GpRect *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisibleClipEmpty(GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisiblePoint(GpGraphics *graphics,
+  REAL x,
+  REAL y,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisiblePointI(GpGraphics *graphics,
+  INT x,
+  INT y,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisibleRect(GpGraphics *graphics,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisibleRectI(GpGraphics *graphics,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  BOOL *result)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/codec.c b/reactos/lib/gdiplus/gdiplus/codec.c
new file mode 100644 (file)
index 0000000..814708e
--- /dev/null
@@ -0,0 +1,45 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageDecodersSize(UINT *numDecoders,
+  UINT *size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageDecoders(UINT numDecoders,
+  UINT size,
+  ImageCodecInfo *decoders)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageEncodersSize(UINT *numEncoders,
+  UINT *size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageEncoders(UINT numEncoders,
+  UINT size,
+  ImageCodecInfo *encoders)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/container.c b/reactos/lib/gdiplus/gdiplus/container.c
new file mode 100644 (file)
index 0000000..c446efc
--- /dev/null
@@ -0,0 +1,49 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBeginContainer(GpGraphics *graphics,
+  GDIPCONST GpRectF* dstrect,
+  GDIPCONST GpRectF *srcrect,
+  GpUnit unit,
+  GraphicsContainer *state)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBeginContainerI(GpGraphics *graphics,
+  GDIPCONST GpRect* dstrect,
+  GDIPCONST GpRect *srcrect,
+  GpUnit unit,
+  GraphicsContainer *state)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipBeginContainer2(GpGraphics *graphics,
+  GraphicsContainer* state)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEndContainer(GpGraphics *graphics,
+  GraphicsContainer state)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/dllmain.c b/reactos/lib/gdiplus/gdiplus/dllmain.c
new file mode 100644 (file)
index 0000000..3efabe8
--- /dev/null
@@ -0,0 +1,50 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+#ifdef DBG
+
+/* See debug.h for debug/trace constants */
+DWORD DebugTraceLevel = MIN_TRACE;
+
+#endif /* DBG */
+
+/*
+ * @unimplemented
+ */
+Status WINAPI
+GdiplusStartup(ULONG_PTR *token,
+  const GdiplusStartupInput *input,
+  GdiplusStartupOutput *output)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+VOID WINAPI
+GdiplusShutdown(ULONG_PTR token)
+{
+}
+
+INT STDCALL
+DllMain(
+       PVOID hinstDll,
+       ULONG dwReason,
+       PVOID reserved)
+{
+  switch (dwReason)
+    {
+      case DLL_PROCESS_ATTACH:
+        break;
+      case DLL_THREAD_ATTACH:
+        break;
+      case DLL_THREAD_DETACH:
+        break;
+      case DLL_PROCESS_DETACH:
+        break;
+    }
+
+  return 1;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/draw.c b/reactos/lib/gdiplus/gdiplus/draw.c
new file mode 100644 (file)
index 0000000..8efb6ed
--- /dev/null
@@ -0,0 +1,420 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawLine(GpGraphics *graphics,
+  GpPen *pen,
+  REAL x1,
+  REAL y1,
+  REAL x2,
+  REAL y2)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawLineI(GpGraphics *graphics,
+  GpPen *pen,
+  INT x1,
+  INT y1,
+  INT x2,
+  INT y2)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawLines(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawLinesI(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawArc(GpGraphics *graphics,
+  GpPen *pen,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawArcI(GpGraphics *graphics,
+  GpPen *pen,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawBezier(GpGraphics *graphics,
+  GpPen *pen,
+  REAL x1,
+  REAL y1,
+  REAL x2,
+  REAL y2,
+  REAL x3,
+  REAL y3,
+  REAL x4,
+  REAL y4)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawBezierI(GpGraphics *graphics,
+  GpPen *pen,
+  INT x1,
+  INT y1,
+  INT x2,
+  INT y2,
+  INT x3,
+  INT y3,
+  INT x4,
+  INT y4)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawBeziers(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawBeziersI(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawRectangle(GpGraphics *graphics,
+  GpPen *pen,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawRectangleI(GpGraphics *graphics,
+  GpPen *pen,
+  INT x,
+  INT y,
+  INT width,
+  INT height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawRectangles(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpRectF *rects,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawRectanglesI(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpRect *rects,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawEllipse(GpGraphics *graphics,
+  GpPen *pen,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawEllipseI(GpGraphics *graphics,
+  GpPen *pen,
+  INT x,
+  INT y,
+  INT width,
+  INT height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawPie(GpGraphics *graphics,
+  GpPen *pen,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawPieI(GpGraphics *graphics,
+  GpPen *pen,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawPolygon(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawPolygonI(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawPath(GpGraphics *graphics,
+  GpPen *pen,
+  GpPath *path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawCurve(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawCurveI(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPointF *points,
+  INT count,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawCurve2I(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPoint *points,
+  INT count,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawCurve3(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPointF *points,
+  INT count,
+  INT offset,
+  INT numberOfSegments,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawCurve3I(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPoint *points,
+  INT count,
+  INT offset,
+  INT numberOfSegments,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawClosedCurve(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawClosedCurveI(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawClosedCurve2(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPointF *points,
+  INT count,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawClosedCurve2I(GpGraphics *graphics,
+  GpPen *pen,
+  GDIPCONST GpPoint *points,
+  INT count,
+  REAL tension)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/effect.c b/reactos/lib/gdiplus/gdiplus/effect.c
new file mode 100644 (file)
index 0000000..ef979ad
--- /dev/null
@@ -0,0 +1,54 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+Status __stdcall
+GdipCreateEffect(const GUID guid,
+  CGpEffect **effect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+Status __stdcall
+GdipDeleteEffect(CGpEffect *effect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+Status __stdcall
+GdipGetEffectParameterSize(CGpEffect *effect,
+  UINT *size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+Status __stdcall
+GdipSetEffectParameters(CGpEffect *effect,
+  const VOID *params,
+  const UINT size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+Status __stdcall
+GdipGetEffectParameters(CGpEffect *effect,
+  UINT *size,
+  VOID *params)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/fill.c b/reactos/lib/gdiplus/gdiplus/fill.c
new file mode 100644 (file)
index 0000000..19dfb9b
--- /dev/null
@@ -0,0 +1,256 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillRectangle(GpGraphics *graphics,
+  GpBrush *brush,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillRectangleI(GpGraphics *graphics,
+  GpBrush *brush,
+  INT x,
+  INT y,
+  INT width,
+  INT height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillRectangles(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpRectF *rects,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillRectanglesI(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpRect *rects,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillPolygon(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpPointF *points,
+  INT count,
+  GpFillMode fillMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillPolygonI(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpPoint *points,
+  INT count,
+  GpFillMode fillMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillPolygon2(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillPolygon2I(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillEllipse(GpGraphics *graphics,
+  GpBrush *brush,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillEllipseI(GpGraphics *graphics,
+  GpBrush *brush,
+  INT x,
+  INT y,
+  INT width,
+  INT height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillPie(GpGraphics *graphics,
+  GpBrush *brush,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillPieI(GpGraphics *graphics,
+  GpBrush *brush,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillPath(GpGraphics *graphics,
+  GpBrush *brush,
+  GpPath *path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillClosedCurve(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillClosedCurveI(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillClosedCurve2I(GpGraphics *graphics,
+  GpBrush *brush,
+  GDIPCONST GpPoint *points,
+  INT count,
+  REAL tension,
+  GpFillMode fillMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFillRegion(GpGraphics *graphics,
+  GpBrush *brush,
+  GpRegion *region)
+{
+  return NotImplemented;
+}
+
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateSolidFill(ARGB color,
+  GpSolidFill **brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetSolidFillColor(GpSolidFill *brush,
+  ARGB color)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetSolidFillColor(GpSolidFill *brush,
+  ARGB *color)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/font.c b/reactos/lib/gdiplus/gdiplus/font.c
new file mode 100644 (file)
index 0000000..ad6a551
--- /dev/null
@@ -0,0 +1,369 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFontFromDC(HDC hdc,
+  GpFont **font)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFontFromLogfontA(HDC hdc,
+  GDIPCONST LOGFONTA *logfont,
+  GpFont **font)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFontFromLogfontW(HDC hdc,
+  GDIPCONST LOGFONTW *logfont,
+  GpFont **font)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFont(GDIPCONST GpFontFamily *fontFamily,
+  REAL emSize,
+  INT style,
+  Unit unit,
+  GpFont **font)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneFont(GpFont* font,
+  GpFont** cloneFont)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteFont(GpFont* font)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFamily(GpFont *font,
+  GpFontFamily **family)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFontStyle(GpFont *font,
+  INT *style)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFontSize(GpFont *font,
+  REAL *size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFontUnit(GpFont *font,
+  Unit *unit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFontHeight(GDIPCONST GpFont *font,
+  GDIPCONST GpGraphics *graphics,
+  REAL *height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFontHeightGivenDPI(GDIPCONST GpFont *font,
+  REAL dpi,
+  REAL *height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLogFontA(GpFont * font,
+  GpGraphics *graphics,
+  LOGFONTA * logfontA)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLogFontW(GpFont * font,
+  GpGraphics *graphics,
+  LOGFONTW * logfontW)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipNewInstalledFontCollection(GpFontCollection** fontCollection)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipNewPrivateFontCollection(GpFontCollection** fontCollection)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeletePrivateFontCollection(GpFontCollection** fontCollection)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFontCollectionFamilyCount(GpFontCollection* fontCollection,
+  INT * numFound)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFontCollectionFamilyList(GpFontCollection* fontCollection,
+  INT numSought,
+  GpFontFamily* gpfamilies[],
+  INT* numFound)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPrivateAddFontFile(GpFontCollection* fontCollection,
+  GDIPCONST WCHAR* filename)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPrivateAddMemoryFont(GpFontCollection* fontCollection,
+  GDIPCONST void* memory,
+  INT length)
+{
+  return NotImplemented;
+}
+
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name,
+  GpFontCollection *fontCollection,
+  GpFontFamily **FontFamily)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteFontFamily(GpFontFamily *FontFamily)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneFontFamily(GpFontFamily *FontFamily,
+  GpFontFamily **clonedFontFamily)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetGenericFontFamilySansSerif(GpFontFamily **nativeFamily)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetGenericFontFamilySerif(GpFontFamily **nativeFamily)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetGenericFontFamilyMonospace(GpFontFamily **nativeFamily)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetFamilyName(GDIPCONST GpFontFamily *family,
+  WCHAR name[LF_FACESIZE],
+  LANGID language)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsStyleAvailable(GDIPCONST GpFontFamily *family,
+  INT style,
+  BOOL * IsStyleAvailable)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFontCollectionEnumerable(GpFontCollection* fontCollection,
+  GpGraphics* graphics,
+  INT * numFound)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFontCollectionEnumerate(GpFontCollection* fontCollection,
+  INT numSought,
+  GpFontFamily* gpfamilies[],
+  INT* numFound,
+  GpGraphics* graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetEmHeight(GDIPCONST GpFontFamily *family,
+  INT style,
+  UINT16 * EmHeight)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCellAscent(GDIPCONST GpFontFamily *family,
+  INT style,
+  UINT16 * CellAscent)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCellDescent(GDIPCONST GpFontFamily *family,
+  INT style,
+  UINT16 * CellDescent)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineSpacing(GDIPCONST GpFontFamily *family,
+  INT style,
+  UINT16 * LineSpacing)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/graphics.c b/reactos/lib/gdiplus/gdiplus/graphics.c
new file mode 100644 (file)
index 0000000..014c285
--- /dev/null
@@ -0,0 +1,363 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFlush(GpGraphics *graphics,
+  GpFlushIntention intention)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFromHDC(HDC hdc,
+  GpGraphics **graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFromHDC2(HDC hdc,
+  HANDLE hDevice,
+  GpGraphics **graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFromHWND(HWND hwnd,
+  GpGraphics **graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateFromHWNDICM(HWND hwnd,
+  GpGraphics **graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteGraphics(GpGraphics *graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetDC(GpGraphics* graphics,
+  HDC * hdc)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipReleaseDC(GpGraphics* graphics,
+  HDC hdc)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetCompositingMode(GpGraphics *graphics,
+  CompositingMode compositingMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCompositingMode(GpGraphics *graphics,
+  CompositingMode *compositingMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetRenderingOrigin(GpGraphics *graphics,
+  INT x,
+  INT y)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRenderingOrigin(GpGraphics *graphics,
+  INT *x,
+  INT *y)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetCompositingQuality(GpGraphics *graphics,
+  CompositingQuality compositingQuality)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCompositingQuality(GpGraphics *graphics,
+  CompositingQuality *compositingQuality)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetSmoothingMode(GpGraphics *graphics,
+  SmoothingMode smoothingMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetSmoothingMode(GpGraphics *graphics,
+  SmoothingMode *smoothingMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPixelOffsetMode(GpGraphics* graphics,
+  PixelOffsetMode pixelOffsetMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPixelOffsetMode(GpGraphics *graphics,
+  PixelOffsetMode *pixelOffsetMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetTextRenderingHint(GpGraphics *graphics,
+  TextRenderingHint mode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetTextRenderingHint(GpGraphics *graphics,
+  TextRenderingHint *mode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetTextContrast(GpGraphics *graphics,
+  UINT contrast)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetTextContrast(GpGraphics *graphics,
+  UINT * contrast)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetInterpolationMode(GpGraphics *graphics,
+  InterpolationMode interpolationMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetInterpolationMode(GpGraphics *graphics,
+  InterpolationMode *interpolationMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPageUnit(GpGraphics *graphics,
+  GpUnit *unit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPageScale(GpGraphics *graphics,
+  REAL *scale)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPageUnit(GpGraphics *graphics,
+  GpUnit unit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPageScale(GpGraphics *graphics,
+  REAL scale)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetDpiX(GpGraphics *graphics,
+  REAL* dpi)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetDpiY(GpGraphics *graphics,
+  REAL* dpi)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGraphicsClear(GpGraphics *graphics,
+  ARGB color)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSaveGraphics(GpGraphics *graphics,
+  GraphicsState *state)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRestoreGraphics(GpGraphics *graphics,
+  GraphicsState state)
+{
+  return NotImplemented;
+}
+
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTestControl(enum GpTestControlEnum control,
+  void * param)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdiplusNotificationHook(OUT ULONG_PTR *token)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+VOID WINGDIPAPI
+GdiplusNotificationUnhook(ULONG_PTR token)
+{       
+}
diff --git a/reactos/lib/gdiplus/gdiplus/image.c b/reactos/lib/gdiplus/gdiplus/image.c
new file mode 100644 (file)
index 0000000..3decb46
--- /dev/null
@@ -0,0 +1,865 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImage(GpGraphics *graphics,
+  GpImage *image,
+  REAL x,
+  REAL y)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImageI(GpGraphics *graphics,
+  GpImage *image,
+  INT x,
+  INT y)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImageRect(GpGraphics *graphics,
+  GpImage *image,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImageRectI(GpGraphics *graphics,
+  GpImage *image,
+  INT x,
+  INT y,
+  INT width,
+  INT height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImagePoints(GpGraphics *graphics,
+  GpImage *image,
+  GDIPCONST GpPointF *dstpoints,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImagePointsI(GpGraphics *graphics,
+  GpImage *image,
+  GDIPCONST GpPoint *dstpoints,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImagePointRect(GpGraphics *graphics,
+  GpImage *image,
+  REAL x,
+  REAL y,
+  REAL srcx,
+  REAL srcy,
+  REAL srcwidth,
+  REAL srcheight,
+  GpUnit srcUnit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImagePointRectI(GpGraphics *graphics,
+  GpImage *image,
+  INT x,
+  INT y,
+  INT srcx,
+  INT srcy,
+  INT srcwidth,
+  INT srcheight,
+  GpUnit srcUnit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImageRectRect(GpGraphics *graphics,
+  GpImage *image,
+  REAL dstx,
+  REAL dsty,
+  REAL dstwidth,
+  REAL dstheight,
+  REAL srcx,
+  REAL srcy,
+  REAL srcwidth,
+  REAL srcheight,
+  GpUnit srcUnit,
+  GDIPCONST GpImageAttributes* imageAttributes,
+  DrawImageAbort callback,
+  VOID * callbackData)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImageRectRectI(GpGraphics *graphics,
+  GpImage *image,
+  INT dstx,
+  INT dsty,
+  INT dstwidth,
+  INT dstheight,
+  INT srcx,
+  INT srcy,
+  INT srcwidth,
+  INT srcheight,
+  GpUnit srcUnit,
+  GDIPCONST GpImageAttributes* imageAttributes,
+  DrawImageAbort callback,
+  VOID * callbackData)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImagePointsRect(GpGraphics *graphics,
+  GpImage *image,
+  GDIPCONST GpPointF *points,
+  INT count,
+  REAL srcx,
+  REAL srcy,
+  REAL srcwidth,
+  REAL srcheight,
+  GpUnit srcUnit,
+  GDIPCONST GpImageAttributes* imageAttributes,
+  DrawImageAbort callback,
+  VOID * callbackData)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImagePointsRectI(GpGraphics *graphics,
+  GpImage *image,
+  GDIPCONST GpPoint *points,
+  INT count,
+  INT srcx,
+  INT srcy,
+  INT srcwidth,
+  INT srcheight,
+  GpUnit srcUnit,
+  GDIPCONST GpImageAttributes* imageAttributes,
+  DrawImageAbort callback,
+  VOID * callbackData)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawImageFX(GpGraphics *graphics,
+  GpImage *image,
+  GpRectF *source,
+  GpMatrix *xForm,
+  CGpEffect *effect,
+  GpImageAttributes *imageAttributes,
+  GpUnit srcUnit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipLoadImageFromStream(IStream* stream,
+  GpImage **image)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipLoadImageFromFile(GDIPCONST WCHAR* filename,
+  GpImage **image)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipLoadImageFromStreamICM(IStream* stream,
+  GpImage **image)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipLoadImageFromFileICM(GDIPCONST WCHAR* filename,
+  GpImage **image)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneImage(GpImage *image,
+  GpImage **cloneImage)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDisposeImage(GpImage *image)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSaveImageToFile(GpImage *image,
+  GDIPCONST WCHAR* filename,
+  GDIPCONST CLSID* clsidEncoder,
+  GDIPCONST EncoderParameters* encoderParams)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSaveImageToStream(GpImage *image,
+  IStream* stream,
+  GDIPCONST CLSID* clsidEncoder,
+  GDIPCONST EncoderParameters* encoderParams)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSaveAdd(GpImage *image,
+  GDIPCONST EncoderParameters* encoderParams)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSaveAddImage(GpImage *image,
+  GpImage* newImage,
+  GDIPCONST EncoderParameters* encoderParams)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageGraphicsContext(GpImage *image,
+  GpGraphics **graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageBounds(GpImage *image,
+  GpRectF *srcRect,
+  GpUnit *srcUnit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageDimension(GpImage *image,
+  REAL *width,
+  REAL *height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageType(GpImage *image,
+  ImageType *type)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageWidth(GpImage *image,
+  UINT *width)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageHeight(GpImage *image,
+  UINT *height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageHorizontalResolution(GpImage *image,
+  REAL *resolution)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageVerticalResolution(GpImage *image,
+  REAL *resolution)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageFlags(GpImage *image,
+  UINT *flags)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageRawFormat(GpImage *image,
+  GUID *format)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImagePixelFormat(GpImage *image,
+  PixelFormat *format)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageThumbnail(GpImage *image,
+  UINT thumbWidth,
+  UINT thumbHeight,
+  GpImage **thumbImage,
+  GetThumbnailImageAbort callback,
+  VOID * callbackData)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetEncoderParameterListSize(GpImage *image,
+  GDIPCONST CLSID* clsidEncoder,
+  UINT* size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetEncoderParameterList(GpImage *image,
+  GDIPCONST CLSID* clsidEncoder,
+  UINT size,
+  EncoderParameters* buffer)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipImageGetFrameDimensionsCount(GpImage* image,
+  UINT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipImageGetFrameDimensionsList(GpImage* image,
+  GUID* dimensionIDs,
+  UINT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipImageGetFrameCount(GpImage *image,
+  GDIPCONST GUID* dimensionID,
+  UINT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipImageSelectActiveFrame(GpImage *image,
+  GDIPCONST GUID* dimensionID,
+  UINT frameIndex)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipImageRotateFlip(GpImage *image,
+  RotateFlipType rfType)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImagePalette(GpImage *image,
+  ColorPalette *palette,
+  INT size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImagePalette(GpImage *image,
+  GDIPCONST ColorPalette *palette)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImagePaletteSize(GpImage *image,
+  INT *size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPropertyCount(GpImage *image,
+  UINT* numOfProperty)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPropertyIdList(GpImage *image,
+  UINT numOfProperty,
+  PROPID* list)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPropertyItemSize(GpImage *image,
+  PROPID propId,
+  UINT* size)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPropertyItem(GpImage *image,
+  PROPID propId,
+  UINT propSize,
+  PropertyItem* buffer)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPropertySize(GpImage *image,
+  UINT* totalBufferSize,
+  UINT* numProperties)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetAllPropertyItems(GpImage *image,
+  UINT totalBufferSize,
+  UINT numProperties,
+  PropertyItem* allItems)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRemovePropertyItem(GpImage *image,
+  PROPID propId)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPropertyItem(GpImage *image,
+  GDIPCONST PropertyItem* item)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFindFirstImageItem(GpImage *image,
+  ImageItemData* item)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFindNextImageItem(GpImage *image,
+  ImageItemData* item)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageItemData(GpImage *image,
+  ImageItemData* item)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipImageForceValidation(GpImage *image)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateImageAttributes(GpImageAttributes **imageattr)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneImageAttributes(GDIPCONST GpImageAttributes *imageattr,
+  GpImageAttributes **cloneImageattr)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDisposeImageAttributes(GpImageAttributes *imageattr)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesToIdentity(GpImageAttributes *imageattr,
+  ColorAdjustType type)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetImageAttributes(GpImageAttributes *imageattr,
+  ColorAdjustType type)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesColorMatrix(GpImageAttributes *imageattr,
+  ColorAdjustType type,
+  BOOL enableFlag,
+  GDIPCONST struct ColorMatrix* colorMatrix,
+  GDIPCONST struct ColorMatrix* grayMatrix,
+  ColorMatrixFlags flags)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesThreshold(GpImageAttributes *imageattr,
+  ColorAdjustType type,
+  BOOL enableFlag,
+  REAL threshold)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesGamma(GpImageAttributes *imageattr,
+  ColorAdjustType type,
+  BOOL enableFlag,
+  REAL gamma)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesNoOp(GpImageAttributes *imageattr,
+  ColorAdjustType type,
+  BOOL enableFlag)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesColorKeys(GpImageAttributes *imageattr,
+  ColorAdjustType type,
+  BOOL enableFlag,
+  ARGB colorLow,
+  ARGB colorHigh)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesOutputChannel(GpImageAttributes *imageattr,
+  ColorAdjustType type,
+  BOOL enableFlag,
+  ColorChannelFlags channelFlags)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesOutputChannelColorProfile(GpImageAttributes *imageattr,
+  ColorAdjustType type,
+  BOOL enableFlag,
+  GDIPCONST WCHAR *colorProfileFilename)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesRemapTable(GpImageAttributes *imageattr,
+  ColorAdjustType type,
+  BOOL enableFlag,
+  UINT mapSize,
+  GDIPCONST ColorMap *map)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesWrapMode(GpImageAttributes *imageAttr,
+  WrapMode wrap,
+  ARGB argb,
+  BOOL clamp)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesICMMode(GpImageAttributes *imageAttr,
+  BOOL on)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetImageAttributesAdjustedPalette(GpImageAttributes *imageAttr,
+  ColorPalette * colorPalette,
+  ColorAdjustType colorAdjustType)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetImageAttributesCachedBackground(GpImageAttributes *imageattr,
+  BOOL enableFlag)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/linecap.c b/reactos/lib/gdiplus/gdiplus/linecap.c
new file mode 100644 (file)
index 0000000..200b171
--- /dev/null
@@ -0,0 +1,148 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+#include <GdiPlusPrivate.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateCustomLineCap(GpPath* fillPath,
+  GpPath* strokePath,
+  GpLineCap baseCap,
+  REAL baseInset,
+  GpCustomLineCap **customCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteCustomLineCap(GpCustomLineCap* customCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneCustomLineCap(GpCustomLineCap* customCap,
+  GpCustomLineCap** clonedCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCustomLineCapType(GpCustomLineCap* customCap,
+  enum CustomLineCapType* capType)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetCustomLineCapStrokeCaps(GpCustomLineCap* customCap,
+  GpLineCap startCap,
+  GpLineCap endCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCustomLineCapStrokeCaps(GpCustomLineCap* customCap,
+  GpLineCap* startCap,
+  GpLineCap* endCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetCustomLineCapStrokeJoin(GpCustomLineCap* customCap,
+  GpLineJoin lineJoin)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCustomLineCapStrokeJoin(GpCustomLineCap* customCap,
+  GpLineJoin* lineJoin)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetCustomLineCapBaseCap(GpCustomLineCap* customCap,
+  GpLineCap baseCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCustomLineCapBaseCap(GpCustomLineCap* customCap,
+  GpLineCap* baseCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetCustomLineCapBaseInset(GpCustomLineCap* customCap,
+  REAL inset)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCustomLineCapBaseInset(GpCustomLineCap* customCap,
+  REAL* inset)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetCustomLineCapWidthScale(GpCustomLineCap* customCap,
+  REAL widthScale)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetCustomLineCapWidthScale(GpCustomLineCap* customCap,
+  REAL* widthScale)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/linegradient.c b/reactos/lib/gdiplus/gdiplus/linegradient.c
new file mode 100644 (file)
index 0000000..fdffbe0
--- /dev/null
@@ -0,0 +1,335 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateLineBrush(GDIPCONST GpPointF* point1,
+  GDIPCONST GpPointF* point2,
+  ARGB color1,
+  ARGB color2,
+  GpWrapMode wrapMode,
+  GpLineGradient **lineGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateLineBrushI(GDIPCONST GpPoint* point1,
+  GDIPCONST GpPoint* point2,
+  ARGB color1,
+  ARGB color2,
+  GpWrapMode wrapMode,
+  GpLineGradient **lineGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateLineBrushFromRect(GDIPCONST GpRectF* rect,
+  ARGB color1,
+  ARGB color2,
+  LinearGradientMode mode,
+  GpWrapMode wrapMode,
+  GpLineGradient **lineGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateLineBrushFromRectI(GDIPCONST GpRect* rect,
+  ARGB color1,
+  ARGB color2,
+  LinearGradientMode mode,
+  GpWrapMode wrapMode,
+  GpLineGradient **lineGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateLineBrushFromRectWithAngle(GDIPCONST GpRectF* rect,
+  ARGB color1,
+  ARGB color2,
+  REAL angle,
+  BOOL isAngleScalable,
+  GpWrapMode wrapMode,
+  GpLineGradient **lineGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateLineBrushFromRectWithAngleI(GDIPCONST GpRect* rect,
+  ARGB color1,
+  ARGB color2,
+  REAL angle,
+  BOOL isAngleScalable,
+  GpWrapMode wrapMode,
+  GpLineGradient **lineGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetLineColors(GpLineGradient *brush,
+  ARGB color1,
+  ARGB color2)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineColors(GpLineGradient *brush,
+  ARGB* colors)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineRect(GpLineGradient *brush,
+  GpRectF *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineRectI(GpLineGradient *brush,
+  GpRect *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetLineGammaCorrection(GpLineGradient *brush,
+  BOOL useGammaCorrection)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineGammaCorrection(GpLineGradient *brush,
+  BOOL *useGammaCorrection)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineBlendCount(GpLineGradient *brush,
+  INT *count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineBlend(GpLineGradient *brush,
+  REAL *blend,
+  REAL* positions,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetLineBlend(GpLineGradient *brush,
+  GDIPCONST REAL *blend,
+  GDIPCONST REAL* positions,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLinePresetBlendCount(GpLineGradient *brush,
+  INT *count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLinePresetBlend(GpLineGradient *brush,
+  ARGB *blend,
+  REAL* positions,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetLinePresetBlend(GpLineGradient *brush,
+  GDIPCONST ARGB *blend,
+  GDIPCONST REAL* positions,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetLineSigmaBlend(GpLineGradient *brush,
+  REAL focus,
+  REAL scale)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetLineLinearBlend(GpLineGradient *brush,
+  REAL focus,
+  REAL scale)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetLineWrapMode(GpLineGradient *brush,
+  GpWrapMode wrapmode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineWrapMode(GpLineGradient *brush,
+  GpWrapMode *wrapmode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetLineTransform(GpLineGradient *brush,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetLineTransform(GpLineGradient *brush,
+  GDIPCONST GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetLineTransform(GpLineGradient* brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMultiplyLineTransform(GpLineGradient* brush,
+  GDIPCONST GpMatrix *matrix,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslateLineTransform(GpLineGradient* brush,
+  REAL dx,
+  REAL dy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipScaleLineTransform(GpLineGradient* brush,
+  REAL sx,
+  REAL sy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRotateLineTransform(GpLineGradient* brush,
+  REAL angle,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/matrix.c b/reactos/lib/gdiplus/gdiplus/matrix.c
new file mode 100644 (file)
index 0000000..7bafcb0
--- /dev/null
@@ -0,0 +1,235 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMatrix(GpMatrix **matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMatrix2(REAL m11,
+  REAL m12,
+  REAL m21,
+  REAL m22,
+  REAL dx,
+  REAL dy,
+  GpMatrix **matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMatrix3(GDIPCONST GpRectF *rect,
+  GDIPCONST GpPointF *dstplg,
+  GpMatrix **matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMatrix3I(GDIPCONST GpRect *rect,
+  GDIPCONST GpPoint *dstplg,
+  GpMatrix **matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneMatrix(GpMatrix *matrix,
+  GpMatrix **cloneMatrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteMatrix(GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetMatrixElements(GpMatrix *matrix,
+  REAL m11,
+  REAL m12,
+  REAL m21,
+  REAL m22,
+  REAL dx,
+  REAL dy)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMultiplyMatrix(GpMatrix *matrix,
+  GpMatrix* matrix2,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslateMatrix(GpMatrix *matrix,
+  REAL offsetX,
+  REAL offsetY,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipScaleMatrix(GpMatrix *matrix,
+  REAL scaleX,
+  REAL scaleY,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRotateMatrix(GpMatrix *matrix,
+  REAL angle,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipShearMatrix(GpMatrix *matrix,
+  REAL shearX,
+  REAL shearY,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipInvertMatrix(GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTransformMatrixPoints(GpMatrix *matrix,
+  GpPointF *pts,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTransformMatrixPointsI(GpMatrix *matrix,
+  GpPoint *pts,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipVectorTransformMatrixPoints(GpMatrix *matrix,
+  GpPointF *pts,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipVectorTransformMatrixPointsI(GpMatrix *matrix,
+  GpPoint *pts,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetMatrixElements(GDIPCONST GpMatrix *matrix,
+  REAL *matrixOut)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsMatrixInvertible(GDIPCONST GpMatrix *matrix,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsMatrixIdentity(GDIPCONST GpMatrix *matrix,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsMatrixEqual(GDIPCONST GpMatrix *matrix,
+  GDIPCONST GpMatrix *matrix2,
+  BOOL *result)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/memory.c b/reactos/lib/gdiplus/gdiplus/memory.c
new file mode 100644 (file)
index 0000000..7d416d9
--- /dev/null
@@ -0,0 +1,20 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+void* WINGDIPAPI
+GdipAlloc(size_t size)
+{
+  return NULL;
+}
+
+/*
+ * @unimplemented
+ */
+void WINGDIPAPI
+GdipFree(void* ptr)
+{
+}
diff --git a/reactos/lib/gdiplus/gdiplus/metafile.c b/reactos/lib/gdiplus/gdiplus/metafile.c
new file mode 100644 (file)
index 0000000..ef37466
--- /dev/null
@@ -0,0 +1,491 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+UINT WINGDIPAPI
+GdipEmfToWmfBits(HENHMETAFILE hemf,
+  UINT cbData16,
+  LPBYTE pData16,
+  INT iMapMode,
+  INT eFlags)
+{
+  return 0;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileDestPoint(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST PointF * destPoint,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileDestPointI(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST Point * destPoint,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileDestRect(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST RectF * destRect,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileDestRectI(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST Rect * destRect,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileDestPoints(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST PointF * destPoints,
+  INT count,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileDestPointsI(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST Point * destPoints,
+  INT count,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileSrcRectDestPoint(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST PointF * destPoint,
+  GDIPCONST RectF * srcRect,
+  Unit srcUnit,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileSrcRectDestPointI(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST Point * destPoint,
+  GDIPCONST Rect * srcRect,
+  Unit srcUnit,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileSrcRectDestRect(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST RectF * destRect,
+  GDIPCONST RectF * srcRect,
+  Unit srcUnit,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileSrcRectDestRectI(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST Rect * destRect,
+  GDIPCONST Rect * srcRect,
+  Unit srcUnit,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileSrcRectDestPoints(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST PointF * destPoints,
+  INT count,
+  GDIPCONST RectF * srcRect,
+  Unit srcUnit,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipEnumerateMetafileSrcRectDestPointsI(GpGraphics * graphics,
+  GDIPCONST GpMetafile * metafile,
+  GDIPCONST Point * destPoints,
+  INT count,
+  GDIPCONST Rect * srcRect,
+  Unit srcUnit,
+  EnumerateMetafileProc callback,
+  VOID * callbackData,
+  GDIPCONST GpImageAttributes * imageAttributes)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPlayMetafileRecord(GDIPCONST GpMetafile * metafile,
+  EmfPlusRecordType recordType,
+  UINT flags,
+  UINT dataSize,
+  GDIPCONST BYTE * data)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetMetafileHeaderFromEmf(HENHMETAFILE hEmf,
+  MetafileHeader * header)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetMetafileHeaderFromFile(GDIPCONST WCHAR* filename,
+  MetafileHeader * header)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetMetafileHeaderFromStream(IStream * stream,
+  MetafileHeader * header)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetMetafileHeaderFromMetafile(GpMetafile * metafile,
+  MetafileHeader * header)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetHemfFromMetafile(GpMetafile * metafile,
+  HENHMETAFILE * hEmf)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateStreamOnFile(GDIPCONST WCHAR * filename,
+  UINT access,
+  IStream **stream)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMetafileFromWmf(HMETAFILE hWmf,
+  BOOL deleteWmf,
+  GDIPCONST WmfPlaceableFileHeader * wmfPlaceableFileHeader,
+  GpMetafile **metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMetafileFromEmf(HENHMETAFILE hEmf,
+  BOOL deleteEmf,
+  GpMetafile **metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMetafileFromFile(GDIPCONST WCHAR* file,
+  GpMetafile **metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR* file,
+  GDIPCONST WmfPlaceableFileHeader * wmfPlaceableFileHeader,
+  GpMetafile **metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateMetafileFromStream(IStream * stream,
+  GpMetafile **metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRecordMetafile(HDC referenceHdc,
+  EmfType type,
+  GDIPCONST GpRectF * frameRect,
+  MetafileFrameUnit frameUnit,
+  GDIPCONST WCHAR * description,
+  GpMetafile ** metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRecordMetafileI(HDC referenceHdc,
+  EmfType type,
+  GDIPCONST GpRect * frameRect,
+  MetafileFrameUnit frameUnit,
+  GDIPCONST WCHAR * description,
+  GpMetafile ** metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRecordMetafileFileName(GDIPCONST WCHAR* fileName,
+  HDC referenceHdc,
+  EmfType type,
+  GDIPCONST GpRectF * frameRect,
+  MetafileFrameUnit frameUnit,
+  GDIPCONST WCHAR * description,
+  GpMetafile ** metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRecordMetafileFileNameI(GDIPCONST WCHAR* fileName,
+  HDC referenceHdc,
+  EmfType type,
+  GDIPCONST GpRect * frameRect,
+  MetafileFrameUnit frameUnit,
+  GDIPCONST WCHAR * description,
+  GpMetafile ** metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRecordMetafileStream(IStream * stream,
+  HDC referenceHdc,
+  EmfType type,
+  GDIPCONST GpRectF * frameRect,
+  MetafileFrameUnit frameUnit,
+  GDIPCONST WCHAR * description,
+  GpMetafile ** metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRecordMetafileStreamI(IStream * stream,
+  HDC referenceHdc,
+  EmfType type,
+  GDIPCONST GpRect * frameRect,
+  MetafileFrameUnit frameUnit,
+  GDIPCONST WCHAR * description,
+  GpMetafile ** metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetMetafileDownLevelRasterizationLimit(GpMetafile * metafile,
+  UINT metafileRasterizationLimitDpi)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetMetafileDownLevelRasterizationLimit(GDIPCONST GpMetafile * metafile,
+  UINT * metafileRasterizationLimitDpi)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipComment(GpGraphics* graphics,
+  UINT sizeData,
+  GDIPCONST BYTE * data)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipConvertToEmfPlus(const GpGraphics* refGraphics,
+  GpMetafile* metafile,
+  BOOL* conversionSuccess,
+  EmfType emfType,
+  const WCHAR* description,
+  GpMetafile** out_metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipConvertToEmfPlusToFile(const GpGraphics* refGraphics,
+  GpMetafile* metafile,
+  BOOL* conversionSuccess,
+  const WCHAR* filename,
+  EmfType emfType,
+  const WCHAR* description,
+  GpMetafile** out_metafile)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipConvertToEmfPlusToStream(const GpGraphics* refGraphics,
+  GpMetafile* metafile,
+  BOOL* conversionSuccess,
+  IStream* stream,
+  EmfType emfType,
+  const WCHAR* description,
+  GpMetafile** out_metafile)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/palette.c b/reactos/lib/gdiplus/gdiplus/palette.c
new file mode 100644 (file)
index 0000000..8055da1
--- /dev/null
@@ -0,0 +1,22 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetNearestColor(GpGraphics *graphics,
+  ARGB* argb)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+HPALETTE WINGDIPAPI
+GdipCreateHalftonePalette()
+{
+  return NULL;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/path.c b/reactos/lib/gdiplus/gdiplus/path.c
new file mode 100644 (file)
index 0000000..a8e57d7
--- /dev/null
@@ -0,0 +1,757 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreatePath2(GDIPCONST GpPointF* points,
+  GDIPCONST BYTE* types,
+  INT count,
+  GpFillMode fillMode,
+  GpPath **path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreatePath2I(GDIPCONST GpPoint* points,
+  GDIPCONST BYTE* types,
+  INT count,
+  GpFillMode fillMode,
+  GpPath **path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipClonePath(GpPath* path,
+  GpPath **clonePath)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeletePath(GpPath* path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetPath(GpPath* path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPointCount(GpPath* path,
+  INT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathTypes(GpPath* path,
+  BYTE* types,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathPoints(GpPath* path,
+  GpPointF* points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathPointsI(GpPath* path,
+  GpPoint* points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathFillMode(GpPath *path,
+  GpFillMode *fillmode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathFillMode(GpPath *path,
+  GpFillMode fillmode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathData(GpPath *path,
+  GpPathData* pathData)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipStartPathFigure(GpPath *path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipClosePathFigure(GpPath *path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipClosePathFigures(GpPath *path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathMarker(GpPath* path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipClearPathMarkers(GpPath* path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipReversePath(GpPath* path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathLastPoint(GpPath* path,
+  GpPointF* lastPoint)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathLine(GpPath *path,
+  REAL x1,
+  REAL y1,
+  REAL x2,
+  REAL y2)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathLine2(GpPath *path,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathArc(GpPath *path,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathBezier(GpPath *path,
+  REAL x1,
+  REAL y1,
+  REAL x2,
+  REAL y2,
+  REAL x3,
+  REAL y3,
+  REAL x4,
+  REAL y4)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathBeziers(GpPath *path,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathCurve(GpPath *path,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathCurve2(GpPath *path,
+  GDIPCONST GpPointF *points,
+  INT count,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathCurve3(GpPath *path,
+  GDIPCONST GpPointF *points,
+  INT count,
+  INT offset,
+  INT numberOfSegments,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathClosedCurve(GpPath *path,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathClosedCurve2(GpPath *path,
+  GDIPCONST GpPointF *points,
+  INT count,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathRectangle(GpPath *path,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathRectangles(GpPath *path,
+  GDIPCONST GpRectF *rects,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathEllipse(GpPath *path,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathPie(GpPath *path,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathPolygon(GpPath *path,
+  GDIPCONST GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathPath(GpPath *path,
+  GDIPCONST GpPath* addingPath,
+  BOOL connect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathString(GpPath *path,
+  GDIPCONST WCHAR *string,
+  INT length,
+  GDIPCONST GpFontFamily *family,
+  INT style,
+  REAL emSize,
+  GDIPCONST RectF *layoutRect,
+  GDIPCONST GpStringFormat *format)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathStringI(GpPath *path,
+  GDIPCONST WCHAR *string,
+  INT length,
+  GDIPCONST GpFontFamily *family,
+  INT style,
+  REAL emSize,
+  GDIPCONST Rect *layoutRect,
+  GDIPCONST GpStringFormat *format)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathLineI(GpPath *path,
+  INT x1,
+  INT y1,
+  INT x2,
+  INT y2)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathLine2I(GpPath *path,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathArcI(GpPath *path,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathBezierI(GpPath *path,
+  INT x1,
+  INT y1,
+  INT x2,
+  INT y2,
+  INT x3,
+  INT y3,
+  INT x4,
+  INT y4)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathBeziersI(GpPath *path,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathCurveI(GpPath *path,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathCurve2I(GpPath *path,
+  GDIPCONST GpPoint *points,
+  INT count,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathCurve3I(GpPath *path,
+  GDIPCONST GpPoint *points,
+  INT count,
+  INT offset,
+  INT numberOfSegments,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathClosedCurveI(GpPath *path,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathClosedCurve2I(GpPath *path,
+  GDIPCONST GpPoint *points,
+  INT count,
+  REAL tension)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathRectangleI(GpPath *path,
+  INT x,
+  INT y,
+  INT width,
+  INT height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathRectanglesI(GpPath *path,
+  GDIPCONST GpRect *rects,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathEllipseI(GpPath *path,
+  INT x,
+  INT y,
+  INT width,
+  INT height)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathPieI(GpPath *path,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  REAL startAngle,
+  REAL sweepAngle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipAddPathPolygonI(GpPath *path,
+  GDIPCONST GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipFlattenPath(GpPath *path,
+  GpMatrix* matrix,
+  REAL flatness)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipWindingModeOutline(GpPath *path,
+  GpMatrix *matrix,
+  REAL flatness)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipWidenPath(GpPath *nativePath,
+  GpPen *pen,
+  GpMatrix *matrix,
+  REAL flatness)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipWarpPath(GpPath *path,
+  GpMatrix* matrix,
+  GDIPCONST GpPointF *points,
+  INT count,
+  REAL srcx,
+  REAL srcy,
+  REAL srcwidth,
+  REAL srcheight,
+  WarpMode warpMode,
+  REAL flatness)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTransformPath(GpPath* path,
+  GpMatrix* matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathWorldBounds(GpPath* path,
+  GpRectF* bounds,
+  GDIPCONST GpMatrix *matrix,
+  GDIPCONST GpPen *pen)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathWorldBoundsI(GpPath* path,
+  GpRect* bounds,
+  GDIPCONST GpMatrix *matrix,
+  GDIPCONST GpPen *pen)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisiblePathPoint(GpPath* path,
+  REAL x,
+  REAL y,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisiblePathPointI(GpPath* path,
+  INT x,
+  INT y,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsOutlineVisiblePathPoint(GpPath* path,
+  REAL x,
+  REAL y,
+  GpPen *pen,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsOutlineVisiblePathPointI(GpPath* path,
+  INT x,
+  INT y,
+  GpPen *pen,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/pathgradient.c b/reactos/lib/gdiplus/gdiplus/pathgradient.c
new file mode 100644 (file)
index 0000000..77e3c2a
--- /dev/null
@@ -0,0 +1,395 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreatePathGradient(GDIPCONST GpPointF* points,
+  INT count,
+  GpWrapMode wrapMode,
+  GpPathGradient **polyGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreatePathGradientI(GDIPCONST GpPoint* points,
+  INT count,
+  GpWrapMode wrapMode,
+  GpPathGradient **polyGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreatePathGradientFromPath(GDIPCONST GpPath* path,
+  GpPathGradient **polyGradient)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientCenterColor(GpPathGradient *brush,
+  ARGB* colors)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientCenterColor(GpPathGradient *brush,
+  ARGB colors)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientSurroundColorsWithCount(GpPathGradient *brush,
+  ARGB* color,
+  INT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientSurroundColorsWithCount(GpPathGradient *brush,
+  GDIPCONST ARGB* color,
+  INT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientPath(GpPathGradient *brush,
+  GpPath *path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientPath(GpPathGradient *brush,
+  GDIPCONST GpPath *path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientCenterPoint(GpPathGradient *brush,
+  GpPointF* points)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientCenterPointI(GpPathGradient *brush,
+  GpPoint* points)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientCenterPoint(GpPathGradient *brush,
+  GDIPCONST GpPointF* points)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientCenterPointI(GpPathGradient *brush,
+  GDIPCONST GpPoint* points)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientRect(GpPathGradient *brush,
+  GpRectF *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientRectI(GpPathGradient *brush,
+  GpRect *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientPointCount(GpPathGradient *brush,
+  INT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientSurroundColorCount(GpPathGradient *brush,
+  INT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientGammaCorrection(GpPathGradient *brush,
+  BOOL useGammaCorrection)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientGammaCorrection(GpPathGradient *brush,
+  BOOL *useGammaCorrection)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientBlendCount(GpPathGradient *brush,
+  INT *count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientBlend(GpPathGradient *brush,
+  REAL *blend,
+  REAL *positions,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientBlend(GpPathGradient *brush,
+  GDIPCONST REAL *blend,
+  GDIPCONST REAL *positions,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientPresetBlendCount(GpPathGradient *brush,
+  INT *count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientPresetBlend(GpPathGradient *brush,
+  ARGB *blend,
+  REAL* positions,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientPresetBlend(GpPathGradient *brush,
+  GDIPCONST ARGB *blend,
+  GDIPCONST REAL* positions,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientSigmaBlend(GpPathGradient *brush,
+  REAL focus,
+  REAL scale)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientWrapMode(GpPathGradient *brush,
+  GpWrapMode *wrapmode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientWrapMode(GpPathGradient *brush,
+  GpWrapMode wrapmode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientTransform(GpPathGradient *brush,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientTransform(GpPathGradient *brush,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetPathGradientTransform(GpPathGradient* brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMultiplyPathGradientTransform(GpPathGradient* brush,
+  GDIPCONST GpMatrix *matrix,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslatePathGradientTransform(GpPathGradient* brush,
+  REAL dx,
+  REAL dy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipScalePathGradientTransform(GpPathGradient* brush,
+  REAL sx,
+  REAL sy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRotatePathGradientTransform(GpPathGradient* brush,
+  REAL angle,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPathGradientFocusScales(GpPathGradient *brush,
+  REAL* xScale,
+  REAL* yScale)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPathGradientFocusScales(GpPathGradient *brush,
+  REAL xScale,
+  REAL yScale)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/pathiterator.c b/reactos/lib/gdiplus/gdiplus/pathiterator.c
new file mode 100644 (file)
index 0000000..5dc131f
--- /dev/null
@@ -0,0 +1,159 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreatePathIter(GpPathIterator **iterator,
+  GpPath* path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeletePathIter(GpPathIterator *iterator)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterNextSubpath(GpPathIterator* iterator,
+  INT *resultCount,
+  INT* startIndex,
+  INT* endIndex,
+  BOOL* isClosed)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterNextSubpathPath(GpPathIterator* iterator,
+  INT* resultCount,
+  GpPath* path,
+  BOOL* isClosed)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterNextPathType(GpPathIterator* iterator,
+  INT* resultCount,
+  BYTE* pathType,
+  INT* startIndex,
+  INT* endIndex)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterNextMarker(GpPathIterator* iterator,
+  INT *resultCount,
+  INT* startIndex,
+  INT* endIndex)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterNextMarkerPath(GpPathIterator* iterator,
+  INT* resultCount,
+  GpPath* path)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterGetCount(GpPathIterator* iterator,
+  INT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterGetSubpathCount(GpPathIterator* iterator,
+  INT* count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterIsValid(GpPathIterator* iterator,
+  BOOL* valid)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterHasCurve(GpPathIterator* iterator,
+  BOOL* hasCurve)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterRewind(GpPathIterator* iterator)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterEnumerate(GpPathIterator* iterator,
+  INT* resultCount,
+  GpPointF *points,
+  BYTE *types,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipPathIterCopyData(GpPathIterator* iterator,
+  INT* resultCount,
+  GpPointF* points,
+  BYTE* types,
+  INT startIndex,
+  INT endIndex)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/pen.c b/reactos/lib/gdiplus/gdiplus/pen.c
new file mode 100644 (file)
index 0000000..d0926fa
--- /dev/null
@@ -0,0 +1,487 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreatePen1(ARGB color,
+  REAL width,
+  GpUnit unit,
+  GpPen **pen)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreatePen2(GpBrush *brush,
+  REAL width,
+  GpUnit unit,
+  GpPen **pen)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipClonePen(GpPen *pen,
+  GpPen **clonepen)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeletePen(GpPen *pen)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenWidth(GpPen *pen,
+  REAL width)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenWidth(GpPen *pen,
+  REAL *width)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenUnit(GpPen *pen,
+  GpUnit unit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenUnit(GpPen *pen,
+  GpUnit *unit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenLineCap197819(GpPen *pen,
+  GpLineCap startCap,
+  GpLineCap endCap,
+  GpDashCap dashCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenStartCap(GpPen *pen,
+  GpLineCap startCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenEndCap(GpPen *pen,
+  GpLineCap endCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenDashCap197819(GpPen *pen,
+  GpDashCap dashCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenStartCap(GpPen *pen,
+  GpLineCap *startCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenEndCap(GpPen *pen,
+  GpLineCap *endCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenDashCap197819(GpPen *pen,
+  GpDashCap *dashCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenLineJoin(GpPen *pen,
+  GpLineJoin lineJoin)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenLineJoin(GpPen *pen,
+  GpLineJoin *lineJoin)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenCustomStartCap(GpPen *pen,
+  GpCustomLineCap* customCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenCustomStartCap(GpPen *pen,
+  GpCustomLineCap** customCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenCustomEndCap(GpPen *pen,
+  GpCustomLineCap* customCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenCustomEndCap(GpPen *pen,
+  GpCustomLineCap** customCap)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenMiterLimit(GpPen *pen,
+  REAL miterLimit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenMiterLimit(GpPen *pen,
+  REAL *miterLimit)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenMode(GpPen *pen,
+  GpPenAlignment penMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenMode(GpPen *pen,
+  GpPenAlignment *penMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenTransform(GpPen *pen,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenTransform(GpPen *pen,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetPenTransform(GpPen *pen)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMultiplyPenTransform(GpPen *pen,
+  GDIPCONST GpMatrix *matrix,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslatePenTransform(GpPen *pen,
+  REAL dx,
+  REAL dy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipScalePenTransform(GpPen *pen,
+  REAL sx,
+  REAL sy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRotatePenTransform(GpPen *pen,
+  REAL angle,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenColor(GpPen *pen,
+  ARGB argb)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenColor(GpPen *pen,
+  ARGB *argb)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenBrushFill(GpPen *pen,
+  GpBrush *brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenBrushFill(GpPen *pen,
+  GpBrush **brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenFillType(GpPen *pen,
+  GpPenType* type)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenDashStyle(GpPen *pen,
+  GpDashStyle *dashstyle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenDashStyle(GpPen *pen,
+  GpDashStyle dashstyle)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenDashOffset(GpPen *pen,
+  REAL *offset)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenDashOffset(GpPen *pen,
+  REAL offset)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenDashCount(GpPen *pen,
+  INT *count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenDashArray(GpPen *pen,
+  GDIPCONST REAL *dash,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenDashArray(GpPen *pen,
+  REAL *dash,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenCompoundCount(GpPen *pen,
+  INT *count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetPenCompoundArray(GpPen *pen,
+  GDIPCONST REAL *dash,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetPenCompoundArray(GpPen *pen,
+  REAL *dash,
+  INT count)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/region.c b/reactos/lib/gdiplus/gdiplus/region.c
new file mode 100644 (file)
index 0000000..2b8657c
--- /dev/null
@@ -0,0 +1,356 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateRegion(GpRegion **region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateRegionRect(GDIPCONST GpRectF *rect,
+  GpRegion **region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateRegionRectI(GDIPCONST GpRect *rect,
+  GpRegion **region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateRegionPath(GpPath *path,
+  GpRegion **region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateRegionRgnData(GDIPCONST BYTE *regionData,
+  INT size,
+  GpRegion **region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateRegionHrgn(HRGN hRgn,
+  GpRegion **region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneRegion(GpRegion *region,
+  GpRegion **cloneRegion)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteRegion(GpRegion *region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetInfinite(GpRegion *region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetEmpty(GpRegion *region)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCombineRegionRect(GpRegion *region,
+  GDIPCONST GpRectF *rect,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCombineRegionRectI(GpRegion *region,
+  GDIPCONST GpRect *rect,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCombineRegionPath(GpRegion *region,
+  GpPath *path,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCombineRegionRegion(GpRegion *region,
+  GpRegion *region2,
+  CombineMode combineMode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslateRegion(GpRegion *region,
+  REAL dx,
+  REAL dy)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslateRegionI(GpRegion *region,
+  INT dx,
+  INT dy)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTransformRegion(GpRegion *region,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRegionBounds(GpRegion *region,
+  GpGraphics *graphics,
+  GpRectF *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRegionBoundsI(GpRegion *region,
+  GpGraphics *graphics,
+  GpRect *rect)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRegionHRgn(GpRegion *region,
+  GpGraphics *graphics,
+  HRGN *hRgn)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsEmptyRegion(GpRegion *region,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsInfiniteRegion(GpRegion *region,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsEqualRegion(GpRegion *region,
+  GpRegion *region2,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRegionDataSize(GpRegion *region,
+  UINT * bufferSize)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRegionData(GpRegion *region,
+  BYTE * buffer,
+  UINT bufferSize,
+  UINT * sizeFilled)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisibleRegionPoint(GpRegion *region,
+  REAL x,
+  REAL y,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisibleRegionPointI(GpRegion *region,
+  INT x,
+  INT y,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisibleRegionRect(GpRegion *region,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipIsVisibleRegionRectI(GpRegion *region,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  GpGraphics *graphics,
+  BOOL *result)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRegionScansCount(GpRegion *region,
+  UINT* count,
+  GpMatrix* matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRegionScans(GpRegion *region,
+  GpRectF* rects,
+  INT* count,
+  GpMatrix* matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetRegionScansI(GpRegion *region,
+  GpRect* rects,
+  INT* count,
+  GpMatrix* matrix)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/string.c b/reactos/lib/gdiplus/gdiplus/string.c
new file mode 100644 (file)
index 0000000..828e6f0
--- /dev/null
@@ -0,0 +1,308 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateStringFormat(INT formatAttributes,
+  LANGID language,
+  GpStringFormat **format)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipStringFormatGetGenericDefault(GpStringFormat **format)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipStringFormatGetGenericTypographic(GpStringFormat **format)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDeleteStringFormat(GpStringFormat *format)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCloneStringFormat(GDIPCONST GpStringFormat *format,
+  GpStringFormat **newFormat)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetStringFormatFlags(GpStringFormat *format,
+  INT flags)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatFlags(GDIPCONST GpStringFormat *format,
+  INT *flags)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetStringFormatAlign(GpStringFormat *format,
+  StringAlignment align)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatAlign(GDIPCONST GpStringFormat *format,
+  StringAlignment *align)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetStringFormatLineAlign(GpStringFormat *format,
+  StringAlignment align)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatLineAlign(GDIPCONST GpStringFormat *format,
+  StringAlignment *align)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetStringFormatTrimming(GpStringFormat *format,
+  StringTrimming trimming)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatTrimming(GDIPCONST GpStringFormat *format,
+  StringTrimming *trimming)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetStringFormatHotkeyPrefix(GpStringFormat *format,
+  INT hotkeyPrefix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatHotkeyPrefix(GDIPCONST GpStringFormat *format,
+  INT *hotkeyPrefix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetStringFormatTabStops(GpStringFormat *format,
+  REAL firstTabOffset,
+  INT count,
+  GDIPCONST REAL *tabStops)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatTabStops(GDIPCONST GpStringFormat *format,
+  INT count,
+  REAL *firstTabOffset,
+  REAL *tabStops)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatTabStopCount(GDIPCONST GpStringFormat *format,
+  INT * count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetStringFormatDigitSubstitution(GpStringFormat *format,
+  LANGID language,
+  StringDigitSubstitute substitute)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatDigitSubstitution(GDIPCONST GpStringFormat *format,
+  LANGID *language,
+  StringDigitSubstitute *substitute)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetStringFormatMeasurableCharacterRangeCount(GDIPCONST GpStringFormat *format,
+  INT *count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetStringFormatMeasurableCharacterRanges(GpStringFormat *format,
+  INT rangeCount,
+  GDIPCONST CharacterRange *ranges)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawString(GpGraphics *graphics,
+  GDIPCONST WCHAR *string,
+  INT length,
+  GDIPCONST GpFont *font,
+  GDIPCONST RectF *layoutRect,
+  GDIPCONST GpStringFormat *stringFormat,
+  GDIPCONST GpBrush *brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMeasureString(GpGraphics *graphics,
+  GDIPCONST WCHAR *string,
+  INT length,
+  GDIPCONST GpFont *font,
+  GDIPCONST RectF *layoutRect,
+  GDIPCONST GpStringFormat *stringFormat,
+  RectF *boundingBox,
+  INT *codepointsFitted,
+  INT *linesFilled)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMeasureCharacterRanges(GpGraphics *graphics,
+  GDIPCONST WCHAR *string,
+  INT length,
+  GDIPCONST GpFont *font,
+  GDIPCONST RectF *layoutRect,
+  GDIPCONST GpStringFormat *stringFormat,
+  INT regionCount,
+  GpRegion **regions)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipDrawDriverString(GpGraphics *graphics,
+  GDIPCONST UINT16 *text,
+  INT length,
+  GDIPCONST GpFont *font,
+  GDIPCONST GpBrush *brush,
+  GDIPCONST PointF *positions,
+  INT flags,
+  GDIPCONST GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMeasureDriverString(GpGraphics *graphics,
+  GDIPCONST UINT16 *text,
+  INT length,
+  GDIPCONST GpFont *font,
+  GDIPCONST PointF *positions,
+  INT flags,
+  GDIPCONST GpMatrix *matrix,
+  RectF *boundingBox)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/texture.c b/reactos/lib/gdiplus/gdiplus/texture.c
new file mode 100644 (file)
index 0000000..f0ace4a
--- /dev/null
@@ -0,0 +1,179 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateTexture(GpImage *image,
+  GpWrapMode wrapmode,
+  GpTexture **texture)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateTexture2(GpImage *image,
+  GpWrapMode wrapmode,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  GpTexture **texture)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateTextureIA(GpImage *image,
+  GDIPCONST GpImageAttributes *imageAttributes,
+  REAL x,
+  REAL y,
+  REAL width,
+  REAL height,
+  GpTexture **texture)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateTexture2I(GpImage *image,
+  GpWrapMode wrapmode,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  GpTexture **texture)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipCreateTextureIAI(GpImage *image,
+  GDIPCONST GpImageAttributes *imageAttributes,
+  INT x,
+  INT y,
+  INT width,
+  INT height,
+  GpTexture **texture)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetTextureTransform(GpTexture *brush,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetTextureTransform(GpTexture *brush,
+  GDIPCONST GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetTextureTransform(GpTexture* brush)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMultiplyTextureTransform(GpTexture* brush,
+  GDIPCONST GpMatrix *matrix,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslateTextureTransform(GpTexture* brush,
+  REAL dx,
+  REAL dy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipScaleTextureTransform(GpTexture* brush,
+  REAL sx,
+  REAL sy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRotateTextureTransform(GpTexture* brush,
+  REAL angle,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetTextureWrapMode(GpTexture *brush,
+  GpWrapMode wrapmode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetTextureWrapMode(GpTexture *brush,
+  GpWrapMode *wrapmode)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetTextureImage(GpTexture *brush,
+  GpImage **image)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/gdiplus/transform.c b/reactos/lib/gdiplus/gdiplus/transform.c
new file mode 100644 (file)
index 0000000..b6cac45
--- /dev/null
@@ -0,0 +1,113 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+#include <debug.h>
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipSetWorldTransform(GpGraphics *graphics,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetWorldTransform(GpGraphics *graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipMultiplyWorldTransform(GpGraphics *graphics,
+  GDIPCONST GpMatrix *matrix,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTranslateWorldTransform(GpGraphics *graphics,
+  REAL dx,
+  REAL dy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipScaleWorldTransform(GpGraphics *graphics,
+  REAL sx,
+  REAL sy,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipRotateWorldTransform(GpGraphics *graphics,
+  REAL angle,
+  GpMatrixOrder order)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipGetWorldTransform(GpGraphics *graphics,
+  GpMatrix *matrix)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipResetPageTransform(GpGraphics *graphics)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTransformPoints(GpGraphics *graphics,
+  GpCoordinateSpace destSpace,
+  GpCoordinateSpace srcSpace,
+  GpPointF *points,
+  INT count)
+{
+  return NotImplemented;
+}
+
+/*
+ * @unimplemented
+ */
+GpStatus WINGDIPAPI
+GdipTransformPointsI(GpGraphics *graphics,
+  GpCoordinateSpace destSpace,
+  GpCoordinateSpace srcSpace,
+  GpPoint *points,
+  INT count)
+{
+  return NotImplemented;
+}
diff --git a/reactos/lib/gdiplus/include/GdiPlusPrivate.h b/reactos/lib/gdiplus/include/GdiPlusPrivate.h
new file mode 100644 (file)
index 0000000..e5b9e7e
--- /dev/null
@@ -0,0 +1,342 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS gdiplus.dll
+ * FILE:        include/GdiPlusPrivate.h
+ * PURPOSE:     GDI+ private definitions
+ */
+#ifndef __GDIPLUSPRIVATE_H
+#define __GDIPLUSPRIVATE_H
+
+#include <GdiPlusEnums.h>
+#include <GdiPlusPixelFormats.h>
+
+typedef float REAL;
+typedef ARGB Color;
+#include <GdiPlusColorMatrix.h>
+
+#define WINGDIPAPI __stdcall
+#define GDIPCONST const
+
+typedef BOOL (CALLBACK * ImageAbort)(VOID *);
+typedef ImageAbort DrawImageAbort;
+typedef ImageAbort GetThumbnailImageAbort;
+typedef BOOL (CALLBACK * EnumerateMetafileProc)(EmfPlusRecordType,
+  UINT,
+  UINT,
+  const BYTE*,
+  VOID*);
+
+typedef enum {
+  Ok = 0,
+  GenericError = 1,
+  InvalidParameter = 2,
+  OutOfMemory = 3,
+  ObjectBusy = 4,
+  InsufficientBuffer = 5,
+  NotImplemented = 6,
+  Win32Error = 7,
+  WrongState = 8,
+  Aborted = 9,
+  FileNotFound = 10,
+  ValueOverflow = 11,
+  AccessDenied = 12,
+  UnknownImageFormat = 13,
+  FontFamilyNotFound = 14,
+  FontStyleNotFound = 15,
+  NotTrueTypeFont = 16,
+  UnsupportedGdiplusVersion = 17,
+  GdiplusNotInitialized = 18,
+  PropertyNotFound = 19,
+  PropertyNotSupported = 20,
+  ProfileNotFound = 21
+} GpStatus;
+
+typedef GpStatus Status;
+
+typedef struct
+{
+} GpAdjustableArrowCap;
+
+typedef struct
+{
+} GpBitmap;
+
+typedef struct
+{
+} GpGraphics;
+
+typedef struct
+{
+} BitmapData;
+
+typedef struct
+{
+} CGpEffect;
+
+typedef struct
+{
+} GpCachedBitmap;
+
+typedef struct
+{
+} IDirectDrawSurface7;
+
+typedef struct
+{
+} GpBrush;
+
+typedef BrushType GpBrushType;
+
+typedef HatchStyle GpHatchStyle;
+
+typedef struct
+{
+} GpHatch;
+
+typedef struct
+{
+} GpPath;
+
+typedef struct
+{
+} GpRegion;
+
+typedef struct
+{
+  CLSID Clsid;
+  GUID FormatID;
+  WCHAR *CodecName;
+  WCHAR *DllName;
+  WCHAR *FormatDescription;
+  WCHAR *FilenameExtension;
+  WCHAR *MimeType;
+  DWORD Flags;
+  DWORD Version;
+  DWORD SigCount;
+  DWORD SigSize;
+  BYTE *SigPattern;
+  BYTE *SigMask;
+} ImageCodecInfo;
+
+typedef Unit GpUnit;
+
+typedef struct
+{
+} GpPen;
+
+typedef struct
+{
+  REAL X;
+  REAL Y;
+} GpPointF;
+
+typedef struct
+{
+  INT X;
+  INT Y;
+} GpPoint;
+
+typedef FillMode GpFillMode;
+
+typedef struct
+{
+} GpSolidFill;
+
+typedef struct
+{
+} GpFont;
+
+typedef struct
+{
+} GpFontFamily;
+
+typedef struct
+{
+} GpFontCollection;
+
+typedef FlushIntention GpFlushIntention;
+
+typedef struct
+{
+} GpImage;
+
+typedef struct
+{
+} GpImageAttributes;
+
+typedef struct
+{
+} GpMatrix;
+
+typedef struct
+{
+  GUID Guid;
+  ULONG NumberOfValues;
+  ULONG Type;
+  VOID *Value;
+} EncoderParameter;
+
+typedef struct
+{
+  UINT Count;
+  EncoderParameter Parameter[1];
+} EncoderParameters;
+
+typedef struct
+{
+  PROPID id;
+  ULONG length;
+  WORD type;
+  VOID *value;
+} PropertyItem;
+
+typedef struct
+{
+  UINT Size;
+  UINT Position;
+  VOID *Desc;
+  UINT DescSize;
+  UINT *Data;
+  UINT DataSize;
+  UINT Cookie;
+} ImageItemData;
+
+typedef enum {
+  ColorChannelFlagsC = 0,
+  ColorChannelFlagsM = 1,
+  ColorChannelFlagsY = 2,
+  ColorChannelFlagsK = 3,
+  ColorChannelFlagsLast = 4
+} ColorChannelFlags;
+
+typedef LineCap GpLineCap;
+
+typedef struct
+{
+} GpCustomLineCap;
+
+typedef LineJoin GpLineJoin;
+
+typedef WrapMode GpWrapMode;
+
+typedef struct
+{
+} GpLineGradient;
+
+typedef MatrixOrder GpMatrixOrder;
+
+typedef struct
+{
+} GpMetafile;
+
+typedef struct
+{
+  REAL X;
+  REAL Y;
+} PointF;
+
+typedef struct
+{
+  INT X;
+  INT Y;
+} Point;
+
+typedef struct
+{
+  REAL X;
+  REAL Y;
+  REAL Width;
+  REAL Height;
+} RectF;
+
+typedef RectF GpRectF;
+
+typedef struct
+{
+  INT X;
+  INT Y;
+  INT Width;
+  INT Height;
+} Rect;
+
+typedef Rect GpRect;
+
+typedef struct
+{
+} MetafileHeader;
+
+typedef struct {
+  INT16 Left;
+  INT16 Top;
+  INT16 Right;
+  INT16 Bottom;
+} PWMFRect16;
+
+typedef struct {
+  UINT32 Key;
+  INT16 Hmf;
+  PWMFRect16 BoundingBox;
+  INT16 Inch;
+  UINT32 Reserved;
+  INT16 Checksum;
+} WmfPlaceableFileHeader;
+
+typedef struct
+{
+} GpPathData;
+
+typedef struct
+{
+} GpStringFormat;
+
+typedef struct
+{
+} GpPathGradient;
+
+typedef struct
+{
+} GpPathIterator;
+
+typedef DashCap GpDashCap;
+
+typedef PenAlignment GpPenAlignment;
+
+typedef PenType GpPenType;
+
+typedef DashStyle GpDashStyle;
+
+typedef struct
+{
+} CharacterRange;
+
+typedef struct
+{
+} GpTexture;
+
+typedef CoordinateSpace GpCoordinateSpace;
+
+typedef enum {
+  DebugEventLevelFatal,
+  DebugEventLevelWarning
+} DebugEventLevel;
+
+typedef VOID (WINAPI *DebugEventProc)(DebugEventLevel level,
+  CHAR *message);
+
+typedef struct
+{
+  UINT32 GdiplusVersion;
+  DebugEventProc DebugEventCallback;
+  BOOL SuppressBackgroundThread;
+  BOOL SuppressExternalCodecs;
+} GdiplusStartupInput;
+
+typedef Status (WINAPI *NotificationHookProc)(OUT ULONG_PTR *token);
+typedef VOID (WINAPI *NotificationUnhookProc)(ULONG_PTR token);
+
+typedef struct {
+  NotificationHookProc NotificationHook;
+  NotificationUnhookProc NotificationUnhook;
+} GdiplusStartupOutput;
+
+#endif /* __GDIPLUSPRIVATE_H */
diff --git a/reactos/lib/gdiplus/include/debug.h b/reactos/lib/gdiplus/include/debug.h
new file mode 100644 (file)
index 0000000..ee6aafe
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS gdiplus.dll
+ * FILE:        include/debug.h
+ * PURPOSE:     Debugging support macros
+ * DEFINES:     DBG     - Enable debug output
+ *              NASSERT - Disable assertions
+ */
+#ifndef __DEBUG_H
+#define __DEBUG_H
+
+#define NORMAL_MASK    0x000000FF
+#define SPECIAL_MASK   0xFFFFFF00
+#define MIN_TRACE      0x00000001
+#define MID_TRACE      0x00000002
+#define MAX_TRACE      0x00000003
+
+#define DEBUG_ULTRA    0xFFFFFFFF
+
+#ifdef ASSERT
+#undef ASSERT
+#endif
+
+#ifdef DBG
+
+extern DWORD DebugTraceLevel;
+
+#define D(_t_, _x_) \
+    if (((DebugTraceLevel & NORMAL_MASK) >= _t_) || \
+        ((DebugTraceLevel & _t_) > NORMAL_MASK)) { \
+        DbgPrint("(%hS:%d)(%hS) ", __FILE__, __LINE__, __FUNCTION__); \
+                   DbgPrint _x_; \
+    }
+
+#ifdef NASSERT
+#define ASSERT(x)
+#else /* NASSERT */
+#define ASSERT(x) if (!(x)) { D(MIN_TRACE, ("Assertion "#x" failed at %s:%d\n", __FILE__, __LINE__)); }
+#endif /* NASSERT */
+
+#else /* DBG */
+
+#define D(_t_, _x_)
+
+#define ASSERT(x)
+
+#endif /* DBG */
+
+#ifdef assert
+#undef assert
+#endif
+#define assert(x) ASSERT(x)
+
+
+#define UNIMPLEMENTED \
+    D(MIN_TRACE, ("is unimplemented, please try again later.\n"));
+
+#define CHECKPOINT \
+    D(DEBUG_CHECK, ("\n"));
+
+#define DPRINT(X...) D(DEBUG_CHECK, (X))
+
+#define CP CHECKPOINT
+
+#endif /* __DEBUG_H */
diff --git a/reactos/lib/gdiplus/makefile b/reactos/lib/gdiplus/makefile
new file mode 100644 (file)
index 0000000..bee8134
--- /dev/null
@@ -0,0 +1,67 @@
+PATH_TO_TOP = ../..
+
+TARGET_REGTESTS = yes
+
+TARGET_BUILDENV_TEST = yes
+
+TARGET_TYPE = dynlink
+
+TARGET_NAME = gdiplus
+
+TARGET_BASE = $(TARGET_BASE_LIB_GDIPLUS)
+
+TARGET_SDKLIBS = ntdll.a kernel32.a gdi32.a msvcrt.a
+
+TARGET_CFLAGS = \
+ -I./include \
+ -DUNICODE \
+ -Wall \
+ -Werror \
+ -fno-builtin \
+ -D__USE_W32API \
+ -DWINVER=0x0600 \
+ -D_WIN32_WINNT=0x0501
+
+# require os code to explicitly request A/W version of structs/functions
+TARGET_CFLAGS += -D_DISABLE_TIDENTS
+
+TARGET_LFLAGS = -nostartfiles -nostdlib
+
+GDIPLUS_OBJECTS = \
+  gdiplus/arrow.o \
+  gdiplus/bitmap.o \
+  gdiplus/brush.o \
+  gdiplus/clip.o \
+  gdiplus/codec.o \
+  gdiplus/container.o \
+  gdiplus/dllmain.o \
+  gdiplus/draw.o \
+  gdiplus/effect.o \
+  gdiplus/fill.o \
+  gdiplus/font.o \
+  gdiplus/graphics.o \
+  gdiplus/image.o \
+  gdiplus/linecap.o \
+  gdiplus/linegradient.o \
+  gdiplus/matrix.o \
+  gdiplus/memory.o \
+  gdiplus/metafile.o \
+  gdiplus/palette.o \
+  gdiplus/path.o \
+  gdiplus/pathgradient.o \
+  gdiplus/pathiterator.o \
+  gdiplus/pen.o \
+  gdiplus/region.o \
+  gdiplus/string.o \
+  gdiplus/texture.o \
+  gdiplus/transform.o
+
+TARGET_OBJECTS = $(GDIPLUS_OBJECTS)
+
+DEP_OBJECTS = $(TARGET_OBJECTS)
+
+include $(PATH_TO_TOP)/rules.mak
+
+include $(TOOLS_PATH)/helper.mk
+
+include $(TOOLS_PATH)/depend.mk
diff --git a/reactos/lib/gdiplus/tests/.cvsignore b/reactos/lib/gdiplus/tests/.cvsignore
new file mode 100644 (file)
index 0000000..576b35e
--- /dev/null
@@ -0,0 +1,6 @@
+_regtests.c
+_rtstub.c
+Makefile.tests
+*.d
+*.o
+*.a
diff --git a/reactos/lib/gdiplus/tests/Makefile b/reactos/lib/gdiplus/tests/Makefile
new file mode 100644 (file)
index 0000000..9149f8a
--- /dev/null
@@ -0,0 +1,34 @@
+PATH_TO_TOP = ../../..
+
+TARGET_TYPE = library
+
+TARGET_NAME = regtests
+
+TARGET_LIBPATH = .
+
+TARGET_CFLAGS = \
+ -I../include \
+ -DUNICODE \
+ -Wall \
+ -Werror \
+ -fno-builtin \
+ -D__USE_W32API \
+ -DWINVER=0x0600 \
+ -D_WIN32_WINNT=0x0501 \
+  -I$(REGTESTS_PATH_INC)
+
+-include Makefile.tests
+
+TARGET_OBJECTS = \
+  _regtests.o \
+  passthrough.o \
+  $(addprefix tests/, $(TESTS))
+
+include $(PATH_TO_TOP)/rules.mak
+
+include $(TOOLS_PATH)/helper.mk
+
+run: all
+       @$(CC) -o _runtest.exe _rtstub.o regtests.a $(SDK_PATH_LIB)/rtshared.a ../gdiplus.a
+       @_runtest.exe
+       @$(RM) _runtest.exe
diff --git a/reactos/lib/gdiplus/tests/passthrough.c b/reactos/lib/gdiplus/tests/passthrough.c
new file mode 100644 (file)
index 0000000..be7ccab
--- /dev/null
@@ -0,0 +1,49 @@
+#include <windows.h>
+#define NTOS_MODE_USER
+#include <ntos.h>
+#include "regtests.h"
+
+static PVOID
+GetFunction(LPSTR FileName,
+  LPSTR FunctionName)
+{
+  HMODULE hModule;
+  PVOID Function;
+
+  hModule = GetModuleHandleA(FileName);
+  if (hModule != NULL) 
+    {
+      Function = GetProcAddress(hModule, FunctionName);
+    }
+  else
+         {
+      hModule = LoadLibraryA(FileName);
+      if (hModule != NULL)
+        {
+          Function = GetProcAddress(hModule, FunctionName);
+          //FreeLibrary(hModule);
+        }
+    }
+  return Function;
+}
+
+typedef PVOID STDCALL (*RTL_ALLOCATE_HEAP)(PVOID a1, ULONG a2, ULONG a3);
+
+PVOID STDCALL
+RtlAllocateHeap(PVOID a1,
+  ULONG a2,
+  ULONG a3)
+{
+  RTL_ALLOCATE_HEAP p;
+  p = GetFunction("ntdll.dll", "RtlAllocateHeap");
+  return p(a1, a2, a3);
+}
+
+BOOLEAN STDCALL
+RtlFreeHeap(
+  HANDLE heap,
+  ULONG flags,
+  PVOID ptr)
+{
+  return TRUE;
+}
diff --git a/reactos/lib/gdiplus/tests/tests/.cvsignore b/reactos/lib/gdiplus/tests/tests/.cvsignore
new file mode 100644 (file)
index 0000000..31dc307
--- /dev/null
@@ -0,0 +1,2 @@
+*.d
+*.o
diff --git a/reactos/lib/gdiplus/tests/tests/test-1.c b/reactos/lib/gdiplus/tests/tests/test-1.c
new file mode 100644 (file)
index 0000000..60a12d4
--- /dev/null
@@ -0,0 +1,12 @@
+#include <windows.h>
+#include <GdiPlusPrivate.h>
+
+#include "regtests.h"
+
+static int
+RunTest(char *Buffer)
+{
+  return TS_OK;
+}
+
+DISPATCHER(Test_1Test, "Test 1")