[ROSTESTS]
[reactos.git] / rostests / apitests / w32knapi / ntgdi / NtGdiSelectFont.c
1 INT
2 Test_NtGdiSelectFont(PTESTINFO pti)
3 {
4 HDC hDC;
5 HFONT hFont, hOldFont;
6
7 hDC = CreateDCW(L"DISPLAY", NULL, NULL, NULL);
8
9 hFont = GetStockObject(DEFAULT_GUI_FONT);
10
11 /* Test NULL DC */
12 SetLastError(ERROR_SUCCESS);
13 hOldFont = NtGdiSelectFont(NULL, hFont);
14 TEST(hOldFont == NULL);
15 TEST(GetLastError() == ERROR_SUCCESS);
16
17 /* Test invalid DC */
18 SetLastError(ERROR_SUCCESS);
19 hOldFont = NtGdiSelectFont((HDC)((ULONG_PTR)hDC & 0x0000ffff), hFont);
20 TEST(hOldFont == NULL);
21 TEST(GetLastError() == ERROR_SUCCESS);
22
23 /* Test NULL font */
24 SetLastError(ERROR_SUCCESS);
25 hOldFont = NtGdiSelectFont(hDC, NULL);
26 TEST(hOldFont == NULL);
27 TEST(GetLastError() == ERROR_SUCCESS);
28
29 /* Test invalid font */
30 SetLastError(ERROR_SUCCESS);
31 hOldFont = NtGdiSelectFont(hDC, (HFONT)((ULONG_PTR)hFont & 0x0000ffff));
32 TEST(hOldFont == NULL);
33 TEST(GetLastError() == ERROR_SUCCESS);
34
35 SetLastError(ERROR_SUCCESS);
36 hOldFont = NtGdiSelectFont(hDC, hFont);
37 TEST(hOldFont != NULL);
38 hOldFont = NtGdiSelectFont(hDC, hOldFont);
39 TEST(hOldFont == hFont);
40 TEST(GetLastError() == ERROR_SUCCESS);
41
42
43 DeleteDC(hDC);
44
45 return APISTATUS_NORMAL;
46 }
47