1 #pragma once 2 3 4 typedef struct _FONT_ENTRY 5 { 6 LIST_ENTRY ListEntry; 7 FONTGDI *Font; 8 UNICODE_STRING FaceName; 9 UNICODE_STRING StyleName; 10 BYTE NotEnum; 11 } FONT_ENTRY, *PFONT_ENTRY; 12 13 typedef struct _FONT_ENTRY_MEM 14 { 15 LIST_ENTRY ListEntry; 16 FONT_ENTRY *Entry; 17 } FONT_ENTRY_MEM, *PFONT_ENTRY_MEM; 18 19 typedef struct _FONT_ENTRY_COLL_MEM 20 { 21 LIST_ENTRY ListEntry; 22 HANDLE Handle; 23 FONT_ENTRY_MEM *Entry; 24 } FONT_ENTRY_COLL_MEM, *PFONT_ENTRY_COLL_MEM; 25 26 #include <pshpack1.h> /* We don't like padding for these structures */ 27 28 typedef struct _EMULATION_BOLD_ITALIC 29 { 30 BYTE Bold; 31 BYTE Italic; 32 } EMULATION_BOLD_ITALIC, *PEMULATION_BOLD_ITALIC; 33 34 typedef struct _FONT_ASPECT 35 { 36 _ANONYMOUS_UNION union { 37 EMULATION_BOLD_ITALIC Emu; 38 WORD EmuBoldItalic; 39 } DUMMYUNIONNAME; 40 WORD RenderMode; 41 } FONT_ASPECT, *PFONT_ASPECT; 42 43 typedef struct _FONT_CACHE_ENTRY 44 { 45 LIST_ENTRY ListEntry; 46 FT_BitmapGlyph BitmapGlyph; 47 DWORD dwHash; 48 49 /* The following members are hashed */ 50 INT GlyphIndex; 51 FT_Face Face; 52 LONG lfHeight; 53 _ANONYMOUS_UNION union { 54 FONT_ASPECT Aspect; 55 DWORD AspectValue; 56 } DUMMYUNIONNAME; 57 FT_Matrix matTransform; 58 } FONT_CACHE_ENTRY, *PFONT_CACHE_ENTRY; 59 60 #include <poppack.h> 61 62 C_ASSERT(offsetof(FONT_CACHE_ENTRY, GlyphIndex) % sizeof(DWORD) == 0); 63 C_ASSERT(sizeof(FONT_CACHE_ENTRY) % sizeof(DWORD) == 0); 64 65 /* 66 * FONTSUBST_... --- constants for font substitutes 67 */ 68 #define FONTSUBST_FROM 0 69 #define FONTSUBST_TO 1 70 #define FONTSUBST_FROM_AND_TO 2 71 72 /* 73 * FONTSUBST_ENTRY --- font substitute entry 74 */ 75 typedef struct FONTSUBST_ENTRY 76 { 77 LIST_ENTRY ListEntry; 78 UNICODE_STRING FontNames[FONTSUBST_FROM_AND_TO]; 79 BYTE CharSets[FONTSUBST_FROM_AND_TO]; 80 } FONTSUBST_ENTRY, *PFONTSUBST_ENTRY; 81 82 83 typedef struct GDI_LOAD_FONT 84 { 85 PUNICODE_STRING pFileName; 86 PSHARED_MEM Memory; 87 DWORD Characteristics; 88 UNICODE_STRING RegValueName; 89 BOOL IsTrueType; 90 BYTE CharSet; 91 PFONT_ENTRY_MEM PrivateEntry; 92 } GDI_LOAD_FONT, *PGDI_LOAD_FONT; 93 94