James Hawkins : kernel32: Return TRUE for all pointer params in GlobalUnlock.

Alexandre Julliard julliard at winehq.org
Mon Sep 17 07:59:57 CDT 2007


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

Author: James Hawkins <truiken at gmail.com>
Date:   Sun Sep 16 18:30:20 2007 -0500

kernel32: Return TRUE for all pointer params in GlobalUnlock.

---

 dlls/kernel32/heap.c       |    2 +-
 dlls/kernel32/tests/heap.c |    8 ++++++++
 dlls/user32/tests/dde.c    |   20 ++++----------------
 3 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c
index 005a9fe..b526af0 100644
--- a/dlls/kernel32/heap.c
+++ b/dlls/kernel32/heap.c
@@ -480,7 +480,7 @@ BOOL WINAPI GlobalUnlock(HGLOBAL hmem)
     PGLOBAL32_INTERN pintern;
     BOOL locked;
 
-    if (ISPOINTER(hmem)) return FALSE;
+    if (ISPOINTER(hmem)) return TRUE;
 
     RtlLockHeap(GetProcessHeap());
     __TRY
diff --git a/dlls/kernel32/tests/heap.c b/dlls/kernel32/tests/heap.c
index 66155ef..34393e8 100644
--- a/dlls/kernel32/tests/heap.c
+++ b/dlls/kernel32/tests/heap.c
@@ -189,6 +189,14 @@ START_TEST(heap)
     ok(GetLastError() == ERROR_INVALID_HANDLE,
        "Expected ERROR_INVALID_HANDLE, got %d\n", GetLastError());
 
+    gbl = GlobalAlloc(GMEM_DDESHARE, 100);
+
+    res = GlobalUnlock(gbl);
+    ok(res == 1, "Expected 1, got %d\n", res);
+
+    res = GlobalUnlock(gbl);
+    ok(res == 1, "Expected 1, got %d\n", res);
+
     /* ####################################### */
     /* Local*() functions */
     gbl = LocalAlloc(LMEM_MOVEABLE, 0);
diff --git a/dlls/user32/tests/dde.c b/dlls/user32/tests/dde.c
index e51391f..b12eb15 100644
--- a/dlls/user32/tests/dde.c
+++ b/dlls/user32/tests/dde.c
@@ -492,10 +492,7 @@ static void test_PackDDElParam(void)
     ok(ptr[1] == 0xbeef, "Expected 0xbeef, got %08lx\n", ptr[1]);
 
     ret = GlobalUnlock((HGLOBAL)lparam);
-    todo_wine
-    {
-        ok(ret == 1, "Expected 1, got %d\n", ret);
-    }
+    ok(ret == 1, "Expected 1, got %d\n", ret);
 
     lo = hi = 0;
     ret = UnpackDDElParam(WM_DDE_ADVISE, lparam, &lo, &hi);
@@ -534,10 +531,7 @@ static void test_PackDDElParam(void)
     ok(ptr[1] == 0xbeef, "Expected 0xbeef, got %08lx\n", ptr[1]);
 
     ret = GlobalUnlock((HGLOBAL)lparam);
-    todo_wine
-    {
-        ok(ret == 1, "Expected 1, got %d\n", ret);
-    }
+    ok(ret == 1, "Expected 1, got %d\n", ret);
 
     lo = hi = 0;
     ret = UnpackDDElParam(WM_DDE_ACK, lparam, &lo, &hi);
@@ -560,10 +554,7 @@ static void test_PackDDElParam(void)
     ok(ptr[1] == 0xbeef, "Expected 0xbeef, got %08lx\n", ptr[1]);
 
     ret = GlobalUnlock((HGLOBAL)lparam);
-    todo_wine
-    {
-        ok(ret == 1, "Expected 1, got %d\n", ret);
-    }
+    ok(ret == 1, "Expected 1, got %d\n", ret);
 
     lo = hi = 0;
     ret = UnpackDDElParam(WM_DDE_DATA, lparam, &lo, &hi);
@@ -602,10 +593,7 @@ static void test_PackDDElParam(void)
     ok(ptr[1] == 0xbeef, "Expected 0xbeef, got %08lx\n", ptr[1]);
 
     ret = GlobalUnlock((HGLOBAL)lparam);
-    todo_wine
-    {
-        ok(ret == 1, "Expected 1, got %d\n", ret);
-    }
+    ok(ret == 1, "Expected 1, got %d\n", ret);
 
     lo = hi = 0;
     ret = UnpackDDElParam(WM_DDE_POKE, lparam, &lo, &hi);




More information about the wine-cvs mailing list