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