Reactos
1#ifndef __T2EMBED_API_H
2#define __T2EMBED_API_H
3
4#ifndef CHARSET_UNICODE
5#define CHARSET_UNICODE 1
6#define CHARSET_DEFAULT 1
7#define CHARSET_SYMBOL 2
8#define CHARSET_GLYPHIDX 3
9#endif
10
11#ifndef EMBED_PREVIEWPRINT
12#define EMBED_PREVIEWPRINT 1
13#define EMBED_EDITABLE 2
14#define EMBED_INSTALLABLE 3
15#define EMBED_NOEMBEDDING 4
16#endif
17
18#ifndef LICENSE_INSTALLABLE
19#define LICENSE_INSTALLABLE 0x0
20#define LICENSE_DEFAULT 0x0
21#define LICENSE_NOEMBEDDING 0x2
22#define LICENSE_PREVIEWPRINT 0x4
23#define LICENSE_EDITABLE 0x8
24#endif
25
26#ifndef TTEMBED_RAW
27#define TTEMBED_RAW 0x0
28#define TTEMBED_SUBSET 0x1
29#define TTEMBED_TTCOMPRESSED 0x4
30#define TTEMBED_FAILIFVARIATIONSIMULATED 0x10
31#define TTEMBED_EMBEDEUDC 0x20
32#define TTEMBED_VALIDATIONTESTS 0x40
33#define TTEMBED_WEBOBJECT 0x80
34#define TTEMBED_ENCRYPTDATA 0x10000000
35#endif
36
37#ifndef E_NONE
38#define E_NONE 0x0
39#endif
40
41#define E_API_NOTIMPL 0x0001L
42
43#ifndef E_CHARCODECOUNTINVALID
44#define E_CHARCODECOUNTINVALID 0x2
45#define E_CHARCODESETINVALID 0x3
46#define E_DEVICETRUETYPEFONT 0x4
47#define E_HDCINVALID 0x6
48#define E_NOFREEMEMORY 0x7
49#define E_FONTREFERENCEINVALID 0x8
50#define E_NOTATRUETYPEFONT 0xA
51#define E_ERRORACCESSINGFONTDATA 0xC
52#define E_ERRORACCESSINGFACENAME 0xD
53#define E_ERRORUNICODECONVERSION 0x11
54#define E_ERRORCONVERTINGCHARS 0x12
55#define E_EXCEPTION 0x13
56#define E_RESERVEDPARAMNOTNULL 0x14
57#define E_CHARSETINVALID 0x15
58#define E_WIN32S_NOTSUPPORTED 0x16
59#define E_FILE_NOT_FOUND 0x17
60#define E_TTC_INDEX_OUT_OF_RANGE 0x18
61#define E_INPUTPARAMINVALID 0x19
62#endif
63
64#ifndef E_ERRORCOMPRESSINGFONTDATA
65#define E_ERRORCOMPRESSINGFONTDATA 0x100
66#define E_FONTDATAINVALID 0x102
67#define E_NAMECHANGEFAILED 0x103
68#define E_FONTNOTEMBEDDABLE 0x104
69#define E_PRIVSINVALID 0x105
70#define E_SUBSETTINGFAILED 0x106
71#define E_READFROMSTREAMFAILED 0x107
72#define E_SAVETOSTREAMFAILED 0x108
73#define E_NOOS2 0x109
74#define E_T2NOFREEMEMORY 0x10A
75#define E_ERRORREADINGFONTDATA 0x10B
76#define E_FLAGSINVALID 0x10C
77#define E_ERRORCREATINGFONTFILE 0x10D
78#define E_FONTALREADYEXISTS 0x10E
79#define E_FONTNAMEALREADYEXISTS 0x10F
80#define E_FONTINSTALLFAILED 0x110
81#define E_ERRORDECOMPRESSINGFONTDATA 0x111
82#define E_ERRORACCESSINGEXCLUDELIST 0x112
83#define E_FACENAMEINVALID 0x113
84#define E_STREAMINVALID 0x114
85#define E_STATUSINVALID 0x115
86#define E_PRIVSTATUSINVALID 0x116
87#define E_PERMISSIONSINVALID 0x117
88#define E_PBENABLEDINVALID 0x118
89#define E_SUBSETTINGEXCEPTION 0x119
90#define E_SUBSTRING_TEST_FAIL 0x11A
91#define E_FONTVARIATIONSIMULATED 0x11B
92#define E_FONTVALIDATEFAIL 0x11C
93#define E_FONTFAMILYNAMENOTINFULL 0x11D
94#endif
95
96#ifndef E_ADDFONTFAILED
97#define E_ADDFONTFAILED 0x200
98#define E_COULDNTCREATETEMPFILE 0x201
99#define E_FONTFILECREATEFAILED 0x203
100#define E_WINDOWSAPI 0x204
101#define E_FONTFILENOTFOUND 0x205
102#define E_RESOURCEFILECREATEFAILED 0x206
103#define E_ERROREXPANDINGFONTDATA 0x207
104#define E_ERRORGETTINGDC 0x208
105#define E_EXCEPTIONINDECOMPRESSION 0x209
106#define E_EXCEPTIONINCOMPRESSION 0x20A
107#endif
108
109#ifdef __cplusplus
110extern "C" {
111#endif
112
113typedef unsigned long(WINAPIV *WRITEEMBEDPROC)
114(
115 void* lpvWriteStream,
116 const void* lpvBuffer,
117 const unsigned long cbBuffer
118);
119
120typedef unsigned long(WINAPIV *READEMBEDPROC)
121(
122 void* lpvReadStream,
123 void* lpvBuffer,
124 const unsigned long cbBuffer
125);
126
127
128typedef struct
129{
130 unsigned long ulStructSize;
131 long lTestFromSize;
132 long lTestToSize;
133 unsigned long ulCharSet;
134 unsigned short usReserved1;
135 unsigned short usCharCodeCount;
136 unsigned short* pusCharCodeSet;
137} TTVALIDATIONTESTPARAMS;
138
139typedef struct
140{
141 unsigned long ulStructSize;
142 long lTestFromSize;
143 long lTestToSize;
144 unsigned long ulCharSet;
145 unsigned short usReserved1;
146 unsigned short usCharCodeCount;
147 unsigned long* pulCharCodeSet;
148} TTVALIDATIONTESTPARAMSEX;
149
150typedef struct
151{
152 unsigned short usStructSize;
153 unsigned short usRootStrSize;
154 unsigned short *pusRootStr;
155} TTEMBEDINFO;
156
157typedef struct
158{
159 unsigned short usStructSize;
160 unsigned short usRefStrSize;
161 unsigned short *pusRefStr;
162} TTLOADINFO;
163
164LONG
165WINAPI
166TTCharToUnicode(HDC hDC,
167 UCHAR* pucCharCodes,
168 ULONG ulCharCodeSize,
169 USHORT* pusShortCodes,
170 ULONG ulShortCodeSize,
171 ULONG ulFlags);
172
173LONG
174WINAPI
175TTDeleteEmbeddedFont(HANDLE hFontReference,
176 ULONG ulFlags,
177 ULONG* pulStatus);
178
179LONG
180WINAPI
181TTEmbedFont(HDC hDC,
182 ULONG ulFlags,
183 ULONG ulCharSet,
184 ULONG* pulPrivStatus,
185 ULONG* pulStatus,
186 WRITEEMBEDPROC lpfnWriteToStream,
187 LPVOID lpvWriteStream,
188 USHORT* pusCharCodeSet,
189 USHORT usCharCodeCount,
190 USHORT usLanguage,
191 TTEMBEDINFO* pTTEmbedInfo);
192
193LONG
194WINAPI
195TTEmbedFontFromFileA(HDC hDC,
196 LPCSTR szFontFileName,
197 USHORT usTTCIndex,
198 ULONG ulFlags,
199 ULONG ulCharSet,
200 ULONG* pulPrivStatus,
201 ULONG* pulStatus,
202 WRITEEMBEDPROC lpfnWriteToStream,
203 LPVOID lpvWriteStream,
204 USHORT* pusCharCodeSet,
205 USHORT usCharCodeCount,
206 USHORT usLanguage,
207 TTEMBEDINFO* pTTEmbedInfo);
208
209LONG
210WINAPI
211TTEnableEmbeddingForFacename(LPSTR lpszFacename,
212 BOOL bEnable);
213
214LONG
215WINAPI
216TTGetEmbeddedFontInfo(ULONG ulFlags,
217 ULONG* pulPrivStatus,
218 ULONG ulPrivs,
219 ULONG* pulStatus,
220 READEMBEDPROC lpfnReadFromStream,
221 LPVOID lpvReadStream,
222 TTLOADINFO* pTTLoadInfo);
223
224LONG
225WINAPI
226TTGetEmbeddingType(HDC hDC,
227 ULONG* pulPrivStatus);
228
229LONG
230WINAPI
231TTIsEmbeddingEnabled(HDC hDC,
232 BOOL* pbEnabled);
233
234LONG
235WINAPI
236TTIsEmbeddingEnabledForFacename(LPCSTR lpszFacename,
237 BOOL* pbEnabled);
238
239LONG
240WINAPI
241TTLoadEmbeddedFont(HANDLE *phFontReference,
242 ULONG ulFlags,
243 ULONG* pulPrivStatus,
244 ULONG ulPrivs,
245 ULONG* pulStatus,
246 READEMBEDPROC lpfnReadFromStream,
247 LPVOID lpvReadStream,
248 LPWSTR szWinFamilyName,
249 LPSTR szMacFamilyName,
250 TTLOADINFO* pTTLoadInfo);
251
252LONG
253WINAPI
254TTRunValidationTests(HDC hDC,
255 TTVALIDATIONTESTPARAMS* pTestParam);
256
257LONG
258WINAPI
259TTEmbedFontEx(HDC hDC,
260 ULONG ulFlags,
261 ULONG ulCharSet,
262 ULONG* pulPrivStatus,
263 ULONG* pulStatus,
264 WRITEEMBEDPROC lpfnWriteToStream,
265 LPVOID lpvWriteStream,
266 ULONG* pulCharCodeSet,
267 USHORT usCharCodeCount,
268 USHORT usLanguage,
269 TTEMBEDINFO* pTTEmbedInfo);
270
271LONG
272WINAPI
273TTRunValidationTestsEx(HDC hDC,
274 TTVALIDATIONTESTPARAMSEX* pTestParam);
275
276LONG
277WINAPI
278TTGetNewFontName(HANDLE* phFontReference,
279 LPWSTR szWinFamilyName,
280 long cchMaxWinName,
281 LPSTR szMacFamilyName,
282 long cchMaxMacName);
283
284#ifdef __cplusplus
285 }
286#endif
287
288#endif /* __T2EMBED_API_H */