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 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