287 lines
6.8 KiB
C
287 lines
6.8 KiB
C
/*
|
|
* 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 */
|