Mercurial > projects > ddbg_continued
comparison win32/usp10.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:586e4a649642 | 1:4a9dcbd9e54f |
---|---|
1 /* USP - Unicode Complex Script processor | |
2 * http://msdn2.microsoft.com/library/ms776488 */ | |
3 | |
4 | |
5 module win32.usp10; | |
6 import win32.windows; | |
7 | |
8 | |
9 | |
10 /* Uniscribe Enumeration Types | |
11 * http://msdn2.microsoft.com/library/ms776518 */ | |
12 | |
13 enum : WORD { | |
14 SCRIPT_UNDEFINED = 0, | |
15 } | |
16 | |
17 enum : DWORD { | |
18 SGCM_RTL = 0x00000001, | |
19 } | |
20 | |
21 enum : DWORD { | |
22 SSA_PASSWORD = 0x00000001, | |
23 SSA_TAB = 0x00000002, | |
24 SSA_CLIP = 0x00000004, | |
25 SSA_FIT = 0x00000008, | |
26 SSA_DZWG = 0x00000010, | |
27 SSA_FALLBACK = 0x00000020, | |
28 SSA_BREAK = 0x00000040, | |
29 SSA_GLYPHS = 0x00000080, | |
30 SSA_RTL = 0x00000100, | |
31 SSA_GCP = 0x00000200, | |
32 SSA_HOTKEY = 0x00000400, | |
33 SSA_METAFILE = 0x00000800, | |
34 SSA_LINK = 0x00001000, | |
35 SSA_HIDEHOTKEY = 0x00002000, | |
36 SSA_HOTKEYONLY = 0x00002400, | |
37 SSA_FULLMEASURE = 0x04000000, | |
38 SSA_LPKANSIFALLBACK = 0x08000000, | |
39 SSA_PIDX = 0x10000000, | |
40 SSA_LAYOUTRTL = 0x20000000, | |
41 SSA_DONTGLYPH = 0x40000000, | |
42 SSA_NOKASHIDA = 0x80000000, | |
43 } | |
44 | |
45 enum : DWORD { | |
46 SIC_COMPLEX = 1, | |
47 SIC_ASCIIDIGIT = 2, | |
48 SIC_NEUTRAL = 4, | |
49 } | |
50 | |
51 enum : DWORD { | |
52 SCRIPT_DIGITSUBSTITUTE_CONTEXT, | |
53 SCRIPT_DIGITSUBSTITUTE_NONE, | |
54 SCRIPT_DIGITSUBSTITUTE_NATIONAL, | |
55 SCRIPT_DIGITSUBSTITUTE_TRADITIONAL, | |
56 } | |
57 | |
58 enum SCRIPT_JUSTIFY : WORD { | |
59 SCRIPT_JUSTIFY_NONE, | |
60 SCRIPT_JUSTIFY_ARABIC_BLANK, | |
61 SCRIPT_JUSTIFY_CHARACTER, | |
62 SCRIPT_JUSTIFY_RESERVED1, | |
63 SCRIPT_JUSTIFY_BLANK, | |
64 SCRIPT_JUSTIFY_RESERVED2, | |
65 SCRIPT_JUSTIFY_RESERVED3, | |
66 SCRIPT_JUSTIFY_ARABIC_NORMAL, | |
67 SCRIPT_JUSTIFY_ARABIC_KASHIDA, | |
68 SCRIPT_JUSTIFY_ARABIC_ALEF, | |
69 SCRIPT_JUSTIFY_ARABIC_HA, | |
70 SCRIPT_JUSTIFY_ARABIC_RA, | |
71 SCRIPT_JUSTIFY_ARABIC_BA, | |
72 SCRIPT_JUSTIFY_ARABIC_BARA, | |
73 SCRIPT_JUSTIFY_ARABIC_SEEN, | |
74 SCRIPT_JUSTIFY_ARABIC_SEEN_M, | |
75 } | |
76 | |
77 | |
78 | |
79 /* Uniscribe Structures | |
80 * http://msdn2.microsoft.com/library/ms776479 */ | |
81 | |
82 alias void* SCRIPT_CACHE; | |
83 alias void* SCRIPT_STRING_ANALYSIS; | |
84 | |
85 extern (C) | |
86 { | |
87 struct SCRIPT_CONTROL | |
88 { | |
89 private DWORD _bitfield; | |
90 DWORD uDefaultLanguage() { return (_bitfield >> 0) & 0xFFFF; } | |
91 DWORD uDefaultLanguage(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFFF0000) | (val << 0)); return val; } | |
92 DWORD fContextDigits() { return (_bitfield >> 16) & 0x1; } | |
93 DWORD fContextDigits(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFFEFFFF) | (val << 16)); return val; } | |
94 DWORD fInvertPreBoundDir() { return (_bitfield >> 17) & 0x1; } | |
95 DWORD fInvertPreBoundDir(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFFDFFFF) | (val << 17)); return val; } | |
96 DWORD fInvertPostBoundDir() { return (_bitfield >> 18) & 0x1; } | |
97 DWORD fInvertPostBoundDir(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFFBFFFF) | (val << 18)); return val; } | |
98 DWORD fLinkStringBefore() { return (_bitfield >> 19) & 0x1; } | |
99 DWORD fLinkStringBefore(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFF7FFFF) | (val << 19)); return val; } | |
100 DWORD fLinkStringAfter() { return (_bitfield >> 20) & 0x1; } | |
101 DWORD fLinkStringAfter(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFEFFFFF) | (val << 20)); return val; } | |
102 DWORD fNeutralOverride() { return (_bitfield >> 21) & 0x1; } | |
103 DWORD fNeutralOverride(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFDFFFFF) | (val << 21)); return val; } | |
104 DWORD fNumericOverride() { return (_bitfield >> 22) & 0x1; } | |
105 DWORD fNumericOverride(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFBFFFFF) | (val << 22)); return val; } | |
106 DWORD fLegacyBidiClass() { return (_bitfield >> 23) & 0x1; } | |
107 DWORD fLegacyBidiClass(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFF7FFFFF) | (val << 23)); return val; } | |
108 DWORD fReserved() { return (_bitfield >> 24) & 0xFF; } | |
109 DWORD fReserved(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFF00FFFFFF) | (val << 24)); return val; } | |
110 } | |
111 | |
112 struct SCRIPT_STATE | |
113 { | |
114 private WORD _bitfield; | |
115 WORD uBidiLevel() { return cast(WORD)((_bitfield >> 0) & 0x1F); } | |
116 WORD uBidiLevel(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFE0) | (val << 0)); return val; } | |
117 WORD fOverrideDirection() { return cast(WORD)((_bitfield >> 5) & 0x1); } | |
118 WORD fOverrideDirection(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFDF) | (val << 5)); return val; } | |
119 WORD fInhibitSymSwap() { return cast(WORD)((_bitfield >> 6) & 0x1); } | |
120 WORD fInhibitSymSwap(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFBF) | (val << 6)); return val; } | |
121 WORD fCharShape() { return cast(WORD)((_bitfield >> 7) & 0x1); } | |
122 WORD fCharShape(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFF7F) | (val << 7)); return val; } | |
123 WORD fDigitSubstitute() { return cast(WORD)((_bitfield >> 8) & 0x1); } | |
124 WORD fDigitSubstitute(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFEFF) | (val << 8)); return val; } | |
125 WORD fInhibitLigate() { return cast(WORD)((_bitfield >> 9) & 0x1); } | |
126 WORD fInhibitLigate(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFDFF) | (val << 9)); return val; } | |
127 WORD fDisplayZWG() { return cast(WORD)((_bitfield >> 10) & 0x1); } | |
128 WORD fDisplayZWG(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFBFF) | (val << 10)); return val; } | |
129 WORD fArabicNumContext() { return cast(WORD)((_bitfield >> 11) & 0x1); } | |
130 WORD fArabicNumContext(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFF7FF) | (val << 11)); return val; } | |
131 WORD fGcpClusters() { return cast(WORD)((_bitfield >> 12) & 0x1); } | |
132 WORD fGcpClusters(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFEFFF) | (val << 12)); return val; } | |
133 WORD fReserved() { return cast(WORD)((_bitfield >> 13) & 0x1); } | |
134 WORD fReserved(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFDFFF) | (val << 13)); return val; } | |
135 WORD fEngineReserved() { return cast(WORD)((_bitfield >> 14) & 0x3); } | |
136 WORD fEngineReserved(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFF3FFF) | (val << 14)); return val; } | |
137 } | |
138 | |
139 | |
140 struct SCRIPT_ANALYSIS | |
141 { | |
142 private WORD _bitfield; | |
143 WORD eScript() { return cast(WORD)((_bitfield >> 0) & 0x3FF); } | |
144 WORD eScript(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFC00) | (val << 0)); return val; } | |
145 WORD fRTL() { return cast(WORD)((_bitfield >> 10) & 0x1); } | |
146 WORD fRTL(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFBFF) | (val << 10)); return val; } | |
147 WORD fLayoutRTL() { return cast(WORD)((_bitfield >> 11) & 0x1); } | |
148 WORD fLayoutRTL(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFF7FF) | (val << 11)); return val; } | |
149 WORD fLinkBefore() { return cast(WORD)((_bitfield >> 12) & 0x1); } | |
150 WORD fLinkBefore(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFEFFF) | (val << 12)); return val; } | |
151 WORD fLinkAfter() { return cast(WORD)((_bitfield >> 13) & 0x1); } | |
152 WORD fLinkAfter(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFDFFF) | (val << 13)); return val; } | |
153 WORD fLogicalOrder() { return cast(WORD)((_bitfield >> 14) & 0x1); } | |
154 WORD fLogicalOrder(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFBFFF) | (val << 14)); return val; } | |
155 WORD fNoGlyphIndex() { return cast(WORD)((_bitfield >> 15) & 0x1); } | |
156 WORD fNoGlyphIndex(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFF7FFF) | (val << 15)); return val; } | |
157 SCRIPT_STATE s; | |
158 } | |
159 | |
160 | |
161 struct SCRIPT_ITEM | |
162 { | |
163 int iCharPos; | |
164 SCRIPT_ANALYSIS a; | |
165 } | |
166 | |
167 struct SCRIPT_VISATTR | |
168 { | |
169 private WORD _bitfield; | |
170 WORD uJustification() { return cast(WORD)((_bitfield >> 0) & 0xF); } | |
171 WORD uJustification(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFF0) | (val << 0)); return val; } | |
172 WORD fClusterStart() { return cast(WORD)((_bitfield >> 4) & 0x1); } | |
173 WORD fClusterStart(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFEF) | (val << 4)); return val; } | |
174 WORD fDiacritic() { return cast(WORD)((_bitfield >> 5) & 0x1); } | |
175 WORD fDiacritic(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFDF) | (val << 5)); return val; } | |
176 WORD fZeroWidth() { return cast(WORD)((_bitfield >> 6) & 0x1); } | |
177 WORD fZeroWidth(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFBF) | (val << 6)); return val; } | |
178 WORD fReserved() { return cast(WORD)((_bitfield >> 7) & 0x1); } | |
179 WORD fReserved(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFF7F) | (val << 7)); return val; } | |
180 WORD fShapeReserved() { return cast(WORD)((_bitfield >> 8) & 0xFF); } | |
181 WORD fShapeReserved(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFF00FF) | (val << 8)); return val; } | |
182 } | |
183 | |
184 struct GOFFSET | |
185 { | |
186 LONG du; | |
187 LONG dv; | |
188 } | |
189 | |
190 struct SCRIPT_LOGATTR | |
191 { | |
192 BYTE _bitfield; | |
193 BYTE fSoftBreak() { return cast(BYTE)((_bitfield >> 0) & 0x1); } | |
194 BYTE fSoftBreak(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFFE) | (val << 0)); return val; } | |
195 BYTE fWhiteSpace() { return cast(BYTE)((_bitfield >> 1) & 0x1); } | |
196 BYTE fWhiteSpace(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFFD) | (val << 1)); return val; } | |
197 BYTE fCharStop() { return cast(BYTE)((_bitfield >> 2) & 0x1); } | |
198 BYTE fCharStop(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFFB) | (val << 2)); return val; } | |
199 BYTE fWordStop() { return cast(BYTE)((_bitfield >> 3) & 0x1); } | |
200 BYTE fWordStop(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFF7) | (val << 3)); return val; } | |
201 BYTE fInvalid() { return cast(BYTE)((_bitfield >> 4) & 0x1); } | |
202 BYTE fInvalid(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFEF) | (val << 4)); return val; } | |
203 BYTE fReserved() { return cast(BYTE)((_bitfield >> 5) & 0x7); } | |
204 BYTE fReserved(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFF1F) | (val << 5)); return val; } | |
205 } | |
206 | |
207 struct SCRIPT_PROPERTIES | |
208 { | |
209 private DWORD _bitfield1; | |
210 DWORD langid() { return (_bitfield1 >> 0) & 0xFFFF; } | |
211 DWORD langid(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFF0000) | (val << 0)); return val; } | |
212 DWORD fNumeric() { return (_bitfield1 >> 16) & 0x1; } | |
213 DWORD fNumeric(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFEFFFF) | (val << 16)); return val; } | |
214 DWORD fComplex() { return (_bitfield1 >> 17) & 0x1; } | |
215 DWORD fComplex(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFDFFFF) | (val << 17)); return val; } | |
216 DWORD fNeedsWordBreaking() { return (_bitfield1 >> 18) & 0x1; } | |
217 DWORD fNeedsWordBreaking(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFBFFFF) | (val << 18)); return val; } | |
218 DWORD fNeedsCaretInfo() { return (_bitfield1 >> 19) & 0x1; } | |
219 DWORD fNeedsCaretInfo(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFF7FFFF) | (val << 19)); return val; } | |
220 DWORD bCharSet() { return (_bitfield1 >> 20) & 0xFF; } | |
221 DWORD bCharSet(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFF00FFFFF) | (val << 20)); return val; } | |
222 DWORD fControl() { return (_bitfield1 >> 28) & 0x1; } | |
223 DWORD fControl(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFEFFFFFFF) | (val << 28)); return val; } | |
224 DWORD fPrivateUseArea() { return (_bitfield1 >> 29) & 0x1; } | |
225 DWORD fPrivateUseArea(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFDFFFFFFF) | (val << 29)); return val; } | |
226 DWORD fNeedsCharacterJustify() { return (_bitfield1 >> 30) & 0x1; } | |
227 DWORD fNeedsCharacterJustify(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFBFFFFFFF) | (val << 30)); return val; } | |
228 DWORD fInvalidGlyph() { return (_bitfield1 >> 31) & 0x1; } | |
229 DWORD fInvalidGlyph(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFF7FFFFFFF) | (val << 31)); return val; } | |
230 private DWORD _bitfield2; | |
231 DWORD fInvalidLogAttr() { return (_bitfield2 >> 0) & 0x1; } | |
232 DWORD fInvalidLogAttr(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFFE) | (val << 0)); return val; } | |
233 DWORD fCDM() { return (_bitfield2 >> 1) & 0x1; } | |
234 DWORD fCDM(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFFD) | (val << 1)); return val; } | |
235 DWORD fAmbiguousCharSet() { return (_bitfield2 >> 2) & 0x1; } | |
236 DWORD fAmbiguousCharSet(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFFB) | (val << 2)); return val; } | |
237 DWORD fClusterSizeVaries() { return (_bitfield2 >> 3) & 0x1; } | |
238 DWORD fClusterSizeVaries(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFF7) | (val << 3)); return val; } | |
239 DWORD fRejectInvalid() { return (_bitfield2 >> 4) & 0x1; } | |
240 DWORD fRejectInvalid(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFEF) | (val << 4)); return val; } | |
241 } | |
242 | |
243 struct SCRIPT_FONTPROPERTIES | |
244 { | |
245 int cBytes = SCRIPT_FONTPROPERTIES.sizeof; | |
246 WORD wgBlank; | |
247 WORD wgDefault; | |
248 WORD wgInvalid; | |
249 WORD wgKashida; | |
250 int iKashidaWidth; | |
251 } | |
252 | |
253 struct SCRIPT_TABDEF | |
254 { | |
255 int cTabStops; | |
256 int iScale; | |
257 int* pTabStops; | |
258 int iTabOrigin; | |
259 } | |
260 | |
261 struct SCRIPT_DIGITSUBSTITUTE | |
262 { | |
263 private DWORD _bitfield1; | |
264 DWORD NationalDigitLanguage() { return (_bitfield1 >> 0) & 0xFFFF; } | |
265 DWORD NationalDigitLanguage(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFF0000) | (val << 0)); return val; } | |
266 DWORD TraditionalDigitLanguage() { return (_bitfield1 >> 16) & 0xFFFF; } | |
267 DWORD TraditionalDigitLanguage(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFF0000FFFF) | (val << 16)); return val; } | |
268 private DWORD _bitfield2; | |
269 DWORD DigitSubstitute() { return (_bitfield2 >> 0) & 0xFF; } | |
270 DWORD DigitSubstitute(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFF00) | (val << 0)); return val; } | |
271 DWORD dwReserved; | |
272 } | |
273 | |
274 /* TODO: Windows Vista fearured structs | |
275 OPENTYPE_FEATURE_RECORD | |
276 OPENTYPE_TAG | |
277 SCRIPT_CHARPROP | |
278 SCRIPT_GLYPHPROP | |
279 TEXTRANGE_PROPERTIES | |
280 */ | |
281 } | |
282 | |
283 | |
284 /* Uniscribe Functions | |
285 * http://msdn2.microsoft.com/library/ms776469 */ | |
286 extern (Windows) | |
287 { | |
288 HRESULT ScriptFreeCache(SCRIPT_CACHE*); | |
289 HRESULT ScriptItemize(WCHAR*, int, int, SCRIPT_CONTROL*, SCRIPT_STATE*, SCRIPT_ITEM*, int*); | |
290 HRESULT ScriptLayout(int, BYTE*, int*, int*); | |
291 HRESULT ScriptShape(HDC, SCRIPT_CACHE*, WCHAR*, int, int, SCRIPT_ANALYSIS*, WORD*, WORD*, SCRIPT_VISATTR*, int*); | |
292 HRESULT ScriptPlace(HDC, SCRIPT_CACHE*, WORD*, int, SCRIPT_VISATTR*, SCRIPT_ANALYSIS*, int*, GOFFSET*, ABC*); | |
293 HRESULT ScriptTextOut(HDC, SCRIPT_CACHE*, int, int, UINT, RECT*, SCRIPT_ANALYSIS*, WCHAR*, int, WORD*, int, int*, int*, GOFFSET*); | |
294 HRESULT ScriptJustify(SCRIPT_VISATTR*, int*, int, int, int, int*); | |
295 HRESULT ScriptBreak(WCHAR*, int, SCRIPT_ANALYSIS*, SCRIPT_LOGATTR*); | |
296 HRESULT ScriptCPtoX(int, BOOL, int, int, WORD*, SCRIPT_VISATTR*, int*, SCRIPT_ANALYSIS*, int*); | |
297 HRESULT ScriptXtoCP(int, int, int, WORD*, SCRIPT_VISATTR*, int*, SCRIPT_ANALYSIS*, int*, int*); | |
298 HRESULT ScriptGetLogicalWidths(SCRIPT_ANALYSIS*, int, int, int*, WORD*, SCRIPT_VISATTR*, int*); | |
299 HRESULT ScriptApplyLogicalWidth(int*, int, int, WORD*, SCRIPT_VISATTR*, int*, SCRIPT_ANALYSIS*, ABC*, int*); | |
300 HRESULT ScriptGetCMap(HDC, SCRIPT_CACHE*, WCHAR*, int, DWORD, WORD*); | |
301 HRESULT ScriptGetGlyphABCWidth(HDC, SCRIPT_CACHE*, WORD, ABC*); | |
302 HRESULT ScriptGetProperties(SCRIPT_PROPERTIES***, int*); | |
303 HRESULT ScriptGetFontProperties(HDC, SCRIPT_CACHE*, SCRIPT_FONTPROPERTIES*); | |
304 HRESULT ScriptCacheGetHeight(HDC, SCRIPT_CACHE*, int*); | |
305 HRESULT ScriptIsComplex(WCHAR*, int, DWORD); | |
306 HRESULT ScriptRecordDigitSubstitution(LCID, SCRIPT_DIGITSUBSTITUTE*); | |
307 HRESULT ScriptApplyDigitSubstitution(SCRIPT_DIGITSUBSTITUTE*, SCRIPT_CONTROL*, SCRIPT_STATE*); | |
308 | |
309 /* ScriptString Functions | |
310 * http://msdn2.microsoft.com/library/ms776485 */ | |
311 HRESULT ScriptStringAnalyse(HDC, void*, int, int, int, DWORD, int, SCRIPT_CONTROL*, SCRIPT_STATE*, int*, SCRIPT_TABDEF*, BYTE*, SCRIPT_STRING_ANALYSIS*); | |
312 HRESULT ScriptStringFree(SCRIPT_STRING_ANALYSIS*); | |
313 SIZE* ScriptString_pSize(SCRIPT_STRING_ANALYSIS); | |
314 int* ScriptString_pcOutChars(SCRIPT_STRING_ANALYSIS); | |
315 SCRIPT_LOGATTR* ScriptString_pLogAttr(SCRIPT_STRING_ANALYSIS); | |
316 HRESULT ScriptStringGetOrder(SCRIPT_STRING_ANALYSIS, UINT*); | |
317 HRESULT ScriptStringCPtoX(SCRIPT_STRING_ANALYSIS, int, BOOL, int*); | |
318 HRESULT ScriptStringXtoCP(SCRIPT_STRING_ANALYSIS, int, int*, int*); | |
319 HRESULT ScriptStringGetLogicalWidths(SCRIPT_STRING_ANALYSIS, int*); | |
320 HRESULT ScriptStringValidate(SCRIPT_STRING_ANALYSIS); | |
321 HRESULT ScriptStringOut(SCRIPT_STRING_ANALYSIS, int, int, UINT, RECT*, int, int, BOOL); | |
322 | |
323 /* TODO: Windows Vista fearured functions | |
324 ScriptGetFontAlternateGlyphs() | |
325 ScriptGetFontFeatureTags() | |
326 ScriptGetFontLanguageTags() | |
327 ScriptGetFontScriptTags() | |
328 ScriptItemizeOpenType() | |
329 ScriptPlaceOpenType() | |
330 ScriptPositionSingleGlyph() | |
331 ScriptShapeOpenType() | |
332 ScriptSubstituteSingleGlyph() | |
333 */ | |
334 } |