[2/4] gdiplus: GdipGetImageFlags simple stub with test (bug 12144)

Nikolay Sivov bunglehead at gmail.com
Fri May 9 06:39:33 CDT 2008


Changelog:
    - GdipGetImageFlags with tests (flags are not set yet, None flag used)

---
 dlls/gdiplus/gdiplus.spec      |    2 +-
 dlls/gdiplus/gdiplus_private.h |    1 +
 dlls/gdiplus/image.c           |   12 ++++++++++++
 dlls/gdiplus/tests/image.c     |   19 +++++++++++++++++++
 4 files changed, 33 insertions(+), 1 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..fc4146f 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -384,6 +384,7 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride,
     }
 
     (*bitmap)->image.type = ImageTypeBitmap;
+    (*bitmap)->image.flags = ImageFlagsNone;
     (*bitmap)->width = width;
     (*bitmap)->height = height;
     (*bitmap)->format = format;
@@ -789,6 +790,7 @@ GpStatus WINGDIPAPI GdipLoadImageFromStream(IStream* stream, GpImage **image)
     }
 
     (*image)->picture = pic;
+    (*image)->flags   = ImageFlagsNone;
 
     return Ok;
 }
@@ -1108,3 +1110,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/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c
index dcb86fc..26aede0 100644
--- a/dlls/gdiplus/tests/image.c
+++ b/dlls/gdiplus/tests/image.c
@@ -417,6 +417,24 @@ static void test_GdipCreateBitmapFromHBITMAP(void)
     GlobalFree(hbm);
 }
 
+static void test_GdipGetImageFlags(void)
+{
+    GpImage *img;
+    GpStatus stat;
+    UINT flags;
+
+    img = (GpImage*)0xdeadbeef;
+
+    stat = GdipGetImageFlags(NULL, NULL);
+    expect(InvalidParameter, stat);
+
+    stat = GdipGetImageFlags(NULL, &flags);
+    expect(InvalidParameter, stat);
+
+    stat = GdipGetImageFlags(img, NULL);
+    expect(InvalidParameter, stat);
+}
+
 START_TEST(image)
 {
     struct GdiplusStartupInput gdiplusStartupInput;
@@ -436,6 +454,7 @@ START_TEST(image)
     test_encoders();
     test_LockBits();
     test_GdipCreateBitmapFromHBITMAP();
+    test_GdipGetImageFlags();
 
     GdiplusShutdown(gdiplusToken);
 }
-- 
1.4.4.4






More information about the wine-patches mailing list