#include <stdarg.h>
#include <windef.h>
#include <wingdi.h>
#include <winddi.h>
#include <pshpack1.h>
#include <poppack.h>
Go to the source code of this file.
|
ULONG | DbgPrint (IN PCHAR Format, IN ...) |
|
DHPDEV APIENTRY | BmfdEnablePDEV (IN DEVMODEW *pdm, IN LPWSTR pwszLogAddress, IN ULONG cPat, OUT HSURF *phsurfPatterns, IN ULONG cjCaps, OUT ULONG *pdevcaps, IN ULONG cjDevInfo, OUT DEVINFO *pdi, IN HDEV hdev, IN LPWSTR pwszDeviceName, IN HANDLE hDriver) |
|
VOID APIENTRY | BmfdCompletePDEV (IN DHPDEV dhpdev, IN HDEV hdev) |
|
VOID APIENTRY | BmfdDisablePDEV (IN DHPDEV dhpdev) |
|
ULONG_PTR APIENTRY | BmfdLoadFontFile (ULONG cFiles, ULONG_PTR *piFile, PVOID *ppvView, ULONG *pcjView, DESIGNVECTOR *pdv, ULONG ulLangID, ULONG ulFastCheckSum) |
|
BOOL APIENTRY | BmfdUnloadFontFile (IN ULONG_PTR iFile) |
|
LONG APIENTRY | BmfdQueryFontFile (ULONG_PTR iFile, ULONG ulMode, ULONG cjBuf, ULONG *pulBuf) |
|
LONG APIENTRY | BmfdQueryFontCaps (ULONG culCaps, ULONG *pulCaps) |
|
PVOID APIENTRY | BmfdQueryFontTree (DHPDEV dhpdev, ULONG_PTR iFile, ULONG iFace, ULONG iMode, ULONG_PTR *pid) |
|
PIFIMETRICS APIENTRY | BmfdQueryFont (IN DHPDEV dhpdev, IN ULONG_PTR iFile, IN ULONG iFace, IN ULONG_PTR *pid) |
|
VOID APIENTRY | BmfdFree (PVOID pv, ULONG_PTR id) |
|
PFD_GLYPHATTR APIENTRY | BmfdQueryGlyphAttrs (FONTOBJ *pfo, ULONG iMode) |
|
LONG APIENTRY | BmfdQueryFontData (DHPDEV dhpdev, FONTOBJ *pfo, ULONG iMode, HGLYPH hg, OUT GLYPHDATA *pgd, PVOID pv, ULONG cjSize) |
|
VOID APIENTRY | BmfdDestroyFont (IN FONTOBJ *pfo) |
|
◆ DFF_16COLOR
◆ DFF_1COLOR
◆ DFF_256COLOR
◆ DFF_ABCFIXED
◆ DFF_ABCPROPORTIONAL
#define DFF_ABCPROPORTIONAL 0x0008 |
◆ DFF_FIXED
◆ DFF_PROPORTIONAL
#define DFF_PROPORTIONAL 0x0002 |
◆ DFF_RGBCOLOR
◆ FDM_MASK
Value:
#define FDM_TYPE_ZERO_BEARINGS
#define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE
#define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE
#define FDM_TYPE_CONST_BEARINGS
#define FDM_TYPE_BM_SIDE_CONST
Definition at line 29 of file bmfd.h.
◆ FLOATL_1
◆ FM_INFO_MASK
Value:
#define FM_INFO_NONNEGATIVE_AC
#define FM_INFO_OPTICALLY_FIXED_PITCH
#define FM_INFO_TECH_BITMAP
#define FM_INFO_RIGHT_HANDED
#define FM_INFO_INTEGER_WIDTH
#define FM_INFO_RETURNS_BITMAPS
#define FM_INFO_INTEGRAL_SCALING
#define FM_INFO_90DEGREE_ROTATIONS
Definition at line 34 of file bmfd.h.
◆ GETVAL
Value: (
sizeof(
x) == 1) ? (
x) : \
(
sizeof(
x) == 2) ? (((
PCHAR)&(
x))[0] + (((
PCHAR)&(
x))[1] << 8)) : \
GLint GLint GLint GLint GLint x
Definition at line 21 of file bmfd.h.
◆ IMAGE_DOS_MAGIC
#define IMAGE_DOS_MAGIC 0x594D |
FON / FNT specific types
Definition at line 49 of file bmfd.h.
◆ MAX_STYLESIZE
◆ NE_RSCTYPE_FONT
#define NE_RSCTYPE_FONT 0x8008 |
◆ NE_RSCTYPE_FONTDIR
#define NE_RSCTYPE_FONTDIR 0x8007 |
◆ TAG_FONTINFO
◆ TAG_GLYPHSET
◆ TAG_IFIMETRICS
◆ TAG_PDEV
◆ DIRENTRY
◆ FONTDIRENTRY
◆ FONTGROUPHDR
◆ LPFONTINFO16
◆ PBMFD_FACE
◆ PBMFD_FILE
◆ PBMFD_FONT
◆ PBMFD_IFIMETRICS
◆ PDIRENTRY
◆ PFONTDIRENTRY
◆ PFONTGROUPHDR
◆ PFONTINFO16
◆ PGLYPHENTRY
◆ PGLYPHENTRY20
◆ PGLYPHENTRY30
◆ PNE_NAMEINFO
◆ PNE_RESTABLE
◆ PNE_TYPEINFO
◆ FONTTYPE
Driver specific types
Enumerator |
---|
FONTTYPE_FON | |
FONTTYPE_FNT | |
Definition at line 200 of file bmfd.h.
◆ BmfdCompletePDEV()
◆ BmfdDestroyFont()
◆ BmfdDisablePDEV()
◆ BmfdEnablePDEV()
DHPDEV APIENTRY BmfdEnablePDEV |
( |
IN DEVMODEW * |
pdm, |
|
|
IN LPWSTR |
pwszLogAddress, |
|
|
IN ULONG |
cPat, |
|
|
OUT HSURF * |
phsurfPatterns, |
|
|
IN ULONG |
cjCaps, |
|
|
OUT ULONG * |
pdevcaps, |
|
|
IN ULONG |
cjDevInfo, |
|
|
OUT DEVINFO * |
pdi, |
|
|
IN HDEV |
hdev, |
|
|
IN LPWSTR |
pwszDeviceName, |
|
|
IN HANDLE |
hDriver |
|
) |
| |
◆ BmfdFree()
Definition at line 669 of file font.c.
672{
674 if (id)
675 {
677 }
678}
◆ BmfdLoadFontFile()
Public Interface
Definition at line 236 of file font.c.
244{
248
251
252
253 if (cFiles != 1)
254 {
255 DbgPrint(
"Only 1 File is allowed, got %ld!\n", cFiles);
257 }
258
259
260 if (!EngMapFontFileFD(*
piFile, (
PULONG*)&pvView, &cjView))
261 {
262 DbgPrint(
"Could not map font file!\n", cFiles);
264 }
265
266 DbgPrint(
"mapped font file to %p, site if %ld\n", pvView, cjView);
267
268
270
271 if (!pfile)
272 {
273
275 }
276
277
278 if (!pfile)
279 {
281
282
284
285
287 }
288
291
292
294}
void __cdecl __debugbreak(void)
static PVOID ParseFntFile(PVOID pvView, ULONG cjView)
static PVOID ParseFonFile(PVOID pvView, ULONG cjView)
ENGAPI VOID APIENTRY EngUnmapFontFileFD(_In_ ULONG_PTR iFile)
◆ BmfdQueryFont()
Definition at line 510 of file font.c.
515{
522
524
525
526
528 {
530 }
531
534
535
537 if (!pifiX)
538 {
540 }
541
542
544
545
612
613
616
619
620#if 0
624 pFontInfo->,
626#endif
629
630
632 {
633
634 }
636 {
639 }
641 {
643 }
644
646 {
649 }
650
652 {
655 }
656
658 {
661 }
662
663 return pifi;
664}
struct BMFD_FILE * PBMFD_FILE
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)
_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_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define FM_PANOSE_CULTURE_LATIN
#define FM_SEL_UNDERSCORE
◆ BmfdQueryFontCaps()
Definition at line 361 of file font.c.
364{
366
367
368 if (culCaps < 2)
369 {
371 }
372
373
374 pulCaps[0] = 2;
376
377 return 2;
378}
◆ BmfdQueryFontData()
Definition at line 316 of file glyph.c.
324{
328
329 DbgPrint(
"BmfdQueryFontData(pfo=%p, iMode=%ld, hg=%p, pgd=%p, pv=%p, cjSize=%ld)\n",
331
332
334 {
337
340
341
342 default:
344
345 }
346
348}
PBMFD_FONT BmfdGetFontInstance(FONTOBJ *pfo, PBMFD_FACE pface)
ULONG BmfdQueryGlyphAndBitmap(PBMFD_FONT pfont, HGLYPH hg, GLYPHDATA *pgd, GLYPHBITS *pgb, ULONG cjSize)
ULONG BmfdQueryMaxExtents(PBMFD_FONT pfont, PFD_DEVICEMETRICS pfddm, ULONG cjSize)
_In_ FONTOBJ _In_ ULONG _In_ HGLYPH _In_opt_ GLYPHDATA * pgd
_In_ FONTOBJ _In_ ULONG _In_ HGLYPH hg
#define QFD_GLYPHANDBITMAP
◆ BmfdQueryFontFile()
Definition at line 317 of file font.c.
322{
324
326
327
329 {
331 {
332
335 if (pulBuf)
336 {
339 &cOutSize,
340 pDesc,
342 }
343 else
344 {
346 }
347 return cOutSize;
348 }
349
351
353
354 default:
356 }
357}
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL _In_ ULONG ulMode
◆ BmfdQueryFontTree()
Definition at line 383 of file font.c.
389{
393 CHAR ch, chFirst, ach[256];
398
400
401
402
404 {
407 }
408
409
411
412
414
416
417
419 {
420 ach[
i] = chFirst +
i;
421 }
422
423
425
426
428 {
431 {
433 {
440 }
441 }
442 }
443
444
445 cRuns = 1;
447 {
448 if (awc[
i] != awc[
i - 1] + 1)
449 {
450 cRuns++;
451 }
452 }
453
454
456 + (cRuns - 1) *
sizeof(
WCRUN)
458
459
461 if (!pGlyphSet)
462 {
464 }
465
466
470 pGlyphSet->
cRuns = cRuns;
471
472
473 pwcrun = pGlyphSet->awcrun;
474 phglyphs = (
PHGLYPH)&pGlyphSet->awcrun[cRuns];
475 pwcrun[0].wcLow = awc[0];
476 pwcrun[0].cGlyphs = 1;
477 pwcrun[0].phg = phglyphs;
478 phglyphs[0] = 0;
479
480
482 {
483
485
486
487 if (awc[
i] == awc[
i - 1] + 1)
488 {
489
491 }
492 else
493 {
494
498 pwcrun[
j].
phg = &phglyphs[
i];
499 }
500 }
501
502
504
505 return pGlyphSet;
506}
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
struct _FD_GLYPHSET FD_GLYPHSET
_In_ FONTOBJ _In_ ULONG _In_ ULONG cGlyphs
◆ BmfdQueryGlyphAttrs()
Public Interface
Definition at line 305 of file glyph.c.
308{
309 DbgPrint(
"BmfdQueryGlyphAttrs()\n");
310
312}
◆ BmfdUnloadFontFile()
Definition at line 298 of file font.c.
300{
302
304
305
307
308
310
312}
◆ DbgPrint()
Function prototypes
Definition at line 29 of file enable.c.
30{
32
36 return 0;
37}
ENGAPI VOID APIENTRY EngDebugPrint(_In_z_ PCHAR StandardPrefix, _In_z_ PCHAR DebugMessage, _In_ va_list ap)