[3/3] user32: Implemented GetWindowRgnBox with tests

Paul Vriens paul.vriens.wine at gmail.com
Thu Apr 2 01:49:58 CDT 2009


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.



More information about the wine-devel mailing list