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];
struct BMFD_FILE * PBMFD_FILE
struct _IMAGE_DOS_HEADER IMAGE_DOS_HEADER
GLuint GLuint GLsizei 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
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
void __cdecl __debugbreak(void)
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)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
WCHAR wszFamilyName[LF_FACESIZE]
WCHAR wszStyleName[MAX_STYLESIZE]
WCHAR wszFaceName[LF_FACESIZE]
FWORD fwdStrikeoutPosition
FWORD fwdSuperscriptYSize
FWORD fwdUnderscorePosition
FWORD fwdSubscriptYOffset
FWORD fwdSuperscriptXSize
FWORD fwdSuperscriptYOffset
FWORD fwdSubscriptXOffset
FWORD fwdSuperscriptXOffset
#define FIELD_OFFSET(t, f)
BOOL APIENTRY BmfdUnloadFontFile(IN ULONG_PTR iFile)
static BOOL FillFaceInfo(PBMFD_FACE pface, PFONTINFO16 pFontInfo)
VOID APIENTRY BmfdDestroyFont(IN FONTOBJ *pfo)
VOID APIENTRY BmfdFree(PVOID pv, ULONG_PTR id)
static PVOID ParseFntFile(PVOID pvView, ULONG cjView)
PVOID APIENTRY BmfdQueryFontTree(DHPDEV dhpdev, ULONG_PTR iFile, ULONG iFace, ULONG iMode, ULONG_PTR *pid)
static BOOLEAN IsValidPtr(PVOID p, ULONG cjSize, PVOID pStart, PVOID pEnd, ULONG cjAlign)
LONG APIENTRY BmfdQueryFontFile(ULONG_PTR iFile, ULONG ulMode, ULONG cjBuf, ULONG *pulBuf)
LONG APIENTRY BmfdQueryFontCaps(ULONG culCaps, ULONG *pulCaps)
ULONG_PTR APIENTRY BmfdLoadFontFile(ULONG cFiles, ULONG_PTR *piFile, PVOID *ppvView, ULONG *pcjView, DESIGNVECTOR *pdv, ULONG ulLangID, ULONG ulFastCheckSum)
PIFIMETRICS APIENTRY BmfdQueryFont(IN DHPDEV dhpdev, IN ULONG_PTR iFile, IN ULONG iFace, IN ULONG_PTR *pid)
static PVOID ParseFonFile(PVOID pvView, ULONG cjView)
typedef DHPDEV(APIENTRY FN_DrvEnablePDEV)(_In_ DEVMODEW *pdm
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR _In_ ULONG ulLangID
struct _FD_GLYPHSET FD_GLYPHSET
_In_ ULONG_PTR _In_ ULONG iFace
#define FM_INFO_CONSTANT_WIDTH
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)
_In_ FONTOBJ _In_ ULONG _In_ ULONG cGlyphs
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL _In_ ULONG ulMode
ENGAPI VOID APIENTRY EngUnmapFontFileFD(_In_ ULONG_PTR iFile)
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR * pdv
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR _In_ ULONG _In_ ULONG ulFastCheckSum
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define FM_PANOSE_CULTURE_LATIN
#define FM_SEL_UNDERSCORE