aboutsummaryrefslogtreecommitdiff
path: root/winsup/w32api/lib
diff options
context:
space:
mode:
authorChris Sutcliffe <ir0nh34d@users.sourceforge.net>2010-07-08 23:14:54 +0000
committerChris Sutcliffe <ir0nh34d@users.sourceforge.net>2010-07-08 23:14:54 +0000
commitcc077128d30dd6c488d8c420606ecd36ea18b3de (patch)
treea68981b5a407265adfd34d6541a5472648a89877 /winsup/w32api/lib
parent975a85f42c985b87533fd7cbfcdfe65ca243a94e (diff)
downloadnewlib-cc077128d30dd6c488d8c420606ecd36ea18b3de.zip
newlib-cc077128d30dd6c488d8c420606ecd36ea18b3de.tar.gz
newlib-cc077128d30dd6c488d8c420606ecd36ea18b3de.tar.bz2
2010-07-08 Markus Koenig <basilo@users.sourceforge.net>
* include/gdiplus.h: New file. * include/gdiplus/gdiplus.h: New file. * include/gdiplus/gdiplusbase.h: New file. * include/gdiplus/gdiplusbrush.h: New file. * include/gdiplus/gdipluscolor.h: New file. * include/gdiplus/gdipluscolormatrix.h: New file. * include/gdiplus/gdipluseffects.h: New file. * include/gdiplus/gdiplusenums.h: New file. * include/gdiplus/gdiplusflat.h: New file. * include/gdiplus/gdiplusgpstubs.h: New file. * include/gdiplus/gdiplusgraphics.h: New file. * include/gdiplus/gdiplusheaders.h: New file. * include/gdiplus/gdiplusimageattributes.h: New file. * include/gdiplus/gdiplusimagecodec.h: New file. * include/gdiplus/gdiplusimaging.h: New file. * include/gdiplus/gdiplusimpl.h: New file. * include/gdiplus/gdiplusinit.h: New file. * include/gdiplus/gdipluslinecaps.h: New file. * include/gdiplus/gdiplusmatrix.h: New file. * include/gdiplus/gdiplusmem.h: New file. * include/gdiplus/gdiplusmetafile.h: New file. * include/gdiplus/gdiplusmetaheader.h: New file. * include/gdiplus/gdipluspath.h: New file. * include/gdiplus/gdipluspen.h: New file. * include/gdiplus/gdipluspixelformats.h: New file. * include/gdiplus/gdiplusstringformat.h: New file. * include/gdiplus/gdiplustypes.h: New file. * lib/gdiplus.c: New file containing GDI+ variable definitions and GUIDs. * lib/gdiplus.def: New file. * lib/Makefile.in: Add gdiplus.o to EXTRA_OBJS, add gdiplus.c to SOURCES. * lib/test.c: Include gdiplus.h.
Diffstat (limited to 'winsup/w32api/lib')
-rw-r--r--winsup/w32api/lib/Makefile.in9
-rwxr-xr-xwinsup/w32api/lib/gdiplus.c67
-rwxr-xr-xwinsup/w32api/lib/gdiplus.def633
-rw-r--r--winsup/w32api/lib/test.c1
4 files changed, 708 insertions, 2 deletions
diff --git a/winsup/w32api/lib/Makefile.in b/winsup/w32api/lib/Makefile.in
index 9439627..e524ec5 100644
--- a/winsup/w32api/lib/Makefile.in
+++ b/winsup/w32api/lib/Makefile.in
@@ -112,6 +112,7 @@ FLAGS_TO_PASS = \
HEADERS = $(notdir $(wildcard $(srcdir)/../include/*.h))
GL_HEADERS = $(notdir $(wildcard $(srcdir)/../include/GL/*.h))
+GDIPLUS_HEADERS = $(notdir $(wildcard $(srcdir)/../include/gdiplus/*.h))
# libraries
@@ -127,7 +128,7 @@ UUID_OBJS = mshtml-uuid.o msxml-uuid.o unknwn-uuid.o \
exdisp-uuid.o mlang-uuid.o objidl-uuid.o cguid-uuid.o \
olectlid-uuid.o ativscp-uuid.o urlmon-uuid.o hlink-uuid.o \
hlguids-uuid.o extras-uuid.o devguid.o power-uuid.o
-EXTRA_OBJS = shell32.o scrnsave.o scrnsavw.o largeint.o \
+EXTRA_OBJS = shell32.o scrnsave.o scrnsavw.o largeint.o gdiplus.o \
$(UUID_OBJS) ws2_32.o
UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \
servprov-uuid.c oleidl-uuid.c oleacc-uuid.c ocidl-uuid.c \
@@ -135,7 +136,7 @@ UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \
exdisp-uuid.c mlang-uuid.c objidl-uuid.c cguid-uuid.c \
olectlid-uuid.c ativscp-uuid.c urlmon-uuid.c hlink-uuid.c \
hlguids-uuid.c extras-uuid.c devguid.c power-uuid.c
-SOURCES = scrnsave.c shell32.c largeint.c $(UUID_SOURCES)\
+SOURCES = scrnsave.c shell32.c largeint.c gdiplus.c $(UUID_SOURCES) \
res.rc test.c ws2_32.c
DISTFILES = Makefile.in $(DEF_FILES) $(MRI_FILES) $(SOURCES)
@@ -239,6 +240,10 @@ install-headers: $(need-DESTDIR-compatibility)
for i in $(GL_HEADERS); do \
$(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \
done
+ $(mkinstalldirs) $(DESTDIR)$(inst_includedir)/gdiplus
+ for i in $(GDIPLUS_HEADERS); do \
+ $(INSTALL_DATA) $(srcdir)/../include/gdiplus/$$i $(DESTDIR)$(inst_includedir)/gdiplus/$$i ; \
+ done
install-ddk: install-libraries install-headers
cd ddk && $(MAKE) install $(FLAGS_TO_PASS)
diff --git a/winsup/w32api/lib/gdiplus.c b/winsup/w32api/lib/gdiplus.c
new file mode 100755
index 0000000..bd1234d
--- /dev/null
+++ b/winsup/w32api/lib/gdiplus.c
@@ -0,0 +1,67 @@
+/*
+ * Generate GUIDs for GDI+
+ *
+ * The Image Format GUIDs were generated by loading example images of
+ * various types with GdipLoadImageFromFile and then extracting the
+ * image format with GdipGetImageRawFormat.
+ *
+ * The Encoder Parameter GUIDs were taken from this .NET MSDN page:
+ * http://msdn.microsoft.com/en-us/library/system.drawing.imaging.encoder.quality.aspx
+ *
+ * The Frame Dimension GUIDs were generated by loading example multi-frame
+ * images (multi-page TIFF; animated GIF) and querying the frame dimension list
+ * using GdipImageGetFrameDimensionsList.
+ */
+
+/* TODO: find the remaining GUIDs */
+
+#define INITGUID
+#include <basetyps.h>
+
+void *_GdipFontFamilyCachedGenericMonospace = 0;
+void *_GdipFontFamilyCachedGenericSansSerif = 0;
+void *_GdipFontFamilyCachedGenericSerif = 0;
+void *_GdipStringFormatCachedGenericDefault = 0;
+void *_GdipStringFormatCachedGenericTypographic = 0;
+
+DEFINE_GUID(EncoderChrominanceTable,0xF2E455DC,0x09B3,0x4316,0x82,0x60,0x67,0x6A,0xDA,0x32,0x48,0x1C);
+DEFINE_GUID(EncoderColorDepth,0x66087055,0xAD66,0x4C7C,0x9A,0x18,0x38,0xA2,0x31,0x0B,0x83,0x37);
+/* EncoderColorSpace missing */
+DEFINE_GUID(EncoderCompression,0xE09D739D,0xCCD4,0x44EE,0x8E,0xBA,0x3F,0xBF,0x8B,0xE4,0xFC,0x58);
+/* EncoderImageItems missing */
+DEFINE_GUID(EncoderLuminanceTable,0xEDB33BCE,0x0266,0x4A77,0xB9,0x04,0x27,0x21,0x60,0x99,0xE7,0x17);
+DEFINE_GUID(EncoderQuality,0x1D5BE4B5,0xFA4A,0x452D,0x9C,0xDD,0x5D,0xB3,0x51,0x05,0xE7,0xEB);
+DEFINE_GUID(EncoderRenderMethod,0x6D42C53A,0x229A,0x4825,0x8B,0xB7,0x5C,0x99,0xE2,0xB9,0xA8,0xB8);
+/* EncoderSaveAsCMYK missing */
+DEFINE_GUID(EncoderSaveFlag,0x292266FC,0xAC40,0x47BF,0x8C,0xFC,0xA8,0x5B,0x89,0xA6,0x55,0xDE);
+DEFINE_GUID(EncoderScanMethod,0x3A4E2661,0x3109,0x4E56,0x85,0x36,0x42,0xC1,0x56,0xE7,0xDC,0xFA);
+DEFINE_GUID(EncoderTransformation,0x8D0EB2D1,0xA58E,0x4EA8,0xAA,0x14,0x10,0x80,0x74,0xB7,0xB6,0xF9);
+DEFINE_GUID(EncoderVersion,0x24D18C76,0x814A,0x41A4,0xBF,0x53,0x1C,0x21,0x9C,0xCC,0xF7,0x97);
+
+DEFINE_GUID(ImageFormatBMP,0xB96B3CAB,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+DEFINE_GUID(ImageFormatEMF,0xB96B3CAC,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+/* ImageFormatEXIF missing */
+DEFINE_GUID(ImageFormatGIF,0xB96B3CB0,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+DEFINE_GUID(ImageFormatIcon,0xB96B3CB5,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+DEFINE_GUID(ImageFormatJPEG,0xB96B3CAE,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+DEFINE_GUID(ImageFormatMemoryBMP,0xB96B3CAA,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+DEFINE_GUID(ImageFormatPNG,0xB96B3CAF,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+DEFINE_GUID(ImageFormatTIFF,0xB96B3CB1,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+/* ImageFormatUndefined missing */
+DEFINE_GUID(ImageFormatWMF,0xB96B3CAD,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
+
+DEFINE_GUID(FrameDimensionPage,0x7462DC86,0x6180,0x4C7E,0x8E,0x3F,0xEE,0x73,0x33,0xA7,0xA4,0x83);
+/* FrameDimensionResolution missing */
+DEFINE_GUID(FrameDimensionTime,0x6AEDBD6D,0x3FB5,0x418A,0x83,0xA6,0x7F,0x45,0x22,0x9D,0xC8,0x72);
+
+/* BlurEffectGuid missing */
+/* BrightnessContrastEffectGuid missing */
+/* ColorBalanceEffectGuid missing */
+/* ColorCurveEffectGuid missing */
+/* ColorLUTEffectGuid missing */
+/* ColorMatrixEffectGuid missing */
+/* HueSaturationLightnessEffectGuid missing */
+/* LevelsEffectGuid missing */
+/* RedEyeCorrectionEffectGuid missing */
+/* SharpenEffectGuid missing */
+/* TintEffectGuid missing */
diff --git a/winsup/w32api/lib/gdiplus.def b/winsup/w32api/lib/gdiplus.def
new file mode 100755
index 0000000..42e139a
--- /dev/null
+++ b/winsup/w32api/lib/gdiplus.def
@@ -0,0 +1,633 @@
+LIBRARY GDIPLUS.DLL
+EXPORTS
+GdipAddPathArc@28
+GdipAddPathArcI@28
+GdipAddPathBezier@36
+GdipAddPathBezierI@36
+GdipAddPathBeziers@12
+GdipAddPathBeziersI@12
+GdipAddPathClosedCurve@12
+GdipAddPathClosedCurve2@16
+GdipAddPathClosedCurve2I@16
+GdipAddPathClosedCurveI@12
+GdipAddPathCurve@12
+GdipAddPathCurve2@16
+GdipAddPathCurve2I@16
+GdipAddPathCurve3@24
+GdipAddPathCurve3I@24
+GdipAddPathCurveI@12
+GdipAddPathEllipse@20
+GdipAddPathEllipseI@20
+GdipAddPathLine@20
+GdipAddPathLine2@12
+GdipAddPathLine2I@12
+GdipAddPathLineI@20
+GdipAddPathPath@12
+GdipAddPathPie@28
+GdipAddPathPieI@28
+GdipAddPathPolygon@12
+GdipAddPathPolygonI@12
+GdipAddPathRectangle@20
+GdipAddPathRectangleI@20
+GdipAddPathRectangles@12
+GdipAddPathRectanglesI@12
+GdipAddPathString@32
+GdipAddPathStringI@32
+GdipAlloc@4
+GdipBeginContainer@20
+GdipBeginContainer2@8
+GdipBeginContainerI@20
+GdipBitmapApplyEffect@24
+GdipBitmapConvertFormat@24
+GdipBitmapCreateApplyEffect@36
+GdipBitmapGetHistogram@28
+GdipBitmapGetHistogramSize@8
+GdipBitmapGetPixel@16
+GdipBitmapLockBits@20
+GdipBitmapSetPixel@16
+GdipBitmapSetResolution@12
+GdipBitmapUnlockBits@8
+GdipClearPathMarkers@4
+GdipCloneBitmapArea@28
+GdipCloneBitmapAreaI@28
+GdipCloneBrush@8
+GdipCloneCustomLineCap@8
+GdipCloneFont@8
+GdipCloneFontFamily@8
+GdipCloneImage@8
+GdipCloneImageAttributes@8
+GdipCloneMatrix@8
+GdipClonePath@8
+GdipClonePen@8
+GdipCloneRegion@8
+GdipCloneStringFormat@8
+GdipClosePathFigure@4
+GdipClosePathFigures@4
+GdipCombineRegionPath@12
+GdipCombineRegionRect@12
+GdipCombineRegionRectI@12
+GdipCombineRegionRegion@12
+GdipComment@12
+GdipConvertToEmfPlus@24
+GdipConvertToEmfPlusToFile@28
+GdipConvertToEmfPlusToStream@28
+GdipCreateAdjustableArrowCap@16
+GdipCreateBitmapFromDirectDrawSurface@8
+GdipCreateBitmapFromFile@8
+GdipCreateBitmapFromFileICM@8
+GdipCreateBitmapFromGdiDib@12
+GdipCreateBitmapFromGraphics@16
+GdipCreateBitmapFromHBITMAP@12
+GdipCreateBitmapFromHICON@8
+GdipCreateBitmapFromResource@12
+GdipCreateBitmapFromScan0@24
+GdipCreateBitmapFromStream@8
+GdipCreateBitmapFromStreamICM@8
+GdipCreateCachedBitmap@12
+GdipCreateCustomLineCap@20
+GdipCreateEffect@20
+GdipCreateFont@20
+GdipCreateFontFamilyFromName@12
+GdipCreateFontFromDC@8
+GdipCreateFontFromLogfontA@12
+GdipCreateFontFromLogfontW@12
+GdipCreateFromHDC@8
+GdipCreateFromHDC2@12
+GdipCreateFromHWND@8
+GdipCreateFromHWNDICM@8
+GdipCreateHBITMAPFromBitmap@12
+GdipCreateHICONFromBitmap@8
+GdipCreateHalftonePalette@
+GdipCreateHatchBrush@16
+GdipCreateImageAttributes@4
+GdipCreateLineBrush@24
+GdipCreateLineBrushFromRect@24
+GdipCreateLineBrushFromRectI@24
+GdipCreateLineBrushFromRectWithAngle@28
+GdipCreateLineBrushFromRectWithAngleI@28
+GdipCreateLineBrushI@24
+GdipCreateMatrix@4
+GdipCreateMatrix2@28
+GdipCreateMatrix3@12
+GdipCreateMatrix3I@12
+GdipCreateMetafileFromEmf@12
+GdipCreateMetafileFromFile@8
+GdipCreateMetafileFromStream@8
+GdipCreateMetafileFromWmf@16
+GdipCreateMetafileFromWmfFile@12
+GdipCreatePath@8
+GdipCreatePath2@20
+GdipCreatePath2I@20
+GdipCreatePathGradient@16
+GdipCreatePathGradientFromPath@8
+GdipCreatePathGradientI@16
+GdipCreatePathIter@8
+GdipCreatePen1@16
+GdipCreatePen2@16
+GdipCreateRegion@4
+GdipCreateRegionHrgn@8
+GdipCreateRegionPath@8
+GdipCreateRegionRect@8
+GdipCreateRegionRectI@8
+GdipCreateRegionRgnData@12
+GdipCreateSolidFill@8
+GdipCreateStreamOnFile@12
+GdipCreateStringFormat@12
+GdipCreateTexture@12
+GdipCreateTexture2@28
+GdipCreateTexture2I@28
+GdipCreateTextureIA@28
+GdipCreateTextureIAI@28
+GdipDeleteBrush@4
+GdipDeleteCachedBitmap@4
+GdipDeleteCustomLineCap@4
+GdipDeleteEffect@4
+GdipDeleteFont@4
+GdipDeleteFontFamily@4
+GdipDeleteGraphics@4
+GdipDeleteMatrix@4
+GdipDeletePath@4
+GdipDeletePathIter@4
+GdipDeletePen@4
+GdipDeletePrivateFontCollection@4
+GdipDeleteRegion@4
+GdipDeleteStringFormat@4
+GdipDisposeImage@4
+GdipDisposeImageAttributes@4
+GdipDrawArc@32
+GdipDrawArcI@32
+GdipDrawBezier@40
+GdipDrawBezierI@40
+GdipDrawBeziers@16
+GdipDrawBeziersI@16
+GdipDrawCachedBitmap@16
+GdipDrawClosedCurve@16
+GdipDrawClosedCurve2@20
+GdipDrawClosedCurve2I@20
+GdipDrawClosedCurveI@16
+GdipDrawCurve@16
+GdipDrawCurve2@20
+GdipDrawCurve2I@20
+GdipDrawCurve3@28
+GdipDrawCurve3I@28
+GdipDrawCurveI@16
+GdipDrawDriverString@32
+GdipDrawEllipse@24
+GdipDrawEllipseI@24
+GdipDrawImage@16
+GdipDrawImageFX@28
+GdipDrawImageI@16
+GdipDrawImagePointRect@36
+GdipDrawImagePointRectI@36
+GdipDrawImagePoints@16
+GdipDrawImagePointsI@16
+GdipDrawImagePointsRect@48
+GdipDrawImagePointsRectI@48
+GdipDrawImageRect@24
+GdipDrawImageRectI@24
+GdipDrawImageRectRect@56
+GdipDrawImageRectRectI@56
+GdipDrawLine@24
+GdipDrawLineI@24
+GdipDrawLines@16
+GdipDrawLinesI@16
+GdipDrawPath@12
+GdipDrawPie@32
+GdipDrawPieI@32
+GdipDrawPolygon@16
+GdipDrawPolygonI@16
+GdipDrawRectangle@24
+GdipDrawRectangleI@24
+GdipDrawRectangles@16
+GdipDrawRectanglesI@16
+GdipDrawString@28
+GdipEmfToWmfBits@20
+GdipEndContainer@8
+GdipEnumerateMetafileDestPoint@24
+GdipEnumerateMetafileDestPointI@24
+GdipEnumerateMetafileDestPoints@28
+GdipEnumerateMetafileDestPointsI@28
+GdipEnumerateMetafileDestRect@24
+GdipEnumerateMetafileDestRectI@24
+GdipEnumerateMetafileSrcRectDestPoint@32
+GdipEnumerateMetafileSrcRectDestPointI@32
+GdipEnumerateMetafileSrcRectDestPoints@36
+GdipEnumerateMetafileSrcRectDestPointsI@36
+GdipEnumerateMetafileSrcRectDestRect@32
+GdipEnumerateMetafileSrcRectDestRectI@32
+GdipFillClosedCurve@16
+GdipFillClosedCurve2@24
+GdipFillClosedCurve2I@24
+GdipFillClosedCurveI@16
+GdipFillEllipse@24
+GdipFillEllipseI@24
+GdipFillPath@12
+GdipFillPie@32
+GdipFillPieI@32
+GdipFillPolygon@20
+GdipFillPolygon2@16
+GdipFillPolygon2I@16
+GdipFillPolygonI@20
+GdipFillRectangle@24
+GdipFillRectangleI@24
+GdipFillRectangles@16
+GdipFillRectanglesI@16
+GdipFillRegion@12
+GdipFindFirstImageItem@8
+GdipFindNextImageItem@8
+GdipFlattenPath@12
+GdipFlush@8
+GdipFontCollectionEnumerable@12
+GdipFontCollectionEnumerate@20
+GdipFree@4
+GdipGetAdjustableArrowCapFillState@8
+GdipGetAdjustableArrowCapHeight@8
+GdipGetAdjustableArrowCapMiddleInset@8
+GdipGetAdjustableArrowCapWidth@8
+GdipGetAllPropertyItems@16
+GdipGetBrushType@8
+GdipGetCellAscent@12
+GdipGetCellDescent@12
+GdipGetClip@8
+GdipGetClipBounds@8
+GdipGetClipBoundsI@8
+GdipGetCompositingMode@8
+GdipGetCompositingQuality@8
+GdipGetCustomLineCapBaseCap@8
+GdipGetCustomLineCapBaseInset@8
+GdipGetCustomLineCapStrokeCaps@12
+GdipGetCustomLineCapStrokeJoin@8
+GdipGetCustomLineCapType@8
+GdipGetCustomLineCapWidthScale@8
+GdipGetDC@8
+GdipGetDpiX@8
+GdipGetDpiY@8
+GdipGetEffectParameterSize@8
+GdipGetEffectParameters@12
+GdipGetEmHeight@12
+GdipGetEncoderParameterList@16
+GdipGetEncoderParameterListSize@12
+GdipGetFamily@8
+GdipGetFamilyName@12
+GdipGetFontCollectionFamilyCount@8
+GdipGetFontCollectionFamilyList@16
+GdipGetFontHeight@12
+GdipGetFontHeightGivenDPI@12
+GdipGetFontSize@8
+GdipGetFontStyle@8
+GdipGetFontUnit@8
+GdipGetGenericFontFamilyMonospace@4
+GdipGetGenericFontFamilySansSerif@4
+GdipGetGenericFontFamilySerif@4
+GdipGetHatchBackgroundColor@8
+GdipGetHatchForegroundColor@8
+GdipGetHatchStyle@8
+GdipGetHemfFromMetafile@8
+GdipGetImageAttributesAdjustedPalette@12
+GdipGetImageBounds@12
+GdipGetImageDecoders@12
+GdipGetImageDecodersSize@8
+GdipGetImageDimension@12
+GdipGetImageEncoders@12
+GdipGetImageEncodersSize@8
+GdipGetImageFlags@8
+GdipGetImageGraphicsContext@8
+GdipGetImageHeight@8
+GdipGetImageHorizontalResolution@8
+GdipGetImageItemData@8
+GdipGetImagePalette@12
+GdipGetImagePaletteSize@8
+GdipGetImagePixelFormat@8
+GdipGetImageRawFormat@8
+GdipGetImageThumbnail@24
+GdipGetImageType@8
+GdipGetImageVerticalResolution@8
+GdipGetImageWidth@8
+GdipGetInterpolationMode@8
+GdipGetLineBlend@16
+GdipGetLineBlendCount@8
+GdipGetLineColors@8
+GdipGetLineGammaCorrection@8
+GdipGetLinePresetBlend@16
+GdipGetLinePresetBlendCount@8
+GdipGetLineRect@8
+GdipGetLineRectI@8
+GdipGetLineSpacing@12
+GdipGetLineTransform@8
+GdipGetLineWrapMode@8
+GdipGetLogFontA@12
+GdipGetLogFontW@12
+GdipGetMatrixElements@8
+GdipGetMetafileDownLevelRasterizationLimit@8
+GdipGetMetafileHeaderFromEmf@8
+GdipGetMetafileHeaderFromFile@8
+GdipGetMetafileHeaderFromMetafile@8
+GdipGetMetafileHeaderFromStream@8
+GdipGetNearestColor@8
+GdipGetPageScale@8
+GdipGetPageUnit@8
+GdipGetPathData@8
+GdipGetPathFillMode@8
+GdipGetPathGradientBlend@16
+GdipGetPathGradientBlendCount@8
+GdipGetPathGradientCenterColor@8
+GdipGetPathGradientCenterPoint@8
+GdipGetPathGradientCenterPointI@8
+GdipGetPathGradientFocusScales@12
+GdipGetPathGradientGammaCorrection@8
+GdipGetPathGradientPath@8
+GdipGetPathGradientPointCount@8
+GdipGetPathGradientPresetBlend@16
+GdipGetPathGradientPresetBlendCount@8
+GdipGetPathGradientRect@8
+GdipGetPathGradientRectI@8
+GdipGetPathGradientSurroundColorCount@8
+GdipGetPathGradientSurroundColorsWithCount@12
+GdipGetPathGradientTransform@8
+GdipGetPathGradientWrapMode@8
+GdipGetPathLastPoint@8
+GdipGetPathPoints@12
+GdipGetPathPointsI@12
+GdipGetPathTypes@12
+GdipGetPathWorldBounds@16
+GdipGetPathWorldBoundsI@16
+GdipGetPenBrushFill@8
+GdipGetPenColor@8
+GdipGetPenCompoundArray@12
+GdipGetPenCompoundCount@8
+GdipGetPenCustomEndCap@8
+GdipGetPenCustomStartCap@8
+GdipGetPenDashArray@12
+GdipGetPenDashCap197819@8
+GdipGetPenDashCount@8
+GdipGetPenDashOffset@8
+GdipGetPenDashStyle@8
+GdipGetPenEndCap@8
+GdipGetPenFillType@8
+GdipGetPenLineJoin@8
+GdipGetPenMiterLimit@8
+GdipGetPenMode@8
+GdipGetPenStartCap@8
+GdipGetPenTransform@8
+GdipGetPenUnit@8
+GdipGetPenWidth@8
+GdipGetPixelOffsetMode@8
+GdipGetPointCount@8
+GdipGetPropertyCount@8
+GdipGetPropertyIdList@12
+GdipGetPropertyItem@16
+GdipGetPropertyItemSize@12
+GdipGetPropertySize@12
+GdipGetRegionBounds@12
+GdipGetRegionBoundsI@12
+GdipGetRegionData@16
+GdipGetRegionDataSize@8
+GdipGetRegionHRgn@12
+GdipGetRegionScans@16
+GdipGetRegionScansCount@12
+GdipGetRegionScansI@16
+GdipGetRenderingOrigin@12
+GdipGetSmoothingMode@8
+GdipGetSolidFillColor@8
+GdipGetStringFormatAlign@8
+GdipGetStringFormatDigitSubstitution@12
+GdipGetStringFormatFlags@8
+GdipGetStringFormatHotkeyPrefix@8
+GdipGetStringFormatLineAlign@8
+GdipGetStringFormatMeasurableCharacterRangeCount@8
+GdipGetStringFormatTabStopCount@8
+GdipGetStringFormatTabStops@16
+GdipGetStringFormatTrimming@8
+GdipGetTextContrast@8
+GdipGetTextRenderingHint@8
+GdipGetTextureImage@8
+GdipGetTextureTransform@8
+GdipGetTextureWrapMode@8
+GdipGetVisibleClipBounds@8
+GdipGetVisibleClipBoundsI@8
+GdipGetWorldTransform@8
+GdipGraphicsClear@8
+GdipGraphicsSetAbort@8
+GdipImageForceValidation@4
+GdipImageGetFrameCount@12
+GdipImageGetFrameDimensionsCount@8
+GdipImageGetFrameDimensionsList@12
+GdipImageRotateFlip@8
+GdipImageSelectActiveFrame@12
+GdipImageSetAbort@8
+GdipInitializePalette@20
+GdipInvertMatrix@4
+GdipIsClipEmpty@8
+GdipIsEmptyRegion@12
+GdipIsEqualRegion@16
+GdipIsInfiniteRegion@12
+GdipIsMatrixEqual@12
+GdipIsMatrixIdentity@8
+GdipIsMatrixInvertible@8
+GdipIsOutlineVisiblePathPoint@24
+GdipIsOutlineVisiblePathPointI@24
+GdipIsStyleAvailable@12
+GdipIsVisibleClipEmpty@8
+GdipIsVisiblePathPoint@20
+GdipIsVisiblePathPointI@20
+GdipIsVisiblePoint@16
+GdipIsVisiblePointI@16
+GdipIsVisibleRect@24
+GdipIsVisibleRectI@24
+GdipIsVisibleRegionPoint@20
+GdipIsVisibleRegionPointI@20
+GdipIsVisibleRegionRect@28
+GdipIsVisibleRegionRectI@28
+GdipLoadImageFromFile@8
+GdipLoadImageFromFileICM@8
+GdipLoadImageFromStream@8
+GdipLoadImageFromStreamICM@8
+GdipMeasureCharacterRanges@32
+GdipMeasureDriverString@32
+GdipMeasureString@36
+GdipMultiplyLineTransform@12
+GdipMultiplyMatrix@12
+GdipMultiplyPathGradientTransform@12
+GdipMultiplyPenTransform@12
+GdipMultiplyTextureTransform@12
+GdipMultiplyWorldTransform@12
+GdipNewInstalledFontCollection@4
+GdipNewPrivateFontCollection@4
+GdipPathIterCopyData@24
+GdipPathIterEnumerate@20
+GdipPathIterGetCount@8
+GdipPathIterGetSubpathCount@8
+GdipPathIterHasCurve@8
+GdipPathIterIsValid@8
+GdipPathIterNextMarker@16
+GdipPathIterNextMarkerPath@12
+GdipPathIterNextPathType@20
+GdipPathIterNextSubpath@20
+GdipPathIterNextSubpathPath@16
+GdipPathIterRewind@4
+GdipPlayMetafileRecord@20
+GdipPrivateAddFontFile@8
+GdipPrivateAddMemoryFont@12
+GdipRecordMetafile@24
+GdipRecordMetafileFileName@28
+GdipRecordMetafileFileNameI@28
+GdipRecordMetafileI@24
+GdipRecordMetafileStream@28
+GdipRecordMetafileStreamI@28
+GdipReleaseDC@8
+GdipRemovePropertyItem@8
+GdipResetClip@4
+GdipResetImageAttributes@8
+GdipResetLineTransform@4
+GdipResetPageTransform@4
+GdipResetPath@4
+GdipResetPathGradientTransform@4
+GdipResetPenTransform@4
+GdipResetTextureTransform@4
+GdipResetWorldTransform@4
+GdipRestoreGraphics@8
+GdipReversePath@4
+GdipRotateLineTransform@12
+GdipRotateMatrix@12
+GdipRotatePathGradientTransform@12
+GdipRotatePenTransform@12
+GdipRotateTextureTransform@12
+GdipRotateWorldTransform@12
+GdipSaveAdd@8
+GdipSaveAddImage@12
+GdipSaveGraphics@8
+GdipSaveImageToFile@16
+GdipSaveImageToStream@16
+GdipScaleLineTransform@16
+GdipScaleMatrix@16
+GdipScalePathGradientTransform@16
+GdipScalePenTransform@16
+GdipScaleTextureTransform@16
+GdipScaleWorldTransform@16
+GdipSetAdjustableArrowCapFillState@8
+GdipSetAdjustableArrowCapHeight@8
+GdipSetAdjustableArrowCapMiddleInset@8
+GdipSetAdjustableArrowCapWidth@8
+GdipSetClipGraphics@12
+GdipSetClipHrgn@12
+GdipSetClipPath@12
+GdipSetClipRect@24
+GdipSetClipRectI@24
+GdipSetClipRegion@12
+GdipSetCompositingMode@8
+GdipSetCompositingQuality@8
+GdipSetCustomLineCapBaseCap@8
+GdipSetCustomLineCapBaseInset@8
+GdipSetCustomLineCapStrokeCaps@12
+GdipSetCustomLineCapStrokeJoin@8
+GdipSetCustomLineCapWidthScale@8
+GdipSetEffectParameters@12
+GdipSetEmpty@4
+GdipSetImageAttributesCachedBackground@8
+GdipSetImageAttributesColorKeys@20
+GdipSetImageAttributesColorMatrix@24
+GdipSetImageAttributesGamma@16
+GdipSetImageAttributesICMMode@8
+GdipSetImageAttributesNoOp@12
+GdipSetImageAttributesOutputChannel@16
+GdipSetImageAttributesOutputChannelColorProfile@16
+GdipSetImageAttributesRemapTable@20
+GdipSetImageAttributesThreshold@16
+GdipSetImageAttributesToIdentity@8
+GdipSetImageAttributesWrapMode@16
+GdipSetImagePalette@8
+GdipSetInfinite@4
+GdipSetInterpolationMode@8
+GdipSetLineBlend@16
+GdipSetLineColors@12
+GdipSetLineGammaCorrection@8
+GdipSetLineLinearBlend@12
+GdipSetLinePresetBlend@16
+GdipSetLineSigmaBlend@12
+GdipSetLineTransform@8
+GdipSetLineWrapMode@8
+GdipSetMatrixElements@28
+GdipSetMetafileDownLevelRasterizationLimit@8
+GdipSetPageScale@8
+GdipSetPageUnit@8
+GdipSetPathFillMode@8
+GdipSetPathGradientBlend@16
+GdipSetPathGradientCenterColor@8
+GdipSetPathGradientCenterPoint@8
+GdipSetPathGradientCenterPointI@8
+GdipSetPathGradientFocusScales@12
+GdipSetPathGradientGammaCorrection@8
+GdipSetPathGradientLinearBlend@12
+GdipSetPathGradientPath@8
+GdipSetPathGradientPresetBlend@16
+GdipSetPathGradientSigmaBlend@12
+GdipSetPathGradientSurroundColorsWithCount@12
+GdipSetPathGradientTransform@8
+GdipSetPathGradientWrapMode@8
+GdipSetPathMarker@4
+GdipSetPenBrushFill@8
+GdipSetPenColor@8
+GdipSetPenCompoundArray@12
+GdipSetPenCustomEndCap@8
+GdipSetPenCustomStartCap@8
+GdipSetPenDashArray@12
+GdipSetPenDashCap197819@8
+GdipSetPenDashOffset@8
+GdipSetPenDashStyle@8
+GdipSetPenEndCap@8
+GdipSetPenLineCap197819@16
+GdipSetPenLineJoin@8
+GdipSetPenMiterLimit@8
+GdipSetPenMode@8
+GdipSetPenStartCap@8
+GdipSetPenTransform@8
+GdipSetPenUnit@8
+GdipSetPenWidth@8
+GdipSetPixelOffsetMode@8
+GdipSetPropertyItem@8
+GdipSetRenderingOrigin@12
+GdipSetSmoothingMode@8
+GdipSetSolidFillColor@8
+GdipSetStringFormatAlign@8
+GdipSetStringFormatDigitSubstitution@12
+GdipSetStringFormatFlags@8
+GdipSetStringFormatHotkeyPrefix@8
+GdipSetStringFormatLineAlign@8
+GdipSetStringFormatMeasurableCharacterRanges@12
+GdipSetStringFormatTabStops@16
+GdipSetStringFormatTrimming@8
+GdipSetTextContrast@8
+GdipSetTextRenderingHint@8
+GdipSetTextureTransform@8
+GdipSetTextureWrapMode@8
+GdipSetWorldTransform@8
+GdipShearMatrix@16
+GdipStartPathFigure@4
+GdipStringFormatGetGenericDefault@4
+GdipStringFormatGetGenericTypographic@4
+GdipTestControl@8
+GdipTransformMatrixPoints@12
+GdipTransformMatrixPointsI@12
+GdipTransformPath@8
+GdipTransformPoints@20
+GdipTransformPointsI@20
+GdipTransformRegion@8
+GdipTranslateClip@12
+GdipTranslateClipI@12
+GdipTranslateLineTransform@16
+GdipTranslateMatrix@16
+GdipTranslatePathGradientTransform@16
+GdipTranslatePenTransform@16
+GdipTranslateRegion@12
+GdipTranslateRegionI@12
+GdipTranslateTextureTransform@16
+GdipTranslateWorldTransform@16
+GdipVectorTransformMatrixPoints@12
+GdipVectorTransformMatrixPointsI@12
+GdipWarpPath@40
+GdipWidenPath@16
+GdipWindingModeOutline@12
+GdiplusNotificationHook@4
+GdiplusNotificationUnhook@4
+GdiplusShutdown@4
+GdiplusStartup@12
diff --git a/winsup/w32api/lib/test.c b/winsup/w32api/lib/test.c
index 2db731b..ff44cb7 100644
--- a/winsup/w32api/lib/test.c
+++ b/winsup/w32api/lib/test.c
@@ -28,6 +28,7 @@
#include <mapi.h>
#include <dbt.h>
+#include <gdiplus.h>
#include <httpext.h>
#include <icm.h>
#include <imagehlp.h>