1 #include "../user32api.h"
4 Test_ScrollDC(PTESTINFO pti
)
12 hWnd
= CreateWindowW(L
"BUTTON", L
"TestWindow", WS_OVERLAPPEDWINDOW
| WS_VISIBLE
,
14 NULL
, NULL
, g_hInstance
, 0);
18 /* Assert that no update region is there */
19 hrgn
= CreateRectRgn(0,0,0,0);
20 ASSERT(GetUpdateRgn(hWnd
, hrgn
, FALSE
) == NULLREGION
);
22 /* Test normal scrolling */
23 TEST(ScrollDC(hDC
, 0, 0, NULL
, NULL
, hrgn
, NULL
) == TRUE
);
25 /* Scroll with invalid update region */
27 TEST(ScrollDC(hDC
, 50, 0, NULL
, NULL
, hrgn
, NULL
) == FALSE
);
28 hrgn
= CreateRectRgn(0,0,0,0);
29 TEST(GetUpdateRgn(hWnd
, hrgn
, FALSE
) == NULLREGION
);
31 /* Scroll with invalid update rect pointer */
32 TEST(ScrollDC(hDC
, 50, 0, NULL
, NULL
, NULL
, (PRECT
)1) == 0);
33 TEST(GetUpdateRgn(hWnd
, hrgn
, FALSE
) == NULLREGION
);
35 /* Scroll with a clip rect */
36 rcClip
.left
= 50; rcClip
.top
= 0; rcClip
.right
= 100; rcClip
.bottom
= 100;
37 TEST(ScrollDC(hDC
, 50, 0, NULL
, &rcClip
, hrgn
, NULL
) == TRUE
);
38 TEST(GetUpdateRgn(hWnd
, hrgn
, FALSE
) == NULLREGION
);
40 /* Scroll with a clip rect */
41 rcClip
.left
= 50; rcClip
.top
= 0; rcClip
.right
= 100; rcClip
.bottom
= 100;
42 TEST(ScrollDC(hDC
, 50, 50, NULL
, &rcClip
, hrgn
, NULL
) == TRUE
);
43 TEST(GetUpdateRgn(hWnd
, hrgn
, FALSE
) == NULLREGION
);
45 /* Overlap with another window */
46 hWnd2
= CreateWindowW(L
"BUTTON", L
"TestWindow", WS_OVERLAPPEDWINDOW
| WS_VISIBLE
,
48 NULL
, NULL
, g_hInstance
, 0);
56 return APISTATUS_NORMAL
;