129 ULONG i, cjOffset, cjLength;
134 pEnd = pStart + cjView;
153 pStart = (
PCHAR)pOs2Header;
156 DbgPrint(
"pTInfo is invalid: 0x%p\n", pResTable);
173 DbgPrint(
"Found NE_RSCTYPE_FONT\n");
180 DbgPrint(
"Not enough memory: %ld\n", cjLength);
191 pFontInfo = (
PVOID)((
PCHAR)pDosHeader + cjOffset);
193 if (!
IsValidPtr(pFontInfo, cjLength, pStart, pEnd, 1))
195 DbgPrint(
"pFontInfo is invalid: 0x%p\n", pFontInfo);
203 DbgPrint(
"pFontInfo is invalid: 0x%p\n", pFontInfo);
214 pStart = (
PCHAR)pTInfo;
222 DbgPrint(
"pTInfo is invalid: 0x%p\n", pTInfo);
255 DbgPrint(
"Only 1 File is allowed, got %ld!\n", cFiles);
260 if (!EngMapFontFileFD(*
piFile, (
PULONG*)&pvView, &cjView))
262 DbgPrint(
"Could not map font file!\n", cFiles);
266 DbgPrint(
"mapped font file to %p, site if %ld\n", pvView, cjView);
393 CHAR ch, chFirst, ach[256];
420 ach[
i] = chFirst +
i;
448 if (awc[
i] != awc[
i - 1] + 1)
456 + (cRuns - 1) *
sizeof(
WCRUN)
470 pGlyphSet->
cRuns = cRuns;
473 pwcrun = pGlyphSet->awcrun;
474 phglyphs = (
PHGLYPH)&pGlyphSet->awcrun[cRuns];
475 pwcrun[0].
wcLow = awc[0];
477 pwcrun[0].
phg = phglyphs;
487 if (awc[
i] == awc[
i - 1] + 1)
498 pwcrun[
j].
phg = &phglyphs[
i];
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR * pdv
typedef DHPDEV(APIENTRY FN_DrvEnablePDEV)(_In_ DEVMODEW *pdm
struct _FD_GLYPHSET FD_GLYPHSET
VOID APIENTRY BmfdFree(PVOID pv, ULONG_PTR id)
static PVOID ParseFonFile(PVOID pvView, ULONG cjView)
#define FM_SEL_UNDERSCORE
GLuint GLuint GLsizei count
_In_ FONTOBJ _In_ ULONG _In_ ULONG cGlyphs
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR _In_ ULONG ulLangID
ENGAPI VOID APIENTRY EngMultiByteToUnicodeN(_Out_writes_bytes_to_(MaxBytesInUnicodeString, *BytesInUnicodeString) LPWSTR UnicodeString, _In_ ULONG MaxBytesInUnicodeString, _Out_opt_ PULONG BytesInUnicodeString, _In_reads_bytes_(BytesInMultiByteString) PCHAR MultiByteString, _In_ ULONG BytesInMultiByteString)
static BOOLEAN IsValidPtr(PVOID p, ULONG cjSize, PVOID pStart, PVOID pEnd, ULONG cjAlign)
void __cdecl __debugbreak(void)
FWORD fwdSubscriptYOffset
FWORD fwdSubscriptXOffset
LONG APIENTRY BmfdQueryFontFile(ULONG_PTR iFile, ULONG ulMode, ULONG cjBuf, ULONG *pulBuf)
FWORD fwdSuperscriptYSize
#define FM_PANOSE_CULTURE_LATIN
struct BMFD_FILE * PBMFD_FILE
static BOOL FillFaceInfo(PBMFD_FACE pface, PFONTINFO16 pFontInfo)
FWORD fwdSuperscriptXSize
PIFIMETRICS APIENTRY BmfdQueryFont(IN DHPDEV dhpdev, IN ULONG_PTR iFile, IN ULONG iFace, IN ULONG_PTR *pid)
WCHAR wszFamilyName[LF_FACESIZE]
WCHAR wszFaceName[LF_FACESIZE]
FWORD fwdSuperscriptXOffset
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 GLint GLint j
ENGAPI VOID APIENTRY EngUnmapFontFileFD(_In_ ULONG_PTR iFile)
WCHAR wszStyleName[MAX_STYLESIZE]
_In_ ULONG_PTR _In_ ULONG iFace
void * EngAllocMem(int zero, unsigned long size, int tag=0)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define FM_INFO_CONSTANT_WIDTH
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR _In_ ULONG _In_ ULONG ulFastCheckSum
static PVOID ParseFntFile(PVOID pvView, ULONG cjView)
struct _IMAGE_DOS_HEADER IMAGE_DOS_HEADER
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL _In_ ULONG ulMode
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
BOOL APIENTRY BmfdUnloadFontFile(IN ULONG_PTR iFile)
FWORD fwdSuperscriptYOffset
#define FIELD_OFFSET(t, f)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
FWORD fwdStrikeoutPosition
ULONG_PTR APIENTRY BmfdLoadFontFile(ULONG cFiles, ULONG_PTR *piFile, PVOID *ppvView, ULONG *pcjView, DESIGNVECTOR *pdv, ULONG ulLangID, ULONG ulFastCheckSum)
FWORD fwdUnderscorePosition
PVOID APIENTRY BmfdQueryFontTree(DHPDEV dhpdev, ULONG_PTR iFile, ULONG iFace, ULONG iMode, ULONG_PTR *pid)
LONG APIENTRY BmfdQueryFontCaps(ULONG culCaps, ULONG *pulCaps)
VOID APIENTRY BmfdDestroyFont(IN FONTOBJ *pfo)