ReactOS 0.4.15-dev-7961-gdcf9eb0
text.h
Go to the documentation of this file.
1#pragma once
2
3#define TAG_FINF 'FNIF'
4//
5// EXSTROBJ flags.
6//
7#define TO_MEM_ALLOCATED 0x0001
8#define TO_ALL_PTRS_VALID 0x0002
9#define TO_VALID 0x0004
10#define TO_ESC_NOT_ORIENT 0x0008
11#define TO_PWSZ_ALLOCATED 0x0010
12#define TSIM_UNDERLINE1 0x0020
13#define TSIM_UNDERLINE2 0x0040
14#define TSIM_STRIKEOUT 0x0080
15#define TO_HIGHRESTEXT 0x0100
16#define TO_BITMAPS 0x0200
17#define TO_PARTITION_INIT 0x0400
18#define TO_ALLOC_FACENAME 0x0800
19#define TO_SYS_PARTITION 0x1000
20//
21// Extended STROBJ
22//
23typedef struct _STRGDI
24{
25 STROBJ StrObj; // Text string object header.
29 PVOID prfo; // PRFONT -> PFONTGDI
55
56#define TEXTOBJECT_INIT 0x00010000
57
58/* GDI logical font object */
59typedef struct _LFONT
60{
61 /* Header for all gdi objects in the handle table.
62 Do not (re)move this. */
69// Fixed:
73
74/* Internal interface */
75
76#define LFONT_AllocFontWithHandle() ((PLFONT)GDIOBJ_AllocObjWithHandle(GDI_OBJECT_TYPE_FONT, sizeof(TEXTOBJ)))
77#define LFONT_ShareLockFont(hfont) (PLFONT)GDIOBJ_ReferenceObjectByHandle(hfont, GDIObjType_LFONT_TYPE)
78#define LFONT_ShareUnlockFont(plfnt) GDIOBJ_vDereferenceObject((POBJ)plfnt)
79#define LFONT_UnlockFont(plfnt) GDIOBJ_vUnlockObject((POBJ)plfnt)
80
84{
86 if (plfnt != 0)
87 {
90 }
91 return plfnt;
92}
93
95VOID
97{
101}
102
103/* dwFlags for IntGdiAddFontResourceEx */
104#define AFRX_WRITE_REGISTRY 0x1
105#define AFRX_ALTERNATIVE_PATH 0x2
106#define AFRX_DOS_DEVICE_PATH 0x4
107
122 DWORD dwFlags);
143BOOL FASTCALL GreTextOutW(HDC,int,int,LPCWSTR,int);
146
147#define IntLockProcessPrivateFonts(W32Process) \
148 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&W32Process->PrivateFontListLock)
149
150#define IntUnLockProcessPrivateFonts(W32Process) \
151 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&W32Process->PrivateFontListLock)
static HFONT hfont
LONG NTSTATUS
Definition: precomp.h:26
Definition: bufpool.h:45
#define LF_FACESIZE
Definition: dimm.idl:39
FORCEINLINE VOID ExAcquirePushLockExclusive(PEX_PUSH_LOCK PushLock)
Definition: ex.h:1036
FORCEINLINE VOID ExReleasePushLockExclusive(PEX_PUSH_LOCK PushLock)
Definition: ex.h:1252
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define KeLeaveCriticalRegion()
Definition: ke_x.h:119
#define KeEnterCriticalRegion()
Definition: ke_x.h:88
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:92
static LPTEXTMETRICW lptm
Definition: font.c:42
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
unsigned int UINT
Definition: ndis.h:50
int Count
Definition: noreturn.cpp:7
#define FASTCALL
Definition: nt_native.h:50
unsigned long FLONG
Definition: ntbasedef.h:366
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
DWORD LFTYPE
Definition: ntgdityp.h:189
#define CONST
Definition: pedump.c:81
DWORD * PDWORD
Definition: pedump.c:68
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
Definition: polytest.cpp:41
Definition: text.h:60
LFTYPE lft
Definition: text.h:64
DWORD dwOffsetEndArray
Definition: text.h:68
BASEOBJECT BaseObject
Definition: text.h:63
FLONG fl
Definition: text.h:65
WCHAR TextFace[LF_FACESIZE]
Definition: text.h:67
ENUMLOGFONTEXDVW logfont
Definition: text.h:70
FONTOBJ * Font
Definition: text.h:66
EX_PUSH_LOCK lock
Definition: text.h:71
Definition: wingdi.h:2472
Definition: text.h:24
FLONG flTO
Definition: text.h:26
RECTL rclBackGroundSave
Definition: text.h:41
INT cNumFaceNameGlyphs
Definition: text.h:51
INT cgposCopied
Definition: text.h:27
RECTL arclExtra[3]
Definition: text.h:40
INT cExtraRects
Definition: text.h:39
ULONG acFaceNameGlyphs[8]
Definition: text.h:53
PLONG plCurrentFont
Definition: text.h:46
PVOID prfo
Definition: text.h:29
PLONG plPartition
Definition: text.h:43
DWORD dwCodePage
Definition: text.h:38
PLONG plNext
Definition: text.h:44
POINTL ptlBaseLineAdjust
Definition: text.h:47
POINTFIX ptfxUpdate
Definition: text.h:32
FIX fxExtra
Definition: text.h:36
PVOID pacFaceNameGlyphs
Definition: text.h:52
INT cDefGlyphs
Definition: text.h:50
STROBJ StrObj
Definition: text.h:25
POINTFIX ptfxEscapement
Definition: text.h:33
INT cTTSysGlyphs
Definition: text.h:48
RECTFX rcfx
Definition: text.h:34
PGLYPHPOS pgpNext
Definition: text.h:45
INT cSysGlyphs
Definition: text.h:49
FIX fxExtent
Definition: text.h:35
PWCHAR pwcPartition
Definition: text.h:42
PGLYPHPOS pgpos
Definition: text.h:30
POINTFIX ptfxRef
Definition: text.h:31
FIX fxBreakExtra
Definition: text.h:37
INT cgposPositionsEnumerated
Definition: text.h:28
uint32_t * PULONG
Definition: typedefs.h:59
#define NTAPI
Definition: typedefs.h:36
int32_t INT
Definition: typedefs.h:58
#define IN
Definition: typedefs.h:39
int32_t * PLONG
Definition: typedefs.h:58
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
#define FORCEINLINE
Definition: wdftypes.h:67
BOOL FASTCALL ftGdiRealizationInfo(PFONTGDI, PREALIZATION_INFO)
Definition: freetype.c:5648
#define LFONT_ShareLockFont(hfont)
Definition: text.h:77
ULONG FASTCALL FontGetObject(PTEXTOBJ TextObj, ULONG Count, PVOID Buffer)
Definition: font.c:293
BYTE FASTCALL IntCharSetFromCodePage(UINT uCodePage)
Definition: freetype.c:172
INT FASTCALL IntGetOutlineTextMetrics(PFONTGDI, UINT, OUTLINETEXTMETRICW *)
Definition: freetype.c:2398
VOID FASTCALL IntGdiCleanupPrivateFontsForProcess(VOID)
Definition: freetype.c:1911
BOOL FASTCALL InitFontSupport(VOID)
Definition: freetype.c:657
struct _LFONT TEXTOBJ
DWORD FASTCALL ftGetFontUnicodeRanges(PFONTGDI, PGLYPHSET)
Definition: freetype.c:4481
FORCEINLINE PTEXTOBJ TEXTOBJ_LockText(HFONT hfont)
Definition: text.h:83
BOOL WINAPI GreGetTextMetricsW(_In_ HDC hdc, _Out_ LPTEXTMETRICW lptm)
Definition: text.c:193
BOOL FASTCALL IntGdiGetFontResourceInfo(PUNICODE_STRING, PVOID, DWORD *, DWORD)
Definition: freetype.c:5380
struct _STRGDI STRGDI
DWORD FASTCALL IntGetCharDimensions(HDC, PTEXTMETRICW, PDWORD)
Definition: font.c:329
VOID FASTCALL IntLoadSystemFonts(VOID)
Definition: freetype.c:892
PTEXTOBJ FASTCALL RealizeFontInit(HFONT)
Definition: font.c:422
BOOL FASTCALL GreGetTextExtentExW(HDC, LPCWSTR, ULONG, ULONG, PULONG, PULONG, LPSIZE, FLONG)
Definition: text.c:135
BOOL FASTCALL ftGdiGetTextMetricsW(HDC, PTMW_INTERNAL)
Definition: freetype.c:4555
BOOL FASTCALL GreTextOutW(HDC, int, int, LPCWSTR, int)
Definition: text.c:61
INT FASTCALL ftGdiGetTextCharsetInfo(PDC, PFONTSIGNATURE, DWORD)
Definition: freetype.c:4368
VOID FASTCALL IntEnableFontRendering(BOOL Enable)
Definition: freetype.c:1963
BOOL FASTCALL TextIntUpdateSize(PDC, PTEXTOBJ, PFONTGDI, BOOL)
Definition: freetype.c:3585
HFONT FASTCALL GreCreateFontIndirectW(LOGFONTW *)
Definition: font.c:23
struct _LFONT LFONT
INT FASTCALL IntGdiAddFontResourceEx(PUNICODE_STRING FileName, DWORD Characteristics, DWORD dwFlags)
Definition: freetype.c:1422
struct _LFONT * PTEXTOBJ
DWORD FASTCALL IntGetFontLanguageInfo(PDC)
Definition: font.c:371
BOOL FASTCALL ftGdiGetRasterizerCaps(LPRASTERIZER_STATUS)
Definition: freetype.c:3073
NTSTATUS FASTCALL TextIntCreateFontIndirect(CONST LPLOGFONTW lf, HFONT *NewFont)
Definition: freetype.c:1991
BOOL FASTCALL GreGetTextExtentW(HDC, LPCWSTR, INT, LPSIZE, UINT)
Definition: text.c:78
BOOL FASTCALL IntGdiRemoveFontMemResource(HANDLE hMMFont)
Definition: freetype.c:1877
HANDLE FASTCALL IntGdiAddFontMemResource(PVOID Buffer, DWORD dwSize, PDWORD pNumAdded)
Definition: freetype.c:1789
INT FASTCALL IntGdiAddFontResource(PUNICODE_STRING FileName, DWORD Characteristics)
Definition: freetype.c:1621
FORCEINLINE VOID TEXTOBJ_UnlockText(PLFONT plfnt)
Definition: text.h:96
BOOL FASTCALL TextIntGetTextExtentPoint(PDC, PTEXTOBJ, LPCWSTR, INT, ULONG, LPINT, LPINT, LPSIZE, FLONG)
Definition: freetype.c:4258
#define LFONT_ShareUnlockFont(plfnt)
Definition: text.h:78
BOOL FASTCALL IntLoadFontsInRegistry(VOID)
Definition: freetype.c:1637
DWORD FASTCALL ftGdiGetFontData(PFONTGDI, DWORD, DWORD, PVOID, DWORD)
Definition: freetype.c:4652
BOOL FASTCALL IntIsFontRenderingEnabled(VOID)
Definition: freetype.c:1957
BOOL NTAPI GreExtTextOutW(IN HDC, IN INT, IN INT, IN UINT, IN OPTIONAL RECTL *, IN LPCWSTR, IN INT, IN OPTIONAL LPINT, IN DWORD)
struct _STRGDI * PSTRGDI
NTSTATUS FASTCALL TextIntRealizeFont(HFONT, PTEXTOBJ)
Definition: freetype.c:5193
DWORD FASTCALL ftGdiGetKerningPairs(PFONTGDI, DWORD, LPKERNINGPAIR)
Definition: freetype.c:5667
ULONG FASTCALL ftGdiGetGlyphOutline(PDC, WCHAR, UINT, LPGLYPHMETRICS, ULONG, PVOID, LPMAT2, BOOL)
Definition: freetype.c:3723
struct _LFONT * PLFONT
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
LONG FIX
Definition: winddi.h:126
int * LPINT
Definition: windef.h:178
#define WINAPI
Definition: msvc.h:6
__wchar_t WCHAR
Definition: xmlstorage.h:180
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
unsigned char BYTE
Definition: xxhash.c:193