1 /*
2  * PROJECT:         ReactOS api tests
3  * LICENSE:         GPL - See COPYING in the top level directory
4  * PURPOSE:         Test for NtGdiEnumFontOpen
5  * PROGRAMMERS:
6  */
7 
8 #include "../win32nt.h"
9 
START_TEST(NtGdiEnumFontOpen)10 START_TEST(NtGdiEnumFontOpen)
11 {
12     HDC hDC;
13     ULONG_PTR idEnum;
14     ULONG ulCount;
15     PENTRY pEntry;
16 
17     DWORD dwOsVer = NtCurrentPeb()->OSMajorVersion << 8 | NtCurrentPeb()->OSMinorVersion;
18     if (dwOsVer >= _WIN32_WINNT_WIN7)
19     {
20         skip("NtGdiEnumFontOpen is not supported on Windows 7 or later\n");
21         return;
22     }
23 
24     hDC = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
25 
26     // FIXME: We should load the font first
27 
28     idEnum = NtGdiEnumFontOpen(hDC, 2, 0, 32, L"Courier", ANSI_CHARSET, &ulCount);
29     ok(idEnum != 0, "idEnum was 0.\n");
30     if (idEnum == 0)
31     {
32         skip("idEnum == 0\n");
33         return;
34     }
35 
36     /* we should have a gdi handle here */
37     ok_int((int)GDI_HANDLE_GET_TYPE(idEnum), (int)GDI_OBJECT_TYPE_ENUMFONT);
38     pEntry = &GdiHandleTable[GDI_HANDLE_GET_INDEX(idEnum)];
39     ok(pEntry->einfo.pobj != NULL, "pEntry->einfo.pobj was NULL.\n");
40     ok_long(pEntry->ObjectOwner.ulObj, GetCurrentProcessId());
41     ok_ptr(pEntry->pUser, NULL);
42     ok_int(pEntry->FullUnique, (idEnum >> 16) & 0xFFFF);
43     ok_int(pEntry->Objt, GDI_OBJECT_TYPE_ENUMFONT >> 16);
44     ok_int(pEntry->Flags, 0);
45 
46     /* We should not be able to use DeleteObject() on the handle */
47     ok_int(DeleteObject((HGDIOBJ)idEnum), FALSE);
48 
49     NtGdiEnumFontClose(idEnum);
50 
51     // Test no logfont (NULL): should word
52     // Test empty lfFaceName string: should not work
53 }
54