30 #define MAXTCIINDEX 32 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++)
194 tma->ntmFlags = tmw->ntmFlags;
195 tma->ntmSizeEM = tmw->ntmSizeEM;
196 tma->ntmCellHeight = tmw->ntmCellHeight;
197 tma->ntmAvgWidth = tmw->ntmAvgWidth;
208 #define IFFCX_CHARSET 1 209 #define IFFCX_STYLE 2 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);
1294 left = needed -
sizeof(*output);
1306 output->otmpFamilyName = 0;
1318 output->otmpFaceName = 0;
1330 output->otmpStyleName = 0;
1341 output->otmpFullName = 0;
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)
HFONT WINAPI CreateFontIndirectW(CONST LOGFONTW *lplf)
VOID FASTCALL FONT_TextMetricWToA(const TEXTMETRICW *ptmW, LPTEXTMETRICA ptmA)
#define ERROR_INVALID_PARAMETER
BOOL WINAPI GetCPInfo(UINT CodePage, LPCPINFO CodePageInfo)
GLint GLint GLsizei width
#define ERROR_FILE_EXISTS
VOID HEAP_free(LPVOID memory)
int WINAPI EnumFontFamiliesExW(HDC hdc, LPLOGFONTW lpLogfont, FONTENUMPROCW lpEnumFontFamExProc, LPARAM lParam, DWORD dwFlags)
static const struct update_accum a3
BOOL WINAPI EudcUnloadLinkW(LPCWSTR pBaseFaceName, LPCWSTR pEudcFontPath)
static UCHAR ULONG UCHAR ULONG UCHAR * output
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR * pdv
WCHAR elfFullName[LF_FULLFACESIZE]
DWORD APIENTRY NtGdiGetKerningPairs(HDC hDC, ULONG NumPairs, LPKERNINGPAIR krnpair)
int WINAPI GdiAddFontResourceW(LPCWSTR lpszFilename, FLONG fl, DESIGNVECTOR *pdv)
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
BOOL WINAPI CreateScalableFontResourceW(DWORD fdwHidden, LPCWSTR lpszFontRes, LPCWSTR lpszFontFile, LPCWSTR lpszCurrentPath)
#define WideCharToMultiByte
__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)
VOID FASTCALL NewTextMetricW2A(NEWTEXTMETRICA *tma, NEWTEXTMETRICW *tmw)
INT APIENTRY NtGdiAddFontResourceW(IN WCHAR *pwcFiles, IN ULONG cwc, IN ULONG cFiles, IN FLONG fl, IN DWORD dwPidTid, IN OPTIONAL DESIGNVECTOR *pdv)
HFONT WINAPI CreateFontIndirectA(CONST LOGFONTA *lplf)
#define EASTEUROPE_CHARSET
UINT APIENTRY GetOutlineTextMetricsA(HDC hdc, UINT cbData, LPOUTLINETEXTMETRICA lpOTM)
static int __cdecl IntFontFamilyCompare(const void *ffi1, const void *ffi2)
DWORD WINAPI GetKerningPairsW(HDC hdc, ULONG cPairs, LPKERNINGPAIR pkpDst)
ACPI_SIZE strlen(const char *String)
GLuint GLuint GLsizei count
FORCEINLINE PDC_ATTR GdiGetDcAttr(HDC hdc)
DWORD WINAPI cGetTTFFromFOT(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5, DWORD x6, DWORD x7)
BOOL WINAPI RemoveFontResourceExA(LPCSTR lpFileName, DWORD fl, PVOID pdv)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
VOID FASTCALL NewTextMetricExW2A(NEWTEXTMETRICEXA *tma, NEWTEXTMETRICEXW *tmw)
HANDLE WINAPI AddFontMemResourceEx(PVOID pbFont, DWORD cbFont, PVOID pdv, DWORD *pcFonts)
BYTE elfScript[LF_FACESIZE]
#define ERROR_INVALID_HANDLE
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define GdiDeviceSpaceToWorldSpace
#define GetCurrentDirectoryW(x, y)
#define CHINESEBIG5_CHARSET
UINT APIENTRY GetOutlineTextMetricsW(HDC hdc, UINT cbData, LPOUTLINETEXTMETRICW lpOTM)
static INT width_to_LP(XFORM *xForm, INT width)
#define ERROR_NOT_ENOUGH_MEMORY
#define INVALID_HANDLE_VALUE
IN PVOID IN PVOID IN USHORT IN USHORT Size
static __inline INT GDI_ROUND(FLOAT val)
BOOL WINAPI GetCharWidthW(HDC hdc, UINT iFirstChar, UINT iLastChar, LPINT lpBuffer)
DWORD APIENTRY NtGdiGetCharacterPlacementW(IN HDC hdc, IN LPWSTR pwsz, IN INT nCount, IN INT nMaxExtent, IN OUT LPGCP_RESULTSW pgcpw, IN DWORD dwFlags)
#define INITIAL_FAMILY_COUNT
HFONT APIENTRY NtGdiHfontCreate(IN PENUMLOGFONTEXDVW pelfw, IN ULONG cjElfw, IN LFTYPE lft, IN FLONG fl, IN PVOID pvCliData)
DWORD WINAPI GetCharacterPlacementA(HDC hdc, LPCSTR lpString, INT uCount, INT nMaxExtent, GCP_RESULTSA *lpResults, DWORD dwFlags)
static const struct update_accum a4
__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 NtGdiGetEudcTimeStampEx(_In_reads_opt_(cwcBaseFaceName) LPWSTR lpBaseFaceName, _In_ ULONG cwcBaseFaceName, _In_ BOOL bSystemTimeStamp)
DWORD WINAPI GetFontLanguageInfo(HDC hDc)
ULONG APIENTRY NtGdiGetOutlineTextMetricsInternalW(HDC hDC, ULONG Data, OUTLINETEXTMETRICW *otm, TMDIFF *Tmd)
#define cmp(status, error)
int otmsUnderscorePosition
int WINAPI RemoveFontResourceTracking(LPCSTR lpString, int unknown)
LONG WINAPI GdiGetCharDimensions(HDC hdc, LPTEXTMETRICW lptm, LONG *height)
int WINAPI AddFontResourceW(LPCWSTR lpszFilename)
BYTE elfFullName[LF_FULLFACESIZE]
ULONG WINAPI GetFontAssocStatus(HDC hdc)
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
static INT INTERNAL_YDSTOWS(XFORM *xForm, INT height)
VOID NTAPI LogFontA2W(LPLOGFONTW pW, CONST LOGFONTA *pA)
CHAR lfFaceName[LF_FACESIZE]
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
_In_ DWORD _In_ DWORD dwOffset
WCHAR elfStyle[LF_FACESIZE]
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
BOOL WINAPI CreateScalableFontResourceA(DWORD fdwHidden, LPCSTR lpszFontRes, LPCSTR lpszFontFile, LPCSTR lpszCurrentPath)
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
static int FASTCALL IntEnumFontFamilies(HDC Dc, const LOGFONTW *LogFont, PVOID EnumProc, LPARAM lParam, DWORD dwFlags)
GLenum GLuint GLenum GLsizei const GLchar * buf
FORCEINLINE int FASTCALL IntFontFamilyCompareEx(const FONTFAMILYINFO *ffi1, const FONTFAMILYINFO *ffi2, DWORD dwCompareFlags)
int WINAPI EnumFontFamiliesW(HDC hdc, LPCWSTR lpszFamily, FONTENUMPROCW lpEnumFontFamProc, LPARAM lParam)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
BOOL WINAPI LoadLPK(INT LpkFunctionID)
DWORD WINAPI GetFontData(HDC hdc, DWORD dwTable, DWORD dwOffset, LPVOID lpvBuffer, DWORD cbData)
BOOL WINAPI GetCharABCWidthsI(HDC hdc, UINT giFirst, UINT cgi, LPWORD pgi, LPABC lpabc)
BOOL WINAPI EudcLoadLinkW(LPCWSTR pBaseFaceName, LPCWSTR pEudcFontPath, INT iPriority, INT iFontLinkType)
BOOL APIENTRY NtGdiGetTransform(_In_ HDC hdc, _In_ DWORD iXform, _Out_ LPXFORM pxf)
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 *))
__kernel_entry W32KAPI ULONG APIENTRY NtGdiQueryFontAssocInfo(_In_ HDC hdc)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
__kernel_entry W32KAPI INT APIENTRY NtGdiGetTextCharsetInfo(_In_ HDC hdc, _Out_opt_ LPFONTSIGNATURE lpSig, _In_ DWORD dwFlags)
int WINAPI AddFontResourceA(LPCSTR lpszFilename)
static const CHARSETINFO FONT_tci[MAXTCIINDEX]
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
static LPCSTR INT LPWORD pgi
WCHAR elfScript[LF_FACESIZE]
POINT otmptSubscriptOffset
__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)
DWORD WINAPI GetGlyphOutlineW(HDC hdc, UINT uChar, UINT uFormat, LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpvBuffer, CONST MAT2 *lpmat2)
NTSTATUS HEAP_strdupA2W(LPWSTR *ppszW, LPCSTR lpszA)
BOOL APIENTRY GetCharABCWidthsFloatA(HDC hdc, UINT iFirstChar, UINT iLastChar, LPABCFLOAT lpABCF)
ULONG APIENTRY NtGdiGetGlyphOutline(IN HDC hdc, IN WCHAR wch, IN UINT iFormat, OUT LPGLYPHMETRICS pgm, IN ULONG cjBuf, OUT OPTIONAL PVOID UnsafeBuf, IN LPMAT2 pmat2, IN BOOL bIgnoreRotation)
static LPCSTR INT LPWORD DWORD flags
BOOL WINAPI GetCharABCWidthsFloatW(HDC hdc, UINT FirstChar, UINT LastChar, LPABCFLOAT abcF)
INT WINAPI NewEnumFontFamiliesExW(HDC hDC, LPLOGFONTW lpLogfont, FONTENUMPROCW lpEnumFontFamExProcW, LPARAM lParam, DWORD dwFlags)
ULONG WINAPI GetEUDCTimeStamp(VOID)
int WINAPI AddFontResourceExW(LPCWSTR lpszFilename, DWORD fl, PVOID pvReserved)
BOOL APIENTRY GetCharWidthFloatA(HDC hdc, UINT iFirstChar, UINT iLastChar, PFLOAT pxBuffer)
VOID WINAPI UnloadNetworkFonts(DWORD unknown)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
VOID NTAPI LogFontW2A(LPLOGFONTA pA, CONST LOGFONTW *pW)
__kernel_entry W32KAPI NTSTATUS APIENTRY NtGdiFlush(VOID)
DWORD WINAPI SetMapperFlags(HDC hDC, DWORD flags)
BOOL WINAPI GetCharABCWidthsW(HDC hdc, UINT FirstChar, UINT LastChar, LPABC lpabc)
POINT otmptSuperscriptSize
BOOL APIENTRY GetCharABCWidthsA(HDC hdc, UINT iFirstChar, UINT iLastChar, LPABC lpabc)
BOOL WINAPI RemoveFontResourceW(LPCWSTR lpFileName)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiEnumFontClose(_In_ ULONG_PTR idEnum)
#define NT_SUCCESS(StatCode)
static const struct update_accum a2
static LPCSTR DWORD void * pvReserved
DWORD WINAPI GetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwError)
int WINAPI EnumFontsA(HDC hDC, LPCSTR lpFaceName, FONTENUMPROCA FontFunc, LPARAM lParam)
__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)
struct _OUTLINETEXTMETRICA OUTLINETEXTMETRICA
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
unsigned __int3264 UINT_PTR
struct _NTMW_INTERNAL * PNTMW_INTERNAL
DWORD WINAPI NewGetCharacterPlacementW(HDC hdc, LPCWSTR lpString, INT uCount, INT nMaxExtent, GCP_RESULTSW *lpResults, DWORD dwFlags)
#define LOCALE_FONTSIGNATURE
int otmsStrikeoutPosition
#define FILE_ATTRIBUTE_NORMAL
int WINAPI AddFontResourceTracking(LPCSTR lpString, int unknown)
ULONG RtlCompareUnicodeString(PUNICODE_STRING s1, PUNICODE_STRING s2, BOOLEAN UpCase)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
int WINAPI EnumFontsW(HDC hDC, LPCWSTR lpFaceName, FONTENUMPROCW FontFunc, LPARAM lParam)
#define memcpy(s1, s2, n)
#define DC_FONTTEXT_DIRTY
BOOL WINAPI RemoveFontMemResourceEx(HANDLE fh)
GLint GLint GLsizei GLsizei height
DWORD WINAPI GetGlyphOutlineWow(DWORD a0, DWORD a1, DWORD a2, DWORD a3, DWORD a4, DWORD a5, DWORD a6)
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
#define RTL_SOFT_ASSERT(exp)
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
BOOL WINAPI TranslateCharsetInfo(LPDWORD lpSrc, LPCHARSETINFO lpCs, DWORD flags)
LONG NTAPI NtGdiGetFontFamilyInfo(HDC Dc, const LOGFONTW *UnsafeLogFont, PFONTFAMILYINFO UnsafeInfo, LPLONG UnsafeInfoCount)
BOOL WINAPI GetCharWidthI(HDC hdc, UINT giFirst, UINT cgi, LPWORD pgi, LPINT lpBuffer)
BOOL WINAPI GetCharWidthFloatW(HDC hdc, UINT iFirstChar, UINT iLastChar, PFLOAT pxBuffer)
ENUMLOGFONTEXW EnumLogFontEx
VOID WINAPI GdiSetLastError(DWORD dwErrCode)
static const WORD INT INT LPINT LPINT LPSIZE size
FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
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
static INT height_to_LP(XFORM *xForm, INT height)
static LPSTR FONT_GetCharsByRangeA(HDC hdc, UINT firstChar, UINT lastChar, PINT pByteLen)
BYTE DefaultChar[MAX_DEFAULTCHAR]
#define VIETNAMESE_CHARSET
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
struct tagFONTFAMILYINFO FONTFAMILYINFO
int WINAPI EnumFontFamiliesExA(HDC hdc, LPLOGFONTA lpLogfont, FONTENUMPROCA lpEnumFontFamExProc, LPARAM lParam, DWORD dwFlags)
DWORD WINAPI GetGlyphOutlineA(HDC hdc, UINT uChar, UINT uFormat, LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpvBuffer, CONST MAT2 *lpmat2)
BOOL WINAPI GetCharWidth32A(HDC hdc, UINT iFirstChar, UINT iLastChar, LPINT lpBuffer)
__kernel_ptrdiff_t ptrdiff_t
HFONT WINAPI CreateFontA(int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, DWORD fdwItalic, DWORD fdwUnderline, DWORD fdwStrikeOut, DWORD fdwCharSet, DWORD fdwOutputPrecision, DWORD fdwClipPrecision, DWORD fdwQuality, DWORD fdwPitchAndFamily, LPCSTR lpszFace)
TEXTMETRICW otmTextMetrics
__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)
DWORD WINAPI QueryFontAssocStatus(VOID)
LPKGCP LpkGetCharacterPlacement
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define MultiByteToWideChar
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
DWORD WINAPI GetEUDCTimeStampExW(LPWSTR lpBaseFaceName)
DESIGNVECTOR elfDesignVector
POINT otmptSuperscriptOffset
BOOL WINAPI GetCharWidthA(HDC hdc, UINT iFirstChar, UINT iLastChar, LPINT lpBuffer)
struct _ENUMFONTDATAW * PENUMFONTDATAW
__kernel_entry W32KAPI BOOL APIENTRY NtGdiEnumFontChunk(_In_ HDC hdc, _In_ ULONG_PTR idEnum, _In_ ULONG cjEfdw, _Out_ ULONG *pcjEfdw, _Out_ PENUMFONTDATAW pefdw)
BOOL WINAPI GetCharWidth32W(HDC hdc, UINT iFirstChar, UINT iLastChar, LPINT lpBuffer)
WCHAR lfFaceName[LF_FACESIZE]
int WINAPI GetTextCharset(_In_ HDC)
#define ERROR_CALL_NOT_IMPLEMENTED
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
BOOL WINAPI RemoveFontResourceA(LPCSTR lpFileName)
HFONT WINAPI CreateFontIndirectExW(const ENUMLOGFONTEXDVW *elfexd)
BOOL WINAPI bInitSystemAndFontsDirectoriesW(LPWSTR *SystemDir, LPWSTR *FontsDir)
BOOL APIENTRY NtGdiRemoveFontMemResourceEx(IN HANDLE hMMFont)
#define RtlCopyMemory(Destination, Source, Length)
DWORD APIENTRY NtGdiGetFontData(HDC hDC, DWORD Table, DWORD Offset, LPVOID Buffer, DWORD Size)
_Check_return_ long __cdecl labs(_In_ long x)
static const struct update_accum a1
ENUMLOGFONTEXW elfEnumLogfontEx
WCHAR lfFaceName[LF_FACESIZE]
DWORD WINAPI GetKerningPairsA(HDC hDC, DWORD cPairs, LPKERNINGPAIR kern_pairA)
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
DWORD WINAPI GetGlyphIndicesA(HDC hdc, LPCSTR lpstr, INT count, LPWORD pgi, DWORD flags)
DWORD WINAPI GdiGetCodePage(HDC hdc)
VOID WINAPI EnumLogFontExW2A(LPENUMLOGFONTEXA fontA, CONST ENUMLOGFONTEXW *fontW)
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
BOOL WINAPI RemoveFontResourceExW(LPCWSTR lpFileName, DWORD fl, PVOID pdv)
static LPWSTR FONT_mbtowc(HDC hdc, LPCSTR str, INT count, INT *plenW, UINT *pCP)
BOOL CALLBACK EnumProc(_In_ HWND hwnd, _In_ LPARAM lParam)
HANDLE APIENTRY NtGdiAddFontMemResourceEx(IN PVOID pvBuffer, IN DWORD cjBuffer, IN DESIGNVECTOR *pdv, IN ULONG cjDV, OUT DWORD *pNumFonts)
#define HeapFree(x, y, z)
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
int WINAPI EnumFontFamiliesA(HDC hdc, LPCSTR lpszFamily, FONTENUMPROCA lpEnumFontFamProc, LPARAM lParam)
static LPTEXTMETRICW lptm
BOOL WINAPI GetTextExtentPoint32W(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
BOOL WINAPI GetTextExtentPointW(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE lpsz)
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)
BYTE elfStyle[LF_FACESIZE]
int FASTCALL IntFontFamilyListUnique(FONTFAMILYINFO *InfoList, INT nCount, const LOGFONTW *plf, DWORD dwFlags)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
HFONT WINAPI CreateFontIndirectExA(const ENUMLOGFONTEXDVA *elfexd)
int WINAPI AddFontResourceExA(LPCSTR lpszFilename, DWORD fl, PVOID pvReserved)
HFONT WINAPI CreateFontW(int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, DWORD fnItalic, DWORD fdwUnderline, DWORD fdwStrikeOut, DWORD fdwCharSet, DWORD fdwOutputPrecision, DWORD fdwClipPrecision, DWORD fdwQuality, DWORD fdwPitchAndFamily, LPCWSTR lpszFace)
DWORD WINAPI GetCharacterPlacementW(HDC hdc, LPCWSTR lpString, INT uCount, INT nMaxExtent, GCP_RESULTSW *lpResults, DWORD dwFlags)