source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dwrite_1.h@ 1170

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

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

File size: 143.8 KB
Line 
1/*** Autogenerated by WIDL 6.4 from include/dwrite_1.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __dwrite_1_h__
17#define __dwrite_1_h__
18
19/* Forward declarations */
20
21#ifndef __IDWriteFactory1_FWD_DEFINED__
22#define __IDWriteFactory1_FWD_DEFINED__
23typedef interface IDWriteFactory1 IDWriteFactory1;
24#ifdef __cplusplus
25interface IDWriteFactory1;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDWriteFontFace1_FWD_DEFINED__
30#define __IDWriteFontFace1_FWD_DEFINED__
31typedef interface IDWriteFontFace1 IDWriteFontFace1;
32#ifdef __cplusplus
33interface IDWriteFontFace1;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IDWriteFont1_FWD_DEFINED__
38#define __IDWriteFont1_FWD_DEFINED__
39typedef interface IDWriteFont1 IDWriteFont1;
40#ifdef __cplusplus
41interface IDWriteFont1;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IDWriteRenderingParams1_FWD_DEFINED__
46#define __IDWriteRenderingParams1_FWD_DEFINED__
47typedef interface IDWriteRenderingParams1 IDWriteRenderingParams1;
48#ifdef __cplusplus
49interface IDWriteRenderingParams1;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IDWriteTextAnalyzer1_FWD_DEFINED__
54#define __IDWriteTextAnalyzer1_FWD_DEFINED__
55typedef interface IDWriteTextAnalyzer1 IDWriteTextAnalyzer1;
56#ifdef __cplusplus
57interface IDWriteTextAnalyzer1;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IDWriteTextAnalysisSource1_FWD_DEFINED__
62#define __IDWriteTextAnalysisSource1_FWD_DEFINED__
63typedef interface IDWriteTextAnalysisSource1 IDWriteTextAnalysisSource1;
64#ifdef __cplusplus
65interface IDWriteTextAnalysisSource1;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IDWriteTextAnalysisSink1_FWD_DEFINED__
70#define __IDWriteTextAnalysisSink1_FWD_DEFINED__
71typedef interface IDWriteTextAnalysisSink1 IDWriteTextAnalysisSink1;
72#ifdef __cplusplus
73interface IDWriteTextAnalysisSink1;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IDWriteTextLayout1_FWD_DEFINED__
78#define __IDWriteTextLayout1_FWD_DEFINED__
79typedef interface IDWriteTextLayout1 IDWriteTextLayout1;
80#ifdef __cplusplus
81interface IDWriteTextLayout1;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IDWriteBitmapRenderTarget1_FWD_DEFINED__
86#define __IDWriteBitmapRenderTarget1_FWD_DEFINED__
87typedef interface IDWriteBitmapRenderTarget1 IDWriteBitmapRenderTarget1;
88#ifdef __cplusplus
89interface IDWriteBitmapRenderTarget1;
90#endif /* __cplusplus */
91#endif
92
93/* Headers for imported files */
94
95#include <dwrite.h>
96
97#ifdef __cplusplus
98extern "C" {
99#endif
100
101typedef enum DWRITE_PANOSE_FAMILY {
102 DWRITE_PANOSE_FAMILY_ANY = 0,
103 DWRITE_PANOSE_FAMILY_NO_FIT = 1,
104 DWRITE_PANOSE_FAMILY_TEXT_DISPLAY = 2,
105 DWRITE_PANOSE_FAMILY_SCRIPT = 3,
106 DWRITE_PANOSE_FAMILY_DECORATIVE = 4,
107 DWRITE_PANOSE_FAMILY_SYMBOL = 5,
108 DWRITE_PANOSE_FAMILY_PICTORIAL = DWRITE_PANOSE_FAMILY_SYMBOL
109} DWRITE_PANOSE_FAMILY;
110typedef enum DWRITE_PANOSE_SERIF_STYLE {
111 DWRITE_PANOSE_SERIF_STYLE_ANY = 0,
112 DWRITE_PANOSE_SERIF_STYLE_NO_FIT = 1,
113 DWRITE_PANOSE_SERIF_STYLE_COVE = 2,
114 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE = 3,
115 DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE = 4,
116 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE = 5,
117 DWRITE_PANOSE_SERIF_STYLE_SQUARE = 6,
118 DWRITE_PANOSE_SERIF_STYLE_THIN = 7,
119 DWRITE_PANOSE_SERIF_STYLE_OVAL = 8,
120 DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED = 9,
121 DWRITE_PANOSE_SERIF_STYLE_TRIANGLE = 10,
122 DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS = 11,
123 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS = 12,
124 DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS = 13,
125 DWRITE_PANOSE_SERIF_STYLE_FLARED = 14,
126 DWRITE_PANOSE_SERIF_STYLE_ROUNDED = 15,
127 DWRITE_PANOSE_SERIF_STYLE_SCRIPT = 16,
128 DWRITE_PANOSE_SERIF_STYLE_PERP_SANS = DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS,
129 DWRITE_PANOSE_SERIF_STYLE_BONE = DWRITE_PANOSE_SERIF_STYLE_OVAL
130} DWRITE_PANOSE_SERIF_STYLE;
131typedef enum DWRITE_PANOSE_WEIGHT {
132 DWRITE_PANOSE_WEIGHT_ANY = 0,
133 DWRITE_PANOSE_WEIGHT_NO_FIT = 1,
134 DWRITE_PANOSE_WEIGHT_VERY_LIGHT = 2,
135 DWRITE_PANOSE_WEIGHT_LIGHT = 3,
136 DWRITE_PANOSE_WEIGHT_THIN = 4,
137 DWRITE_PANOSE_WEIGHT_BOOK = 5,
138 DWRITE_PANOSE_WEIGHT_MEDIUM = 6,
139 DWRITE_PANOSE_WEIGHT_DEMI = 7,
140 DWRITE_PANOSE_WEIGHT_BOLD = 8,
141 DWRITE_PANOSE_WEIGHT_HEAVY = 9,
142 DWRITE_PANOSE_WEIGHT_BLACK = 10,
143 DWRITE_PANOSE_WEIGHT_EXTRA_BLACK = 11,
144 DWRITE_PANOSE_WEIGHT_NORD = DWRITE_PANOSE_WEIGHT_EXTRA_BLACK
145} DWRITE_PANOSE_WEIGHT;
146typedef enum DWRITE_PANOSE_PROPORTION {
147 DWRITE_PANOSE_PROPORTION_ANY = 0,
148 DWRITE_PANOSE_PROPORTION_NO_FIT = 1,
149 DWRITE_PANOSE_PROPORTION_OLD_STYLE = 2,
150 DWRITE_PANOSE_PROPORTION_MODERN = 3,
151 DWRITE_PANOSE_PROPORTION_EVEN_WIDTH = 4,
152 DWRITE_PANOSE_PROPORTION_EXPANDED = 5,
153 DWRITE_PANOSE_PROPORTION_CONDENSED = 6,
154 DWRITE_PANOSE_PROPORTION_VERY_EXPANDED = 7,
155 DWRITE_PANOSE_PROPORTION_VERY_CONDENSED = 8,
156 DWRITE_PANOSE_PROPORTION_MONOSPACED = 9
157} DWRITE_PANOSE_PROPORTION;
158typedef enum DWRITE_PANOSE_CONTRAST {
159 DWRITE_PANOSE_CONTRAST_ANY = 0,
160 DWRITE_PANOSE_CONTRAST_NO_FIT = 1,
161 DWRITE_PANOSE_CONTRAST_NONE = 2,
162 DWRITE_PANOSE_CONTRAST_VERY_LOW = 3,
163 DWRITE_PANOSE_CONTRAST_LOW = 4,
164 DWRITE_PANOSE_CONTRAST_MEDIUM_LOW = 5,
165 DWRITE_PANOSE_CONTRAST_MEDIUM = 6,
166 DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH = 7,
167 DWRITE_PANOSE_CONTRAST_HIGH = 8,
168 DWRITE_PANOSE_CONTRAST_VERY_HIGH = 9,
169 DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW = 10,
170 DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM = 11,
171 DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH = 12,
172 DWRITE_PANOSE_CONTRAST_BROKEN = 13
173} DWRITE_PANOSE_CONTRAST;
174typedef enum DWRITE_PANOSE_STROKE_VARIATION {
175 DWRITE_PANOSE_STROKE_VARIATION_ANY = 0,
176 DWRITE_PANOSE_STROKE_VARIATION_NO_FIT = 1,
177 DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION = 2,
178 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL = 3,
179 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL = 4,
180 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL = 5,
181 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL = 6,
182 DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL = 7,
183 DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL = 8,
184 DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL = 9,
185 DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL = 10
186} DWRITE_PANOSE_STROKE_VARIATION;
187typedef enum DWRITE_PANOSE_ARM_STYLE {
188 DWRITE_PANOSE_ARM_STYLE_ANY = 0,
189 DWRITE_PANOSE_ARM_STYLE_NO_FIT = 1,
190 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL = 2,
191 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE = 3,
192 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL = 4,
193 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF = 5,
194 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF = 6,
195 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL = 7,
196 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE = 8,
197 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL = 9,
198 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF = 10,
199 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF = 11,
200 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL,
201 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL,
202 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL,
203 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE,
204 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL,
205 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF,
206 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF
207} DWRITE_PANOSE_ARM_STYLE;
208typedef enum DWRITE_PANOSE_LETTERFORM {
209 DWRITE_PANOSE_LETTERFORM_ANY = 0,
210 DWRITE_PANOSE_LETTERFORM_NO_FIT = 1,
211 DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT = 2,
212 DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED = 3,
213 DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED = 4,
214 DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED = 5,
215 DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED = 6,
216 DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER = 7,
217 DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE = 8,
218 DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT = 9,
219 DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED = 10,
220 DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED = 11,
221 DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED = 12,
222 DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED = 13,
223 DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER = 14,
224 DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE = 15
225} DWRITE_PANOSE_LETTERFORM;
226typedef enum DWRITE_PANOSE_MIDLINE {
227 DWRITE_PANOSE_MIDLINE_ANY = 0,
228 DWRITE_PANOSE_MIDLINE_NO_FIT = 1,
229 DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED = 2,
230 DWRITE_PANOSE_MIDLINE_STANDARD_POINTED = 3,
231 DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED = 4,
232 DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED = 5,
233 DWRITE_PANOSE_MIDLINE_HIGH_POINTED = 6,
234 DWRITE_PANOSE_MIDLINE_HIGH_SERIFED = 7,
235 DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED = 8,
236 DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED = 9,
237 DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED = 10,
238 DWRITE_PANOSE_MIDLINE_LOW_TRIMMED = 11,
239 DWRITE_PANOSE_MIDLINE_LOW_POINTED = 12,
240 DWRITE_PANOSE_MIDLINE_LOW_SERIFED = 13
241} DWRITE_PANOSE_MIDLINE;
242typedef enum DWRITE_PANOSE_XHEIGHT {
243 DWRITE_PANOSE_XHEIGHT_ANY = 0,
244 DWRITE_PANOSE_XHEIGHT_NO_FIT = 1,
245 DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL = 2,
246 DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD = 3,
247 DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE = 4,
248 DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL = 5,
249 DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD = 6,
250 DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE = 7,
251 DWRITE_PANOSE_XHEIGHT_CONSTANT_STD = DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD,
252 DWRITE_PANOSE_XHEIGHT_DUCKING_STD = DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD
253} DWRITE_PANOSE_XHEIGHT;
254typedef enum DWRITE_PANOSE_TOOL_KIND {
255 DWRITE_PANOSE_TOOL_KIND_ANY = 0,
256 DWRITE_PANOSE_TOOL_KIND_NO_FIT = 1,
257 DWRITE_PANOSE_TOOL_KIND_FLAT_NIB = 2,
258 DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT = 3,
259 DWRITE_PANOSE_TOOL_KIND_ENGRAVED = 4,
260 DWRITE_PANOSE_TOOL_KIND_BALL = 5,
261 DWRITE_PANOSE_TOOL_KIND_BRUSH = 6,
262 DWRITE_PANOSE_TOOL_KIND_ROUGH = 7,
263 DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP = 8,
264 DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH = 9
265} DWRITE_PANOSE_TOOL_KIND;
266typedef enum DWRITE_PANOSE_SPACING {
267 DWRITE_PANOSE_SPACING_ANY = 0,
268 DWRITE_PANOSE_SPACING_NO_FIT = 1,
269 DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED = 2,
270 DWRITE_PANOSE_SPACING_MONOSPACED = 3
271} DWRITE_PANOSE_SPACING;
272typedef enum DWRITE_PANOSE_ASPECT_RATIO {
273 DWRITE_PANOSE_ASPECT_RATIO_ANY = 0,
274 DWRITE_PANOSE_ASPECT_RATIO_NO_FIT = 1,
275 DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED = 2,
276 DWRITE_PANOSE_ASPECT_RATIO_CONDENSED = 3,
277 DWRITE_PANOSE_ASPECT_RATIO_NORMAL = 4,
278 DWRITE_PANOSE_ASPECT_RATIO_EXPANDED = 5,
279 DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED = 6
280} DWRITE_PANOSE_ASPECT_RATIO;
281typedef enum DWRITE_PANOSE_SCRIPT_TOPOLOGY {
282 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY = 0,
283 DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT = 1,
284 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED = 2,
285 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING = 3,
286 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED = 4,
287 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED = 5,
288 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING = 6,
289 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED = 7,
290 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED = 8,
291 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING = 9,
292 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED = 10
293} DWRITE_PANOSE_SCRIPT_TOPOLOGY;
294typedef enum DWRITE_PANOSE_SCRIPT_FORM {
295 DWRITE_PANOSE_SCRIPT_FORM_ANY = 0,
296 DWRITE_PANOSE_SCRIPT_FORM_NO_FIT = 1,
297 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING = 2,
298 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING = 3,
299 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING = 4,
300 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING = 5,
301 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING = 6,
302 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING = 7,
303 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING = 8,
304 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING = 9,
305 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING = 10,
306 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING = 11,
307 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING = 12,
308 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING = 13
309} DWRITE_PANOSE_SCRIPT_FORM;
310typedef enum DWRITE_PANOSE_FINIALS {
311 DWRITE_PANOSE_FINIALS_ANY = 0,
312 DWRITE_PANOSE_FINIALS_NO_FIT = 1,
313 DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS = 2,
314 DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS = 3,
315 DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS = 4,
316 DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS = 5,
317 DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS = 6,
318 DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS = 7,
319 DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS = 8,
320 DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS = 9,
321 DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS = 10,
322 DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS = 11,
323 DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS = 12,
324 DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS = 13
325} DWRITE_PANOSE_FINIALS;
326typedef enum DWRITE_PANOSE_XASCENT {
327 DWRITE_PANOSE_XASCENT_ANY = 0,
328 DWRITE_PANOSE_XASCENT_NO_FIT = 1,
329 DWRITE_PANOSE_XASCENT_VERY_LOW = 2,
330 DWRITE_PANOSE_XASCENT_LOW = 3,
331 DWRITE_PANOSE_XASCENT_MEDIUM = 4,
332 DWRITE_PANOSE_XASCENT_HIGH = 5,
333 DWRITE_PANOSE_XASCENT_VERY_HIGH = 6
334} DWRITE_PANOSE_XASCENT;
335typedef enum DWRITE_PANOSE_DECORATIVE_CLASS {
336 DWRITE_PANOSE_DECORATIVE_CLASS_ANY = 0,
337 DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT = 1,
338 DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE = 2,
339 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY = 3,
340 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS = 4,
341 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT = 5,
342 DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS = 6,
343 DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON = 7,
344 DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS = 8,
345 DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED = 9,
346 DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND = 10,
347 DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE = 11,
348 DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE = 12
349} DWRITE_PANOSE_DECORATIVE_CLASS;
350typedef enum DWRITE_PANOSE_ASPECT {
351 DWRITE_PANOSE_ASPECT_ANY = 0,
352 DWRITE_PANOSE_ASPECT_NO_FIT = 1,
353 DWRITE_PANOSE_ASPECT_SUPER_CONDENSED = 2,
354 DWRITE_PANOSE_ASPECT_VERY_CONDENSED = 3,
355 DWRITE_PANOSE_ASPECT_CONDENSED = 4,
356 DWRITE_PANOSE_ASPECT_NORMAL = 5,
357 DWRITE_PANOSE_ASPECT_EXTENDED = 6,
358 DWRITE_PANOSE_ASPECT_VERY_EXTENDED = 7,
359 DWRITE_PANOSE_ASPECT_SUPER_EXTENDED = 8,
360 DWRITE_PANOSE_ASPECT_MONOSPACED = 9
361} DWRITE_PANOSE_ASPECT;
362typedef enum DWRITE_PANOSE_FILL {
363 DWRITE_PANOSE_FILL_ANY = 0,
364 DWRITE_PANOSE_FILL_NO_FIT = 1,
365 DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL = 2,
366 DWRITE_PANOSE_FILL_NO_FILL = 3,
367 DWRITE_PANOSE_FILL_PATTERNED_FILL = 4,
368 DWRITE_PANOSE_FILL_COMPLEX_FILL = 5,
369 DWRITE_PANOSE_FILL_SHAPED_FILL = 6,
370 DWRITE_PANOSE_FILL_DRAWN_DISTRESSED = 7
371} DWRITE_PANOSE_FILL;
372typedef enum DWRITE_PANOSE_LINING {
373 DWRITE_PANOSE_LINING_ANY = 0,
374 DWRITE_PANOSE_LINING_NO_FIT = 1,
375 DWRITE_PANOSE_LINING_NONE = 2,
376 DWRITE_PANOSE_LINING_INLINE = 3,
377 DWRITE_PANOSE_LINING_OUTLINE = 4,
378 DWRITE_PANOSE_LINING_ENGRAVED = 5,
379 DWRITE_PANOSE_LINING_SHADOW = 6,
380 DWRITE_PANOSE_LINING_RELIEF = 7,
381 DWRITE_PANOSE_LINING_BACKDROP = 8
382} DWRITE_PANOSE_LINING;
383typedef enum DWRITE_PANOSE_DECORATIVE_TOPOLOGY {
384 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY = 0,
385 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT = 1,
386 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD = 2,
387 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE = 3,
388 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT = 4,
389 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO = 5,
390 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING = 6,
391 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS = 7,
392 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS = 8,
393 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS = 9,
394 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE = 10,
395 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY = 11,
396 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A = 12,
397 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE = 13,
398 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER = 14,
399 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE = 15
400} DWRITE_PANOSE_DECORATIVE_TOPOLOGY;
401typedef enum DWRITE_PANOSE_CHARACTER_RANGES {
402 DWRITE_PANOSE_CHARACTER_RANGES_ANY = 0,
403 DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT = 1,
404 DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION = 2,
405 DWRITE_PANOSE_CHARACTER_RANGES_LITERALS = 3,
406 DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE = 4,
407 DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS = 5
408} DWRITE_PANOSE_CHARACTER_RANGES;
409typedef enum DWRITE_PANOSE_SYMBOL_KIND {
410 DWRITE_PANOSE_SYMBOL_KIND_ANY = 0,
411 DWRITE_PANOSE_SYMBOL_KIND_NO_FIT = 1,
412 DWRITE_PANOSE_SYMBOL_KIND_MONTAGES = 2,
413 DWRITE_PANOSE_SYMBOL_KIND_PICTURES = 3,
414 DWRITE_PANOSE_SYMBOL_KIND_SHAPES = 4,
415 DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC = 5,
416 DWRITE_PANOSE_SYMBOL_KIND_MUSIC = 6,
417 DWRITE_PANOSE_SYMBOL_KIND_EXPERT = 7,
418 DWRITE_PANOSE_SYMBOL_KIND_PATTERNS = 8,
419 DWRITE_PANOSE_SYMBOL_KIND_BOARDERS = 9,
420 DWRITE_PANOSE_SYMBOL_KIND_ICONS = 10,
421 DWRITE_PANOSE_SYMBOL_KIND_LOGOS = 11,
422 DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC = 12
423} DWRITE_PANOSE_SYMBOL_KIND;
424typedef enum DWRITE_PANOSE_SYMBOL_ASPECT_RATIO {
425 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY = 0,
426 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT = 1,
427 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH = 2,
428 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE = 3,
429 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE = 4,
430 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE = 5,
431 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE = 6,
432 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL = 7,
433 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW = 8,
434 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW = 9
435} DWRITE_PANOSE_SYMBOL_ASPECT_RATIO;
436typedef enum DWRITE_OUTLINE_THRESHOLD {
437 DWRITE_OUTLINE_THRESHOLD_ANTIALIASED = 0,
438 DWRITE_OUTLINE_THRESHOLD_ALIASED = 1
439} DWRITE_OUTLINE_THRESHOLD;
440typedef enum DWRITE_BASELINE {
441 DWRITE_BASELINE_DEFAULT = 0,
442 DWRITE_BASELINE_ROMAN = 1,
443 DWRITE_BASELINE_CENTRAL = 2,
444 DWRITE_BASELINE_MATH = 3,
445 DWRITE_BASELINE_HANGING = 4,
446 DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM = 5,
447 DWRITE_BASELINE_IDEOGRAPHIC_TOP = 6,
448 DWRITE_BASELINE_MINIMUM = 7,
449 DWRITE_BASELINE_MAXIMUM = 8
450} DWRITE_BASELINE;
451typedef enum DWRITE_VERTICAL_GLYPH_ORIENTATION {
452 DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT = 0,
453 DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED = 1
454} DWRITE_VERTICAL_GLYPH_ORIENTATION;
455typedef enum DWRITE_GLYPH_ORIENTATION_ANGLE {
456 DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES = 0,
457 DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES = 1,
458 DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES = 2,
459 DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES = 3
460} DWRITE_GLYPH_ORIENTATION_ANGLE;
461typedef struct DWRITE_FONT_METRICS1 {
462 UINT16 designUnitsPerEm;
463 UINT16 ascent;
464 UINT16 descent;
465 INT16 lineGap;
466 UINT16 capHeight;
467 UINT16 xHeight;
468 INT16 underlinePosition;
469 UINT16 underlineThickness;
470 INT16 strikethroughPosition;
471 UINT16 strikethroughThickness;
472 INT16 glyphBoxLeft;
473 INT16 glyphBoxTop;
474 INT16 glyphBoxRight;
475 INT16 glyphBoxBottom;
476 INT16 subscriptPositionX;
477 INT16 subscriptPositionY;
478 INT16 subscriptSizeX;
479 INT16 subscriptSizeY;
480 INT16 superscriptPositionX;
481 INT16 superscriptPositionY;
482 INT16 superscriptSizeX;
483 INT16 superscriptSizeY;
484 WINBOOL hasTypographicMetrics;
485} DWRITE_FONT_METRICS1;
486typedef struct DWRITE_CARET_METRICS {
487 INT16 slopeRise;
488 INT16 slopeRun;
489 INT16 offset;
490} DWRITE_CARET_METRICS;
491typedef union DWRITE_PANOSE {
492 UINT8 values[10];
493 UINT8 familyKind;
494 struct {
495 UINT8 familyKind;
496 UINT8 serifStyle;
497 UINT8 weight;
498 UINT8 proportion;
499 UINT8 contrast;
500 UINT8 strokeVariation;
501 UINT8 armStyle;
502 UINT8 letterform;
503 UINT8 midline;
504 UINT8 xHeight;
505 } text;
506 struct {
507 UINT8 familyKind;
508 UINT8 toolKind;
509 UINT8 weight;
510 UINT8 spacing;
511 UINT8 aspectRatio;
512 UINT8 contrast;
513 UINT8 scriptTopology;
514 UINT8 scriptForm;
515 UINT8 finials;
516 UINT8 xAscent;
517 } script;
518 struct {
519 UINT8 familyKind;
520 UINT8 decorativeClass;
521 UINT8 weight;
522 UINT8 aspect;
523 UINT8 contrast;
524 UINT8 serifVariant;
525 UINT8 fill;
526 UINT8 lining;
527 UINT8 decorativeTopology;
528 UINT8 characterRange;
529 } decorative;
530 struct {
531 UINT8 familyKind;
532 UINT8 symbolKind;
533 UINT8 weight;
534 UINT8 spacing;
535 UINT8 aspectRatioAndContrast;
536 UINT8 aspectRatio94;
537 UINT8 aspectRatio119;
538 UINT8 aspectRatio157;
539 UINT8 aspectRatio163;
540 UINT8 aspectRatio211;
541 } symbol;
542} DWRITE_PANOSE;
543typedef struct DWRITE_UNICODE_RANGE {
544 UINT32 first;
545 UINT32 last;
546} DWRITE_UNICODE_RANGE;
547typedef struct DWRITE_SCRIPT_PROPERTIES {
548 UINT32 isoScriptCode;
549 UINT32 isoScriptNumber;
550 UINT32 clusterLookahead;
551 UINT32 justificationCharacter;
552 UINT32 restrictCaretToClusters : 1;
553 UINT32 usesWordDividers : 1;
554 UINT32 isDiscreteWriting : 1;
555 UINT32 isBlockWriting : 1;
556 UINT32 isDistributedWithinCluster : 1;
557 UINT32 isConnectedWriting : 1;
558 UINT32 isCursiveWriting : 1;
559 UINT32 reserved : 25;
560} DWRITE_SCRIPT_PROPERTIES;
561typedef struct DWRITE_JUSTIFICATION_OPPORTUNITY {
562 FLOAT expansionMinimum;
563 FLOAT expansionMaximum;
564 FLOAT compressionMaximum;
565 UINT32 expansionPriority : 8;
566 UINT32 compressionPriority : 8;
567 UINT32 allowResidualExpansion : 1;
568 UINT32 allowResidualCompression : 1;
569 UINT32 applyToLeadingEdge : 1;
570 UINT32 applyToTrailingEdge : 1;
571 UINT32 reserved : 12;
572} DWRITE_JUSTIFICATION_OPPORTUNITY;
573#ifndef __IDWriteTextAnalysisSource1_FWD_DEFINED__
574#define __IDWriteTextAnalysisSource1_FWD_DEFINED__
575typedef interface IDWriteTextAnalysisSource1 IDWriteTextAnalysisSource1;
576#ifdef __cplusplus
577interface IDWriteTextAnalysisSource1;
578#endif /* __cplusplus */
579#endif
580
581#ifndef __IDWriteTextAnalysisSink1_FWD_DEFINED__
582#define __IDWriteTextAnalysisSink1_FWD_DEFINED__
583typedef interface IDWriteTextAnalysisSink1 IDWriteTextAnalysisSink1;
584#ifdef __cplusplus
585interface IDWriteTextAnalysisSink1;
586#endif /* __cplusplus */
587#endif
588
589#ifndef __IDWriteRenderingParams1_FWD_DEFINED__
590#define __IDWriteRenderingParams1_FWD_DEFINED__
591typedef interface IDWriteRenderingParams1 IDWriteRenderingParams1;
592#ifdef __cplusplus
593interface IDWriteRenderingParams1;
594#endif /* __cplusplus */
595#endif
596
597/*****************************************************************************
598 * IDWriteFactory1 interface
599 */
600#ifndef __IDWriteFactory1_INTERFACE_DEFINED__
601#define __IDWriteFactory1_INTERFACE_DEFINED__
602
603DEFINE_GUID(IID_IDWriteFactory1, 0x30572f99, 0xdac6, 0x41db, 0xa1,0x6e, 0x04,0x86,0x30,0x7e,0x60,0x6a);
604#if defined(__cplusplus) && !defined(CINTERFACE)
605MIDL_INTERFACE("30572f99-dac6-41db-a16e-0486307e606a")
606IDWriteFactory1 : public IDWriteFactory
607{
608 virtual HRESULT STDMETHODCALLTYPE GetEudcFontCollection(
609 IDWriteFontCollection **collection,
610 WINBOOL check_for_updates = FALSE) = 0;
611
612 virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams(
613 FLOAT gamma,
614 FLOAT enhcontrast,
615 FLOAT enhcontrast_grayscale,
616 FLOAT cleartype_level,
617 DWRITE_PIXEL_GEOMETRY geometry,
618 DWRITE_RENDERING_MODE mode,
619 IDWriteRenderingParams1 **params) = 0;
620
621};
622#ifdef __CRT_UUID_DECL
623__CRT_UUID_DECL(IDWriteFactory1, 0x30572f99, 0xdac6, 0x41db, 0xa1,0x6e, 0x04,0x86,0x30,0x7e,0x60,0x6a)
624#endif
625#else
626typedef struct IDWriteFactory1Vtbl {
627 BEGIN_INTERFACE
628
629 /*** IUnknown methods ***/
630 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
631 IDWriteFactory1 *This,
632 REFIID riid,
633 void **ppvObject);
634
635 ULONG (STDMETHODCALLTYPE *AddRef)(
636 IDWriteFactory1 *This);
637
638 ULONG (STDMETHODCALLTYPE *Release)(
639 IDWriteFactory1 *This);
640
641 /*** IDWriteFactory methods ***/
642 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
643 IDWriteFactory1 *This,
644 IDWriteFontCollection **collection,
645 WINBOOL check_for_updates);
646
647 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
648 IDWriteFactory1 *This,
649 IDWriteFontCollectionLoader *loader,
650 const void *key,
651 UINT32 key_size,
652 IDWriteFontCollection **collection);
653
654 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
655 IDWriteFactory1 *This,
656 IDWriteFontCollectionLoader *loader);
657
658 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
659 IDWriteFactory1 *This,
660 IDWriteFontCollectionLoader *loader);
661
662 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
663 IDWriteFactory1 *This,
664 const WCHAR *path,
665 const FILETIME *writetime,
666 IDWriteFontFile **font_file);
667
668 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
669 IDWriteFactory1 *This,
670 const void *reference_key,
671 UINT32 key_size,
672 IDWriteFontFileLoader *loader,
673 IDWriteFontFile **font_file);
674
675 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
676 IDWriteFactory1 *This,
677 DWRITE_FONT_FACE_TYPE facetype,
678 UINT32 files_number,
679 IDWriteFontFile *const *font_files,
680 UINT32 index,
681 DWRITE_FONT_SIMULATIONS sim_flags,
682 IDWriteFontFace **font_face);
683
684 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
685 IDWriteFactory1 *This,
686 IDWriteRenderingParams **params);
687
688 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
689 IDWriteFactory1 *This,
690 HMONITOR monitor,
691 IDWriteRenderingParams **params);
692
693 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
694 IDWriteFactory1 *This,
695 FLOAT gamma,
696 FLOAT enhancedContrast,
697 FLOAT cleartype_level,
698 DWRITE_PIXEL_GEOMETRY geometry,
699 DWRITE_RENDERING_MODE mode,
700 IDWriteRenderingParams **params);
701
702 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
703 IDWriteFactory1 *This,
704 IDWriteFontFileLoader *loader);
705
706 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
707 IDWriteFactory1 *This,
708 IDWriteFontFileLoader *loader);
709
710 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
711 IDWriteFactory1 *This,
712 const WCHAR *family_name,
713 IDWriteFontCollection *collection,
714 DWRITE_FONT_WEIGHT weight,
715 DWRITE_FONT_STYLE style,
716 DWRITE_FONT_STRETCH stretch,
717 FLOAT size,
718 const WCHAR *locale,
719 IDWriteTextFormat **format);
720
721 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
722 IDWriteFactory1 *This,
723 IDWriteTypography **typography);
724
725 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
726 IDWriteFactory1 *This,
727 IDWriteGdiInterop **gdi_interop);
728
729 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
730 IDWriteFactory1 *This,
731 const WCHAR *string,
732 UINT32 len,
733 IDWriteTextFormat *format,
734 FLOAT max_width,
735 FLOAT max_height,
736 IDWriteTextLayout **layout);
737
738 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
739 IDWriteFactory1 *This,
740 const WCHAR *string,
741 UINT32 len,
742 IDWriteTextFormat *format,
743 FLOAT layout_width,
744 FLOAT layout_height,
745 FLOAT pixels_per_dip,
746 const DWRITE_MATRIX *transform,
747 WINBOOL use_gdi_natural,
748 IDWriteTextLayout **layout);
749
750 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
751 IDWriteFactory1 *This,
752 IDWriteTextFormat *format,
753 IDWriteInlineObject **trimming_sign);
754
755 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
756 IDWriteFactory1 *This,
757 IDWriteTextAnalyzer **analyzer);
758
759 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
760 IDWriteFactory1 *This,
761 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
762 const WCHAR *locale,
763 WINBOOL ignore_user_override,
764 IDWriteNumberSubstitution **substitution);
765
766 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
767 IDWriteFactory1 *This,
768 const DWRITE_GLYPH_RUN *glyph_run,
769 FLOAT pixels_per_dip,
770 const DWRITE_MATRIX *transform,
771 DWRITE_RENDERING_MODE rendering_mode,
772 DWRITE_MEASURING_MODE measuring_mode,
773 FLOAT baseline_x,
774 FLOAT baseline_y,
775 IDWriteGlyphRunAnalysis **analysis);
776
777 /*** IDWriteFactory1 methods ***/
778 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
779 IDWriteFactory1 *This,
780 IDWriteFontCollection **collection,
781 WINBOOL check_for_updates);
782
783 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
784 IDWriteFactory1 *This,
785 FLOAT gamma,
786 FLOAT enhcontrast,
787 FLOAT enhcontrast_grayscale,
788 FLOAT cleartype_level,
789 DWRITE_PIXEL_GEOMETRY geometry,
790 DWRITE_RENDERING_MODE mode,
791 IDWriteRenderingParams1 **params);
792
793 END_INTERFACE
794} IDWriteFactory1Vtbl;
795
796interface IDWriteFactory1 {
797 CONST_VTBL IDWriteFactory1Vtbl* lpVtbl;
798};
799
800#ifdef COBJMACROS
801#ifndef WIDL_C_INLINE_WRAPPERS
802/*** IUnknown methods ***/
803#define IDWriteFactory1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
804#define IDWriteFactory1_AddRef(This) (This)->lpVtbl->AddRef(This)
805#define IDWriteFactory1_Release(This) (This)->lpVtbl->Release(This)
806/*** IDWriteFactory methods ***/
807#define IDWriteFactory1_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates)
808#define IDWriteFactory1_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
809#define IDWriteFactory1_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
810#define IDWriteFactory1_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
811#define IDWriteFactory1_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
812#define IDWriteFactory1_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
813#define IDWriteFactory1_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
814#define IDWriteFactory1_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
815#define IDWriteFactory1_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
816#define IDWriteFactory1_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
817#define IDWriteFactory1_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
818#define IDWriteFactory1_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
819#define IDWriteFactory1_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
820#define IDWriteFactory1_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
821#define IDWriteFactory1_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
822#define IDWriteFactory1_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
823#define IDWriteFactory1_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
824#define IDWriteFactory1_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
825#define IDWriteFactory1_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
826#define IDWriteFactory1_CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis)
827/*** IDWriteFactory1 methods ***/
828#define IDWriteFactory1_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
829#define IDWriteFactory1_CreateCustomRenderingParams(This,gamma,enhcontrast,enhcontrast_grayscale,cleartype_level,geometry,mode,params) (This)->lpVtbl->IDWriteFactory1_CreateCustomRenderingParams(This,gamma,enhcontrast,enhcontrast_grayscale,cleartype_level,geometry,mode,params)
830#else
831/*** IUnknown methods ***/
832static FORCEINLINE HRESULT IDWriteFactory1_QueryInterface(IDWriteFactory1* This,REFIID riid,void **ppvObject) {
833 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
834}
835static FORCEINLINE ULONG IDWriteFactory1_AddRef(IDWriteFactory1* This) {
836 return This->lpVtbl->AddRef(This);
837}
838static FORCEINLINE ULONG IDWriteFactory1_Release(IDWriteFactory1* This) {
839 return This->lpVtbl->Release(This);
840}
841/*** IDWriteFactory methods ***/
842static FORCEINLINE HRESULT IDWriteFactory1_GetSystemFontCollection(IDWriteFactory1* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
843 return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates);
844}
845static FORCEINLINE HRESULT IDWriteFactory1_CreateCustomFontCollection(IDWriteFactory1* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
846 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
847}
848static FORCEINLINE HRESULT IDWriteFactory1_RegisterFontCollectionLoader(IDWriteFactory1* This,IDWriteFontCollectionLoader *loader) {
849 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
850}
851static FORCEINLINE HRESULT IDWriteFactory1_UnregisterFontCollectionLoader(IDWriteFactory1* This,IDWriteFontCollectionLoader *loader) {
852 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
853}
854static FORCEINLINE HRESULT IDWriteFactory1_CreateFontFileReference(IDWriteFactory1* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
855 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
856}
857static FORCEINLINE HRESULT IDWriteFactory1_CreateCustomFontFileReference(IDWriteFactory1* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
858 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
859}
860static FORCEINLINE HRESULT IDWriteFactory1_CreateFontFace(IDWriteFactory1* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
861 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
862}
863static FORCEINLINE HRESULT IDWriteFactory1_CreateRenderingParams(IDWriteFactory1* This,IDWriteRenderingParams **params) {
864 return This->lpVtbl->CreateRenderingParams(This,params);
865}
866static FORCEINLINE HRESULT IDWriteFactory1_CreateMonitorRenderingParams(IDWriteFactory1* This,HMONITOR monitor,IDWriteRenderingParams **params) {
867 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
868}
869static FORCEINLINE HRESULT IDWriteFactory1_RegisterFontFileLoader(IDWriteFactory1* This,IDWriteFontFileLoader *loader) {
870 return This->lpVtbl->RegisterFontFileLoader(This,loader);
871}
872static FORCEINLINE HRESULT IDWriteFactory1_UnregisterFontFileLoader(IDWriteFactory1* This,IDWriteFontFileLoader *loader) {
873 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
874}
875static FORCEINLINE HRESULT IDWriteFactory1_CreateTextFormat(IDWriteFactory1* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
876 return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
877}
878static FORCEINLINE HRESULT IDWriteFactory1_CreateTypography(IDWriteFactory1* This,IDWriteTypography **typography) {
879 return This->lpVtbl->CreateTypography(This,typography);
880}
881static FORCEINLINE HRESULT IDWriteFactory1_GetGdiInterop(IDWriteFactory1* This,IDWriteGdiInterop **gdi_interop) {
882 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
883}
884static FORCEINLINE HRESULT IDWriteFactory1_CreateTextLayout(IDWriteFactory1* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
885 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
886}
887static FORCEINLINE HRESULT IDWriteFactory1_CreateGdiCompatibleTextLayout(IDWriteFactory1* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
888 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
889}
890static FORCEINLINE HRESULT IDWriteFactory1_CreateEllipsisTrimmingSign(IDWriteFactory1* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
891 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
892}
893static FORCEINLINE HRESULT IDWriteFactory1_CreateTextAnalyzer(IDWriteFactory1* This,IDWriteTextAnalyzer **analyzer) {
894 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
895}
896static FORCEINLINE HRESULT IDWriteFactory1_CreateNumberSubstitution(IDWriteFactory1* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
897 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
898}
899static FORCEINLINE HRESULT IDWriteFactory1_CreateGlyphRunAnalysis(IDWriteFactory1* This,const DWRITE_GLYPH_RUN *glyph_run,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE rendering_mode,DWRITE_MEASURING_MODE measuring_mode,FLOAT baseline_x,FLOAT baseline_y,IDWriteGlyphRunAnalysis **analysis) {
900 return This->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis);
901}
902/*** IDWriteFactory1 methods ***/
903static FORCEINLINE HRESULT IDWriteFactory1_GetEudcFontCollection(IDWriteFactory1* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
904 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
905}
906static FORCEINLINE HRESULT IDWriteFactory1_CreateCustomRenderingParams(IDWriteFactory1* This,FLOAT gamma,FLOAT enhcontrast,FLOAT enhcontrast_grayscale,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY geometry,DWRITE_RENDERING_MODE mode,IDWriteRenderingParams1 **params) {
907 return This->lpVtbl->IDWriteFactory1_CreateCustomRenderingParams(This,gamma,enhcontrast,enhcontrast_grayscale,cleartype_level,geometry,mode,params);
908}
909#endif
910#endif
911
912#endif
913
914
915#endif /* __IDWriteFactory1_INTERFACE_DEFINED__ */
916
917/*****************************************************************************
918 * IDWriteFontFace1 interface
919 */
920#ifndef __IDWriteFontFace1_INTERFACE_DEFINED__
921#define __IDWriteFontFace1_INTERFACE_DEFINED__
922
923DEFINE_GUID(IID_IDWriteFontFace1, 0xa71efdb4, 0x9fdb, 0x4838, 0xad,0x90, 0xcf,0xc3,0xbe,0x8c,0x3d,0xaf);
924#if defined(__cplusplus) && !defined(CINTERFACE)
925MIDL_INTERFACE("a71efdb4-9fdb-4838-ad90-cfc3be8c3daf")
926IDWriteFontFace1 : public IDWriteFontFace
927{
928 virtual void STDMETHODCALLTYPE GetMetrics(
929 DWRITE_FONT_METRICS1 *metrics) = 0;
930
931 virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleMetrics(
932 FLOAT em_size,
933 FLOAT pixels_per_dip,
934 const DWRITE_MATRIX *transform,
935 DWRITE_FONT_METRICS1 *metrics) = 0;
936
937 virtual void STDMETHODCALLTYPE GetCaretMetrics(
938 DWRITE_CARET_METRICS *metrics) = 0;
939
940 virtual HRESULT STDMETHODCALLTYPE GetUnicodeRanges(
941 UINT32 max_count,
942 DWRITE_UNICODE_RANGE *ranges,
943 UINT32 *count) = 0;
944
945 virtual WINBOOL STDMETHODCALLTYPE IsMonospacedFont(
946 ) = 0;
947
948 virtual HRESULT STDMETHODCALLTYPE GetDesignGlyphAdvances(
949 UINT32 glyph_count,
950 const UINT16 *indices,
951 INT32 *advances,
952 WINBOOL is_sideways = FALSE) = 0;
953
954 virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphAdvances(
955 FLOAT em_size,
956 FLOAT pixels_per_dip,
957 const DWRITE_MATRIX *transform,
958 WINBOOL use_gdi_natural,
959 WINBOOL is_sideways,
960 UINT32 glyph_count,
961 const UINT16 *indices,
962 INT32 *advances) = 0;
963
964 virtual HRESULT STDMETHODCALLTYPE GetKerningPairAdjustments(
965 UINT32 glyph_count,
966 const UINT16 *indices,
967 INT32 *adjustments) = 0;
968
969 virtual WINBOOL STDMETHODCALLTYPE HasKerningPairs(
970 ) = 0;
971
972 virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode(
973 FLOAT font_emsize,
974 FLOAT dpiX,
975 FLOAT dpiY,
976 const DWRITE_MATRIX *transform,
977 WINBOOL is_sideways,
978 DWRITE_OUTLINE_THRESHOLD threshold,
979 DWRITE_MEASURING_MODE measuring_mode,
980 DWRITE_RENDERING_MODE *rendering_mode) = 0;
981
982 virtual HRESULT STDMETHODCALLTYPE GetVerticalGlyphVariants(
983 UINT32 glyph_count,
984 const UINT16 *nominal_indices,
985 UINT16 *vertical_indices) = 0;
986
987 virtual WINBOOL STDMETHODCALLTYPE HasVerticalGlyphVariants(
988 ) = 0;
989
990};
991#ifdef __CRT_UUID_DECL
992__CRT_UUID_DECL(IDWriteFontFace1, 0xa71efdb4, 0x9fdb, 0x4838, 0xad,0x90, 0xcf,0xc3,0xbe,0x8c,0x3d,0xaf)
993#endif
994#else
995typedef struct IDWriteFontFace1Vtbl {
996 BEGIN_INTERFACE
997
998 /*** IUnknown methods ***/
999 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1000 IDWriteFontFace1 *This,
1001 REFIID riid,
1002 void **ppvObject);
1003
1004 ULONG (STDMETHODCALLTYPE *AddRef)(
1005 IDWriteFontFace1 *This);
1006
1007 ULONG (STDMETHODCALLTYPE *Release)(
1008 IDWriteFontFace1 *This);
1009
1010 /*** IDWriteFontFace methods ***/
1011 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
1012 IDWriteFontFace1 *This);
1013
1014 HRESULT (STDMETHODCALLTYPE *GetFiles)(
1015 IDWriteFontFace1 *This,
1016 UINT32 *number_of_files,
1017 IDWriteFontFile **fontfiles);
1018
1019 UINT32 (STDMETHODCALLTYPE *GetIndex)(
1020 IDWriteFontFace1 *This);
1021
1022 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
1023 IDWriteFontFace1 *This);
1024
1025 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
1026 IDWriteFontFace1 *This);
1027
1028 void (STDMETHODCALLTYPE *GetMetrics)(
1029 IDWriteFontFace1 *This,
1030 DWRITE_FONT_METRICS *metrics);
1031
1032 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
1033 IDWriteFontFace1 *This);
1034
1035 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
1036 IDWriteFontFace1 *This,
1037 const UINT16 *glyph_indices,
1038 UINT32 glyph_count,
1039 DWRITE_GLYPH_METRICS *metrics,
1040 WINBOOL is_sideways);
1041
1042 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
1043 IDWriteFontFace1 *This,
1044 const UINT32 *codepoints,
1045 UINT32 count,
1046 UINT16 *glyph_indices);
1047
1048 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
1049 IDWriteFontFace1 *This,
1050 UINT32 table_tag,
1051 const void **table_data,
1052 UINT32 *table_size,
1053 void **context,
1054 WINBOOL *exists);
1055
1056 void (STDMETHODCALLTYPE *ReleaseFontTable)(
1057 IDWriteFontFace1 *This,
1058 void *table_context);
1059
1060 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
1061 IDWriteFontFace1 *This,
1062 FLOAT emSize,
1063 const UINT16 *glyph_indices,
1064 const FLOAT *glyph_advances,
1065 const DWRITE_GLYPH_OFFSET *glyph_offsets,
1066 UINT32 glyph_count,
1067 WINBOOL is_sideways,
1068 WINBOOL is_rtl,
1069 IDWriteGeometrySink *geometrysink);
1070
1071 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
1072 IDWriteFontFace1 *This,
1073 FLOAT emSize,
1074 FLOAT pixels_per_dip,
1075 DWRITE_MEASURING_MODE mode,
1076 IDWriteRenderingParams *params,
1077 DWRITE_RENDERING_MODE *rendering_mode);
1078
1079 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
1080 IDWriteFontFace1 *This,
1081 FLOAT emSize,
1082 FLOAT pixels_per_dip,
1083 const DWRITE_MATRIX *transform,
1084 DWRITE_FONT_METRICS *metrics);
1085
1086 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
1087 IDWriteFontFace1 *This,
1088 FLOAT emSize,
1089 FLOAT pixels_per_dip,
1090 const DWRITE_MATRIX *transform,
1091 WINBOOL use_gdi_natural,
1092 const UINT16 *glyph_indices,
1093 UINT32 glyph_count,
1094 DWRITE_GLYPH_METRICS *metrics,
1095 WINBOOL is_sideways);
1096
1097 /*** IDWriteFontFace1 methods ***/
1098 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
1099 IDWriteFontFace1 *This,
1100 DWRITE_FONT_METRICS1 *metrics);
1101
1102 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
1103 IDWriteFontFace1 *This,
1104 FLOAT em_size,
1105 FLOAT pixels_per_dip,
1106 const DWRITE_MATRIX *transform,
1107 DWRITE_FONT_METRICS1 *metrics);
1108
1109 void (STDMETHODCALLTYPE *GetCaretMetrics)(
1110 IDWriteFontFace1 *This,
1111 DWRITE_CARET_METRICS *metrics);
1112
1113 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
1114 IDWriteFontFace1 *This,
1115 UINT32 max_count,
1116 DWRITE_UNICODE_RANGE *ranges,
1117 UINT32 *count);
1118
1119 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
1120 IDWriteFontFace1 *This);
1121
1122 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
1123 IDWriteFontFace1 *This,
1124 UINT32 glyph_count,
1125 const UINT16 *indices,
1126 INT32 *advances,
1127 WINBOOL is_sideways);
1128
1129 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
1130 IDWriteFontFace1 *This,
1131 FLOAT em_size,
1132 FLOAT pixels_per_dip,
1133 const DWRITE_MATRIX *transform,
1134 WINBOOL use_gdi_natural,
1135 WINBOOL is_sideways,
1136 UINT32 glyph_count,
1137 const UINT16 *indices,
1138 INT32 *advances);
1139
1140 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
1141 IDWriteFontFace1 *This,
1142 UINT32 glyph_count,
1143 const UINT16 *indices,
1144 INT32 *adjustments);
1145
1146 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
1147 IDWriteFontFace1 *This);
1148
1149 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
1150 IDWriteFontFace1 *This,
1151 FLOAT font_emsize,
1152 FLOAT dpiX,
1153 FLOAT dpiY,
1154 const DWRITE_MATRIX *transform,
1155 WINBOOL is_sideways,
1156 DWRITE_OUTLINE_THRESHOLD threshold,
1157 DWRITE_MEASURING_MODE measuring_mode,
1158 DWRITE_RENDERING_MODE *rendering_mode);
1159
1160 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
1161 IDWriteFontFace1 *This,
1162 UINT32 glyph_count,
1163 const UINT16 *nominal_indices,
1164 UINT16 *vertical_indices);
1165
1166 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
1167 IDWriteFontFace1 *This);
1168
1169 END_INTERFACE
1170} IDWriteFontFace1Vtbl;
1171
1172interface IDWriteFontFace1 {
1173 CONST_VTBL IDWriteFontFace1Vtbl* lpVtbl;
1174};
1175
1176#ifdef COBJMACROS
1177#ifndef WIDL_C_INLINE_WRAPPERS
1178/*** IUnknown methods ***/
1179#define IDWriteFontFace1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1180#define IDWriteFontFace1_AddRef(This) (This)->lpVtbl->AddRef(This)
1181#define IDWriteFontFace1_Release(This) (This)->lpVtbl->Release(This)
1182/*** IDWriteFontFace methods ***/
1183#define IDWriteFontFace1_GetType(This) (This)->lpVtbl->GetType(This)
1184#define IDWriteFontFace1_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
1185#define IDWriteFontFace1_GetIndex(This) (This)->lpVtbl->GetIndex(This)
1186#define IDWriteFontFace1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
1187#define IDWriteFontFace1_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
1188#define IDWriteFontFace1_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
1189#define IDWriteFontFace1_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
1190#define IDWriteFontFace1_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
1191#define IDWriteFontFace1_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
1192#define IDWriteFontFace1_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
1193#define IDWriteFontFace1_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
1194#define IDWriteFontFace1_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
1195/*** IDWriteFontFace1 methods ***/
1196#define IDWriteFontFace1_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
1197#define IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
1198#define IDWriteFontFace1_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
1199#define IDWriteFontFace1_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
1200#define IDWriteFontFace1_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
1201#define IDWriteFontFace1_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
1202#define IDWriteFontFace1_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
1203#define IDWriteFontFace1_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
1204#define IDWriteFontFace1_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
1205#define IDWriteFontFace1_GetRecommendedRenderingMode(This,font_emsize,dpiX,dpiY,transform,is_sideways,threshold,measuring_mode,rendering_mode) (This)->lpVtbl->IDWriteFontFace1_GetRecommendedRenderingMode(This,font_emsize,dpiX,dpiY,transform,is_sideways,threshold,measuring_mode,rendering_mode)
1206#define IDWriteFontFace1_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
1207#define IDWriteFontFace1_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
1208#else
1209/*** IUnknown methods ***/
1210static FORCEINLINE HRESULT IDWriteFontFace1_QueryInterface(IDWriteFontFace1* This,REFIID riid,void **ppvObject) {
1211 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1212}
1213static FORCEINLINE ULONG IDWriteFontFace1_AddRef(IDWriteFontFace1* This) {
1214 return This->lpVtbl->AddRef(This);
1215}
1216static FORCEINLINE ULONG IDWriteFontFace1_Release(IDWriteFontFace1* This) {
1217 return This->lpVtbl->Release(This);
1218}
1219/*** IDWriteFontFace methods ***/
1220static FORCEINLINE DWRITE_FONT_FACE_TYPE IDWriteFontFace1_GetType(IDWriteFontFace1* This) {
1221 return This->lpVtbl->GetType(This);
1222}
1223static FORCEINLINE HRESULT IDWriteFontFace1_GetFiles(IDWriteFontFace1* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
1224 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
1225}
1226static FORCEINLINE UINT32 IDWriteFontFace1_GetIndex(IDWriteFontFace1* This) {
1227 return This->lpVtbl->GetIndex(This);
1228}
1229static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFace1_GetSimulations(IDWriteFontFace1* This) {
1230 return This->lpVtbl->GetSimulations(This);
1231}
1232static FORCEINLINE WINBOOL IDWriteFontFace1_IsSymbolFont(IDWriteFontFace1* This) {
1233 return This->lpVtbl->IsSymbolFont(This);
1234}
1235static FORCEINLINE UINT16 IDWriteFontFace1_GetGlyphCount(IDWriteFontFace1* This) {
1236 return This->lpVtbl->GetGlyphCount(This);
1237}
1238static FORCEINLINE HRESULT IDWriteFontFace1_GetDesignGlyphMetrics(IDWriteFontFace1* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
1239 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
1240}
1241static FORCEINLINE HRESULT IDWriteFontFace1_GetGlyphIndices(IDWriteFontFace1* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
1242 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
1243}
1244static FORCEINLINE HRESULT IDWriteFontFace1_TryGetFontTable(IDWriteFontFace1* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
1245 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
1246}
1247static FORCEINLINE void IDWriteFontFace1_ReleaseFontTable(IDWriteFontFace1* This,void *table_context) {
1248 This->lpVtbl->ReleaseFontTable(This,table_context);
1249}
1250static FORCEINLINE HRESULT IDWriteFontFace1_GetGlyphRunOutline(IDWriteFontFace1* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
1251 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
1252}
1253static FORCEINLINE HRESULT IDWriteFontFace1_GetGdiCompatibleGlyphMetrics(IDWriteFontFace1* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
1254 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
1255}
1256/*** IDWriteFontFace1 methods ***/
1257static FORCEINLINE void IDWriteFontFace1_GetMetrics(IDWriteFontFace1* This,DWRITE_FONT_METRICS1 *metrics) {
1258 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
1259}
1260static FORCEINLINE HRESULT IDWriteFontFace1_GetGdiCompatibleMetrics(IDWriteFontFace1* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
1261 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
1262}
1263static FORCEINLINE void IDWriteFontFace1_GetCaretMetrics(IDWriteFontFace1* This,DWRITE_CARET_METRICS *metrics) {
1264 This->lpVtbl->GetCaretMetrics(This,metrics);
1265}
1266static FORCEINLINE HRESULT IDWriteFontFace1_GetUnicodeRanges(IDWriteFontFace1* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
1267 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
1268}
1269static FORCEINLINE WINBOOL IDWriteFontFace1_IsMonospacedFont(IDWriteFontFace1* This) {
1270 return This->lpVtbl->IsMonospacedFont(This);
1271}
1272static FORCEINLINE HRESULT IDWriteFontFace1_GetDesignGlyphAdvances(IDWriteFontFace1* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
1273 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
1274}
1275static FORCEINLINE HRESULT IDWriteFontFace1_GetGdiCompatibleGlyphAdvances(IDWriteFontFace1* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
1276 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
1277}
1278static FORCEINLINE HRESULT IDWriteFontFace1_GetKerningPairAdjustments(IDWriteFontFace1* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
1279 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
1280}
1281static FORCEINLINE WINBOOL IDWriteFontFace1_HasKerningPairs(IDWriteFontFace1* This) {
1282 return This->lpVtbl->HasKerningPairs(This);
1283}
1284static FORCEINLINE HRESULT IDWriteFontFace1_GetRecommendedRenderingMode(IDWriteFontFace1* This,FLOAT font_emsize,FLOAT dpiX,FLOAT dpiY,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,DWRITE_RENDERING_MODE *rendering_mode) {
1285 return This->lpVtbl->IDWriteFontFace1_GetRecommendedRenderingMode(This,font_emsize,dpiX,dpiY,transform,is_sideways,threshold,measuring_mode,rendering_mode);
1286}
1287static FORCEINLINE HRESULT IDWriteFontFace1_GetVerticalGlyphVariants(IDWriteFontFace1* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
1288 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
1289}
1290static FORCEINLINE WINBOOL IDWriteFontFace1_HasVerticalGlyphVariants(IDWriteFontFace1* This) {
1291 return This->lpVtbl->HasVerticalGlyphVariants(This);
1292}
1293#endif
1294#endif
1295
1296#endif
1297
1298
1299#endif /* __IDWriteFontFace1_INTERFACE_DEFINED__ */
1300
1301/*****************************************************************************
1302 * IDWriteFont1 interface
1303 */
1304#ifndef __IDWriteFont1_INTERFACE_DEFINED__
1305#define __IDWriteFont1_INTERFACE_DEFINED__
1306
1307DEFINE_GUID(IID_IDWriteFont1, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x38);
1308#if defined(__cplusplus) && !defined(CINTERFACE)
1309MIDL_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32738")
1310IDWriteFont1 : public IDWriteFont
1311{
1312 virtual void STDMETHODCALLTYPE GetMetrics(
1313 DWRITE_FONT_METRICS1 *metrics) = 0;
1314
1315 virtual void STDMETHODCALLTYPE GetPanose(
1316 DWRITE_PANOSE *panose) = 0;
1317
1318 virtual HRESULT STDMETHODCALLTYPE GetUnicodeRanges(
1319 UINT32 max_count,
1320 DWRITE_UNICODE_RANGE *ranges,
1321 UINT32 *count) = 0;
1322
1323 virtual WINBOOL STDMETHODCALLTYPE IsMonospacedFont(
1324 ) = 0;
1325
1326};
1327#ifdef __CRT_UUID_DECL
1328__CRT_UUID_DECL(IDWriteFont1, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x38)
1329#endif
1330#else
1331typedef struct IDWriteFont1Vtbl {
1332 BEGIN_INTERFACE
1333
1334 /*** IUnknown methods ***/
1335 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1336 IDWriteFont1 *This,
1337 REFIID riid,
1338 void **ppvObject);
1339
1340 ULONG (STDMETHODCALLTYPE *AddRef)(
1341 IDWriteFont1 *This);
1342
1343 ULONG (STDMETHODCALLTYPE *Release)(
1344 IDWriteFont1 *This);
1345
1346 /*** IDWriteFont methods ***/
1347 HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
1348 IDWriteFont1 *This,
1349 IDWriteFontFamily **family);
1350
1351 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
1352 IDWriteFont1 *This);
1353
1354 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
1355 IDWriteFont1 *This);
1356
1357 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
1358 IDWriteFont1 *This);
1359
1360 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
1361 IDWriteFont1 *This);
1362
1363 HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
1364 IDWriteFont1 *This,
1365 IDWriteLocalizedStrings **names);
1366
1367 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
1368 IDWriteFont1 *This,
1369 DWRITE_INFORMATIONAL_STRING_ID stringid,
1370 IDWriteLocalizedStrings **strings,
1371 WINBOOL *exists);
1372
1373 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
1374 IDWriteFont1 *This);
1375
1376 void (STDMETHODCALLTYPE *GetMetrics)(
1377 IDWriteFont1 *This,
1378 DWRITE_FONT_METRICS *metrics);
1379
1380 HRESULT (STDMETHODCALLTYPE *HasCharacter)(
1381 IDWriteFont1 *This,
1382 UINT32 value,
1383 WINBOOL *exists);
1384
1385 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
1386 IDWriteFont1 *This,
1387 IDWriteFontFace **face);
1388
1389 /*** IDWriteFont1 methods ***/
1390 void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)(
1391 IDWriteFont1 *This,
1392 DWRITE_FONT_METRICS1 *metrics);
1393
1394 void (STDMETHODCALLTYPE *GetPanose)(
1395 IDWriteFont1 *This,
1396 DWRITE_PANOSE *panose);
1397
1398 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
1399 IDWriteFont1 *This,
1400 UINT32 max_count,
1401 DWRITE_UNICODE_RANGE *ranges,
1402 UINT32 *count);
1403
1404 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
1405 IDWriteFont1 *This);
1406
1407 END_INTERFACE
1408} IDWriteFont1Vtbl;
1409
1410interface IDWriteFont1 {
1411 CONST_VTBL IDWriteFont1Vtbl* lpVtbl;
1412};
1413
1414#ifdef COBJMACROS
1415#ifndef WIDL_C_INLINE_WRAPPERS
1416/*** IUnknown methods ***/
1417#define IDWriteFont1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1418#define IDWriteFont1_AddRef(This) (This)->lpVtbl->AddRef(This)
1419#define IDWriteFont1_Release(This) (This)->lpVtbl->Release(This)
1420/*** IDWriteFont methods ***/
1421#define IDWriteFont1_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family)
1422#define IDWriteFont1_GetWeight(This) (This)->lpVtbl->GetWeight(This)
1423#define IDWriteFont1_GetStretch(This) (This)->lpVtbl->GetStretch(This)
1424#define IDWriteFont1_GetStyle(This) (This)->lpVtbl->GetStyle(This)
1425#define IDWriteFont1_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
1426#define IDWriteFont1_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
1427#define IDWriteFont1_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
1428#define IDWriteFont1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
1429#define IDWriteFont1_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists)
1430#define IDWriteFont1_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face)
1431/*** IDWriteFont1 methods ***/
1432#define IDWriteFont1_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics)
1433#define IDWriteFont1_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
1434#define IDWriteFont1_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
1435#define IDWriteFont1_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
1436#else
1437/*** IUnknown methods ***/
1438static FORCEINLINE HRESULT IDWriteFont1_QueryInterface(IDWriteFont1* This,REFIID riid,void **ppvObject) {
1439 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1440}
1441static FORCEINLINE ULONG IDWriteFont1_AddRef(IDWriteFont1* This) {
1442 return This->lpVtbl->AddRef(This);
1443}
1444static FORCEINLINE ULONG IDWriteFont1_Release(IDWriteFont1* This) {
1445 return This->lpVtbl->Release(This);
1446}
1447/*** IDWriteFont methods ***/
1448static FORCEINLINE HRESULT IDWriteFont1_GetFontFamily(IDWriteFont1* This,IDWriteFontFamily **family) {
1449 return This->lpVtbl->GetFontFamily(This,family);
1450}
1451static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFont1_GetWeight(IDWriteFont1* This) {
1452 return This->lpVtbl->GetWeight(This);
1453}
1454static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFont1_GetStretch(IDWriteFont1* This) {
1455 return This->lpVtbl->GetStretch(This);
1456}
1457static FORCEINLINE DWRITE_FONT_STYLE IDWriteFont1_GetStyle(IDWriteFont1* This) {
1458 return This->lpVtbl->GetStyle(This);
1459}
1460static FORCEINLINE WINBOOL IDWriteFont1_IsSymbolFont(IDWriteFont1* This) {
1461 return This->lpVtbl->IsSymbolFont(This);
1462}
1463static FORCEINLINE HRESULT IDWriteFont1_GetFaceNames(IDWriteFont1* This,IDWriteLocalizedStrings **names) {
1464 return This->lpVtbl->GetFaceNames(This,names);
1465}
1466static FORCEINLINE HRESULT IDWriteFont1_GetInformationalStrings(IDWriteFont1* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
1467 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
1468}
1469static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFont1_GetSimulations(IDWriteFont1* This) {
1470 return This->lpVtbl->GetSimulations(This);
1471}
1472static FORCEINLINE HRESULT IDWriteFont1_HasCharacter(IDWriteFont1* This,UINT32 value,WINBOOL *exists) {
1473 return This->lpVtbl->HasCharacter(This,value,exists);
1474}
1475static FORCEINLINE HRESULT IDWriteFont1_CreateFontFace(IDWriteFont1* This,IDWriteFontFace **face) {
1476 return This->lpVtbl->CreateFontFace(This,face);
1477}
1478/*** IDWriteFont1 methods ***/
1479static FORCEINLINE void IDWriteFont1_GetMetrics(IDWriteFont1* This,DWRITE_FONT_METRICS1 *metrics) {
1480 This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics);
1481}
1482static FORCEINLINE void IDWriteFont1_GetPanose(IDWriteFont1* This,DWRITE_PANOSE *panose) {
1483 This->lpVtbl->GetPanose(This,panose);
1484}
1485static FORCEINLINE HRESULT IDWriteFont1_GetUnicodeRanges(IDWriteFont1* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
1486 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
1487}
1488static FORCEINLINE WINBOOL IDWriteFont1_IsMonospacedFont(IDWriteFont1* This) {
1489 return This->lpVtbl->IsMonospacedFont(This);
1490}
1491#endif
1492#endif
1493
1494#endif
1495
1496
1497#endif /* __IDWriteFont1_INTERFACE_DEFINED__ */
1498
1499/*****************************************************************************
1500 * IDWriteRenderingParams1 interface
1501 */
1502#ifndef __IDWriteRenderingParams1_INTERFACE_DEFINED__
1503#define __IDWriteRenderingParams1_INTERFACE_DEFINED__
1504
1505DEFINE_GUID(IID_IDWriteRenderingParams1, 0x94413cf4, 0xa6fc, 0x4248, 0x8b,0x50, 0x66,0x74,0x34,0x8f,0xca,0xd3);
1506#if defined(__cplusplus) && !defined(CINTERFACE)
1507MIDL_INTERFACE("94413cf4-a6fc-4248-8b50-6674348fcad3")
1508IDWriteRenderingParams1 : public IDWriteRenderingParams
1509{
1510 virtual FLOAT STDMETHODCALLTYPE GetGrayscaleEnhancedContrast(
1511 ) = 0;
1512
1513};
1514#ifdef __CRT_UUID_DECL
1515__CRT_UUID_DECL(IDWriteRenderingParams1, 0x94413cf4, 0xa6fc, 0x4248, 0x8b,0x50, 0x66,0x74,0x34,0x8f,0xca,0xd3)
1516#endif
1517#else
1518typedef struct IDWriteRenderingParams1Vtbl {
1519 BEGIN_INTERFACE
1520
1521 /*** IUnknown methods ***/
1522 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1523 IDWriteRenderingParams1 *This,
1524 REFIID riid,
1525 void **ppvObject);
1526
1527 ULONG (STDMETHODCALLTYPE *AddRef)(
1528 IDWriteRenderingParams1 *This);
1529
1530 ULONG (STDMETHODCALLTYPE *Release)(
1531 IDWriteRenderingParams1 *This);
1532
1533 /*** IDWriteRenderingParams methods ***/
1534 FLOAT (STDMETHODCALLTYPE *GetGamma)(
1535 IDWriteRenderingParams1 *This);
1536
1537 FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)(
1538 IDWriteRenderingParams1 *This);
1539
1540 FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)(
1541 IDWriteRenderingParams1 *This);
1542
1543 DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)(
1544 IDWriteRenderingParams1 *This);
1545
1546 DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)(
1547 IDWriteRenderingParams1 *This);
1548
1549 /*** IDWriteRenderingParams1 methods ***/
1550 FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)(
1551 IDWriteRenderingParams1 *This);
1552
1553 END_INTERFACE
1554} IDWriteRenderingParams1Vtbl;
1555
1556interface IDWriteRenderingParams1 {
1557 CONST_VTBL IDWriteRenderingParams1Vtbl* lpVtbl;
1558};
1559
1560#ifdef COBJMACROS
1561#ifndef WIDL_C_INLINE_WRAPPERS
1562/*** IUnknown methods ***/
1563#define IDWriteRenderingParams1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1564#define IDWriteRenderingParams1_AddRef(This) (This)->lpVtbl->AddRef(This)
1565#define IDWriteRenderingParams1_Release(This) (This)->lpVtbl->Release(This)
1566/*** IDWriteRenderingParams methods ***/
1567#define IDWriteRenderingParams1_GetGamma(This) (This)->lpVtbl->GetGamma(This)
1568#define IDWriteRenderingParams1_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This)
1569#define IDWriteRenderingParams1_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This)
1570#define IDWriteRenderingParams1_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This)
1571#define IDWriteRenderingParams1_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This)
1572/*** IDWriteRenderingParams1 methods ***/
1573#define IDWriteRenderingParams1_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This)
1574#else
1575/*** IUnknown methods ***/
1576static FORCEINLINE HRESULT IDWriteRenderingParams1_QueryInterface(IDWriteRenderingParams1* This,REFIID riid,void **ppvObject) {
1577 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1578}
1579static FORCEINLINE ULONG IDWriteRenderingParams1_AddRef(IDWriteRenderingParams1* This) {
1580 return This->lpVtbl->AddRef(This);
1581}
1582static FORCEINLINE ULONG IDWriteRenderingParams1_Release(IDWriteRenderingParams1* This) {
1583 return This->lpVtbl->Release(This);
1584}
1585/*** IDWriteRenderingParams methods ***/
1586static FORCEINLINE FLOAT IDWriteRenderingParams1_GetGamma(IDWriteRenderingParams1* This) {
1587 return This->lpVtbl->GetGamma(This);
1588}
1589static FORCEINLINE FLOAT IDWriteRenderingParams1_GetEnhancedContrast(IDWriteRenderingParams1* This) {
1590 return This->lpVtbl->GetEnhancedContrast(This);
1591}
1592static FORCEINLINE FLOAT IDWriteRenderingParams1_GetClearTypeLevel(IDWriteRenderingParams1* This) {
1593 return This->lpVtbl->GetClearTypeLevel(This);
1594}
1595static FORCEINLINE DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams1_GetPixelGeometry(IDWriteRenderingParams1* This) {
1596 return This->lpVtbl->GetPixelGeometry(This);
1597}
1598static FORCEINLINE DWRITE_RENDERING_MODE IDWriteRenderingParams1_GetRenderingMode(IDWriteRenderingParams1* This) {
1599 return This->lpVtbl->GetRenderingMode(This);
1600}
1601/*** IDWriteRenderingParams1 methods ***/
1602static FORCEINLINE FLOAT IDWriteRenderingParams1_GetGrayscaleEnhancedContrast(IDWriteRenderingParams1* This) {
1603 return This->lpVtbl->GetGrayscaleEnhancedContrast(This);
1604}
1605#endif
1606#endif
1607
1608#endif
1609
1610
1611#endif /* __IDWriteRenderingParams1_INTERFACE_DEFINED__ */
1612
1613/*****************************************************************************
1614 * IDWriteTextAnalyzer1 interface
1615 */
1616#ifndef __IDWriteTextAnalyzer1_INTERFACE_DEFINED__
1617#define __IDWriteTextAnalyzer1_INTERFACE_DEFINED__
1618
1619DEFINE_GUID(IID_IDWriteTextAnalyzer1, 0x80dad800, 0xe21f, 0x4e83, 0x96,0xce, 0xbf,0xcc,0xe5,0x00,0xdb,0x7c);
1620#if defined(__cplusplus) && !defined(CINTERFACE)
1621MIDL_INTERFACE("80dad800-e21f-4e83-96ce-bfcce500db7c")
1622IDWriteTextAnalyzer1 : public IDWriteTextAnalyzer
1623{
1624 virtual HRESULT STDMETHODCALLTYPE ApplyCharacterSpacing(
1625 FLOAT leading_spacing,
1626 FLOAT trailing_spacing,
1627 FLOAT min_advance_width,
1628 UINT32 len,
1629 UINT32 glyph_count,
1630 const UINT16 *clustermap,
1631 const FLOAT *advances,
1632 const DWRITE_GLYPH_OFFSET *offsets,
1633 const DWRITE_SHAPING_GLYPH_PROPERTIES *props,
1634 FLOAT *modified_advances,
1635 DWRITE_GLYPH_OFFSET *modified_offsets) = 0;
1636
1637 virtual HRESULT STDMETHODCALLTYPE GetBaseline(
1638 IDWriteFontFace *face,
1639 DWRITE_BASELINE baseline,
1640 WINBOOL vertical,
1641 WINBOOL is_simulation_allowed,
1642 DWRITE_SCRIPT_ANALYSIS sa,
1643 const WCHAR *localeName,
1644 INT32 *baseline_coord,
1645 WINBOOL *exists) = 0;
1646
1647 virtual HRESULT STDMETHODCALLTYPE AnalyzeVerticalGlyphOrientation(
1648 IDWriteTextAnalysisSource1 *source,
1649 UINT32 text_pos,
1650 UINT32 len,
1651 IDWriteTextAnalysisSink1 *sink) = 0;
1652
1653 virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform(
1654 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
1655 WINBOOL is_sideways,
1656 DWRITE_MATRIX *transform) = 0;
1657
1658 virtual HRESULT STDMETHODCALLTYPE GetScriptProperties(
1659 DWRITE_SCRIPT_ANALYSIS sa,
1660 DWRITE_SCRIPT_PROPERTIES *props) = 0;
1661
1662 virtual HRESULT STDMETHODCALLTYPE GetTextComplexity(
1663 const WCHAR *text,
1664 UINT32 len,
1665 IDWriteFontFace *face,
1666 WINBOOL *is_simple,
1667 UINT32 *len_read,
1668 UINT16 *indices) = 0;
1669
1670 virtual HRESULT STDMETHODCALLTYPE GetJustificationOpportunities(
1671 IDWriteFontFace *face,
1672 FLOAT font_em_size,
1673 DWRITE_SCRIPT_ANALYSIS sa,
1674 UINT32 length,
1675 UINT32 glyph_count,
1676 const WCHAR *text,
1677 const UINT16 *clustermap,
1678 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
1679 DWRITE_JUSTIFICATION_OPPORTUNITY *jo) = 0;
1680
1681 virtual HRESULT STDMETHODCALLTYPE JustifyGlyphAdvances(
1682 FLOAT width,
1683 UINT32 glyph_count,
1684 const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,
1685 const FLOAT *advances,
1686 const DWRITE_GLYPH_OFFSET *offsets,
1687 FLOAT *justifiedadvances,
1688 DWRITE_GLYPH_OFFSET *justifiedoffsets) = 0;
1689
1690 virtual HRESULT STDMETHODCALLTYPE GetJustifiedGlyphs(
1691 IDWriteFontFace *face,
1692 FLOAT font_em_size,
1693 DWRITE_SCRIPT_ANALYSIS sa,
1694 UINT32 length,
1695 UINT32 glyph_count,
1696 UINT32 max_glyphcount,
1697 const UINT16 *clustermap,
1698 const UINT16 *indices,
1699 const FLOAT *advances,
1700 const FLOAT *justifiedadvances,
1701 const DWRITE_GLYPH_OFFSET *justifiedoffsets,
1702 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
1703 UINT32 *actual_count,
1704 UINT16 *modified_clustermap,
1705 UINT16 *modified_indices,
1706 FLOAT *modified_advances,
1707 DWRITE_GLYPH_OFFSET *modified_offsets) = 0;
1708
1709};
1710#ifdef __CRT_UUID_DECL
1711__CRT_UUID_DECL(IDWriteTextAnalyzer1, 0x80dad800, 0xe21f, 0x4e83, 0x96,0xce, 0xbf,0xcc,0xe5,0x00,0xdb,0x7c)
1712#endif
1713#else
1714typedef struct IDWriteTextAnalyzer1Vtbl {
1715 BEGIN_INTERFACE
1716
1717 /*** IUnknown methods ***/
1718 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1719 IDWriteTextAnalyzer1 *This,
1720 REFIID riid,
1721 void **ppvObject);
1722
1723 ULONG (STDMETHODCALLTYPE *AddRef)(
1724 IDWriteTextAnalyzer1 *This);
1725
1726 ULONG (STDMETHODCALLTYPE *Release)(
1727 IDWriteTextAnalyzer1 *This);
1728
1729 /*** IDWriteTextAnalyzer methods ***/
1730 HRESULT (STDMETHODCALLTYPE *AnalyzeScript)(
1731 IDWriteTextAnalyzer1 *This,
1732 IDWriteTextAnalysisSource *source,
1733 UINT32 position,
1734 UINT32 length,
1735 IDWriteTextAnalysisSink *sink);
1736
1737 HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)(
1738 IDWriteTextAnalyzer1 *This,
1739 IDWriteTextAnalysisSource *source,
1740 UINT32 position,
1741 UINT32 length,
1742 IDWriteTextAnalysisSink *sink);
1743
1744 HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)(
1745 IDWriteTextAnalyzer1 *This,
1746 IDWriteTextAnalysisSource *source,
1747 UINT32 position,
1748 UINT32 length,
1749 IDWriteTextAnalysisSink *sink);
1750
1751 HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)(
1752 IDWriteTextAnalyzer1 *This,
1753 IDWriteTextAnalysisSource *source,
1754 UINT32 position,
1755 UINT32 length,
1756 IDWriteTextAnalysisSink *sink);
1757
1758 HRESULT (STDMETHODCALLTYPE *GetGlyphs)(
1759 IDWriteTextAnalyzer1 *This,
1760 const WCHAR *text,
1761 UINT32 length,
1762 IDWriteFontFace *font_face,
1763 WINBOOL is_sideways,
1764 WINBOOL is_rtl,
1765 const DWRITE_SCRIPT_ANALYSIS *analysis,
1766 const WCHAR *locale,
1767 IDWriteNumberSubstitution *substitution,
1768 const DWRITE_TYPOGRAPHIC_FEATURES **features,
1769 const UINT32 *feature_range_len,
1770 UINT32 feature_ranges,
1771 UINT32 max_glyph_count,
1772 UINT16 *clustermap,
1773 DWRITE_SHAPING_TEXT_PROPERTIES *text_props,
1774 UINT16 *glyph_indices,
1775 DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
1776 UINT32 *actual_glyph_count);
1777
1778 HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)(
1779 IDWriteTextAnalyzer1 *This,
1780 const WCHAR *text,
1781 const UINT16 *clustermap,
1782 DWRITE_SHAPING_TEXT_PROPERTIES *props,
1783 UINT32 text_len,
1784 const UINT16 *glyph_indices,
1785 const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
1786 UINT32 glyph_count,
1787 IDWriteFontFace *font_face,
1788 FLOAT fontEmSize,
1789 WINBOOL is_sideways,
1790 WINBOOL is_rtl,
1791 const DWRITE_SCRIPT_ANALYSIS *analysis,
1792 const WCHAR *locale,
1793 const DWRITE_TYPOGRAPHIC_FEATURES **features,
1794 const UINT32 *feature_range_len,
1795 UINT32 feature_ranges,
1796 FLOAT *glyph_advances,
1797 DWRITE_GLYPH_OFFSET *glyph_offsets);
1798
1799 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)(
1800 IDWriteTextAnalyzer1 *This,
1801 const WCHAR *text,
1802 const UINT16 *clustermap,
1803 DWRITE_SHAPING_TEXT_PROPERTIES *props,
1804 UINT32 text_len,
1805 const UINT16 *glyph_indices,
1806 const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
1807 UINT32 glyph_count,
1808 IDWriteFontFace *font_face,
1809 FLOAT fontEmSize,
1810 FLOAT pixels_per_dip,
1811 const DWRITE_MATRIX *transform,
1812 WINBOOL use_gdi_natural,
1813 WINBOOL is_sideways,
1814 WINBOOL is_rtl,
1815 const DWRITE_SCRIPT_ANALYSIS *analysis,
1816 const WCHAR *locale,
1817 const DWRITE_TYPOGRAPHIC_FEATURES **features,
1818 const UINT32 *feature_range_lengths,
1819 UINT32 feature_ranges,
1820 FLOAT *glyph_advances,
1821 DWRITE_GLYPH_OFFSET *glyph_offsets);
1822
1823 /*** IDWriteTextAnalyzer1 methods ***/
1824 HRESULT (STDMETHODCALLTYPE *ApplyCharacterSpacing)(
1825 IDWriteTextAnalyzer1 *This,
1826 FLOAT leading_spacing,
1827 FLOAT trailing_spacing,
1828 FLOAT min_advance_width,
1829 UINT32 len,
1830 UINT32 glyph_count,
1831 const UINT16 *clustermap,
1832 const FLOAT *advances,
1833 const DWRITE_GLYPH_OFFSET *offsets,
1834 const DWRITE_SHAPING_GLYPH_PROPERTIES *props,
1835 FLOAT *modified_advances,
1836 DWRITE_GLYPH_OFFSET *modified_offsets);
1837
1838 HRESULT (STDMETHODCALLTYPE *GetBaseline)(
1839 IDWriteTextAnalyzer1 *This,
1840 IDWriteFontFace *face,
1841 DWRITE_BASELINE baseline,
1842 WINBOOL vertical,
1843 WINBOOL is_simulation_allowed,
1844 DWRITE_SCRIPT_ANALYSIS sa,
1845 const WCHAR *localeName,
1846 INT32 *baseline_coord,
1847 WINBOOL *exists);
1848
1849 HRESULT (STDMETHODCALLTYPE *AnalyzeVerticalGlyphOrientation)(
1850 IDWriteTextAnalyzer1 *This,
1851 IDWriteTextAnalysisSource1 *source,
1852 UINT32 text_pos,
1853 UINT32 len,
1854 IDWriteTextAnalysisSink1 *sink);
1855
1856 HRESULT (STDMETHODCALLTYPE *GetGlyphOrientationTransform)(
1857 IDWriteTextAnalyzer1 *This,
1858 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
1859 WINBOOL is_sideways,
1860 DWRITE_MATRIX *transform);
1861
1862 HRESULT (STDMETHODCALLTYPE *GetScriptProperties)(
1863 IDWriteTextAnalyzer1 *This,
1864 DWRITE_SCRIPT_ANALYSIS sa,
1865 DWRITE_SCRIPT_PROPERTIES *props);
1866
1867 HRESULT (STDMETHODCALLTYPE *GetTextComplexity)(
1868 IDWriteTextAnalyzer1 *This,
1869 const WCHAR *text,
1870 UINT32 len,
1871 IDWriteFontFace *face,
1872 WINBOOL *is_simple,
1873 UINT32 *len_read,
1874 UINT16 *indices);
1875
1876 HRESULT (STDMETHODCALLTYPE *GetJustificationOpportunities)(
1877 IDWriteTextAnalyzer1 *This,
1878 IDWriteFontFace *face,
1879 FLOAT font_em_size,
1880 DWRITE_SCRIPT_ANALYSIS sa,
1881 UINT32 length,
1882 UINT32 glyph_count,
1883 const WCHAR *text,
1884 const UINT16 *clustermap,
1885 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
1886 DWRITE_JUSTIFICATION_OPPORTUNITY *jo);
1887
1888 HRESULT (STDMETHODCALLTYPE *JustifyGlyphAdvances)(
1889 IDWriteTextAnalyzer1 *This,
1890 FLOAT width,
1891 UINT32 glyph_count,
1892 const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,
1893 const FLOAT *advances,
1894 const DWRITE_GLYPH_OFFSET *offsets,
1895 FLOAT *justifiedadvances,
1896 DWRITE_GLYPH_OFFSET *justifiedoffsets);
1897
1898 HRESULT (STDMETHODCALLTYPE *GetJustifiedGlyphs)(
1899 IDWriteTextAnalyzer1 *This,
1900 IDWriteFontFace *face,
1901 FLOAT font_em_size,
1902 DWRITE_SCRIPT_ANALYSIS sa,
1903 UINT32 length,
1904 UINT32 glyph_count,
1905 UINT32 max_glyphcount,
1906 const UINT16 *clustermap,
1907 const UINT16 *indices,
1908 const FLOAT *advances,
1909 const FLOAT *justifiedadvances,
1910 const DWRITE_GLYPH_OFFSET *justifiedoffsets,
1911 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
1912 UINT32 *actual_count,
1913 UINT16 *modified_clustermap,
1914 UINT16 *modified_indices,
1915 FLOAT *modified_advances,
1916 DWRITE_GLYPH_OFFSET *modified_offsets);
1917
1918 END_INTERFACE
1919} IDWriteTextAnalyzer1Vtbl;
1920
1921interface IDWriteTextAnalyzer1 {
1922 CONST_VTBL IDWriteTextAnalyzer1Vtbl* lpVtbl;
1923};
1924
1925#ifdef COBJMACROS
1926#ifndef WIDL_C_INLINE_WRAPPERS
1927/*** IUnknown methods ***/
1928#define IDWriteTextAnalyzer1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1929#define IDWriteTextAnalyzer1_AddRef(This) (This)->lpVtbl->AddRef(This)
1930#define IDWriteTextAnalyzer1_Release(This) (This)->lpVtbl->Release(This)
1931/*** IDWriteTextAnalyzer methods ***/
1932#define IDWriteTextAnalyzer1_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink)
1933#define IDWriteTextAnalyzer1_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink)
1934#define IDWriteTextAnalyzer1_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink)
1935#define IDWriteTextAnalyzer1_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink)
1936#define IDWriteTextAnalyzer1_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count)
1937#define IDWriteTextAnalyzer1_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets)
1938#define IDWriteTextAnalyzer1_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets)
1939/*** IDWriteTextAnalyzer1 methods ***/
1940#define IDWriteTextAnalyzer1_ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) (This)->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets)
1941#define IDWriteTextAnalyzer1_GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) (This)->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists)
1942#define IDWriteTextAnalyzer1_AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink)
1943#define IDWriteTextAnalyzer1_GetGlyphOrientationTransform(This,angle,is_sideways,transform) (This)->lpVtbl->GetGlyphOrientationTransform(This,angle,is_sideways,transform)
1944#define IDWriteTextAnalyzer1_GetScriptProperties(This,sa,props) (This)->lpVtbl->GetScriptProperties(This,sa,props)
1945#define IDWriteTextAnalyzer1_GetTextComplexity(This,text,len,face,is_simple,len_read,indices) (This)->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices)
1946#define IDWriteTextAnalyzer1_GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) (This)->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo)
1947#define IDWriteTextAnalyzer1_JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets)
1948#define IDWriteTextAnalyzer1_GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) (This)->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets)
1949#else
1950/*** IUnknown methods ***/
1951static FORCEINLINE HRESULT IDWriteTextAnalyzer1_QueryInterface(IDWriteTextAnalyzer1* This,REFIID riid,void **ppvObject) {
1952 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1953}
1954static FORCEINLINE ULONG IDWriteTextAnalyzer1_AddRef(IDWriteTextAnalyzer1* This) {
1955 return This->lpVtbl->AddRef(This);
1956}
1957static FORCEINLINE ULONG IDWriteTextAnalyzer1_Release(IDWriteTextAnalyzer1* This) {
1958 return This->lpVtbl->Release(This);
1959}
1960/*** IDWriteTextAnalyzer methods ***/
1961static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeScript(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
1962 return This->lpVtbl->AnalyzeScript(This,source,position,length,sink);
1963}
1964static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeBidi(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
1965 return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink);
1966}
1967static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeNumberSubstitution(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
1968 return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink);
1969}
1970static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeLineBreakpoints(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
1971 return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink);
1972}
1973static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetGlyphs(IDWriteTextAnalyzer1* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) {
1974 return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count);
1975}
1976static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetGlyphPlacements(IDWriteTextAnalyzer1* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) {
1977 return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets);
1978}
1979static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer1* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) {
1980 return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets);
1981}
1982/*** IDWriteTextAnalyzer1 methods ***/
1983static FORCEINLINE HRESULT IDWriteTextAnalyzer1_ApplyCharacterSpacing(IDWriteTextAnalyzer1* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT min_advance_width,UINT32 len,UINT32 glyph_count,const UINT16 *clustermap,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *props,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) {
1984 return This->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets);
1985}
1986static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetBaseline(IDWriteTextAnalyzer1* This,IDWriteFontFace *face,DWRITE_BASELINE baseline,WINBOOL vertical,WINBOOL is_simulation_allowed,DWRITE_SCRIPT_ANALYSIS sa,const WCHAR *localeName,INT32 *baseline_coord,WINBOOL *exists) {
1987 return This->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists);
1988}
1989static FORCEINLINE HRESULT IDWriteTextAnalyzer1_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer1* This,IDWriteTextAnalysisSource1 *source,UINT32 text_pos,UINT32 len,IDWriteTextAnalysisSink1 *sink) {
1990 return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink);
1991}
1992static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetGlyphOrientationTransform(IDWriteTextAnalyzer1* This,DWRITE_GLYPH_ORIENTATION_ANGLE angle,WINBOOL is_sideways,DWRITE_MATRIX *transform) {
1993 return This->lpVtbl->GetGlyphOrientationTransform(This,angle,is_sideways,transform);
1994}
1995static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetScriptProperties(IDWriteTextAnalyzer1* This,DWRITE_SCRIPT_ANALYSIS sa,DWRITE_SCRIPT_PROPERTIES *props) {
1996 return This->lpVtbl->GetScriptProperties(This,sa,props);
1997}
1998static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetTextComplexity(IDWriteTextAnalyzer1* This,const WCHAR *text,UINT32 len,IDWriteFontFace *face,WINBOOL *is_simple,UINT32 *len_read,UINT16 *indices) {
1999 return This->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices);
2000}
2001static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetJustificationOpportunities(IDWriteTextAnalyzer1* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,const WCHAR *text,const UINT16 *clustermap,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,DWRITE_JUSTIFICATION_OPPORTUNITY *jo) {
2002 return This->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo);
2003}
2004static FORCEINLINE HRESULT IDWriteTextAnalyzer1_JustifyGlyphAdvances(IDWriteTextAnalyzer1* This,FLOAT width,UINT32 glyph_count,const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,FLOAT *justifiedadvances,DWRITE_GLYPH_OFFSET *justifiedoffsets) {
2005 return This->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets);
2006}
2007static FORCEINLINE HRESULT IDWriteTextAnalyzer1_GetJustifiedGlyphs(IDWriteTextAnalyzer1* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,UINT32 max_glyphcount,const UINT16 *clustermap,const UINT16 *indices,const FLOAT *advances,const FLOAT *justifiedadvances,const DWRITE_GLYPH_OFFSET *justifiedoffsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,UINT32 *actual_count,UINT16 *modified_clustermap,UINT16 *modified_indices,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) {
2008 return This->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets);
2009}
2010#endif
2011#endif
2012
2013#endif
2014
2015
2016#endif /* __IDWriteTextAnalyzer1_INTERFACE_DEFINED__ */
2017
2018/*****************************************************************************
2019 * IDWriteTextAnalysisSource1 interface
2020 */
2021#ifndef __IDWriteTextAnalysisSource1_INTERFACE_DEFINED__
2022#define __IDWriteTextAnalysisSource1_INTERFACE_DEFINED__
2023
2024DEFINE_GUID(IID_IDWriteTextAnalysisSource1, 0x639cfad8, 0x0fb4, 0x4b21, 0xa5,0x8a, 0x06,0x79,0x20,0x12,0x00,0x09);
2025#if defined(__cplusplus) && !defined(CINTERFACE)
2026MIDL_INTERFACE("639cfad8-0fb4-4b21-a58a-067920120009")
2027IDWriteTextAnalysisSource1 : public IDWriteTextAnalysisSource
2028{
2029 virtual HRESULT STDMETHODCALLTYPE GetVerticalGlyphOrientation(
2030 UINT32 pos,
2031 UINT32 *length,
2032 DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,
2033 UINT8 *bidi_level) = 0;
2034
2035};
2036#ifdef __CRT_UUID_DECL
2037__CRT_UUID_DECL(IDWriteTextAnalysisSource1, 0x639cfad8, 0x0fb4, 0x4b21, 0xa5,0x8a, 0x06,0x79,0x20,0x12,0x00,0x09)
2038#endif
2039#else
2040typedef struct IDWriteTextAnalysisSource1Vtbl {
2041 BEGIN_INTERFACE
2042
2043 /*** IUnknown methods ***/
2044 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2045 IDWriteTextAnalysisSource1 *This,
2046 REFIID riid,
2047 void **ppvObject);
2048
2049 ULONG (STDMETHODCALLTYPE *AddRef)(
2050 IDWriteTextAnalysisSource1 *This);
2051
2052 ULONG (STDMETHODCALLTYPE *Release)(
2053 IDWriteTextAnalysisSource1 *This);
2054
2055 /*** IDWriteTextAnalysisSource methods ***/
2056 HRESULT (STDMETHODCALLTYPE *GetTextAtPosition)(
2057 IDWriteTextAnalysisSource1 *This,
2058 UINT32 position,
2059 const WCHAR **text,
2060 UINT32 *text_len);
2061
2062 HRESULT (STDMETHODCALLTYPE *GetTextBeforePosition)(
2063 IDWriteTextAnalysisSource1 *This,
2064 UINT32 position,
2065 const WCHAR **text,
2066 UINT32 *text_len);
2067
2068 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetParagraphReadingDirection)(
2069 IDWriteTextAnalysisSource1 *This);
2070
2071 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
2072 IDWriteTextAnalysisSource1 *This,
2073 UINT32 position,
2074 UINT32 *text_len,
2075 const WCHAR **locale);
2076
2077 HRESULT (STDMETHODCALLTYPE *GetNumberSubstitution)(
2078 IDWriteTextAnalysisSource1 *This,
2079 UINT32 position,
2080 UINT32 *text_len,
2081 IDWriteNumberSubstitution **substitution);
2082
2083 /*** IDWriteTextAnalysisSource1 methods ***/
2084 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
2085 IDWriteTextAnalysisSource1 *This,
2086 UINT32 pos,
2087 UINT32 *length,
2088 DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,
2089 UINT8 *bidi_level);
2090
2091 END_INTERFACE
2092} IDWriteTextAnalysisSource1Vtbl;
2093
2094interface IDWriteTextAnalysisSource1 {
2095 CONST_VTBL IDWriteTextAnalysisSource1Vtbl* lpVtbl;
2096};
2097
2098#ifdef COBJMACROS
2099#ifndef WIDL_C_INLINE_WRAPPERS
2100/*** IUnknown methods ***/
2101#define IDWriteTextAnalysisSource1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2102#define IDWriteTextAnalysisSource1_AddRef(This) (This)->lpVtbl->AddRef(This)
2103#define IDWriteTextAnalysisSource1_Release(This) (This)->lpVtbl->Release(This)
2104/*** IDWriteTextAnalysisSource methods ***/
2105#define IDWriteTextAnalysisSource1_GetTextAtPosition(This,position,text,text_len) (This)->lpVtbl->GetTextAtPosition(This,position,text,text_len)
2106#define IDWriteTextAnalysisSource1_GetTextBeforePosition(This,position,text,text_len) (This)->lpVtbl->GetTextBeforePosition(This,position,text,text_len)
2107#define IDWriteTextAnalysisSource1_GetParagraphReadingDirection(This) (This)->lpVtbl->GetParagraphReadingDirection(This)
2108#define IDWriteTextAnalysisSource1_GetLocaleName(This,position,text_len,locale) (This)->lpVtbl->GetLocaleName(This,position,text_len,locale)
2109#define IDWriteTextAnalysisSource1_GetNumberSubstitution(This,position,text_len,substitution) (This)->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution)
2110/*** IDWriteTextAnalysisSource1 methods ***/
2111#define IDWriteTextAnalysisSource1_GetVerticalGlyphOrientation(This,pos,length,orientation,bidi_level) (This)->lpVtbl->GetVerticalGlyphOrientation(This,pos,length,orientation,bidi_level)
2112#else
2113/*** IUnknown methods ***/
2114static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_QueryInterface(IDWriteTextAnalysisSource1* This,REFIID riid,void **ppvObject) {
2115 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2116}
2117static FORCEINLINE ULONG IDWriteTextAnalysisSource1_AddRef(IDWriteTextAnalysisSource1* This) {
2118 return This->lpVtbl->AddRef(This);
2119}
2120static FORCEINLINE ULONG IDWriteTextAnalysisSource1_Release(IDWriteTextAnalysisSource1* This) {
2121 return This->lpVtbl->Release(This);
2122}
2123/*** IDWriteTextAnalysisSource methods ***/
2124static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetTextAtPosition(IDWriteTextAnalysisSource1* This,UINT32 position,const WCHAR **text,UINT32 *text_len) {
2125 return This->lpVtbl->GetTextAtPosition(This,position,text,text_len);
2126}
2127static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetTextBeforePosition(IDWriteTextAnalysisSource1* This,UINT32 position,const WCHAR **text,UINT32 *text_len) {
2128 return This->lpVtbl->GetTextBeforePosition(This,position,text,text_len);
2129}
2130static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextAnalysisSource1_GetParagraphReadingDirection(IDWriteTextAnalysisSource1* This) {
2131 return This->lpVtbl->GetParagraphReadingDirection(This);
2132}
2133static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetLocaleName(IDWriteTextAnalysisSource1* This,UINT32 position,UINT32 *text_len,const WCHAR **locale) {
2134 return This->lpVtbl->GetLocaleName(This,position,text_len,locale);
2135}
2136static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetNumberSubstitution(IDWriteTextAnalysisSource1* This,UINT32 position,UINT32 *text_len,IDWriteNumberSubstitution **substitution) {
2137 return This->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution);
2138}
2139/*** IDWriteTextAnalysisSource1 methods ***/
2140static FORCEINLINE HRESULT IDWriteTextAnalysisSource1_GetVerticalGlyphOrientation(IDWriteTextAnalysisSource1* This,UINT32 pos,UINT32 *length,DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,UINT8 *bidi_level) {
2141 return This->lpVtbl->GetVerticalGlyphOrientation(This,pos,length,orientation,bidi_level);
2142}
2143#endif
2144#endif
2145
2146#endif
2147
2148
2149#endif /* __IDWriteTextAnalysisSource1_INTERFACE_DEFINED__ */
2150
2151/*****************************************************************************
2152 * IDWriteTextAnalysisSink1 interface
2153 */
2154#ifndef __IDWriteTextAnalysisSink1_INTERFACE_DEFINED__
2155#define __IDWriteTextAnalysisSink1_INTERFACE_DEFINED__
2156
2157DEFINE_GUID(IID_IDWriteTextAnalysisSink1, 0xb0d941a0, 0x85e7, 0x4d8b, 0x9f,0xd3, 0x5c,0xed,0x99,0x34,0x48,0x2a);
2158#if defined(__cplusplus) && !defined(CINTERFACE)
2159MIDL_INTERFACE("b0d941a0-85e7-4d8b-9fd3-5ced9934482a")
2160IDWriteTextAnalysisSink1 : public IDWriteTextAnalysisSink
2161{
2162 virtual HRESULT STDMETHODCALLTYPE SetGlyphOrientation(
2163 UINT32 pos,
2164 UINT32 length,
2165 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
2166 UINT8 adjusted_bidilevel,
2167 WINBOOL is_sideways,
2168 WINBOOL is_rtl) = 0;
2169
2170};
2171#ifdef __CRT_UUID_DECL
2172__CRT_UUID_DECL(IDWriteTextAnalysisSink1, 0xb0d941a0, 0x85e7, 0x4d8b, 0x9f,0xd3, 0x5c,0xed,0x99,0x34,0x48,0x2a)
2173#endif
2174#else
2175typedef struct IDWriteTextAnalysisSink1Vtbl {
2176 BEGIN_INTERFACE
2177
2178 /*** IUnknown methods ***/
2179 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2180 IDWriteTextAnalysisSink1 *This,
2181 REFIID riid,
2182 void **ppvObject);
2183
2184 ULONG (STDMETHODCALLTYPE *AddRef)(
2185 IDWriteTextAnalysisSink1 *This);
2186
2187 ULONG (STDMETHODCALLTYPE *Release)(
2188 IDWriteTextAnalysisSink1 *This);
2189
2190 /*** IDWriteTextAnalysisSink methods ***/
2191 HRESULT (STDMETHODCALLTYPE *SetScriptAnalysis)(
2192 IDWriteTextAnalysisSink1 *This,
2193 UINT32 position,
2194 UINT32 length,
2195 const DWRITE_SCRIPT_ANALYSIS *scriptanalysis);
2196
2197 HRESULT (STDMETHODCALLTYPE *SetLineBreakpoints)(
2198 IDWriteTextAnalysisSink1 *This,
2199 UINT32 position,
2200 UINT32 length,
2201 const DWRITE_LINE_BREAKPOINT *breakpoints);
2202
2203 HRESULT (STDMETHODCALLTYPE *SetBidiLevel)(
2204 IDWriteTextAnalysisSink1 *This,
2205 UINT32 position,
2206 UINT32 length,
2207 UINT8 explicitLevel,
2208 UINT8 resolvedLevel);
2209
2210 HRESULT (STDMETHODCALLTYPE *SetNumberSubstitution)(
2211 IDWriteTextAnalysisSink1 *This,
2212 UINT32 position,
2213 UINT32 length,
2214 IDWriteNumberSubstitution *substitution);
2215
2216 /*** IDWriteTextAnalysisSink1 methods ***/
2217 HRESULT (STDMETHODCALLTYPE *SetGlyphOrientation)(
2218 IDWriteTextAnalysisSink1 *This,
2219 UINT32 pos,
2220 UINT32 length,
2221 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
2222 UINT8 adjusted_bidilevel,
2223 WINBOOL is_sideways,
2224 WINBOOL is_rtl);
2225
2226 END_INTERFACE
2227} IDWriteTextAnalysisSink1Vtbl;
2228
2229interface IDWriteTextAnalysisSink1 {
2230 CONST_VTBL IDWriteTextAnalysisSink1Vtbl* lpVtbl;
2231};
2232
2233#ifdef COBJMACROS
2234#ifndef WIDL_C_INLINE_WRAPPERS
2235/*** IUnknown methods ***/
2236#define IDWriteTextAnalysisSink1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2237#define IDWriteTextAnalysisSink1_AddRef(This) (This)->lpVtbl->AddRef(This)
2238#define IDWriteTextAnalysisSink1_Release(This) (This)->lpVtbl->Release(This)
2239/*** IDWriteTextAnalysisSink methods ***/
2240#define IDWriteTextAnalysisSink1_SetScriptAnalysis(This,position,length,scriptanalysis) (This)->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis)
2241#define IDWriteTextAnalysisSink1_SetLineBreakpoints(This,position,length,breakpoints) (This)->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints)
2242#define IDWriteTextAnalysisSink1_SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel)
2243#define IDWriteTextAnalysisSink1_SetNumberSubstitution(This,position,length,substitution) (This)->lpVtbl->SetNumberSubstitution(This,position,length,substitution)
2244/*** IDWriteTextAnalysisSink1 methods ***/
2245#define IDWriteTextAnalysisSink1_SetGlyphOrientation(This,pos,length,angle,adjusted_bidilevel,is_sideways,is_rtl) (This)->lpVtbl->SetGlyphOrientation(This,pos,length,angle,adjusted_bidilevel,is_sideways,is_rtl)
2246#else
2247/*** IUnknown methods ***/
2248static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_QueryInterface(IDWriteTextAnalysisSink1* This,REFIID riid,void **ppvObject) {
2249 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2250}
2251static FORCEINLINE ULONG IDWriteTextAnalysisSink1_AddRef(IDWriteTextAnalysisSink1* This) {
2252 return This->lpVtbl->AddRef(This);
2253}
2254static FORCEINLINE ULONG IDWriteTextAnalysisSink1_Release(IDWriteTextAnalysisSink1* This) {
2255 return This->lpVtbl->Release(This);
2256}
2257/*** IDWriteTextAnalysisSink methods ***/
2258static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetScriptAnalysis(IDWriteTextAnalysisSink1* This,UINT32 position,UINT32 length,const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) {
2259 return This->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis);
2260}
2261static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetLineBreakpoints(IDWriteTextAnalysisSink1* This,UINT32 position,UINT32 length,const DWRITE_LINE_BREAKPOINT *breakpoints) {
2262 return This->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints);
2263}
2264static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetBidiLevel(IDWriteTextAnalysisSink1* This,UINT32 position,UINT32 length,UINT8 explicitLevel,UINT8 resolvedLevel) {
2265 return This->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel);
2266}
2267static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetNumberSubstitution(IDWriteTextAnalysisSink1* This,UINT32 position,UINT32 length,IDWriteNumberSubstitution *substitution) {
2268 return This->lpVtbl->SetNumberSubstitution(This,position,length,substitution);
2269}
2270/*** IDWriteTextAnalysisSink1 methods ***/
2271static FORCEINLINE HRESULT IDWriteTextAnalysisSink1_SetGlyphOrientation(IDWriteTextAnalysisSink1* This,UINT32 pos,UINT32 length,DWRITE_GLYPH_ORIENTATION_ANGLE angle,UINT8 adjusted_bidilevel,WINBOOL is_sideways,WINBOOL is_rtl) {
2272 return This->lpVtbl->SetGlyphOrientation(This,pos,length,angle,adjusted_bidilevel,is_sideways,is_rtl);
2273}
2274#endif
2275#endif
2276
2277#endif
2278
2279
2280#endif /* __IDWriteTextAnalysisSink1_INTERFACE_DEFINED__ */
2281
2282/*****************************************************************************
2283 * IDWriteTextLayout1 interface
2284 */
2285#ifndef __IDWriteTextLayout1_INTERFACE_DEFINED__
2286#define __IDWriteTextLayout1_INTERFACE_DEFINED__
2287
2288DEFINE_GUID(IID_IDWriteTextLayout1, 0x9064d822, 0x80a7, 0x465c, 0xa9,0x86, 0xdf,0x65,0xf7,0x8b,0x8f,0xeb);
2289#if defined(__cplusplus) && !defined(CINTERFACE)
2290MIDL_INTERFACE("9064d822-80a7-465c-a986-df65f78b8feb")
2291IDWriteTextLayout1 : public IDWriteTextLayout
2292{
2293 virtual HRESULT STDMETHODCALLTYPE SetPairKerning(
2294 WINBOOL is_pairkerning_enabled,
2295 DWRITE_TEXT_RANGE range) = 0;
2296
2297 virtual HRESULT STDMETHODCALLTYPE GetPairKerning(
2298 UINT32 position,
2299 WINBOOL *is_pairkerning_enabled,
2300 DWRITE_TEXT_RANGE *range) = 0;
2301
2302 virtual HRESULT STDMETHODCALLTYPE SetCharacterSpacing(
2303 FLOAT leading_spacing,
2304 FLOAT trailing_spacing,
2305 FLOAT minimum_advance_width,
2306 DWRITE_TEXT_RANGE range) = 0;
2307
2308 virtual HRESULT STDMETHODCALLTYPE GetCharacterSpacing(
2309 UINT32 position,
2310 FLOAT *leading_spacing,
2311 FLOAT *trailing_spacing,
2312 FLOAT *minimum_advance_width,
2313 DWRITE_TEXT_RANGE *range = 0) = 0;
2314
2315};
2316#ifdef __CRT_UUID_DECL
2317__CRT_UUID_DECL(IDWriteTextLayout1, 0x9064d822, 0x80a7, 0x465c, 0xa9,0x86, 0xdf,0x65,0xf7,0x8b,0x8f,0xeb)
2318#endif
2319#else
2320typedef struct IDWriteTextLayout1Vtbl {
2321 BEGIN_INTERFACE
2322
2323 /*** IUnknown methods ***/
2324 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2325 IDWriteTextLayout1 *This,
2326 REFIID riid,
2327 void **ppvObject);
2328
2329 ULONG (STDMETHODCALLTYPE *AddRef)(
2330 IDWriteTextLayout1 *This);
2331
2332 ULONG (STDMETHODCALLTYPE *Release)(
2333 IDWriteTextLayout1 *This);
2334
2335 /*** IDWriteTextFormat methods ***/
2336 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
2337 IDWriteTextLayout1 *This,
2338 DWRITE_TEXT_ALIGNMENT alignment);
2339
2340 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
2341 IDWriteTextLayout1 *This,
2342 DWRITE_PARAGRAPH_ALIGNMENT alignment);
2343
2344 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
2345 IDWriteTextLayout1 *This,
2346 DWRITE_WORD_WRAPPING wrapping);
2347
2348 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
2349 IDWriteTextLayout1 *This,
2350 DWRITE_READING_DIRECTION direction);
2351
2352 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
2353 IDWriteTextLayout1 *This,
2354 DWRITE_FLOW_DIRECTION direction);
2355
2356 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
2357 IDWriteTextLayout1 *This,
2358 FLOAT tabstop);
2359
2360 HRESULT (STDMETHODCALLTYPE *SetTrimming)(
2361 IDWriteTextLayout1 *This,
2362 const DWRITE_TRIMMING *trimming,
2363 IDWriteInlineObject *trimming_sign);
2364
2365 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
2366 IDWriteTextLayout1 *This,
2367 DWRITE_LINE_SPACING_METHOD spacing,
2368 FLOAT line_spacing,
2369 FLOAT baseline);
2370
2371 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
2372 IDWriteTextLayout1 *This);
2373
2374 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
2375 IDWriteTextLayout1 *This);
2376
2377 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
2378 IDWriteTextLayout1 *This);
2379
2380 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
2381 IDWriteTextLayout1 *This);
2382
2383 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
2384 IDWriteTextLayout1 *This);
2385
2386 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
2387 IDWriteTextLayout1 *This);
2388
2389 HRESULT (STDMETHODCALLTYPE *GetTrimming)(
2390 IDWriteTextLayout1 *This,
2391 DWRITE_TRIMMING *options,
2392 IDWriteInlineObject **trimming_sign);
2393
2394 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
2395 IDWriteTextLayout1 *This,
2396 DWRITE_LINE_SPACING_METHOD *method,
2397 FLOAT *spacing,
2398 FLOAT *baseline);
2399
2400 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
2401 IDWriteTextLayout1 *This,
2402 IDWriteFontCollection **collection);
2403
2404 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
2405 IDWriteTextLayout1 *This);
2406
2407 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
2408 IDWriteTextLayout1 *This,
2409 WCHAR *name,
2410 UINT32 size);
2411
2412 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
2413 IDWriteTextLayout1 *This);
2414
2415 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
2416 IDWriteTextLayout1 *This);
2417
2418 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
2419 IDWriteTextLayout1 *This);
2420
2421 FLOAT (STDMETHODCALLTYPE *GetFontSize)(
2422 IDWriteTextLayout1 *This);
2423
2424 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
2425 IDWriteTextLayout1 *This);
2426
2427 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
2428 IDWriteTextLayout1 *This,
2429 WCHAR *name,
2430 UINT32 size);
2431
2432 /*** IDWriteTextLayout methods ***/
2433 HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
2434 IDWriteTextLayout1 *This,
2435 FLOAT maxWidth);
2436
2437 HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
2438 IDWriteTextLayout1 *This,
2439 FLOAT maxHeight);
2440
2441 HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
2442 IDWriteTextLayout1 *This,
2443 IDWriteFontCollection *collection,
2444 DWRITE_TEXT_RANGE range);
2445
2446 HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
2447 IDWriteTextLayout1 *This,
2448 const WCHAR *name,
2449 DWRITE_TEXT_RANGE range);
2450
2451 HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
2452 IDWriteTextLayout1 *This,
2453 DWRITE_FONT_WEIGHT weight,
2454 DWRITE_TEXT_RANGE range);
2455
2456 HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
2457 IDWriteTextLayout1 *This,
2458 DWRITE_FONT_STYLE style,
2459 DWRITE_TEXT_RANGE range);
2460
2461 HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
2462 IDWriteTextLayout1 *This,
2463 DWRITE_FONT_STRETCH stretch,
2464 DWRITE_TEXT_RANGE range);
2465
2466 HRESULT (STDMETHODCALLTYPE *SetFontSize)(
2467 IDWriteTextLayout1 *This,
2468 FLOAT size,
2469 DWRITE_TEXT_RANGE range);
2470
2471 HRESULT (STDMETHODCALLTYPE *SetUnderline)(
2472 IDWriteTextLayout1 *This,
2473 WINBOOL underline,
2474 DWRITE_TEXT_RANGE range);
2475
2476 HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
2477 IDWriteTextLayout1 *This,
2478 WINBOOL strikethrough,
2479 DWRITE_TEXT_RANGE range);
2480
2481 HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
2482 IDWriteTextLayout1 *This,
2483 IUnknown *effect,
2484 DWRITE_TEXT_RANGE range);
2485
2486 HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
2487 IDWriteTextLayout1 *This,
2488 IDWriteInlineObject *object,
2489 DWRITE_TEXT_RANGE range);
2490
2491 HRESULT (STDMETHODCALLTYPE *SetTypography)(
2492 IDWriteTextLayout1 *This,
2493 IDWriteTypography *typography,
2494 DWRITE_TEXT_RANGE range);
2495
2496 HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
2497 IDWriteTextLayout1 *This,
2498 const WCHAR *locale,
2499 DWRITE_TEXT_RANGE range);
2500
2501 FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
2502 IDWriteTextLayout1 *This);
2503
2504 FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
2505 IDWriteTextLayout1 *This);
2506
2507 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
2508 IDWriteTextLayout1 *This,
2509 UINT32 pos,
2510 IDWriteFontCollection **collection,
2511 DWRITE_TEXT_RANGE *range);
2512
2513 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
2514 IDWriteTextLayout1 *This,
2515 UINT32 pos,
2516 UINT32 *len,
2517 DWRITE_TEXT_RANGE *range);
2518
2519 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
2520 IDWriteTextLayout1 *This,
2521 UINT32 position,
2522 WCHAR *name,
2523 UINT32 name_size,
2524 DWRITE_TEXT_RANGE *range);
2525
2526 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
2527 IDWriteTextLayout1 *This,
2528 UINT32 position,
2529 DWRITE_FONT_WEIGHT *weight,
2530 DWRITE_TEXT_RANGE *range);
2531
2532 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
2533 IDWriteTextLayout1 *This,
2534 UINT32 currentPosition,
2535 DWRITE_FONT_STYLE *style,
2536 DWRITE_TEXT_RANGE *range);
2537
2538 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
2539 IDWriteTextLayout1 *This,
2540 UINT32 position,
2541 DWRITE_FONT_STRETCH *stretch,
2542 DWRITE_TEXT_RANGE *range);
2543
2544 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
2545 IDWriteTextLayout1 *This,
2546 UINT32 position,
2547 FLOAT *size,
2548 DWRITE_TEXT_RANGE *range);
2549
2550 HRESULT (STDMETHODCALLTYPE *GetUnderline)(
2551 IDWriteTextLayout1 *This,
2552 UINT32 position,
2553 WINBOOL *has_underline,
2554 DWRITE_TEXT_RANGE *range);
2555
2556 HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
2557 IDWriteTextLayout1 *This,
2558 UINT32 position,
2559 WINBOOL *has_strikethrough,
2560 DWRITE_TEXT_RANGE *range);
2561
2562 HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
2563 IDWriteTextLayout1 *This,
2564 UINT32 position,
2565 IUnknown **effect,
2566 DWRITE_TEXT_RANGE *range);
2567
2568 HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
2569 IDWriteTextLayout1 *This,
2570 UINT32 position,
2571 IDWriteInlineObject **object,
2572 DWRITE_TEXT_RANGE *range);
2573
2574 HRESULT (STDMETHODCALLTYPE *GetTypography)(
2575 IDWriteTextLayout1 *This,
2576 UINT32 position,
2577 IDWriteTypography **typography,
2578 DWRITE_TEXT_RANGE *range);
2579
2580 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
2581 IDWriteTextLayout1 *This,
2582 UINT32 position,
2583 UINT32 *length,
2584 DWRITE_TEXT_RANGE *range);
2585
2586 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
2587 IDWriteTextLayout1 *This,
2588 UINT32 position,
2589 WCHAR *name,
2590 UINT32 name_size,
2591 DWRITE_TEXT_RANGE *range);
2592
2593 HRESULT (STDMETHODCALLTYPE *Draw)(
2594 IDWriteTextLayout1 *This,
2595 void *context,
2596 IDWriteTextRenderer *renderer,
2597 FLOAT originX,
2598 FLOAT originY);
2599
2600 HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
2601 IDWriteTextLayout1 *This,
2602 DWRITE_LINE_METRICS *metrics,
2603 UINT32 max_count,
2604 UINT32 *actual_count);
2605
2606 HRESULT (STDMETHODCALLTYPE *GetMetrics)(
2607 IDWriteTextLayout1 *This,
2608 DWRITE_TEXT_METRICS *metrics);
2609
2610 HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
2611 IDWriteTextLayout1 *This,
2612 DWRITE_OVERHANG_METRICS *overhangs);
2613
2614 HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
2615 IDWriteTextLayout1 *This,
2616 DWRITE_CLUSTER_METRICS *metrics,
2617 UINT32 max_count,
2618 UINT32 *act_count);
2619
2620 HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
2621 IDWriteTextLayout1 *This,
2622 FLOAT *min_width);
2623
2624 HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
2625 IDWriteTextLayout1 *This,
2626 FLOAT pointX,
2627 FLOAT pointY,
2628 WINBOOL *is_trailinghit,
2629 WINBOOL *is_inside,
2630 DWRITE_HIT_TEST_METRICS *metrics);
2631
2632 HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
2633 IDWriteTextLayout1 *This,
2634 UINT32 textPosition,
2635 WINBOOL is_trailinghit,
2636 FLOAT *pointX,
2637 FLOAT *pointY,
2638 DWRITE_HIT_TEST_METRICS *metrics);
2639
2640 HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
2641 IDWriteTextLayout1 *This,
2642 UINT32 textPosition,
2643 UINT32 textLength,
2644 FLOAT originX,
2645 FLOAT originY,
2646 DWRITE_HIT_TEST_METRICS *metrics,
2647 UINT32 max_metricscount,
2648 UINT32 *actual_metricscount);
2649
2650 /*** IDWriteTextLayout1 methods ***/
2651 HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
2652 IDWriteTextLayout1 *This,
2653 WINBOOL is_pairkerning_enabled,
2654 DWRITE_TEXT_RANGE range);
2655
2656 HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
2657 IDWriteTextLayout1 *This,
2658 UINT32 position,
2659 WINBOOL *is_pairkerning_enabled,
2660 DWRITE_TEXT_RANGE *range);
2661
2662 HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
2663 IDWriteTextLayout1 *This,
2664 FLOAT leading_spacing,
2665 FLOAT trailing_spacing,
2666 FLOAT minimum_advance_width,
2667 DWRITE_TEXT_RANGE range);
2668
2669 HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
2670 IDWriteTextLayout1 *This,
2671 UINT32 position,
2672 FLOAT *leading_spacing,
2673 FLOAT *trailing_spacing,
2674 FLOAT *minimum_advance_width,
2675 DWRITE_TEXT_RANGE *range);
2676
2677 END_INTERFACE
2678} IDWriteTextLayout1Vtbl;
2679
2680interface IDWriteTextLayout1 {
2681 CONST_VTBL IDWriteTextLayout1Vtbl* lpVtbl;
2682};
2683
2684#ifdef COBJMACROS
2685#ifndef WIDL_C_INLINE_WRAPPERS
2686/*** IUnknown methods ***/
2687#define IDWriteTextLayout1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2688#define IDWriteTextLayout1_AddRef(This) (This)->lpVtbl->AddRef(This)
2689#define IDWriteTextLayout1_Release(This) (This)->lpVtbl->Release(This)
2690/*** IDWriteTextFormat methods ***/
2691#define IDWriteTextLayout1_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
2692#define IDWriteTextLayout1_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
2693#define IDWriteTextLayout1_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
2694#define IDWriteTextLayout1_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
2695#define IDWriteTextLayout1_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
2696#define IDWriteTextLayout1_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
2697#define IDWriteTextLayout1_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
2698#define IDWriteTextLayout1_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline)
2699#define IDWriteTextLayout1_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
2700#define IDWriteTextLayout1_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
2701#define IDWriteTextLayout1_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
2702#define IDWriteTextLayout1_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
2703#define IDWriteTextLayout1_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
2704#define IDWriteTextLayout1_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
2705#define IDWriteTextLayout1_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
2706#define IDWriteTextLayout1_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline)
2707/*** IDWriteTextLayout methods ***/
2708#define IDWriteTextLayout1_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
2709#define IDWriteTextLayout1_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
2710#define IDWriteTextLayout1_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
2711#define IDWriteTextLayout1_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
2712#define IDWriteTextLayout1_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
2713#define IDWriteTextLayout1_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
2714#define IDWriteTextLayout1_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
2715#define IDWriteTextLayout1_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
2716#define IDWriteTextLayout1_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
2717#define IDWriteTextLayout1_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
2718#define IDWriteTextLayout1_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
2719#define IDWriteTextLayout1_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
2720#define IDWriteTextLayout1_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
2721#define IDWriteTextLayout1_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
2722#define IDWriteTextLayout1_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
2723#define IDWriteTextLayout1_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
2724#define IDWriteTextLayout1_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
2725#define IDWriteTextLayout1_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
2726#define IDWriteTextLayout1_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
2727#define IDWriteTextLayout1_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
2728#define IDWriteTextLayout1_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
2729#define IDWriteTextLayout1_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
2730#define IDWriteTextLayout1_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
2731#define IDWriteTextLayout1_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
2732#define IDWriteTextLayout1_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
2733#define IDWriteTextLayout1_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
2734#define IDWriteTextLayout1_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
2735#define IDWriteTextLayout1_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
2736#define IDWriteTextLayout1_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
2737#define IDWriteTextLayout1_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
2738#define IDWriteTextLayout1_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
2739#define IDWriteTextLayout1_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count)
2740#define IDWriteTextLayout1_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics)
2741#define IDWriteTextLayout1_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
2742#define IDWriteTextLayout1_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
2743#define IDWriteTextLayout1_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
2744#define IDWriteTextLayout1_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
2745#define IDWriteTextLayout1_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
2746#define IDWriteTextLayout1_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
2747/*** IDWriteTextLayout1 methods ***/
2748#define IDWriteTextLayout1_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
2749#define IDWriteTextLayout1_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
2750#define IDWriteTextLayout1_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
2751#define IDWriteTextLayout1_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
2752#else
2753/*** IUnknown methods ***/
2754static FORCEINLINE HRESULT IDWriteTextLayout1_QueryInterface(IDWriteTextLayout1* This,REFIID riid,void **ppvObject) {
2755 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2756}
2757static FORCEINLINE ULONG IDWriteTextLayout1_AddRef(IDWriteTextLayout1* This) {
2758 return This->lpVtbl->AddRef(This);
2759}
2760static FORCEINLINE ULONG IDWriteTextLayout1_Release(IDWriteTextLayout1* This) {
2761 return This->lpVtbl->Release(This);
2762}
2763/*** IDWriteTextFormat methods ***/
2764static FORCEINLINE HRESULT IDWriteTextLayout1_SetTextAlignment(IDWriteTextLayout1* This,DWRITE_TEXT_ALIGNMENT alignment) {
2765 return This->lpVtbl->SetTextAlignment(This,alignment);
2766}
2767static FORCEINLINE HRESULT IDWriteTextLayout1_SetParagraphAlignment(IDWriteTextLayout1* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
2768 return This->lpVtbl->SetParagraphAlignment(This,alignment);
2769}
2770static FORCEINLINE HRESULT IDWriteTextLayout1_SetWordWrapping(IDWriteTextLayout1* This,DWRITE_WORD_WRAPPING wrapping) {
2771 return This->lpVtbl->SetWordWrapping(This,wrapping);
2772}
2773static FORCEINLINE HRESULT IDWriteTextLayout1_SetReadingDirection(IDWriteTextLayout1* This,DWRITE_READING_DIRECTION direction) {
2774 return This->lpVtbl->SetReadingDirection(This,direction);
2775}
2776static FORCEINLINE HRESULT IDWriteTextLayout1_SetFlowDirection(IDWriteTextLayout1* This,DWRITE_FLOW_DIRECTION direction) {
2777 return This->lpVtbl->SetFlowDirection(This,direction);
2778}
2779static FORCEINLINE HRESULT IDWriteTextLayout1_SetIncrementalTabStop(IDWriteTextLayout1* This,FLOAT tabstop) {
2780 return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
2781}
2782static FORCEINLINE HRESULT IDWriteTextLayout1_SetTrimming(IDWriteTextLayout1* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
2783 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
2784}
2785static FORCEINLINE HRESULT IDWriteTextLayout1_SetLineSpacing(IDWriteTextLayout1* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) {
2786 return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline);
2787}
2788static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextLayout1_GetTextAlignment(IDWriteTextLayout1* This) {
2789 return This->lpVtbl->GetTextAlignment(This);
2790}
2791static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout1_GetParagraphAlignment(IDWriteTextLayout1* This) {
2792 return This->lpVtbl->GetParagraphAlignment(This);
2793}
2794static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextLayout1_GetWordWrapping(IDWriteTextLayout1* This) {
2795 return This->lpVtbl->GetWordWrapping(This);
2796}
2797static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextLayout1_GetReadingDirection(IDWriteTextLayout1* This) {
2798 return This->lpVtbl->GetReadingDirection(This);
2799}
2800static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextLayout1_GetFlowDirection(IDWriteTextLayout1* This) {
2801 return This->lpVtbl->GetFlowDirection(This);
2802}
2803static FORCEINLINE FLOAT IDWriteTextLayout1_GetIncrementalTabStop(IDWriteTextLayout1* This) {
2804 return This->lpVtbl->GetIncrementalTabStop(This);
2805}
2806static FORCEINLINE HRESULT IDWriteTextLayout1_GetTrimming(IDWriteTextLayout1* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
2807 return This->lpVtbl->GetTrimming(This,options,trimming_sign);
2808}
2809static FORCEINLINE HRESULT IDWriteTextLayout1_GetLineSpacing(IDWriteTextLayout1* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) {
2810 return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline);
2811}
2812/*** IDWriteTextLayout methods ***/
2813static FORCEINLINE HRESULT IDWriteTextLayout1_SetMaxWidth(IDWriteTextLayout1* This,FLOAT maxWidth) {
2814 return This->lpVtbl->SetMaxWidth(This,maxWidth);
2815}
2816static FORCEINLINE HRESULT IDWriteTextLayout1_SetMaxHeight(IDWriteTextLayout1* This,FLOAT maxHeight) {
2817 return This->lpVtbl->SetMaxHeight(This,maxHeight);
2818}
2819static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontCollection(IDWriteTextLayout1* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
2820 return This->lpVtbl->SetFontCollection(This,collection,range);
2821}
2822static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontFamilyName(IDWriteTextLayout1* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
2823 return This->lpVtbl->SetFontFamilyName(This,name,range);
2824}
2825static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontWeight(IDWriteTextLayout1* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
2826 return This->lpVtbl->SetFontWeight(This,weight,range);
2827}
2828static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontStyle(IDWriteTextLayout1* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
2829 return This->lpVtbl->SetFontStyle(This,style,range);
2830}
2831static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontStretch(IDWriteTextLayout1* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
2832 return This->lpVtbl->SetFontStretch(This,stretch,range);
2833}
2834static FORCEINLINE HRESULT IDWriteTextLayout1_SetFontSize(IDWriteTextLayout1* This,FLOAT size,DWRITE_TEXT_RANGE range) {
2835 return This->lpVtbl->SetFontSize(This,size,range);
2836}
2837static FORCEINLINE HRESULT IDWriteTextLayout1_SetUnderline(IDWriteTextLayout1* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
2838 return This->lpVtbl->SetUnderline(This,underline,range);
2839}
2840static FORCEINLINE HRESULT IDWriteTextLayout1_SetStrikethrough(IDWriteTextLayout1* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
2841 return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
2842}
2843static FORCEINLINE HRESULT IDWriteTextLayout1_SetDrawingEffect(IDWriteTextLayout1* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
2844 return This->lpVtbl->SetDrawingEffect(This,effect,range);
2845}
2846static FORCEINLINE HRESULT IDWriteTextLayout1_SetInlineObject(IDWriteTextLayout1* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
2847 return This->lpVtbl->SetInlineObject(This,object,range);
2848}
2849static FORCEINLINE HRESULT IDWriteTextLayout1_SetTypography(IDWriteTextLayout1* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
2850 return This->lpVtbl->SetTypography(This,typography,range);
2851}
2852static FORCEINLINE HRESULT IDWriteTextLayout1_SetLocaleName(IDWriteTextLayout1* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
2853 return This->lpVtbl->SetLocaleName(This,locale,range);
2854}
2855static FORCEINLINE FLOAT IDWriteTextLayout1_GetMaxWidth(IDWriteTextLayout1* This) {
2856 return This->lpVtbl->GetMaxWidth(This);
2857}
2858static FORCEINLINE FLOAT IDWriteTextLayout1_GetMaxHeight(IDWriteTextLayout1* This) {
2859 return This->lpVtbl->GetMaxHeight(This);
2860}
2861static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontCollection(IDWriteTextLayout1* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
2862 return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
2863}
2864static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontFamilyNameLength(IDWriteTextLayout1* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
2865 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
2866}
2867static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontFamilyName(IDWriteTextLayout1* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
2868 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
2869}
2870static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontWeight(IDWriteTextLayout1* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
2871 return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
2872}
2873static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontStyle(IDWriteTextLayout1* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
2874 return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
2875}
2876static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontStretch(IDWriteTextLayout1* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
2877 return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
2878}
2879static FORCEINLINE HRESULT IDWriteTextLayout1_GetFontSize(IDWriteTextLayout1* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
2880 return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
2881}
2882static FORCEINLINE HRESULT IDWriteTextLayout1_GetUnderline(IDWriteTextLayout1* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
2883 return This->lpVtbl->GetUnderline(This,position,has_underline,range);
2884}
2885static FORCEINLINE HRESULT IDWriteTextLayout1_GetStrikethrough(IDWriteTextLayout1* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
2886 return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
2887}
2888static FORCEINLINE HRESULT IDWriteTextLayout1_GetDrawingEffect(IDWriteTextLayout1* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
2889 return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
2890}
2891static FORCEINLINE HRESULT IDWriteTextLayout1_GetInlineObject(IDWriteTextLayout1* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
2892 return This->lpVtbl->GetInlineObject(This,position,object,range);
2893}
2894static FORCEINLINE HRESULT IDWriteTextLayout1_GetTypography(IDWriteTextLayout1* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
2895 return This->lpVtbl->GetTypography(This,position,typography,range);
2896}
2897static FORCEINLINE HRESULT IDWriteTextLayout1_GetLocaleNameLength(IDWriteTextLayout1* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
2898 return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
2899}
2900static FORCEINLINE HRESULT IDWriteTextLayout1_GetLocaleName(IDWriteTextLayout1* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
2901 return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
2902}
2903static FORCEINLINE HRESULT IDWriteTextLayout1_Draw(IDWriteTextLayout1* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
2904 return This->lpVtbl->Draw(This,context,renderer,originX,originY);
2905}
2906static FORCEINLINE HRESULT IDWriteTextLayout1_GetLineMetrics(IDWriteTextLayout1* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) {
2907 return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count);
2908}
2909static FORCEINLINE HRESULT IDWriteTextLayout1_GetMetrics(IDWriteTextLayout1* This,DWRITE_TEXT_METRICS *metrics) {
2910 return This->lpVtbl->GetMetrics(This,metrics);
2911}
2912static FORCEINLINE HRESULT IDWriteTextLayout1_GetOverhangMetrics(IDWriteTextLayout1* This,DWRITE_OVERHANG_METRICS *overhangs) {
2913 return This->lpVtbl->GetOverhangMetrics(This,overhangs);
2914}
2915static FORCEINLINE HRESULT IDWriteTextLayout1_GetClusterMetrics(IDWriteTextLayout1* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
2916 return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
2917}
2918static FORCEINLINE HRESULT IDWriteTextLayout1_DetermineMinWidth(IDWriteTextLayout1* This,FLOAT *min_width) {
2919 return This->lpVtbl->DetermineMinWidth(This,min_width);
2920}
2921static FORCEINLINE HRESULT IDWriteTextLayout1_HitTestPoint(IDWriteTextLayout1* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
2922 return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
2923}
2924static FORCEINLINE HRESULT IDWriteTextLayout1_HitTestTextPosition(IDWriteTextLayout1* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
2925 return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
2926}
2927static FORCEINLINE HRESULT IDWriteTextLayout1_HitTestTextRange(IDWriteTextLayout1* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
2928 return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
2929}
2930/*** IDWriteTextLayout1 methods ***/
2931static FORCEINLINE HRESULT IDWriteTextLayout1_SetPairKerning(IDWriteTextLayout1* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
2932 return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
2933}
2934static FORCEINLINE HRESULT IDWriteTextLayout1_GetPairKerning(IDWriteTextLayout1* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
2935 return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
2936}
2937static FORCEINLINE HRESULT IDWriteTextLayout1_SetCharacterSpacing(IDWriteTextLayout1* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
2938 return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
2939}
2940static FORCEINLINE HRESULT IDWriteTextLayout1_GetCharacterSpacing(IDWriteTextLayout1* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
2941 return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
2942}
2943#endif
2944#endif
2945
2946#endif
2947
2948
2949#endif /* __IDWriteTextLayout1_INTERFACE_DEFINED__ */
2950
2951typedef enum DWRITE_TEXT_ANTIALIAS_MODE {
2952 DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE = 0,
2953 DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE = 1
2954} DWRITE_TEXT_ANTIALIAS_MODE;
2955/*****************************************************************************
2956 * IDWriteBitmapRenderTarget1 interface
2957 */
2958#ifndef __IDWriteBitmapRenderTarget1_INTERFACE_DEFINED__
2959#define __IDWriteBitmapRenderTarget1_INTERFACE_DEFINED__
2960
2961DEFINE_GUID(IID_IDWriteBitmapRenderTarget1, 0x791e8298, 0x3ef3, 0x4230, 0x98,0x80, 0xc9,0xbd,0xec,0xc4,0x20,0x64);
2962#if defined(__cplusplus) && !defined(CINTERFACE)
2963MIDL_INTERFACE("791e8298-3ef3-4230-9880-c9bdecc42064")
2964IDWriteBitmapRenderTarget1 : public IDWriteBitmapRenderTarget
2965{
2966 virtual DWRITE_TEXT_ANTIALIAS_MODE STDMETHODCALLTYPE GetTextAntialiasMode(
2967 ) = 0;
2968
2969 virtual HRESULT STDMETHODCALLTYPE SetTextAntialiasMode(
2970 DWRITE_TEXT_ANTIALIAS_MODE mode) = 0;
2971
2972};
2973#ifdef __CRT_UUID_DECL
2974__CRT_UUID_DECL(IDWriteBitmapRenderTarget1, 0x791e8298, 0x3ef3, 0x4230, 0x98,0x80, 0xc9,0xbd,0xec,0xc4,0x20,0x64)
2975#endif
2976#else
2977typedef struct IDWriteBitmapRenderTarget1Vtbl {
2978 BEGIN_INTERFACE
2979
2980 /*** IUnknown methods ***/
2981 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2982 IDWriteBitmapRenderTarget1 *This,
2983 REFIID riid,
2984 void **ppvObject);
2985
2986 ULONG (STDMETHODCALLTYPE *AddRef)(
2987 IDWriteBitmapRenderTarget1 *This);
2988
2989 ULONG (STDMETHODCALLTYPE *Release)(
2990 IDWriteBitmapRenderTarget1 *This);
2991
2992 /*** IDWriteBitmapRenderTarget methods ***/
2993 HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
2994 IDWriteBitmapRenderTarget1 *This,
2995 FLOAT baselineOriginX,
2996 FLOAT baselineOriginY,
2997 DWRITE_MEASURING_MODE measuring_mode,
2998 const DWRITE_GLYPH_RUN *glyph_run,
2999 IDWriteRenderingParams *params,
3000 COLORREF textColor,
3001 RECT *blackbox_rect);
3002
3003 HDC (STDMETHODCALLTYPE *GetMemoryDC)(
3004 IDWriteBitmapRenderTarget1 *This);
3005
3006 FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
3007 IDWriteBitmapRenderTarget1 *This);
3008
3009 HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
3010 IDWriteBitmapRenderTarget1 *This,
3011 FLOAT pixels_per_dip);
3012
3013 HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
3014 IDWriteBitmapRenderTarget1 *This,
3015 DWRITE_MATRIX *transform);
3016
3017 HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
3018 IDWriteBitmapRenderTarget1 *This,
3019 const DWRITE_MATRIX *transform);
3020
3021 HRESULT (STDMETHODCALLTYPE *GetSize)(
3022 IDWriteBitmapRenderTarget1 *This,
3023 SIZE *size);
3024
3025 HRESULT (STDMETHODCALLTYPE *Resize)(
3026 IDWriteBitmapRenderTarget1 *This,
3027 UINT32 width,
3028 UINT32 height);
3029
3030 /*** IDWriteBitmapRenderTarget1 methods ***/
3031 DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
3032 IDWriteBitmapRenderTarget1 *This);
3033
3034 HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
3035 IDWriteBitmapRenderTarget1 *This,
3036 DWRITE_TEXT_ANTIALIAS_MODE mode);
3037
3038 END_INTERFACE
3039} IDWriteBitmapRenderTarget1Vtbl;
3040
3041interface IDWriteBitmapRenderTarget1 {
3042 CONST_VTBL IDWriteBitmapRenderTarget1Vtbl* lpVtbl;
3043};
3044
3045#ifdef COBJMACROS
3046#ifndef WIDL_C_INLINE_WRAPPERS
3047/*** IUnknown methods ***/
3048#define IDWriteBitmapRenderTarget1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3049#define IDWriteBitmapRenderTarget1_AddRef(This) (This)->lpVtbl->AddRef(This)
3050#define IDWriteBitmapRenderTarget1_Release(This) (This)->lpVtbl->Release(This)
3051/*** IDWriteBitmapRenderTarget methods ***/
3052#define IDWriteBitmapRenderTarget1_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
3053#define IDWriteBitmapRenderTarget1_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
3054#define IDWriteBitmapRenderTarget1_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
3055#define IDWriteBitmapRenderTarget1_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
3056#define IDWriteBitmapRenderTarget1_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
3057#define IDWriteBitmapRenderTarget1_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
3058#define IDWriteBitmapRenderTarget1_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
3059#define IDWriteBitmapRenderTarget1_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
3060/*** IDWriteBitmapRenderTarget1 methods ***/
3061#define IDWriteBitmapRenderTarget1_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
3062#define IDWriteBitmapRenderTarget1_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
3063#else
3064/*** IUnknown methods ***/
3065static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_QueryInterface(IDWriteBitmapRenderTarget1* This,REFIID riid,void **ppvObject) {
3066 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3067}
3068static FORCEINLINE ULONG IDWriteBitmapRenderTarget1_AddRef(IDWriteBitmapRenderTarget1* This) {
3069 return This->lpVtbl->AddRef(This);
3070}
3071static FORCEINLINE ULONG IDWriteBitmapRenderTarget1_Release(IDWriteBitmapRenderTarget1* This) {
3072 return This->lpVtbl->Release(This);
3073}
3074/*** IDWriteBitmapRenderTarget methods ***/
3075static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_DrawGlyphRun(IDWriteBitmapRenderTarget1* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
3076 return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
3077}
3078static FORCEINLINE HDC IDWriteBitmapRenderTarget1_GetMemoryDC(IDWriteBitmapRenderTarget1* This) {
3079 return This->lpVtbl->GetMemoryDC(This);
3080}
3081static FORCEINLINE FLOAT IDWriteBitmapRenderTarget1_GetPixelsPerDip(IDWriteBitmapRenderTarget1* This) {
3082 return This->lpVtbl->GetPixelsPerDip(This);
3083}
3084static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_SetPixelsPerDip(IDWriteBitmapRenderTarget1* This,FLOAT pixels_per_dip) {
3085 return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
3086}
3087static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_GetCurrentTransform(IDWriteBitmapRenderTarget1* This,DWRITE_MATRIX *transform) {
3088 return This->lpVtbl->GetCurrentTransform(This,transform);
3089}
3090static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_SetCurrentTransform(IDWriteBitmapRenderTarget1* This,const DWRITE_MATRIX *transform) {
3091 return This->lpVtbl->SetCurrentTransform(This,transform);
3092}
3093static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_GetSize(IDWriteBitmapRenderTarget1* This,SIZE *size) {
3094 return This->lpVtbl->GetSize(This,size);
3095}
3096static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_Resize(IDWriteBitmapRenderTarget1* This,UINT32 width,UINT32 height) {
3097 return This->lpVtbl->Resize(This,width,height);
3098}
3099/*** IDWriteBitmapRenderTarget1 methods ***/
3100static FORCEINLINE DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget1_GetTextAntialiasMode(IDWriteBitmapRenderTarget1* This) {
3101 return This->lpVtbl->GetTextAntialiasMode(This);
3102}
3103static FORCEINLINE HRESULT IDWriteBitmapRenderTarget1_SetTextAntialiasMode(IDWriteBitmapRenderTarget1* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
3104 return This->lpVtbl->SetTextAntialiasMode(This,mode);
3105}
3106#endif
3107#endif
3108
3109#endif
3110
3111
3112#endif /* __IDWriteBitmapRenderTarget1_INTERFACE_DEFINED__ */
3113
3114/* Begin additional prototypes for all interfaces */
3115
3116
3117/* End additional prototypes */
3118
3119#ifdef __cplusplus
3120}
3121#endif
3122
3123#endif /* __dwrite_1_h__ */
Note: See TracBrowser for help on using the repository browser.