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 ENUMLOGFONTEXDVW logfont
; //LOGFONTW logfont;
62 BOOLEAN Initialized
; /* Don't reinitialize for each DC */
65 /* Internal interface */
67 #define TEXTOBJ_AllocText() \
68 ((HFONT) GDIOBJ_AllocObj (GdiHandleTable, GDI_OBJECT_TYPE_FONT))
69 #define TEXTOBJ_FreeText(hBMObj) GDIOBJ_FreeObj(GdiHandleTable, (HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT)
70 #define TEXTOBJ_LockText(hBMObj) ((PTEXTOBJ) GDIOBJ_LockObj (GdiHandleTable, (HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT))
71 #define TEXTOBJ_UnlockText(pBMObj) GDIOBJ_UnlockObjByPtr (GdiHandleTable, pBMObj)
73 NTSTATUS FASTCALL
TextIntRealizeFont(HFONT FontHandle
);
74 NTSTATUS FASTCALL
TextIntCreateFontIndirect(CONST LPLOGFONTW lf
, HFONT
*NewFont
);
75 BOOL FASTCALL
InitFontSupport(VOID
);
76 BOOL FASTCALL
IntIsFontRenderingEnabled(VOID
);
77 BOOL FASTCALL
IntIsFontRenderingEnabled(VOID
);
78 VOID FASTCALL
IntEnableFontRendering(BOOL Enable
);
79 INT FASTCALL
FontGetObject(PTEXTOBJ TextObj
, INT Count
, PVOID Buffer
);
80 VOID FASTCALL
IntLoadSystemFonts(VOID
);
81 INT FASTCALL
IntGdiAddFontResource(PUNICODE_STRING FileName
, DWORD Characteristics
);
83 #define IntLockProcessPrivateFonts(W32Process) \
84 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&W32Process->PrivateFontListLock)
86 #define IntUnLockProcessPrivateFonts(W32Process) \
87 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&W32Process->PrivateFontListLock)
89 #define IntLockGlobalFonts \
90 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FontListLock)
92 #define IntUnLockGlobalFonts \
93 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FontListLock)
95 #define IntLockFreeType \
96 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FreeTypeLock)
98 #define IntUnLockFreeType \
99 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FreeTypeLock)
101 #endif /* _WIN32K_TEXT_H */