| /* | |
| * prntfont.h | |
| * | |
| * Declarations for Windows NT printer driver font metrics | |
| * | |
| * This file is part of the w32api package. | |
| * | |
| * Contributors: | |
| * Created by Filip Navara <xnavara@volny.cz> | |
| * | |
| * THIS SOFTWARE IS NOT COPYRIGHTED | |
| * | |
| * This source code is offered for use in the public domain. You may | |
| * use, modify or distribute it freely. | |
| * | |
| * This code is distributed in the hope that it will be useful but | |
| * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | |
| * DISCLAIMED. This includes but is not limited to warranties of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| * | |
| */ | |
| #ifndef __PRNTFONT_H | |
| #define __PRNTFONT_H | |
| #define UNIFM_VERSION_1_0 0x10000 | |
| #define UNI_GLYPHSETDATA_VERSION_1_0 0x10000 | |
| #define UFM_SOFT 1 | |
| #define UFM_CART 2 | |
| #define UFM_SCALABLE 4 | |
| #define DF_TYPE_HPINTELLIFONT 0 | |
| #define DF_TYPE_TRUETYPE 1 | |
| #define DF_TYPE_PST1 2 | |
| #define DF_TYPE_CAPSL 3 | |
| #define DF_TYPE_OEM1 4 | |
| #define DF_TYPE_OEM2 5 | |
| #define DF_NOITALIC 1 | |
| #define DF_NOUNDER 2 | |
| #define DF_XM_CR 4 | |
| #define DF_NO_BOLD 8 | |
| #define DF_NO_DOUBLE_UNDERLINE 16 | |
| #define DF_NO_STRIKETHRU 32 | |
| #define DF_BKSP_OK 64 | |
| #define MTYPE_COMPOSE 1 | |
| #define MTYPE_DIRECT 2 | |
| #define MTYPE_PAIRED 4 | |
| #define MTYPE_FORMAT_MASK 7 | |
| #define MTYPE_SINGLE 8 | |
| #define MTYPE_DOUBLE 16 | |
| #define MTYPE_DOUBLEBYTECHAR_MASK 24 | |
| #define MTYPE_REPLACE 32 | |
| #define MTYPE_ADD 64 | |
| #define MTYPE_DISABLE 128 | |
| #define MTYPE_PREDEFIN_MASK 192 | |
| #define CC_NOPRECNV 0x0000FFFF | |
| #define CC_DEFAULT 0 | |
| #define CC_CP437 -1 | |
| #define CC_CP850 -2 | |
| #define CC_CP863 -3 | |
| #define CC_BIG5 -10 | |
| #define CC_ISC -11 | |
| #define CC_JIS -12 | |
| #define CC_JIS_ANK -13 | |
| #define CC_NS86 -14 | |
| #define CC_TCA -15 | |
| #define CC_GB2312 -16 | |
| #define CC_SJIS -17 | |
| #define CC_WANSUNG -18 | |
| #define UFF_FILE_MAGIC 'UFF1' | |
| #define UFF_VERSION_NUMBER 0x10001 | |
| #define FONT_DIR_SORTED 1 | |
| #define FONT_REC_SIG 'CERF' | |
| #define WINNT_INSTALLER_SIG 'IFTN' | |
| #define FONT_FL_UFM 0x0001 | |
| #define FONT_FL_IFI 0x0002 | |
| #define FONT_FL_SOFTFONT 0x0004 | |
| #define FONT_FL_PERMANENT_SF 0x0008 | |
| #define FONT_FL_DEVICEFONT 0x0010 | |
| #define FONT_FL_GLYPHSET_GTT 0x0020 | |
| #define FONT_FL_GLYPHSET_RLE 0x0040 | |
| #define FONT_FL_RESERVED 0x8000 | |
| #define DATA_UFM_SIG 'MFUD' | |
| #define DATA_IFI_SIG 'IFID' | |
| #define DATA_GTT_SIG 'TTGD' | |
| #define DATA_CTT_SIG 'TTCD' | |
| #define DATA_VAR_SIG 'RAVD' | |
| #define FG_CANCHANGE 128 | |
| #define WM_FI_FILENAME 900 | |
| #define GET_UNIDRVINFO(pUFM) ((PUNIDRVINFO)((ULONG_PTR)(pUFM) + (pUFM)->loUnidrvInfo)) | |
| #define GET_IFIMETRICS(pUFM) ((IFIMETRICS*)((ULONG_PTR)(pUFM) + (pUFM)->loIFIMetrics)) | |
| #define GET_EXTTEXTMETRIC(pUFM) ((EXTTEXTMETRIC*)((ULONG_PTR)(pUFM) + (pUFM)->loExtTextMetric)) | |
| #define GET_WIDTHTABLE(pUFM) ((PWIDTHTABLE)((ULONG_PTR)(pUFM) + (pUFM)->loWidthTable)) | |
| #define GET_KERNDATA(pUFM) ((PKERNDATA)((ULONG_PTR)(pUFM) + (pUFM)->loKernPair)) | |
| #define GET_SELECT_CMD(pUni) ((PCHAR)(pUni) + (pUni)->SelectFont.loOffset) | |
| #define GET_UNSELECT_CMD(pUni) ((PCHAR)(pUni) + (pUni)->UnSelectFont.loOffset) | |
| #define GET_GLYPHRUN(pGTT) ((PGLYPHRUN)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loRunOffset)) | |
| #define GET_CODEPAGEINFO(pGTT) ((PUNI_CODEPAGEINFO)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loCodePageOffset)) | |
| #define GET_MAPTABLE(pGTT) ((PMAPTABLE)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loMapTableOffset)) | |
| typedef struct _UNIFM_HDR | |
| { | |
| DWORD dwSize; | |
| DWORD dwVersion; | |
| ULONG ulDefaultCodepage; | |
| LONG lGlyphSetDataRCID; | |
| DWORD loUnidrvInfo; | |
| DWORD loIFIMetrics; | |
| DWORD loExtTextMetric; | |
| DWORD loWidthTable; | |
| DWORD loKernPair; | |
| DWORD dwReserved[2]; | |
| } UNIFM_HDR, *PUNIFM_HDR; | |
| typedef struct _INVOC | |
| { | |
| DWORD dwCount; | |
| DWORD loOffset; | |
| } INVOC, *PINVOC; | |
| typedef struct _UNIDRVINFO | |
| { | |
| DWORD dwSize; | |
| DWORD flGenFlags; | |
| WORD wType; | |
| WORD fCaps; | |
| WORD wXRes; | |
| WORD wYRes; | |
| SHORT sYAdjust; | |
| SHORT sYMoved; | |
| WORD wPrivateData; | |
| SHORT sShift; | |
| INVOC SelectFont; | |
| INVOC UnSelectFont; | |
| WORD wReserved[4]; | |
| } UNIDRVINFO, *PUNIDRVINFO; | |
| typedef struct _EXTTEXTMETRIC | |
| { | |
| SHORT emSize; | |
| SHORT emPointSize; | |
| SHORT emOrientation; | |
| SHORT emMasterHeight; | |
| SHORT emMinScale; | |
| SHORT emMaxScale; | |
| SHORT emMasterUnits; | |
| SHORT emCapHeight; | |
| SHORT emXHeight; | |
| SHORT emLowerCaseAscent; | |
| SHORT emLowerCaseDescent; | |
| SHORT emSlant; | |
| SHORT emSuperScript; | |
| SHORT emSubScript; | |
| SHORT emSuperScriptSize; | |
| SHORT emSubScriptSize; | |
| SHORT emUnderlineOffset; | |
| SHORT emUnderlineWidth; | |
| SHORT emDoubleUpperUnderlineOffset; | |
| SHORT emDoubleLowerUnderlineOffset; | |
| SHORT emDoubleUpperUnderlineWidth; | |
| SHORT emDoubleLowerUnderlineWidth; | |
| SHORT emStrikeOutOffset; | |
| SHORT emStrikeOutWidth; | |
| WORD emKernPairs; | |
| WORD emKernTracks; | |
| } EXTTEXTMETRIC, *PEXTTEXTMETRIC; | |
| typedef struct _WIDTHRUN | |
| { | |
| WORD wStartGlyph; | |
| WORD wGlyphCount; | |
| DWORD loCharWidthOffset; | |
| } WIDTHRUN, *PWIDTHRUN; | |
| typedef struct _WIDTHTABLE | |
| { | |
| DWORD dwSize; | |
| DWORD dwRunNum; | |
| WIDTHRUN WidthRun[1]; | |
| } WIDTHTABLE, *PWIDTHTABLE; | |
| typedef struct _KERNDATA | |
| { | |
| DWORD dwSize; | |
| DWORD dwKernPairNum; | |
| FD_KERNINGPAIR KernPair[1]; | |
| } KERNDATA, *PKERNDATA; | |
| typedef struct _UNI_GLYPHSETDATA | |
| { | |
| DWORD dwSize; | |
| DWORD dwVersion; | |
| DWORD dwFlags; | |
| LONG lPredefinedID; | |
| DWORD dwGlyphCount; | |
| DWORD dwRunCount; | |
| DWORD loRunOffset; | |
| DWORD dwCodePageCount; | |
| DWORD loCodePageOffset; | |
| DWORD loMapTableOffset; | |
| DWORD dwReserved[2]; | |
| } UNI_GLYPHSETDATA, *PUNI_GLYPHSETDATA; | |
| typedef struct _UNI_CODEPAGEINFO | |
| { | |
| DWORD dwCodePage; | |
| INVOC SelectSymbolSet; | |
| INVOC UnSelectSymbolSet; | |
| } UNI_CODEPAGEINFO, *PUNI_CODEPAGEINFO; | |
| typedef struct _GLYPHRUN | |
| { | |
| WCHAR wcLow; | |
| WORD wGlyphCount; | |
| } GLYPHRUN, *PGLYPHRUN; | |
| typedef struct _TRANSDATA | |
| { | |
| BYTE ubCodePageID; | |
| BYTE ubType; | |
| union | |
| { | |
| SHORT sCode; | |
| BYTE ubCode; | |
| BYTE ubPairs[2]; | |
| } uCode; | |
| } TRANSDATA, *PTRANSDATA; | |
| typedef struct _MAPTABLE { | |
| DWORD dwSize; | |
| DWORD dwGlyphNum; | |
| TRANSDATA Trans[1]; | |
| } MAPTABLE, *PMAPTABLE; | |
| typedef struct _UFF_FILEHEADER { | |
| DWORD dwSignature; | |
| DWORD dwVersion; | |
| DWORD dwSize; | |
| DWORD nFonts; | |
| DWORD nGlyphSets; | |
| DWORD nVarData; | |
| DWORD offFontDir; | |
| DWORD dwFlags; | |
| DWORD dwReserved[4]; | |
| } UFF_FILEHEADER, *PUFF_FILEHEADER; | |
| typedef struct _UFF_FONTDIRECTORY { | |
| DWORD dwSignature; | |
| WORD wSize; | |
| WORD wFontID; | |
| SHORT sGlyphID; | |
| WORD wFlags; | |
| DWORD dwInstallerSig; | |
| DWORD offFontName; | |
| DWORD offCartridgeName; | |
| DWORD offFontData; | |
| DWORD offGlyphData; | |
| DWORD offVarData; | |
| } UFF_FONTDIRECTORY, *PUFF_FONTDIRECTORY; | |
| typedef struct _DATA_HEADER { | |
| DWORD dwSignature; | |
| WORD wSize; | |
| WORD wDataID; | |
| DWORD dwDataSize; | |
| DWORD dwReserved; | |
| } DATA_HEADER, *PDATA_HEADER; | |
| typedef struct _OEMFONTINSTPARAM { | |
| DWORD cbSize; | |
| HANDLE hPrinter; | |
| HANDLE hModule; | |
| HANDLE hHeap; | |
| DWORD dwFlags; | |
| PWSTR pFontInstallerName; | |
| } OEMFONTINSTPARAM, *POEMFONTINSTPARAM; | |
| #endif /* __PRNTFONT_H */ |