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);
+}
+