4 #define TAG_FINF TAG('F', 'I', 'N', 'F')
8 #define TO_MEM_ALLOCATED 0x0001
9 #define TO_ALL_PTRS_VALID 0x0002
10 #define TO_VALID 0x0004
11 #define TO_ESC_NOT_ORIENT 0x0008
12 #define TO_PWSZ_ALLOCATED 0x0010
13 #define TSIM_UNDERLINE1 0x0020
14 #define TSIM_UNDERLINE2 0x0040
15 #define TSIM_STRIKEOUT 0x0080
16 #define TO_HIGHRESTEXT 0x0100
17 #define TO_BITMAPS 0x0200
18 #define TO_PARTITION_INIT 0x0400
19 #define TO_ALLOC_FACENAME 0x0800
20 #define TO_SYS_PARTITION 0x1000
24 typedef struct _STRGDI
26 STROBJ StrObj
; // Text string object header.
29 INT cgposPositionsEnumerated
;
30 PVOID prfo
; // PRFONT -> PFONTGDI
34 POINTFIX ptfxEscapement
;
42 RECTL rclBackGroundSave
;
48 POINTL ptlBaseLineAdjust
;
52 INT cNumFaceNameGlyphs
;
53 PVOID pacFaceNameGlyphs
;
54 ULONG acFaceNameGlyphs
[8];
57 /* GDI logical font object */
60 /* Header for all gdi objects in the handle table.
61 Do not (re)move this. */
62 BASEOBJECT BaseObject
;
64 ENUMLOGFONTEXDVW logfont
; //LOGFONTW logfont;
66 BOOLEAN Initialized
; /* Don't reinitialize for each DC */
69 /* Internal interface */
71 #define TEXTOBJ_AllocText() ((PTEXTOBJ) GDIOBJ_AllocObj(GDIObjType_LFONT_TYPE))
72 #define TEXTOBJ_AllocTextWithHandle() ((PTEXTOBJ) GDIOBJ_AllocObjWithHandle(GDI_OBJECT_TYPE_FONT))
73 #define TEXTOBJ_FreeText(pBMObj) GDIOBJ_FreeObj((POBJ) pBMObj, GDILoObjType_LO_FONT_TYPE)
74 #define TEXTOBJ_FreeTextByHandle(hBMObj) GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT)
75 #define TEXTOBJ_LockText(hBMObj) ((PTEXTOBJ) GDIOBJ_LockObj ((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT))
76 #define TEXTOBJ_UnlockText(pBMObj) GDIOBJ_UnlockObjByPtr ((POBJ)pBMObj)
78 NTSTATUS FASTCALL
TextIntRealizeFont(HFONT FontHandle
);
79 NTSTATUS FASTCALL
TextIntCreateFontIndirect(CONST LPLOGFONTW lf
, HFONT
*NewFont
);
80 BOOL FASTCALL
InitFontSupport(VOID
);
81 BOOL FASTCALL
IntIsFontRenderingEnabled(VOID
);
82 BOOL FASTCALL
IntIsFontRenderingEnabled(VOID
);
83 VOID FASTCALL
IntEnableFontRendering(BOOL Enable
);
84 INT FASTCALL
FontGetObject(PTEXTOBJ TextObj
, INT Count
, PVOID Buffer
);
85 VOID FASTCALL
IntLoadSystemFonts(VOID
);
86 INT FASTCALL
IntGdiAddFontResource(PUNICODE_STRING FileName
, DWORD Characteristics
);
88 #define IntLockProcessPrivateFonts(W32Process) \
89 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&W32Process->PrivateFontListLock)
91 #define IntUnLockProcessPrivateFonts(W32Process) \
92 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&W32Process->PrivateFontListLock)
94 #define IntLockGlobalFonts \
95 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FontListLock)
97 #define IntUnLockGlobalFonts \
98 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FontListLock)
100 #define IntLockFreeType \
101 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FreeTypeLock)
103 #define IntUnLockFreeType \
104 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FreeTypeLock)
106 #endif /* _WIN32K_TEXT_H */