| /* |
| * 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 */ |