4 * Declarations for Windows NT printer driver font metrics
6 * This file is part of the w32api package.
9 * Created by Filip Navara <xnavara@volny.cz>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
26 #define UNIFM_VERSION_1_0 0x10000
27 #define UNI_GLYPHSETDATA_VERSION_1_0 0x10000
31 #define UFM_SCALABLE 4
33 #define DF_TYPE_HPINTELLIFONT 0
34 #define DF_TYPE_TRUETYPE 1
35 #define DF_TYPE_PST1 2
36 #define DF_TYPE_CAPSL 3
37 #define DF_TYPE_OEM1 4
38 #define DF_TYPE_OEM2 5
43 #define DF_NO_DOUBLE_UNDERLINE 16
44 #define DF_NO_STRIKETHRU 32
47 #define MTYPE_COMPOSE 1
48 #define MTYPE_DIRECT 2
49 #define MTYPE_PAIRED 4
50 #define MTYPE_FORMAT_MASK 7
51 #define MTYPE_SINGLE 8
52 #define MTYPE_DOUBLE 16
53 #define MTYPE_DOUBLEBYTECHAR_MASK 24
54 #define MTYPE_REPLACE 32
56 #define MTYPE_DISABLE 128
57 #define MTYPE_PREDEFIN_MASK 192
59 #define CC_NOPRECNV 0x0000FFFF
67 #define CC_JIS_ANK -13
72 #define CC_WANSUNG -18
74 #define UFF_FILE_MAGIC 'UFF1'
75 #define UFF_VERSION_NUMBER 0x10001
76 #define FONT_DIR_SORTED 1
77 #define FONT_REC_SIG 'CERF'
78 #define WINNT_INSTALLER_SIG 'IFTN'
80 #define FONT_FL_UFM 0x0001
81 #define FONT_FL_IFI 0x0002
82 #define FONT_FL_SOFTFONT 0x0004
83 #define FONT_FL_PERMANENT_SF 0x0008
84 #define FONT_FL_DEVICEFONT 0x0010
85 #define FONT_FL_GLYPHSET_GTT 0x0020
86 #define FONT_FL_GLYPHSET_RLE 0x0040
87 #define FONT_FL_RESERVED 0x8000
89 #define DATA_UFM_SIG 'MFUD'
90 #define DATA_IFI_SIG 'IFID'
91 #define DATA_GTT_SIG 'TTGD'
92 #define DATA_CTT_SIG 'TTCD'
93 #define DATA_VAR_SIG 'RAVD'
95 #define FG_CANCHANGE 128
96 #define WM_FI_FILENAME 900
98 #define GET_UNIDRVINFO(pUFM) ((PUNIDRVINFO)((ULONG_PTR)(pUFM) + (pUFM)->loUnidrvInfo))
99 #define GET_IFIMETRICS(pUFM) ((IFIMETRICS*)((ULONG_PTR)(pUFM) + (pUFM)->loIFIMetrics))
100 #define GET_EXTTEXTMETRIC(pUFM) ((EXTTEXTMETRIC*)((ULONG_PTR)(pUFM) + (pUFM)->loExtTextMetric))
101 #define GET_WIDTHTABLE(pUFM) ((PWIDTHTABLE)((ULONG_PTR)(pUFM) + (pUFM)->loWidthTable))
102 #define GET_KERNDATA(pUFM) ((PKERNDATA)((ULONG_PTR)(pUFM) + (pUFM)->loKernPair))
103 #define GET_SELECT_CMD(pUni) ((PCHAR)(pUni) + (pUni)->SelectFont.loOffset)
104 #define GET_UNSELECT_CMD(pUni) ((PCHAR)(pUni) + (pUni)->UnSelectFont.loOffset)
105 #define GET_GLYPHRUN(pGTT) ((PGLYPHRUN)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loRunOffset))
106 #define GET_CODEPAGEINFO(pGTT) ((PUNI_CODEPAGEINFO)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loCodePageOffset))
107 #define GET_MAPTABLE(pGTT) ((PMAPTABLE)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loMapTableOffset))
109 typedef struct _UNIFM_HDR
113 ULONG ulDefaultCodepage
;
114 LONG lGlyphSetDataRCID
;
117 DWORD loExtTextMetric
;
121 } UNIFM_HDR
, *PUNIFM_HDR
;
123 typedef struct _INVOC
129 typedef struct _UNIDRVINFO
144 } UNIDRVINFO
, *PUNIDRVINFO
;
146 typedef struct _EXTTEXTMETRIC
151 SHORT emMasterHeight
;
157 SHORT emLowerCaseAscent
;
158 SHORT emLowerCaseDescent
;
162 SHORT emSuperScriptSize
;
163 SHORT emSubScriptSize
;
164 SHORT emUnderlineOffset
;
165 SHORT emUnderlineWidth
;
166 SHORT emDoubleUpperUnderlineOffset
;
167 SHORT emDoubleLowerUnderlineOffset
;
168 SHORT emDoubleUpperUnderlineWidth
;
169 SHORT emDoubleLowerUnderlineWidth
;
170 SHORT emStrikeOutOffset
;
171 SHORT emStrikeOutWidth
;
174 } EXTTEXTMETRIC
, *PEXTTEXTMETRIC
;
176 typedef struct _WIDTHRUN
180 DWORD loCharWidthOffset
;
181 } WIDTHRUN
, *PWIDTHRUN
;
183 typedef struct _WIDTHTABLE
187 WIDTHRUN WidthRun
[1];
188 } WIDTHTABLE
, *PWIDTHTABLE
;
190 typedef struct _KERNDATA
194 FD_KERNINGPAIR KernPair
[1];
195 } KERNDATA
, *PKERNDATA
;
197 typedef struct _UNI_GLYPHSETDATA
206 DWORD dwCodePageCount
;
207 DWORD loCodePageOffset
;
208 DWORD loMapTableOffset
;
210 } UNI_GLYPHSETDATA
, *PUNI_GLYPHSETDATA
;
212 typedef struct _UNI_CODEPAGEINFO
215 INVOC SelectSymbolSet
;
216 INVOC UnSelectSymbolSet
;
217 } UNI_CODEPAGEINFO
, *PUNI_CODEPAGEINFO
;
219 typedef struct _GLYPHRUN
223 } GLYPHRUN
, *PGLYPHRUN
;
225 typedef struct _TRANSDATA
235 } TRANSDATA
, *PTRANSDATA
;
237 typedef struct _MAPTABLE
{
241 } MAPTABLE
, *PMAPTABLE
;
243 typedef struct _UFF_FILEHEADER
{
253 } UFF_FILEHEADER
, *PUFF_FILEHEADER
;
255 typedef struct _UFF_FONTDIRECTORY
{
261 DWORD dwInstallerSig
;
263 DWORD offCartridgeName
;
267 } UFF_FONTDIRECTORY
, *PUFF_FONTDIRECTORY
;
269 typedef struct _DATA_HEADER
{
275 } DATA_HEADER
, *PDATA_HEADER
;
277 typedef struct _OEMFONTINSTPARAM
{
283 PWSTR pFontInstallerName
;
284 } OEMFONTINSTPARAM
, *POEMFONTINSTPARAM
;
286 #endif /* __PRNTFONT_H */