[1/3] gdi32: Fix error code for GetMetaFileBitsEx with test
Nikolay Sivov
bunglehead at gmail.com
Sat Jan 10 13:44:09 CST 2009
Changelog:
- fix error code for GetMetaFileBitsEx with test passed on WinXP
>From a805601b82d360d7ba8daa9da6fdc241afed39e4 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Sat, 10 Jan 2009 21:47:27 +0300
Subject: Fix error code for GetMetaFileBitsEx with test
---
dlls/gdi32/metafile.c | 5 ++++-
dlls/gdi32/tests/metafile.c | 11 +++++++++++
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/dlls/gdi32/metafile.c b/dlls/gdi32/metafile.c
index 83ea2aa..5cabb9a 100644
--- a/dlls/gdi32/metafile.c
+++ b/dlls/gdi32/metafile.c
@@ -1136,7 +1136,10 @@ UINT WINAPI GetMetaFileBitsEx( HMETAFILE hmf, UINT nSize, LPVOID buf )
UINT mfSize;
TRACE("(%p,%d,%p)\n", hmf, nSize, buf);
- if (!mh) return 0; /* FIXME: error code */
+ if (!mh) {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return 0;
+ }
if(mh->mtType == METAFILE_DISK)
FIXME("Disk-based metafile?\n");
mfSize = mh->mtSize * 2;
diff --git a/dlls/gdi32/tests/metafile.c b/dlls/gdi32/tests/metafile.c
index b0c6f24..d5db52b 100644
--- a/dlls/gdi32/tests/metafile.c
+++ b/dlls/gdi32/tests/metafile.c
@@ -2124,6 +2124,16 @@ static void test_SetEnhMetaFileBits(void)
DeleteEnhMetaFile(hemf);
}
+static void test_GetMetaFileBits(void)
+{
+ UINT ret;
+
+ SetLastError(0xdeadbeef);
+ ret = GetMetaFileBitsEx(NULL, 0, NULL);
+ ok(ret == 0, "Expected 0, got %u\n", ret);
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "Expected ERROR_INVALID_HANDLE, got %u\n", GetLastError());
+}
+
START_TEST(metafile)
{
init_function_pointers();
@@ -2148,4 +2158,5 @@ START_TEST(metafile)
test_gdiis();
test_SetEnhMetaFileBits();
+ test_GetMetaFileBits();
}
--
1.5.6.5
More information about the wine-patches
mailing list