Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

948 lines
13 KiB

/*++
Copyright (c) 1996 - 1999 Microsoft Corporation
Module Name:
fmfnprot.h
Abstract:
Font module main Function prototype header file.
Environment:
Windows NT Unidrv driver
Revision History:
11/18/96 -ganeshp-
Created it.
dd-mm-yy -author-
description
--*/
#ifndef _FMFNPROT_H
#define _FMFNPROT_H
//
// Interface functions
//
//
// Defined in fmtxtout.c
//
BOOL
FMTextOut(
SURFOBJ *pso,
STROBJ *pstro,
FONTOBJ *pfo,
CLIPOBJ *pco,
RECTL *prclExtra,
RECTL *prclOpaque,
BRUSHOBJ *pboFore,
BRUSHOBJ *pboOpaque,
POINTL *pptlBrushOrg,
MIX mix
);
BOOL
BPlayWhiteText(
PDEV *pPDev
);
//
// GlyphOut function Prototype
//
typedef BOOL
(*pfnBOutputGlyph)(
PDEV *pPDev,
HGLYPH hg,
FONTMAP *pFM,
INT iXIn
);
//
// Defined in fontddi.c
//
BOOL
FMResetPDEV(
PDEV *pPDevOld,
PDEV *pPDevNew
);
VOID
FMDisablePDEV(
PDEV *pPDev
);
VOID
FMDisableSurface(
PDEV *pPDev
);
BOOL
FMStartDoc(
SURFOBJ *pso,
PWSTR pDocName,
DWORD jobId
);
BOOL
FMStartPage(
SURFOBJ *pso
);
BOOL
FMSendPage(
SURFOBJ *pso
);
BOOL
FMEndDoc(
SURFOBJ *pso,
FLONG flags
);
BOOL
FMNextBand(
SURFOBJ *pso,
POINTL *pptl
);
BOOL
FMStartBanding(
SURFOBJ *pso,
POINTL *pptl
);
BOOL
FMEnableSurface(
PDEV *pPDev
);
//
// Defined in intrface.c
//
BOOL
BInitDeviceFontsFromGPD(
PDEV *pPDev
);
BOOL
BInitFontPDev(
PDEV *pPDev
);
INT
IGetMaxFonts(
PDEV *pPDev
);
BOOL
BBuildFontCartTable(
PDEV *pPDev
);
BOOL
BRegReadFontCarts(
PDEV *pPDev
) ;
BOOL
BBuildFontMapTable(
PDEV *pPDev
) ;
VOID
VSetFontID(
DWORD *pdwOut,
PFONTLIST pFontList
);
VOID
VLogFont(
POINT *pptGrxRes,
LOGFONT *pLF,
FONTMAP *pFM
);
BOOL
BInitTextFlags(
PDEV *pPDev
);
BOOL
BInitGDIInfo(
GDIINFO *pGDIInfo,
PDEV *pPDev
);
//
// Defined in fminit.c
//
INT
IInitDeviceFonts(
PDEV *pPDev
);
BOOL
BFillinDeviceFM(
PDEV *pPDev,
FONTMAP *pfm,
int iIndex
);
BOOL
BGetOldFontInfo(
FONTMAP *pfm,
BYTE *pRes
);
BOOL
BFMSetupXF(
FONTMAP *pfm,
PDEV *pPDev,
INT iIndex
);
BOOL
BIFIScale(
FONTMAP *pfm,
INT xdpi,
INT ydpi
);
VOID
VFillinGlyphData(
PDEV *pPDev,
FONTMAP *pfm
);
BOOL
BGetNewFontInfo(
FONTMAP *pfm,
BYTE *pRes
);
PUNI_GLYPHSETDATA
PNTGTT1To1(
IN DWORD dwCodepage,
IN BOOL bSymbolCharSet,
IN INT iFirst,
IN INT iLast
);
NT_RLE *
PNTRLE1To1(
IN BOOL bSymbolCharSet,
int iFirst,
int iLast
);
//
// Defined in fileio.c
//
HANDLE
DrvOpenFile
(
PWSTR pwstrFileName,
PDEV *pPDEV
);
BOOL
DrvReadFile
(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumBytesToRead,
LPDWORD lpNumBytesRead,
PDEV *pPDev
);
DWORD
DrvSetFilePointer
(
HANDLE hFile,
LONG iDistanceToMove,
DWORD dwMoveMethod,
PDEV *pPDev
);
BOOL
DrvCloseFile
(
HANDLE hFile,
PDEV *pPDEV
);
//
// Defined in fontread.c
//
INT
IFIOpenRead(
FI_MEM *pFIMem,
PWSTR pwstrName,
PDEV *pPDev
);
BOOL
BFINextRead(
FI_MEM *pFIMem
) ;
int
IFIRewind(
FI_MEM *pFIMem
);
BOOL
BFICloseRead(
FI_MEM *pFIMem,
PDEV *pPDev
);
//
// Defined in xtrafont.c
//
int
IXtraFonts(
PDEV *pPDev
);
BOOL
BGetXFont(
PDEV *pPDev,
int iIndex
);
void
VXFRewind(
PDEV *pPDev
);
//
// Defined in FontFree.c
//
VOID
VFontFreeMem(
PDEV *pPDev
);
//
// Defined in posnsort.c
//
BOOL
BCreatePS(
PDEV *pPDev
);
VOID
VFreePS(
PDEV *pPDev
);
BOOL
BAddPS(
PSHEAD *pPSH,
PSGLYPH *pPSGIn,
INT iyVal,
INT iyMax
);
INT
ISelYValPS(
PSHEAD *pPSH,
int iyVal
);
PSGLYPH *
PSGGetNextPSG(
PSHEAD *pPSH
);
//
// Defined in download.c
//
BOOL
BSendDLFont(
PDEV *pPDev,
FONTMAP *pFM
);
INT
IDownloadFont(
TO_DATA *ptod,
STROBJ *pstro,
INT *piRot
);
INT
IHG2Index(
TO_DATA *pTOD
);
DWORD
DwGetTTGlyphWidth(
FONTPDEV *pFontPDev,
FONTOBJ *pfo,
HGLYPH hGlyph);
//
// Defined in dloadpcl.c
//
DWORD
DwDLPCLHeader(
PDEV *pPDev,
IFIMETRICS *pifi,
int id
);
INT
IDLGlyph(
PDEV *pPDev,
int iIndex,
GLYPHDATA *pgd,
DWORD *pdwMem
);
//
// Defined in qeryfont.c
//
PIFIMETRICS
FMQueryFont(
PDEV *pPDev,
ULONG_PTR iFile,
ULONG iFace,
ULONG_PTR *pid
);
ULONG
FMGetGlyphMode(
PDEV *pPDev,
FONTOBJ *pfo
);
LONG
FMQueryFontData(
PDEV *pPDev,
FONTOBJ *pfo,
ULONG iMode,
HGLYPH hg,
GLYPHDATA *pgd,
PVOID pv,
ULONG cjSize
);
//
// Defined in qfontdat.c
//
PVOID
FMQueryFontTree(
PDEV *pPDev,
ULONG_PTR iFile,
ULONG iFace,
ULONG iMode,
ULONG_PTR *pid
);
VOID *
PVGetUCGlyphSetData(
PDEV *pPDev,
UINT iFace
);
VOID *
PVGetUCRLE(
PDEV *pPDev,
FONTMAP *pFM
);
VOID *
PVGetUCFD_GLYPHSET(
PDEV *pPDev,
FONTMAP *pFM
);
VOID *
PVGetUCKernPairData(
PDEV *pPDev,
UINT iFace
);
VOID *
PVUCKernPair(
PDEV *pPDev,
FONTMAP *pFM
);
//
// Defined in fntmanag.c
//
ULONG
FMFontManagement(
SURFOBJ *pso,
FONTOBJ *pfo,
ULONG iMode,
ULONG cjIn,
PVOID pvIn,
ULONG cjOut,
PVOID pvOut
);
//
// Defined in qadvwdth.c
//
BOOL
FMQueryAdvanceWidths(
PDEV *pPDev,
FONTOBJ *pfo,
ULONG iMode,
HGLYPH *phg,
PVOID *pvWidths,
ULONG cGlyphs
);
//
// Defined in fonts.c
//
FONTMAP *
PfmGetIt(
PDEV *pPDev,
INT iIndex);
FONTMAP *
PfmGetDevicePFM(
PDEV *pPDev,
INT iIndex);
FONTMAP *
PfmGetDevicePFM(
PDEV *pPDev,
INT iIndex
);
BOOL
BNewFont(
PDEV *pPDev,
INT iNewFont,
PFONTMAP pfm,
DWORD dwFontAttrib
);
BOOL
BGetPSize(
FONTPDEV *pFontPDev,
POINTL *pptl,
FWORD fwdUnitsPerEm,
FWORD fwdAveCharWidth
);
BOOL
BSelectFont(
PDEV *pPDev,
FONTMAP *pFM,
POINTL *pptl
);
BOOL BSelScalableFont(
PDEV *pPDev,
POINTL *pptl,
FONTMAP *pFM
);
INT
IFont100toStr(
BYTE *pjOut,
int iBufSize,
int iVal
);
INT
ISetScale(
FONTCTL *pctl,
XFORMOBJ *pxo,
BOOL bIntellifont,
BOOL bAnyRotation
);
VOID
VSetRotation(
FONTPDEV *pFontPDev,
int iRot
);
INT
IGetGlyphWidth(
PDEV *pPDev,
FONTMAP *pFM,
HGLYPH hg
);
LONG
LMulFloatLong(
PFLOATOBJ pfo,
LONG l);
INT
IGetUFMGlyphWidth(
PDEV *pPDev,
FONTMAP *pFM,
HGLYPH hg
);
INT
IGetUFMGlyphWidthJr(
POINT *pptGrxRes,
FONTMAP *pFM,
HGLYPH hg
);
VOID
VSetCursor(
IN PDEV *pPDev,
IN INT iX,
IN INT iY,
IN WORD wMoveType,
OUT POINTL *pptlRem
);
//
// ttdload.c !!!TODO
//
BOOL BGetTTPointSize(
PDEV *pPDev,
POINTL *pptl,
FONTMAP *pfm
);
BOOL BTTSelScalableFont(
PDEV *pPDev,
POINTL *pptl,
FONTMAP *pfm
);
BOOL
BSetFontAttrib(
PDEV *pPDev,
DWORD dwPrevAttrib,
DWORD dwAttrib,
BOOL bReset);
BOOL
BGetStockGlyphset(
IN PDEV *pPDev,
OUT VOID **ppvFDGlyphset,
IN SHORT sResID);
HGLYPH
HDefaultGH(
PFONTMAP pfm);
BOOL
BUpdateStandardVar(
PDEV *pPDev,
PFONTMAP pFontMap,
INT iGlyphIndex,
DWORD dwFontAtt,
DWORD dwFlags);
#define STD_ALL 0x00000FFF
#define STD_STD 0x0000007F
#define STD_TT 0x00000380
#define STD_GL 0x00000001
#define STD_FH 0x00000002
#define STD_FW 0x00000004
#define STD_FB 0x00000008
#define STD_FI 0x00000010
#define STD_FU 0x00000020
#define STD_FS 0x00000040
#define STD_NFID 0x00000080
#define STD_CFID 0x00000100
#define STD_PRND 0x00000200
//
// oldfonts.c
//
BOOL
BRLEOutputGlyph(
TO_DATA *pTod
);
BOOL
BRLESelectFont(
PDEV *pPDev,
PFONTMAP pFM,
POINTL *pptl);
BOOL
BRLEDeselectFont(
PDEV *pPDev,
PFONTMAP pFM);
INT
IGetIFIGlyphWidth(
PDEV *pPDev,
FONTMAP *pFM,
HGLYPH hg);
BOOL
BSelectNonScalableFont(
PDEV *pPDev,
BYTE *pbCmd,
INT iCmdLength,
POINTL *pptl);
BOOL
BSelectPCLScalableFont(
PDEV *pPDev,
BYTE *pbCmd,
INT iCmdLength,
POINTL *pptl);
BOOL
BSelectCapslScalableFont(
PDEV *pPDev,
BYTE *pbCmd,
INT iCmdLength,
POINTL *pptl);
BOOL
BSelectPPDSScalableFont(
PDEV *pPDev,
BYTE *pbCmd,
INT iCmdLength,
POINTL *pptl);
//
// newfonts.c
//
BOOL
BGTTOutputGlyph(
TO_DATA *pTod);
BOOL
BGTTSelectFont(
PDEV *pPDev,
PFONTMAP pFM,
POINTL *pptl);
BOOL
BGTTDeselectFont(
PDEV *pPDev,
PFONTMAP pFM);
//
// fmcallbk.c
//
DWORD
DwOutputGlyphCallback(
TO_DATA *pTod);
BOOL
BSelectFontCallback(
PDEV *pdev,
PFONTMAP pFM,
POINTL *pptl);
BOOL
BDeselectFontCallback(
PDEV *pdev,
PFONTMAP pFM);
PFONTMAP
PfmInitPFMOEMCallback(
PDEV *pPDev,
FONTOBJ *pfo);
//
// Inerface functions for FontMap initialization.
//
//
// Defined in bmpdload.c
//
FONTMAP *
InitPFMTTBitmap(
PDEV *pPDev,
FONTOBJ *pFontObj
);
//
// Defined in truetype.c
//
FONTMAP *
InitPFMTTOutline(
PDEV *pPDev,
FONTOBJ *pFontObj
);
BOOL
bTTSelectFont(
IN PDEV *pPDev,
IN PFONTMAP pFM,
IN POINTL *pptl
);
BOOL
bTTDeSelectFont(
IN PDEV *pPDev,
IN PFONTMAP pFM
);
DWORD
dwTTDownloadFontHeader(
IN PDEV *pPDev,
IN PFONTMAP pFM
);
DWORD
dwTTDownloadGlyph(
IN PDEV *pPDev,
IN PFONTMAP pFM,
IN HGLYPH hGlyph,
WORD wDLGlyphId,
WORD *pwWidth
);
DWORD
dwTTGlyphOut(
TO_DATA *pTod
);
BOOL
bTTCheckCondition(
PDEV *pPDev,
FONTOBJ *pfo,
STROBJ *pstro,
IFIMETRICS *pifi
);
BOOL
bTTFreeMem(
IN OUT PFONTMAP pFM
);
//
// dlutils.c
//
PDLGLYPH
PDLGHashGlyph (
DL_MAP *pDL,
HGLYPH hTTGlyph
);
VOID
VFreeDLMAP (
DL_MAP *pdm
);
VOID
VFreeDL(
PDEV *pPDev
);
DL_MAP *
PGetDLMap (
PFONTPDEV pFontPDev,
FONTOBJ *pfo
);
BOOL
BInitDLMap (
PDEV *pPDev,
FONTOBJ *pfo,
DL_MAP *pdm
);
INT
IGetDL_ID(
PDEV * );
DL_MAP *
PGetDLMapFromIdx (
PFONTPDEV pFontPDev,
INT iFontIndex
) ;
BOOL
BPrintADLGlyph(
PDEV *pPDev,
TO_DATA *pTod,
PDLGLYPH pdlGlyph
);
//
// TrueTypeBMP module interface prototype. bmpdload.c
//
BOOL
BFreeTrueTypeBMPPFM(
PFONTMAP pfm
);
BOOL
BCheckCondTrueTypeBMP(
PDEV *pPDev,
FONTOBJ *pfo,
STROBJ *pso,
IFIMETRICS *pifi
);
BOOL
BSelectTrueTypeBMP(
PDEV *pPDev,
PFONTMAP pFM,
POINTL* pptl
);
BOOL
BDeselectTrueTypeBMP(
PDEV *pPDev,
FONTMAP *pfm
);
DWORD
DwTrueTypeBMPGlyphOut(
TO_DATA *pTod
);
DWORD
DwDLTrueTypeBMPHeader(
PDEV *pPDev,
PFONTMAP pFM
);
DWORD
DwDLTrueTypeBMPGlyph(
PDEV *pPDev,
PFONTMAP pFM,
HGLYPH hGlyph,
WORD wDLGlyphId,
WORD *pwWidth
);
#endif // !_FMFNPROT_H