Nikolay Sivov wrote:
IE8 requested this.

Changelog:
    - Implemented GetWindowRgnBox with tests

+static void test_winregion()
+{
+    HWND hwnd;
+    RECT r;
+    int ret;
+    HRGN hrgn;
+
+    hwnd = CreateWindowExA(0, "static", NULL, WS_VISIBLE, 10, 10, 10, 10, 
NULL, 0, 0, NULL);
+    if (pGetWindowRgnBox)
+    {
+        /* NULL prect */
+        SetLastError(0xdeadbeef);
+        ret = pGetWindowRgnBox(hwnd, NULL);
+        ok( ret == ERROR, "Expected ERROR, got %d\n", ret);
+        ok( GetLastError() == 0xdeadbeef, "Expected , got %d\n", 
GetLastError());
+
+        hrgn = CreateRectRgn(2, 3, 10, 15);
+        ok( hrgn != NULL, "Region creation failed\n");
+        if (hrgn)
+        {
+            SetWindowRgn(hwnd, hrgn, FALSE);
+
+            SetLastError(0xdeadbeef);
+            ret = pGetWindowRgnBox(hwnd, NULL);
+            ok( ret == ERROR, "Expected ERROR, got %d\n", ret);
+            ok( GetLastError() == 0xdeadbeef, "Expected , got %d\n", 
GetLastError());
+
+            r.left = r.top = r.right = r.bottom = 0;
+            ret = pGetWindowRgnBox(hwnd, &r);
+            ok( ret == SIMPLEREGION, "Expected SIMPLEREGION, got %d\n", ret);
+            ok( r.left == 2 && r.top == 3 && r.right == 10 && r.bottom == 15,
+               "Expected (2,3,10,15), got (%d,%d,%d,%d)\n", r.left, r.top,
+                                                            r.right, r.bottom);
+            DeleteObject(hrgn);
+        }
+    }
+    else
+        win_skip("GetWindowRgnBox not supported\n");
+
+    DestroyWindow(hwnd);
+}
+

Why not test for pGetWindowRgnBox at the beginning and return when not available (including the win_skip() of course). That will get rid of the big indented block.

--
Cheers,

Paul.


Reply via email to