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.