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