diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index f2eb2b3..caa378f 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 0d21c82..ee7ddcb 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -315,6 +315,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**);