72#define INITIAL_FAMILY_COUNT 64
141 if(plenW) *plenW = lenW;
162 if (lastChar > 0xffff)
164 if ((firstChar ^ lastChar) > 0xff)
177 for(
i = 0,
c = firstChar;
c <= lastChar;
i++,
c++)
208#define IFFCX_CHARSET 1
217 ULONG WeightDiff1, WeightDiff2;
232 if (WeightDiff1 < WeightDiff2)
234 if (WeightDiff1 > WeightDiff2)
251#define IEFF_UNICODE 1
252#define IEFF_EXTENDED 2
259 DWORD dwCompareFlags = 0;
268 last = &InfoList[nCount];
325 if (FontFamilyCount < 0)
348 if (FontFamilyCount < 0 || FontFamilyCount < InfoCount)
360 for (
i = 0;
i < FontFamilyCount;
i++)
380 &
Info[
i].NewTextMetricEx);
382 (
VOID*)&EnumLogFontExA,
383 (
VOID*)&NewTextMetricExA,
405 DPRINT(
"EnumFontFamiliesExW(%p, %p(%S, %u, %u), %p, %p, 0x%08lX)\n",
411 DPRINT(
"EnumFontFamiliesExW(%p, NULL, %p, %p, 0x%08lX)\n",
428 DPRINT(
"EnumFontFamiliesW(%p, %S, %p, %p)\n",
429 hdc, lpszFamily, lpEnumFontFamProc,
lParam);
433 if (
NULL != lpszFamily)
435 if (!*lpszFamily)
return 1;
454 DPRINT(
"EnumFontFamiliesExA(%p, %p(%s, %u, %u), %p, %p, 0x%08lX)\n",
460 DPRINT(
"EnumFontFamiliesExA(%p, NULL, %p, %p, 0x%08lX)\n",
467 pLogFontW = &LogFontW;
469 else pLogFontW =
NULL;
485 DPRINT(
"EnumFontFamiliesA(%p, %s, %p, %p)\n",
486 hdc, lpszFamily, lpEnumFontFamProc,
lParam);
490 if (
NULL != lpszFamily)
492 if (!*lpszFamily)
return 1;
519 if ( !lpString || uCount <= 0 || !lpResults || (nMaxExtent < 0 && nMaxExtent != -1 ) )
528 memcpy(&resultsW, lpResults,
sizeof(resultsW));
530 lpStringW =
FONT_mbtowc(
hdc, lpString, uCount, &uCountW, &font_cp);
531 if (lpStringW ==
NULL)
580 DPRINT(
"GetCharacterPlacementW\n");
605 for (
i = 0;
i < nSet;
i++)
613 for (
i = 0;
i < nSet;
i++)
625 for (
i = 1;
i < nSet;
i++)
653 if ( !lpString || uCount <= 0 || (nMaxExtent < 0 && nMaxExtent != -1 ) )
669 if ( nSet > lpResults->
nGlyphs )
691 DPRINT(
"GetCharABCWidthsFloatW\n");
692 if ((!abcF) || (FirstChar > LastChar))
699 (
ULONG)(LastChar - FirstChar + 1),
716 DPRINT(
"GetCharWidthsFloatW\n");
717 if ((!pxBuffer) || (iFirstChar > iLastChar))
724 (
ULONG)(iLastChar - iFirstChar + 1),
741 DPRINT(
"GetCharWidthsW\n");
742 if ((!
lpBuffer) || (iFirstChar > iLastChar))
749 (
ULONG)(iLastChar - iFirstChar + 1),
766 DPRINT(
"GetCharWidths32W\n");
767 if ((!
lpBuffer) || (iFirstChar > iLastChar))
774 (
ULONG)(iLastChar - iFirstChar + 1),
792 DPRINT(
"GetCharABCWidthsW\n");
793 if ((!lpabc) || (FirstChar > LastChar))
800 (
ULONG)(LastChar - FirstChar + 1),
823 DPRINT(
"GetCharWidthsA\n");
866 DPRINT(
"GetCharWidths32A\n");
909 DPRINT(
"GetCharWidthsFloatA\n");
946 DPRINT(
"GetCharABCWidthsA\n");
989 DPRINT(
"GetCharABCWidthsFloatA\n");
1020 DPRINT(
"GetCharABCWidthsI\n");
1041 DPRINT(
"GetCharWidthsI\n");
1047 if (!cgi)
return TRUE;
1065 DWORD Gcp = 0, Ret = 0;
1126 DPRINT(
"GetGlyphOutlineA uChar %x\n", uChar);
1135 mbchs[0] = (uChar & 0xff00) >> 8;
1136 mbchs[1] = (uChar & 0xff);
1141 mbchs[0] = (uChar & 0xff);
1171 DPRINT(
"GetGlyphOutlineW uChar %x\n", uChar);
1173 if (!lpvBuffer) cbBuffer = 0;
1250 DPRINT(
"needed = %u\n", needed);
1293 ptr = (
char*)(output + 1);
1294 left = needed -
sizeof(*output);
1347 memcpy(lpOTM, output, cbData);
1408 UINT Size, AvailableSize = 0, StringSize;
1418 if (!lpOTM || (cbData <
sizeof(*lpOTM)))
1432 DPRINT1(
"NtGdiGetTransform failed!\n");
1482 Size =
sizeof(*lpOTM);
1483 AvailableSize = cbData -
Size;
1484 Ptr = (
BYTE*)lpOTM +
sizeof(*lpOTM);
1491 if (AvailableSize >= StringSize)
1496 AvailableSize -= StringSize;
1505 if (AvailableSize >= StringSize)
1510 AvailableSize -= StringSize;
1519 if (AvailableSize >= StringSize)
1524 AvailableSize -= StringSize;
1533 if (AvailableSize >= StringSize)
1538 AvailableSize -= StringSize;
1559 if ((cPairs != 0) || (pkpDst == 0))
1582 DWORD i, total_kern_pairs, kern_pairs_copied = 0;
1585 if (!cPairs && kern_pairA)
1609 if (!total_kern_pairs)
return 0;
1611 if (!cPairs && !kern_pairA)
return total_kern_pairs;
1614 if (kern_pairW ==
NULL)
1620 for (
i = 0;
i < total_kern_pairs;
i++)
1635 if (kern_pairs_copied >= cPairs)
break;
1642 kern_pairs_copied++;
1647 return kern_pairs_copied;
1667 (
PVOID) &elfexd->elfDesignVector,
1724 plf = &
Info[
i].EnumLogFontEx.elfLogFont;
1725 DPRINT1(
"%d: '%S',%u,'%S', %ld:%ld, %ld, %d, %d\n",
i,
1733#ifndef RTL_SOFT_ASSERT
1734#define RTL_SOFT_ASSERT(exp) \
1736 DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
1737#define RTL_SOFT_ASSERT_defined
1752 DPRINT1(
"ret: %ld, InfoCount: %ld\n",
ret, InfoCount);
1763 DPRINT1(
"ret: %ld, InfoCount: %ld\n",
ret, InfoCount);
1785 DPRINT1(
"ret: %ld, InfoCount: %ld\n",
ret, InfoCount);
1790#ifdef RTL_SOFT_ASSERT_defined
1791#undef RTL_SOFT_ASSERT_defined
1792#undef RTL_SOFT_ASSERT
1812 DoFontSystemUnittest();
1854 DWORD fdwOutputPrecision,
1855 DWORD fdwClipPrecision,
1857 DWORD fdwPitchAndFamily,
1904 DWORD fdwOutputPrecision,
1905 DWORD fdwClipPrecision,
1907 DWORD fdwPitchAndFamily,
1927 if (
NULL != lpszFace)
1966 if (
fl & ~(FR_PRIVATE | FR_NOT_ENUM))
1987 if (
fl & ~(FR_PRIVATE | FR_NOT_ENUM))
2105 DPRINT(
"RemoveFontResourceExW\n");
2149 static const WCHAR alphabet[] =
2151 'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
2152 'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z',
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
2153 'I',
'J',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',0
2163 return (sz.
cx / 26 + 1) / 2;
2223 DPRINT(
"Index %d Charset %u CodePage %u FontSig %lu\n",
2245 if (Dc_Attr ==
NULL)
2322#define EfdFontFamilies 3
2334 ULONG cbDataSize, cbRetSize;
2352 if (cbDataSize == 0)
2429 DPRINT1(
"Font not found. The Buffer is: %ls, the FileName is: %S\n", lpszBuffer, lpszFilename);
2437 DPRINT1(
"Can't convert Path! Path: %ls\n", lpszAbsPath);
2462 if ( pbFont && cbFont && pcFonts)
2596 if (!lpBaseFaceName)
INT APIENTRY NtGdiAddFontResourceW(_In_reads_(cwc) WCHAR *pwszFiles, _In_ ULONG cwc, _In_ ULONG cFiles, _In_ FLONG f, _In_ DWORD dwPidTid, _In_opt_ DESIGNVECTOR *pdv)
static BOOL CALLBACK EnumProc(_In_ HWND hWnd, _In_ LPARAM lParam)
ACPI_SIZE strlen(const char *String)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
#define ERROR_NOT_ENOUGH_MEMORY
#define NT_SUCCESS(StatCode)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define GetCurrentDirectoryW(x, y)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
#define MultiByteToWideChar
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
BOOL WINAPI GetCPInfo(UINT codepage, LPCPINFO cpinfo)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
__kernel_ptrdiff_t ptrdiff_t
ULONG RtlCompareUnicodeString(PUNICODE_STRING s1, PUNICODE_STRING s2, BOOLEAN UpCase)
LONG NTAPI NtGdiGetFontFamilyInfo(HDC Dc, const LOGFONTW *UnsafeLogFont, PFONTFAMILYINFO UnsafeInfo, LPLONG UnsafeInfoCount)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
VOID WINAPI EnumLogFontExW2A(LPENUMLOGFONTEXA fontA, CONST ENUMLOGFONTEXW *fontW)
VOID NTAPI LogFontA2W(LPLOGFONTW pW, CONST LOGFONTA *pA)
LPKGCP LpkGetCharacterPlacement
VOID NTAPI LogFontW2A(LPLOGFONTA pA, CONST LOGFONTW *pW)
NTSTATUS HEAP_strdupA2W(LPWSTR *ppszW, LPCSTR lpszA)
DWORD WINAPI GetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwError)
BOOL WINAPI LoadLPK(INT LpkFunctionID)
VOID HEAP_free(LPVOID memory)
VOID WINAPI GdiSetLastError(DWORD dwErrCode)
FORCEINLINE PDC_ATTR GdiGetDcAttr(HDC hdc)
BOOL APIENTRY NtGdiGetTransform(_In_ HDC hdc, _In_ DWORD iXform, _Out_ LPXFORM pxf)
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_Check_return_ long __cdecl labs(_In_ long x)
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define memcpy(s1, s2, n)
static const struct update_accum a1
static const struct update_accum a2
static const struct update_accum a3
static const struct update_accum a4
static LPCSTR DWORD void * pvReserved
static LPTEXTMETRICW lptm
static LPCSTR INT LPWORD pgi
static LPCSTR INT LPWORD DWORD flags
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
#define cmp(status, error)
unsigned __int3264 UINT_PTR
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
NTSYSAPI BOOLEAN NTAPI RtlDosPathNameToNtPathName_U(_In_opt_z_ PCWSTR DosPathName, _Out_ PUNICODE_STRING NtPathName, _Out_opt_ PCWSTR *NtFileNamePart, _Out_opt_ PRTL_RELATIVE_NAME_U DirectoryInfo)
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
__kernel_entry W32KAPI DWORD APIENTRY NtGdiGetGlyphIndicesW(_In_ HDC hdc, _In_reads_opt_(cwc) LPCWSTR pwc, _In_ INT cwc, _Out_writes_opt_(cwc) LPWORD pgi, _In_ DWORD iMode)
__kernel_entry W32KAPI ULONG APIENTRY NtGdiGetKerningPairs(_In_ HDC hdc, _In_ ULONG cPairs, _Out_writes_to_opt_(cPairs, return) KERNINGPAIR *pkpDst)
__kernel_entry W32KAPI HANDLE APIENTRY NtGdiAddFontMemResourceEx(_In_reads_bytes_(cjBuffer) PVOID pvBuffer, _In_ DWORD cjBuffer, _In_reads_bytes_opt_(cjDV) DESIGNVECTOR *pdv, _In_ ULONG cjDV, _Out_ DWORD *pNumFonts)
_In_ DWORD _In_ DWORD dwOffset
__kernel_entry W32KAPI ULONG APIENTRY NtGdiGetGlyphOutline(_In_ HDC hdc, _In_ WCHAR wch, _In_ UINT iFormat, _Out_ LPGLYPHMETRICS pgm, _In_ ULONG cjBuf, _Out_writes_bytes_opt_(cjBuf) PVOID pvBuf, _In_ LPMAT2 pmat2, _In_ BOOL bIgnoreRotation)
__kernel_entry W32KAPI ULONG APIENTRY NtGdiGetOutlineTextMetricsInternalW(_In_ HDC hdc, _In_ ULONG cjotm, _Out_writes_bytes_opt_(cjotm) OUTLINETEXTMETRICW *potmw, _Out_ TMDIFF *ptmd)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiEnumFontChunk(_In_ HDC hdc, _In_ ULONG_PTR idEnum, _In_ ULONG cjEfdw, _Out_ ULONG *pcjEfdw, _Out_ PENUMFONTDATAW pefdw)
__kernel_entry W32KAPI NTSTATUS APIENTRY NtGdiFlush(VOID)
__kernel_entry W32KAPI HFONT APIENTRY NtGdiHfontCreate(_In_reads_bytes_(cjElfw) ENUMLOGFONTEXDVW *pelfw, _In_ ULONG cjElfw, _In_ LFTYPE lft, _In_ FLONG fl, _In_ PVOID pvCliData)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiGetCharABCWidthsW(_In_ HDC hdc, _In_ UINT wchFirst, _In_ ULONG cwch, _In_reads_opt_(cwch) PWCHAR pwch, _In_ FLONG fl, _Out_writes_bytes_(cwch *sizeof(ABC)) PVOID pvBuf)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiEnumFontClose(_In_ ULONG_PTR idEnum)
__kernel_entry W32KAPI INT APIENTRY NtGdiGetTextCharsetInfo(_In_ HDC hdc, _Out_opt_ LPFONTSIGNATURE lpSig, _In_ DWORD dwFlags)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiEnumFonts(_In_ HDC hdc, _In_ ULONG iEnumType, _In_ FLONG flWin31Compat, _In_ ULONG cchFaceName, _In_reads_opt_(cchFaceName) LPCWSTR pwszFaceName, _In_ ULONG lfCharSet, _Inout_ ULONG *pulCount, _Out_writes_bytes_opt_(*pulCount) PVOID pvUserModeBuffer)
__kernel_entry W32KAPI ULONG_PTR APIENTRY NtGdiEnumFontOpen(_In_ HDC hdc, _In_ ULONG iEnumType, _In_ FLONG flWin31Compat, _In_ ULONG cwchMax, _In_opt_ LPWSTR pwszFaceName, _In_ ULONG lfCharSet, _Out_ ULONG *pulCount)
__kernel_entry W32KAPI ULONG APIENTRY NtGdiQueryFontAssocInfo(_In_ HDC hdc)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiRemoveFontMemResourceEx(_In_ HANDLE hMMFont)
__kernel_entry W32KAPI DWORD APIENTRY NtGdiGetCharacterPlacementW(_In_ HDC hdc, _In_reads_z_(nCount) LPWSTR pwsz, _In_ INT nCount, _In_ INT nMaxExtent, _Inout_ LPGCP_RESULTSW pgcpw, _In_ DWORD dwFlags)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiGetCharWidthW(_In_ HDC hdc, _In_ UINT wcFirst, _In_ UINT cwc, _In_reads_opt_(cwc) PWCHAR pwc, _In_ FLONG fl, _Out_writes_bytes_(cwc *sizeof(ULONG)) PVOID pvBuf)
__kernel_entry W32KAPI ULONG APIENTRY NtGdiGetEudcTimeStampEx(_In_reads_opt_(cwcBaseFaceName) LPWSTR lpBaseFaceName, _In_ ULONG cwcBaseFaceName, _In_ BOOL bSystemTimeStamp)
struct tagFONTFAMILYINFO FONTFAMILYINFO
#define DC_FONTTEXT_DIRTY
struct _ENUMFONTDATAW * PENUMFONTDATAW
struct _NTMW_INTERNAL * PNTMW_INTERNAL
#define GdiDeviceSpaceToWorldSpace
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
void __cdecl qsort(_Inout_updates_bytes_(_NumOfElements *_SizeOfElements) void *_Base, _In_ size_t _NumOfElements, _In_ size_t _SizeOfElements, _In_ int(__cdecl *_PtFuncCompare)(const void *, const void *))
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
WCHAR lfFaceName[LF_FACESIZE]
int otmsStrikeoutPosition
POINT otmptSuperscriptOffset
POINT otmptSubscriptOffset
TEXTMETRICA otmTextMetrics
POINT otmptSuperscriptSize
int otmsUnderscorePosition
POINT otmptSuperscriptOffset
POINT otmptSuperscriptSize
int otmsStrikeoutPosition
int otmsUnderscorePosition
TEXTMETRICW otmTextMetrics
POINT otmptSubscriptOffset
BYTE DefaultChar[MAX_DEFAULTCHAR]
BYTE elfFullName[LF_FULLFACESIZE]
BYTE elfScript[LF_FACESIZE]
BYTE elfStyle[LF_FACESIZE]
DESIGNVECTOR elfDesignVector
ENUMLOGFONTEXW elfEnumLogfontEx
WCHAR elfStyle[LF_FACESIZE]
WCHAR elfFullName[LF_FULLFACESIZE]
WCHAR elfScript[LF_FACESIZE]
ENUMLOGFONTEXW EnumLogFontEx
CHAR lfFaceName[LF_FACESIZE]
WCHAR lfFaceName[LF_FACESIZE]
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
int WINAPI AddFontResourceA(LPCSTR lpszFilename)
VOID FASTCALL NewTextMetricExW2A(NEWTEXTMETRICEXA *tma, NEWTEXTMETRICEXW *tmw)
FORCEINLINE int FASTCALL IntFontFamilyCompareEx(const FONTFAMILYINFO *ffi1, const FONTFAMILYINFO *ffi2, DWORD dwCompareFlags)
BOOL WINAPI GetCharWidthFloatW(HDC hdc, UINT iFirstChar, UINT iLastChar, PFLOAT pxBuffer)
HFONT WINAPI CreateFontIndirectExW(const ENUMLOGFONTEXDVW *elfexd)
int WINAPI AddFontResourceW(LPCWSTR lpszFilename)
static const CHARSETINFO FONT_tci[MAXTCIINDEX]
DWORD WINAPI GetKerningPairsA(HDC hDC, DWORD cPairs, LPKERNINGPAIR kern_pairA)
static INT width_to_LP(XFORM *xForm, INT width)
BOOL WINAPI GetCharWidth32A(HDC hdc, UINT iFirstChar, UINT iLastChar, LPINT lpBuffer)
BOOL WINAPI RemoveFontResourceA(LPCSTR lpFileName)
DWORD WINAPI GetGlyphOutlineWow(DWORD a0, DWORD a1, DWORD a2, DWORD a3, DWORD a4, DWORD a5, DWORD a6)
VOID FASTCALL NewTextMetricW2A(NEWTEXTMETRICA *tma, NEWTEXTMETRICW *tmw)
DWORD WINAPI SetMapperFlags(HDC hDC, DWORD flags)
BOOL WINAPI CreateScalableFontResourceW(DWORD fdwHidden, LPCWSTR lpszFontRes, LPCWSTR lpszFontFile, LPCWSTR lpszCurrentPath)
DWORD WINAPI GetFontLanguageInfo(HDC hDc)
DWORD WINAPI GetFontData(HDC hdc, DWORD dwTable, DWORD dwOffset, LPVOID lpvBuffer, DWORD cbData)
static int __cdecl IntFontFamilyCompare(const void *ffi1, const void *ffi2)
BOOL APIENTRY GetCharWidthFloatA(HDC hdc, UINT iFirstChar, UINT iLastChar, PFLOAT pxBuffer)
int FASTCALL IntFontFamilyListUnique(FONTFAMILYINFO *InfoList, INT nCount, const LOGFONTW *plf, DWORD dwFlags)
BOOL WINAPI GetCharABCWidthsFloatW(HDC hdc, UINT FirstChar, UINT LastChar, LPABCFLOAT abcF)
INT WINAPI NewEnumFontFamiliesExW(HDC hDC, LPLOGFONTW lpLogfont, FONTENUMPROCW lpEnumFontFamExProcW, LPARAM lParam, DWORD dwFlags)
int WINAPI AddFontResourceExW(LPCWSTR lpszFilename, DWORD fl, PVOID pvReserved)
BOOL WINAPI EudcLoadLinkW(LPCWSTR pBaseFaceName, LPCWSTR pEudcFontPath, INT iPriority, INT iFontLinkType)
static LPSTR FONT_GetCharsByRangeA(HDC hdc, UINT firstChar, UINT lastChar, PINT pByteLen)
int WINAPI RemoveFontResourceTracking(LPCSTR lpString, int unknown)
static __inline INT GDI_ROUND(FLOAT val)
static LPWSTR FONT_mbtowc(HDC hdc, LPCSTR str, INT count, INT *plenW, UINT *pCP)
LONG WINAPI GdiGetCharDimensions(HDC hdc, LPTEXTMETRICW lptm, LONG *height)
HFONT WINAPI CreateFontIndirectExA(const ENUMLOGFONTEXDVA *elfexd)
BOOL APIENTRY GetCharABCWidthsFloatA(HDC hdc, UINT iFirstChar, UINT iLastChar, LPABCFLOAT lpABCF)
BOOL WINAPI RemoveFontResourceExW(LPCWSTR lpFileName, DWORD fl, PVOID pdv)
VOID FASTCALL FONT_TextMetricWToA(const TEXTMETRICW *ptmW, LPTEXTMETRICA ptmA)
static INT INTERNAL_YDSTOWS(XFORM *xForm, INT height)
DWORD WINAPI NewGetCharacterPlacementW(HDC hdc, LPCWSTR lpString, INT uCount, INT nMaxExtent, GCP_RESULTSW *lpResults, DWORD dwFlags)
int WINAPI EnumFontsA(HDC hDC, LPCSTR lpFaceName, FONTENUMPROCA FontFunc, LPARAM lParam)
BOOL WINAPI RemoveFontMemResourceEx(HANDLE fh)
#define INITIAL_FAMILY_COUNT
BOOL WINAPI GetCharWidthW(HDC hdc, UINT iFirstChar, UINT iLastChar, LPINT lpBuffer)
int WINAPI GdiAddFontResourceW(LPCWSTR lpszFilename, FLONG fl, DESIGNVECTOR *pdv)
int WINAPI AddFontResourceTracking(LPCSTR lpString, int unknown)
static INT height_to_LP(XFORM *xForm, INT height)
ULONG WINAPI GetFontAssocStatus(HDC hdc)
DWORD WINAPI GetEUDCTimeStampExW(LPWSTR lpBaseFaceName)
VOID WINAPI UnloadNetworkFonts(DWORD unknown)
BOOL WINAPI GetCharWidth32W(HDC hdc, UINT iFirstChar, UINT iLastChar, LPINT lpBuffer)
DWORD WINAPI QueryFontAssocStatus(VOID)
BOOL WINAPI RemoveFontResourceW(LPCWSTR lpFileName)
DWORD WINAPI cGetTTFFromFOT(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7)
int WINAPI EnumFontsW(HDC hDC, LPCWSTR lpFaceName, FONTENUMPROCW FontFunc, LPARAM lParam)
BOOL WINAPI bInitSystemAndFontsDirectoriesW(LPWSTR *SystemDir, LPWSTR *FontsDir)
ULONG WINAPI GetEUDCTimeStamp(VOID)
BOOL WINAPI RemoveFontResourceExA(LPCSTR lpFileName, DWORD fl, PVOID pdv)
BOOL WINAPI EudcUnloadLinkW(LPCWSTR pBaseFaceName, LPCWSTR pEudcFontPath)
static int FASTCALL IntEnumFontFamilies(HDC Dc, const LOGFONTW *LogFont, PVOID EnumProc, LPARAM lParam, DWORD dwFlags)
DWORD APIENTRY NtGdiGetFontData(HDC hDC, DWORD Table, DWORD Offset, LPVOID Buffer, DWORD Size)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR * pdv
#define ERROR_FILE_EXISTS
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
BOOL WINAPI GetCharABCWidthsA(_In_ HDC hdc, _In_ UINT wFirst, _In_ UINT wLast, _Out_writes_(wLast - wFirst+1) LPABC lpABC)
UINT WINAPI GetOutlineTextMetricsA(_In_ HDC hdc, _In_ UINT cjCopy, _Out_writes_bytes_opt_(cjCopy) LPOUTLINETEXTMETRICA potm)
BOOL WINAPI GetCharWidthI(_In_ HDC hdc, _In_ UINT giFirst, _In_ UINT cgi, _In_reads_opt_(cgi) LPWORD pgi, _Out_writes_(cgi) LPINT piWidths)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
HFONT WINAPI CreateFontIndirectA(_In_ const LOGFONTA *)
DWORD WINAPI GetCharacterPlacementW(_In_ HDC hdc, _In_reads_(nCount) LPCWSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSW lpResults, _In_ DWORD dwFlags)
int WINAPI EnumFontFamiliesExW(_In_ HDC, _In_ PLOGFONTW, _In_ FONTENUMPROCW, _In_ LPARAM, _In_ DWORD)
struct _OUTLINETEXTMETRICA OUTLINETEXTMETRICA
BOOL WINAPI GetTextExtentPointW(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE lpsz)
int WINAPI EnumFontFamiliesExA(_In_ HDC, _In_ PLOGFONTA, _In_ FONTENUMPROCA, _In_ LPARAM, _In_ DWORD)
int WINAPI EnumFontFamiliesW(_In_ HDC, _In_opt_ LPCWSTR, _In_ FONTENUMPROCW, _In_ LPARAM)
int WINAPI GetTextCharset(_In_ HDC)
int WINAPI EnumFontFamiliesA(_In_ HDC, _In_opt_ LPCSTR, _In_ FONTENUMPROCA, _In_ LPARAM)
#define CHINESEBIG5_CHARSET
BOOL WINAPI GetCharABCWidthsI(_In_ HDC hdc, _In_ UINT giFirst, _In_ UINT cgi, _In_reads_opt_(cgi) LPWORD pgi, _Out_writes_(cgi) LPABC pabc)
HFONT WINAPI CreateFontW(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCWSTR)
UINT WINAPI GetOutlineTextMetricsW(_In_ HDC hdc, _In_ UINT cjCopy, _Out_writes_bytes_opt_(cjCopy) LPOUTLINETEXTMETRICW potm)
DWORD WINAPI GdiGetCodePage(HDC)
#define VIETNAMESE_CHARSET
DWORD WINAPI GetGlyphIndicesA(_In_ HDC hdc, _In_reads_(c) LPCSTR lpstr, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl)
HFONT WINAPI CreateFontA(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCSTR)
DWORD WINAPI GetKerningPairsW(_In_ HDC hdc, _In_ DWORD nPairs, _Out_writes_to_opt_(nPairs, return) LPKERNINGPAIR lpKernPair)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
BOOL WINAPI CreateScalableFontResourceA(_In_ DWORD, _In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPCSTR)
DWORD WINAPI GetCharacterPlacementA(_In_ HDC hdc, _In_reads_(nCount) LPCSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSA lpResults, _In_ DWORD dwFlags)
INT WINAPI AddFontResourceExA(_In_ LPCSTR pszFilename, _In_ DWORD fl, _Reserved_ PVOID pvReserved)
BOOL WINAPI TranslateCharsetInfo(_Inout_ PDWORD, _Out_ LPCHARSETINFO, _In_ DWORD)
DWORD WINAPI GetGlyphOutlineW(_In_ HDC hdc, _In_ UINT uChar, _In_ UINT fuFormat, _Out_ LPGLYPHMETRICS lpgm, _In_ DWORD cjBuffer, _Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer, _In_ CONST MAT2 *lpmat2)
#define EASTEUROPE_CHARSET
BOOL WINAPI GetCharWidthA(_In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast+1 - iFirst) LPINT lpBuffer)
BOOL WINAPI GetTextExtentPoint32W(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
DWORD WINAPI GetGlyphOutlineA(_In_ HDC hdc, _In_ UINT uChar, _In_ UINT fuFormat, _Out_ LPGLYPHMETRICS lpgm, _In_ DWORD cjBuffer, _Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer, _In_ CONST MAT2 *lpmat2)
BOOL WINAPI GetCharABCWidthsW(_In_ HDC hdc, _In_ UINT wFirst, _In_ UINT wLast, _Out_writes_(wLast - wFirst+1) LPABC lpABC)
HANDLE WINAPI AddFontMemResourceEx(_In_reads_bytes_(cjSize) PVOID pvFileView, _In_ DWORD cjSize, _Reserved_ PVOID pvResrved, _In_ DWORD *pNumFonts)
#define LOCALE_FONTSIGNATURE
#define RTL_SOFT_ASSERT(exp)