Petr Dlouhý : gdiplus: Stub implementation of GdipImageGetFrameDimensionsCount + test.

Alexandre Julliard julliard at winehq.org
Sat Jun 21 05:39:14 CDT 2008


Module: wine
Branch: master
Commit: 4513fb3818c6a01e169998e039cebc6edea6669a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4513fb3818c6a01e169998e039cebc6edea6669a

Author: Petr Dlouhý <pdlo at seznam.cz>
Date:   Thu Jun 19 10:38:09 2008 +0200

gdiplus: Stub implementation of GdipImageGetFrameDimensionsCount + test.

---

 dlls/gdiplus/gdiplus.spec  |    2 +-
 dlls/gdiplus/image.c       |   13 +++++++++++++
 dlls/gdiplus/tests/image.c |   27 +++++++++++++++++++++++++++
 include/gdiplusflat.h      |    1 +
 4 files changed, 42 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 23346fc..8d7c892 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -407,7 +407,7 @@
 @ stub GdipGraphicsSetAbort
 @ stub GdipImageForceValidation
 @ stdcall GdipImageGetFrameCount(ptr ptr ptr)
-@ stub GdipImageGetFrameDimensionsCount
+@ stdcall GdipImageGetFrameDimensionsCount(ptr ptr)
 @ stdcall GdipImageGetFrameDimensionsList(ptr ptr long)
 @ stub GdipImageRotateFlip
 @ stdcall GdipImageSelectActiveFrame(ptr ptr long)
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index f6dffcf..330e54b 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -688,6 +688,19 @@ GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage *image,
     return NotImplemented;
 }
 
+GpStatus WINGDIPAPI GdipImageGetFrameDimensionsCount(GpImage *image,
+    UINT* count)
+{
+    if(!image || !count)
+        return InvalidParameter;
+
+    *count = 1;
+
+    FIXME("stub\n");
+
+    return Ok;
+}
+
 GpStatus WINGDIPAPI GdipImageGetFrameDimensionsList(GpImage* image,
     GUID* dimensionIDs, UINT count)
 {
diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c
index a3e7676..686fe54 100644
--- a/dlls/gdiplus/tests/image.c
+++ b/dlls/gdiplus/tests/image.c
@@ -106,6 +106,32 @@ static void test_GetImageDimension(void)
     GdipDisposeImage((GpImage*)bm);
 }
 
+static void test_GdipImageGetFrameDimensionsCount(void)
+{
+    GpBitmap *bm;
+    GpStatus stat;
+    const REAL WIDTH = 10.0, HEIGHT = 20.0;
+    UINT w;
+
+    bm = (GpBitmap*)0xdeadbeef;
+    stat = GdipCreateBitmapFromScan0(WIDTH, HEIGHT, 0, PixelFormat24bppRGB,NULL, &bm);
+    expect(Ok,stat);
+    ok((GpBitmap*)0xdeadbeef != bm, "Expected bitmap to not be 0xdeadbeef\n");
+    ok(NULL != bm, "Expected bitmap to not be NULL\n");
+
+    stat = GdipImageGetFrameDimensionsCount(NULL,&w);
+    expect(InvalidParameter, stat);
+
+    stat = GdipImageGetFrameDimensionsCount((GpImage*)bm,NULL);
+    expect(InvalidParameter, stat);
+
+    w = -1;
+    stat = GdipImageGetFrameDimensionsCount((GpImage*)bm,&w);
+    expect(Ok, stat);
+    expect(1, w);
+    GdipDisposeImage((GpImage*)bm);
+}
+
 static void test_LoadingImages(void)
 {
     GpStatus stat;
@@ -466,6 +492,7 @@ START_TEST(image)
 
     test_Scan0();
     test_GetImageDimension();
+    test_GdipImageGetFrameDimensionsCount();
     test_LoadingImages();
     test_SavingImages();
     test_encoders();
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 58659fe..07c60f1 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -318,6 +318,7 @@ GpStatus WINGDIPAPI GdipGetMetafileHeaderFromStream(IStream*,MetafileHeader*);
 GpStatus WINGDIPAPI GdipGetMetafileHeaderFromWmf(HMETAFILE,GDIPCONST WmfPlaceableFileHeader*,MetafileHeader*);
 GpStatus WINGDIPAPI GdipGetPropertyItemSize(GpImage*,PROPID,UINT*);
 GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*);
+GpStatus WINGDIPAPI GdipImageGetFrameDimensionsCount(GpImage*,UINT*);
 GpStatus WINGDIPAPI GdipImageGetFrameDimensionsList(GpImage*,GUID*,UINT);
 GpStatus WINGDIPAPI GdipImageSelectActiveFrame(GpImage*,GDIPCONST GUID*,UINT);
 GpStatus WINGDIPAPI GdipLoadImageFromFile(GDIPCONST WCHAR*,GpImage**);




More information about the wine-cvs mailing list