2 Test_NtGdiGetRandomRgn(PTESTINFO pti
)
9 hWnd
= CreateWindowW(L
"BUTTON", L
"TestWindow", WS_OVERLAPPEDWINDOW
| WS_VISIBLE
,
10 CW_USEDEFAULT
, CW_USEDEFAULT
, 100, 100,
11 NULL
, NULL
, g_hInstance
, 0);
12 // UpdateWindow(hWnd);
17 hrgn
= CreateRectRgn(0,0,0,0);
18 hrgn2
= CreateRectRgn(3,3,10,10);
19 SetLastError(ERROR_SUCCESS
);
20 RTEST(NtGdiGetRandomRgn(0, hrgn
, 0) == -1);
21 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
23 SetLastError(ERROR_SUCCESS
);
24 RTEST(NtGdiGetRandomRgn((HDC
)2345, hrgn
, 1) == -1);
25 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
27 SetLastError(ERROR_SUCCESS
);
28 RTEST(NtGdiGetRandomRgn((HDC
)2345, hrgn
, 10) == -1);
29 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
31 SetLastError(ERROR_SUCCESS
);
32 RTEST(NtGdiGetRandomRgn((HDC
)2345, (HRGN
)10, 10) == -1);
33 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
35 SetLastError(ERROR_SUCCESS
);
36 RTEST(NtGdiGetRandomRgn((HDC
)2345, 0, 1) == -1);
37 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
39 SetLastError(ERROR_SUCCESS
);
40 RTEST(NtGdiGetRandomRgn(hDC
, 0, 0) == 0);
41 RTEST(NtGdiGetRandomRgn(hDC
, 0, 1) == 0);
42 RTEST(NtGdiGetRandomRgn(hDC
, (HRGN
)-5, 0) == 0);
43 RTEST(NtGdiGetRandomRgn(hDC
, (HRGN
)-5, 1) == 0);
44 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 0) == 0);
45 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 1) == 0);
46 TEST(NtGdiGetRandomRgn(hDC
, hrgn
, 2) == 0);
47 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 3) == 0);
48 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 4) == 1);
49 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 5) == 0);
50 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 10) == 0);
51 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, -10) == 0);
52 RTEST(GetLastError() == ERROR_SUCCESS
);
54 SelectClipRgn(hDC
, hrgn2
);
55 RTEST(NtGdiGetRandomRgn(hDC
, 0, 1) == -1);
56 RTEST(GetLastError() == ERROR_SUCCESS
);
57 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 1) == 1);
58 RTEST(CombineRgn(hrgn
, hrgn
, hrgn
, RGN_OR
) == SIMPLEREGION
);
59 RTEST(CombineRgn(hrgn
, hrgn
, hrgn2
, RGN_XOR
) == NULLREGION
);
61 SetRectRgn(hrgn2
,0,0,0,0);
62 SelectClipRgn(hDC
, hrgn2
);
63 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 1) == 1);
65 RTEST(CombineRgn(hrgn2
, hrgn
, hrgn2
, RGN_XOR
) == NULLREGION
);
66 RTEST(CombineRgn(hrgn2
, hrgn
, hrgn
, RGN_OR
) == NULLREGION
);
68 SelectClipRgn(hDC
, NULL
);
69 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 1) == 0);
72 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 4) == 1);
74 RTEST(GetLastError() == ERROR_SUCCESS
);
79 return APISTATUS_NORMAL
;