[1/3] gdiplus: GdipGetImageFlags (bug 12144)
Nikolay Sivov
bunglehead at gmail.com
Thu May 8 17:15:17 CDT 2008
Changelog:
- simple implementation of GdipGetImageFlags
---
dlls/gdiplus/gdiplus.spec | 2 +-
dlls/gdiplus/gdiplus_private.h | 1 +
dlls/gdiplus/image.c | 11 +++++++++++
include/gdiplusenums.h | 25 ++++++++++++++++++++++---
include/gdiplusflat.h | 1 +
5 files changed, 36 insertions(+), 4 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index ec3897a..905cff5 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -286,7 +286,7 @@
@ stdcall GdipGetImageDimension(ptr ptr ptr)
@ stdcall GdipGetImageEncoders(long long ptr)
@ stdcall GdipGetImageEncodersSize(ptr ptr)
-@ stub GdipGetImageFlags
+@ stdcall GdipGetImageFlags(ptr ptr)
@ stdcall GdipGetImageGraphicsContext(ptr ptr)
@ stdcall GdipGetImageHeight(ptr ptr)
@ stdcall GdipGetImageHorizontalResolution(ptr ptr)
diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h
index 09ef83f..539254b 100644
--- a/dlls/gdiplus/gdiplus_private.h
+++ b/dlls/gdiplus/gdiplus_private.h
@@ -149,6 +149,7 @@ struct GpCustomLineCap{
struct GpImage{
IPicture* picture;
ImageType type;
+ UINT flags;
};
struct GpMetafile{
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index a89b6ea..3eaecdc 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -789,6 +789,7 @@ GpStatus WINGDIPAPI GdipLoadImageFromStream(IStream* stream, GpImage **image)
}
(*image)->picture = pic;
+ (*image)->flags = ImageFlagsNone;
return Ok;
}
@@ -1108,3 +1109,13 @@ GpStatus WINGDIPAPI GdipSetEffectParameters(CGpEffect *effect,
return NotImplemented;
}
+
+GpStatus WINGDIPAPI GdipGetImageFlags(GpImage *image, UINT *flags)
+{
+ if(!image || !flags)
+ return InvalidParameter;
+
+ *flags = image->flags;
+
+ return Ok;
+}
diff --git a/include/gdiplusenums.h b/include/gdiplusenums.h
index b0d9884..6bf727a 100644
--- a/include/gdiplusenums.h
+++ b/include/gdiplusenums.h
@@ -170,6 +170,24 @@ enum ImageType
ImageTypeMetafile
};
+enum ImageFlags
+{
+ ImageFlagsNone = 0,
+ ImageFlagsScalable = 0x0001,
+ ImageFlagsHasAlpha = 0x0002,
+ ImageFlagsHasTranslucent = 0x0004,
+ ImageFlagsPartiallyScalable = 0x0008,
+ ImageFlagsColorSpaceRGB = 0x0010,
+ ImageFlagsColorSpaceCMYK = 0x0020,
+ ImageFlagsColorSpaceGRAY = 0x0040,
+ ImageFlagsColorSpaceYCBCR = 0x0080,
+ ImageFlagsColorSpaceYCCK = 0x0100,
+ ImageFlagsHasRealDPI = 0x1000,
+ ImageFlagsHasRealPixelSize = 0x2000,
+ ImageFlagsReadOnly = 0x00010000,
+ ImageFlagsCaching = 0x00020000
+};
+
enum WrapMode
{
WrapModeTile,
@@ -259,13 +277,13 @@ enum HotkeyPrefix
enum ImageCodecFlags
{
- ImageCodecFlagsEncoder = 1,
- ImageCodecFlagsDecoder = 2,
+ ImageCodecFlagsEncoder = 1,
+ ImageCodecFlagsDecoder = 2,
ImageCodecFlagsSupportBitmap = 4,
ImageCodecFlagsSupportVector = 8,
ImageCodecFlagsSeekableEncode = 16,
ImageCodecFlagsBlockingDecode = 32,
- ImageCodecFlagsBuiltin = 65536,
+ ImageCodecFlagsBuiltin = 65536,
ImageCodecFlagsSystem = 131072,
ImageCodecFlagsUser = 262144
};
@@ -297,6 +315,7 @@ typedef enum DashCap DashCap;
typedef enum DashStyle DashStyle;
typedef enum MatrixOrder MatrixOrder;
typedef enum ImageType ImageType;
+typedef enum ImageFlags ImageFlags;
typedef enum WrapMode WrapMode;
typedef enum MetafileType MetafileType;
typedef enum LinearGradientMode LinearGradientMode;
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index ddd4914..8c46888 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -301,6 +301,7 @@ GpStatus WINGDIPAPI GdipGetImageRawFormat(GpImage*,GUID*);
GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*);
GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*);
GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*);
+GpStatus WINGDIPAPI GdipGetImageFlags(GpImage*,UINT*);
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromEmf(HENHMETAFILE,MetafileHeader*);
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromFile(GDIPCONST WCHAR*,MetafileHeader*);
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile*,MetafileHeader*);
--
1.4.4.4
More information about the wine-patches
mailing list