source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/prntfont.h@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 6.8 KB
RevLine 
[1166]1/*
2 * prntfont.h
3 *
4 * Declarations for Windows NT printer driver font metrics
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Filip Navara <xnavara@volny.cz>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
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.
20 *
21 */
22
23#ifndef __PRNTFONT_H
24#define __PRNTFONT_H
25
26#define UNIFM_VERSION_1_0 0x10000
27#define UNI_GLYPHSETDATA_VERSION_1_0 0x10000
28
29#define UFM_SOFT 1
30#define UFM_CART 2
31#define UFM_SCALABLE 4
32
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
39#define DF_NOITALIC 1
40#define DF_NOUNDER 2
41#define DF_XM_CR 4
42#define DF_NO_BOLD 8
43#define DF_NO_DOUBLE_UNDERLINE 16
44#define DF_NO_STRIKETHRU 32
45#define DF_BKSP_OK 64
46
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
55#define MTYPE_ADD 64
56#define MTYPE_DISABLE 128
57#define MTYPE_PREDEFIN_MASK 192
58
59#define CC_NOPRECNV 0x0000FFFF
60#define CC_DEFAULT 0
61#define CC_CP437 -1
62#define CC_CP850 -2
63#define CC_CP863 -3
64#define CC_BIG5 -10
65#define CC_ISC -11
66#define CC_JIS -12
67#define CC_JIS_ANK -13
68#define CC_NS86 -14
69#define CC_TCA -15
70#define CC_GB2312 -16
71#define CC_SJIS -17
72#define CC_WANSUNG -18
73
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'
79
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
88
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'
94
95#define FG_CANCHANGE 128
96#define WM_FI_FILENAME 900
97
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))
108
109typedef struct _UNIFM_HDR
110{
111 DWORD dwSize;
112 DWORD dwVersion;
113 ULONG ulDefaultCodepage;
114 LONG lGlyphSetDataRCID;
115 DWORD loUnidrvInfo;
116 DWORD loIFIMetrics;
117 DWORD loExtTextMetric;
118 DWORD loWidthTable;
119 DWORD loKernPair;
120 DWORD dwReserved[2];
121} UNIFM_HDR, *PUNIFM_HDR;
122
123typedef struct _INVOC
124{
125 DWORD dwCount;
126 DWORD loOffset;
127} INVOC, *PINVOC;
128
129typedef struct _UNIDRVINFO
130{
131 DWORD dwSize;
132 DWORD flGenFlags;
133 WORD wType;
134 WORD fCaps;
135 WORD wXRes;
136 WORD wYRes;
137 SHORT sYAdjust;
138 SHORT sYMoved;
139 WORD wPrivateData;
140 SHORT sShift;
141 INVOC SelectFont;
142 INVOC UnSelectFont;
143 WORD wReserved[4];
144} UNIDRVINFO, *PUNIDRVINFO;
145
146typedef struct _EXTTEXTMETRIC
147{
148 SHORT emSize;
149 SHORT emPointSize;
150 SHORT emOrientation;
151 SHORT emMasterHeight;
152 SHORT emMinScale;
153 SHORT emMaxScale;
154 SHORT emMasterUnits;
155 SHORT emCapHeight;
156 SHORT emXHeight;
157 SHORT emLowerCaseAscent;
158 SHORT emLowerCaseDescent;
159 SHORT emSlant;
160 SHORT emSuperScript;
161 SHORT emSubScript;
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;
172 WORD emKernPairs;
173 WORD emKernTracks;
174} EXTTEXTMETRIC, *PEXTTEXTMETRIC;
175
176typedef struct _WIDTHRUN
177{
178 WORD wStartGlyph;
179 WORD wGlyphCount;
180 DWORD loCharWidthOffset;
181} WIDTHRUN, *PWIDTHRUN;
182
183typedef struct _WIDTHTABLE
184{
185 DWORD dwSize;
186 DWORD dwRunNum;
187 WIDTHRUN WidthRun[1];
188} WIDTHTABLE, *PWIDTHTABLE;
189
190typedef struct _KERNDATA
191{
192 DWORD dwSize;
193 DWORD dwKernPairNum;
194 FD_KERNINGPAIR KernPair[1];
195} KERNDATA, *PKERNDATA;
196
197typedef struct _UNI_GLYPHSETDATA
198{
199 DWORD dwSize;
200 DWORD dwVersion;
201 DWORD dwFlags;
202 LONG lPredefinedID;
203 DWORD dwGlyphCount;
204 DWORD dwRunCount;
205 DWORD loRunOffset;
206 DWORD dwCodePageCount;
207 DWORD loCodePageOffset;
208 DWORD loMapTableOffset;
209 DWORD dwReserved[2];
210} UNI_GLYPHSETDATA, *PUNI_GLYPHSETDATA;
211
212typedef struct _UNI_CODEPAGEINFO
213{
214 DWORD dwCodePage;
215 INVOC SelectSymbolSet;
216 INVOC UnSelectSymbolSet;
217} UNI_CODEPAGEINFO, *PUNI_CODEPAGEINFO;
218
219typedef struct _GLYPHRUN
220{
221 WCHAR wcLow;
222 WORD wGlyphCount;
223} GLYPHRUN, *PGLYPHRUN;
224
225typedef struct _TRANSDATA
226{
227 BYTE ubCodePageID;
228 BYTE ubType;
229 union
230 {
231 SHORT sCode;
232 BYTE ubCode;
233 BYTE ubPairs[2];
234 } uCode;
235} TRANSDATA, *PTRANSDATA;
236
237typedef struct _MAPTABLE {
238 DWORD dwSize;
239 DWORD dwGlyphNum;
240 TRANSDATA Trans[1];
241} MAPTABLE, *PMAPTABLE;
242
243typedef struct _UFF_FILEHEADER {
244 DWORD dwSignature;
245 DWORD dwVersion;
246 DWORD dwSize;
247 DWORD nFonts;
248 DWORD nGlyphSets;
249 DWORD nVarData;
250 DWORD offFontDir;
251 DWORD dwFlags;
252 DWORD dwReserved[4];
253} UFF_FILEHEADER, *PUFF_FILEHEADER;
254
255typedef struct _UFF_FONTDIRECTORY {
256 DWORD dwSignature;
257 WORD wSize;
258 WORD wFontID;
259 SHORT sGlyphID;
260 WORD wFlags;
261 DWORD dwInstallerSig;
262 DWORD offFontName;
263 DWORD offCartridgeName;
264 DWORD offFontData;
265 DWORD offGlyphData;
266 DWORD offVarData;
267} UFF_FONTDIRECTORY, *PUFF_FONTDIRECTORY;
268
269typedef struct _DATA_HEADER {
270 DWORD dwSignature;
271 WORD wSize;
272 WORD wDataID;
273 DWORD dwDataSize;
274 DWORD dwReserved;
275} DATA_HEADER, *PDATA_HEADER;
276
277typedef struct _OEMFONTINSTPARAM {
278 DWORD cbSize;
279 HANDLE hPrinter;
280 HANDLE hModule;
281 HANDLE hHeap;
282 DWORD dwFlags;
283 PWSTR pFontInstallerName;
284} OEMFONTINSTPARAM, *POEMFONTINSTPARAM;
285
286#endif /* __PRNTFONT_H */
Note: See TracBrowser for help on using the repository browser.