Nathan Beckmann : gdiplus: Implement GdipLoadImageFromFile.

Alexandre Julliard julliard at winehq.org
Mon Mar 3 06:21:42 CST 2008


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

Author: Nathan Beckmann <nathan.beckmann at gmail.com>
Date:   Sun Feb 24 07:41:29 2008 -0800

gdiplus: Implement GdipLoadImageFromFile.

---

 dlls/gdiplus/gdiplus.spec  |    2 +-
 dlls/gdiplus/image.c       |   21 +++++++++++++++++++++
 dlls/gdiplus/tests/image.c |    6 ++++++
 3 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 2118a3d..b4f314a 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -435,7 +435,7 @@
 @ stub GdipIsVisibleRegionPointI
 @ stub GdipIsVisibleRegionRect
 @ stub GdipIsVisibleRegionRectI
-@ stub GdipLoadImageFromFile
+@ stdcall GdipLoadImageFromFile(wstr ptr)
 @ stub GdipLoadImageFromFileICM
 @ stdcall GdipLoadImageFromStream(ptr ptr)
 @ stdcall GdipLoadImageFromStreamICM(ptr ptr)
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index 82b0858..5871209 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -697,6 +697,27 @@ GpStatus WINGDIPAPI GdipImageSelectActiveFrame(GpImage *image,
     return Ok;
 }
 
+GpStatus WINGDIPAPI GdipLoadImageFromFile(GDIPCONST WCHAR* filename,
+                                          GpImage **image)
+{
+    GpStatus stat;
+    IStream *stream;
+
+    if (!filename || !image)
+        return InvalidParameter;
+
+    stat = GdipCreateStreamOnFile(filename, GENERIC_READ, &stream);
+
+    if (stat != Ok)
+        return stat;
+
+    stat = GdipLoadImageFromStream(stream, image);
+
+    IStream_Release(stream);
+
+    return stat;
+}
+
 GpStatus WINGDIPAPI GdipLoadImageFromStream(IStream* stream, GpImage **image)
 {
     IPicture *pic;
diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c
index 7228339..5ff164d 100644
--- a/dlls/gdiplus/tests/image.c
+++ b/dlls/gdiplus/tests/image.c
@@ -114,6 +114,12 @@ static void test_LoadingImages(void)
 
     stat = GdipCreateBitmapFromFile(0, (GpBitmap**)0xdeadbeef);
     expect(InvalidParameter, stat);
+
+    stat = GdipLoadImageFromFile(0, 0);
+    expect(InvalidParameter, stat);
+
+    stat = GdipLoadImageFromFile(0, (GpImage**)0xdeadbeef);
+    expect(InvalidParameter, stat);
 }
 
 START_TEST(image)




More information about the wine-cvs mailing list