1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef __INC_DWRITE__
7 #define __INC_DWRITE__
8
9 #define DWRITEAPI DECLSPEC_IMPORT
10
11 #include <unknwn.h>
12
13 #ifndef DWRITE_DECLARE_INTERFACE
14 #define DWRITE_DECLARE_INTERFACE(iid) DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE
15 #endif
16
17 #ifndef __IDWriteBitmapRenderTarget_FWD_DEFINED__
18 #define __IDWriteBitmapRenderTarget_FWD_DEFINED__
19 typedef struct IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget;
20 #endif
21
22 #ifndef __IDWriteFactory_FWD_DEFINED__
23 #define __IDWriteFactory_FWD_DEFINED__
24 typedef struct IDWriteFactory IDWriteFactory;
25 #endif
26
27 #ifndef __IDWriteFont_FWD_DEFINED__
28 #define __IDWriteFont_FWD_DEFINED__
29 typedef struct IDWriteFont IDWriteFont;
30 #endif
31
32 #ifndef __IDWriteFontCollection_FWD_DEFINED__
33 #define __IDWriteFontCollection_FWD_DEFINED__
34 typedef struct IDWriteFontCollection IDWriteFontCollection;
35 #endif
36
37 #ifndef __IDWriteFontFace_FWD_DEFINED__
38 #define __IDWriteFontFace_FWD_DEFINED__
39 typedef struct IDWriteFontFace IDWriteFontFace;
40 #endif
41
42 #ifndef __IDWriteFontFamily_FWD_DEFINED__
43 #define __IDWriteFontFamily_FWD_DEFINED__
44 typedef struct IDWriteFontFamily IDWriteFontFamily;
45 #endif
46
47 #ifndef __IDWriteFontList_FWD_DEFINED__
48 #define __IDWriteFontList_FWD_DEFINED__
49 typedef struct IDWriteFontList IDWriteFontList;
50 #endif
51
52 #ifndef __IDWriteFontFile_FWD_DEFINED__
53 #define __IDWriteFontFile_FWD_DEFINED__
54 typedef struct IDWriteFontFile IDWriteFontFile;
55 #endif
56
57 #ifndef __IDWriteFontFileLoader_FWD_DEFINED__
58 #define __IDWriteFontFileLoader_FWD_DEFINED__
59 typedef struct IDWriteFontFileLoader IDWriteFontFileLoader;
60 #endif
61
62 #ifndef __IDWriteFontFileStream_FWD_DEFINED__
63 #define __IDWriteFontFileStream_FWD_DEFINED__
64 typedef struct IDWriteFontFileStream IDWriteFontFileStream;
65 #endif
66
67 #ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__
68 #define __IDWriteFontCollectionLoader_FWD_DEFINED__
69 typedef struct IDWriteFontCollectionLoader IDWriteFontCollectionLoader;
70 #endif
71
72 #ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__
73 #define __IDWriteFontFileEnumerator_FWD_DEFINED__
74 typedef struct IDWriteFontFileEnumerator IDWriteFontFileEnumerator;
75 #endif
76
77 #ifndef __IDWriteGdiInterop_FWD_DEFINED__
78 #define __IDWriteGdiInterop_FWD_DEFINED__
79 typedef struct IDWriteGdiInterop IDWriteGdiInterop;
80 #endif
81
82 /* Fixme: MSDN says its a typedef, needs verification */
83 /* http://msdn.microsoft.com/en-us/library/dd756614%28v=VS.85%29.aspx */
84 #ifndef __IDWriteGeometrySink_FWD_DEFINED__
85 #define __IDWriteGeometrySink_FWD_DEFINED__
86 typedef struct ID2D1SimplifiedGeometrySink IDWriteGeometrySink;
87 #endif
88
89 #ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__
90 #define __IDWriteGlyphRunAnalysis_FWD_DEFINED__
91 typedef struct IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis;
92 #endif
93
94 #ifndef __IDWriteInlineObject_FWD_DEFINED__
95 #define __IDWriteInlineObject_FWD_DEFINED__
96 typedef struct IDWriteInlineObject IDWriteInlineObject;
97 #endif
98
99 #ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__
100 #define __IDWriteLocalFontFileLoader_FWD_DEFINED__
101 typedef struct IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader;
102 #endif
103
104 #ifndef __IDWriteLocalizedStrings_FWD_DEFINED__
105 #define __IDWriteLocalizedStrings_FWD_DEFINED__
106 typedef struct IDWriteLocalizedStrings IDWriteLocalizedStrings;
107 #endif
108
109 #ifndef __IDWriteNumberSubstitution_FWD_DEFINED__
110 #define __IDWriteNumberSubstitution_FWD_DEFINED__
111 typedef struct IDWriteNumberSubstitution IDWriteNumberSubstitution;
112 #endif
113
114 #ifndef __IDWritePixelSnapping_FWD_DEFINED__
115 #define __IDWritePixelSnapping_FWD_DEFINED__
116 typedef struct IDWritePixelSnapping IDWritePixelSnapping;
117 #endif
118
119 #ifndef __IDWriteRenderingParams_FWD_DEFINED__
120 #define __IDWriteRenderingParams_FWD_DEFINED__
121 typedef struct IDWriteRenderingParams IDWriteRenderingParams;
122 #endif
123
124 #ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__
125 #define __IDWriteTextAnalysisSink_FWD_DEFINED__
126 typedef struct IDWriteTextAnalysisSink IDWriteTextAnalysisSink;
127 #endif
128
129 #ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__
130 #define __IDWriteTextAnalysisSource_FWD_DEFINED__
131 typedef struct IDWriteTextAnalysisSource IDWriteTextAnalysisSource;
132 #endif
133
134 #ifndef __IDWriteTextAnalyzer_FWD_DEFINED__
135 #define __IDWriteTextAnalyzer_FWD_DEFINED__
136 typedef struct IDWriteTextAnalyzer IDWriteTextAnalyzer;
137 #endif
138
139 #ifndef __IDWriteTextFormat_FWD_DEFINED__
140 #define __IDWriteTextFormat_FWD_DEFINED__
141 typedef struct IDWriteTextFormat IDWriteTextFormat;
142 #endif
143
144 #ifndef __IDWriteTextLayout_FWD_DEFINED__
145 #define __IDWriteTextLayout_FWD_DEFINED__
146 typedef struct IDWriteTextLayout IDWriteTextLayout;
147 #endif
148
149 #ifndef __IDWriteTextRenderer_FWD_DEFINED__
150 #define __IDWriteTextRenderer_FWD_DEFINED__
151 typedef struct IDWriteTextRenderer IDWriteTextRenderer;
152 #endif
153
154 #ifndef __IDWriteTypography_FWD_DEFINED__
155 #define __IDWriteTypography_FWD_DEFINED__
156 typedef struct IDWriteTypography IDWriteTypography;
157 #endif
158
159 #include <dcommon.h>
160
161 typedef enum DWRITE_INFORMATIONAL_STRING_ID {
162 DWRITE_INFORMATIONAL_STRING_NONE = 0,
163 DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE,
164 DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS,
165 DWRITE_INFORMATIONAL_STRING_TRADEMARK,
166 DWRITE_INFORMATIONAL_STRING_MANUFACTURER,
167 DWRITE_INFORMATIONAL_STRING_DESIGNER,
168 DWRITE_INFORMATIONAL_STRING_DESIGNER_URL,
169 DWRITE_INFORMATIONAL_STRING_DESCRIPTION,
170 DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL,
171 DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION,
172 DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL,
173 DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES,
174 DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES,
175 DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES,
176 DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES,
177 DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT,
178 DWRITE_INFORMATIONAL_STRING_FULL_NAME,
179 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME,
180 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME
181 } DWRITE_INFORMATIONAL_STRING_ID;
182
183 typedef enum DWRITE_BREAK_CONDITION {
184 DWRITE_BREAK_CONDITION_NEUTRAL = 0,
185 DWRITE_BREAK_CONDITION_CAN_BREAK = 1,
186 DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2,
187 DWRITE_BREAK_CONDITION_MUST_BREAK = 3
188 } DWRITE_BREAK_CONDITION;
189
190 typedef enum DWRITE_FACTORY_TYPE {
191 DWRITE_FACTORY_TYPE_SHARED = 0,
192 DWRITE_FACTORY_TYPE_ISOLATED
193 } DWRITE_FACTORY_TYPE;
194
195 typedef enum DWRITE_FLOW_DIRECTION {
196 DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM
197 } DWRITE_FLOW_DIRECTION;
198
199 typedef enum DWRITE_FONT_FACE_TYPE {
200 DWRITE_FONT_FACE_TYPE_CFF = 0,
201 DWRITE_FONT_FACE_TYPE_TRUETYPE,
202 DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION,
203 DWRITE_FONT_FACE_TYPE_TYPE1,
204 DWRITE_FONT_FACE_TYPE_VECTOR,
205 DWRITE_FONT_FACE_TYPE_BITMAP,
206 DWRITE_FONT_FACE_TYPE_UNKNOWN
207 } DWRITE_FONT_FACE_TYPE;
208
209 typedef enum DWRITE_FONT_FEATURE_TAG {
210 DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661,
211 DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263,
212 DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263,
213 DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163,
214 DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163,
215 DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363,
216 DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63,
217 DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063,
218 DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363,
219 DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563,
220 DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64,
221 DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865,
222 DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266,
223 DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766,
224 DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168,
225 DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168,
226 DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168,
227 DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968,
228 DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68,
229 DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68,
230 DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768,
231 DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68,
232 DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a,
233 DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a,
234 DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a,
235 DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a,
236 DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b,
237 DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c,
238 DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c,
239 DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c,
240 DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d,
241 DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d,
242 DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d,
243 DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e,
244 DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e,
245 DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f,
246 DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f,
247 DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170,
248 DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370,
249 DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70,
250 DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770,
251 DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771,
252 DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72,
253 DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572,
254 DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173,
255 DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973,
256 DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73,
257 DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73,
258 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373,
259 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373,
260 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373,
261 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373,
262 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373,
263 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373,
264 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373,
265 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373,
266 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373,
267 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373,
268 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373,
269 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373,
270 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373,
271 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373,
272 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373,
273 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373,
274 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373,
275 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373,
276 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373,
277 DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373,
278 DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573,
279 DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573,
280 DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773,
281 DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974,
282 DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74,
283 DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74,
284 DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274,
285 DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774,
286 DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75,
287 DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a
288 } DWRITE_FONT_FEATURE_TAG;
289
290 typedef enum DWRITE_FONT_FILE_TYPE {
291 DWRITE_FONT_FILE_TYPE_UNKNOWN = 0,
292 DWRITE_FONT_FILE_TYPE_CFF,
293 DWRITE_FONT_FILE_TYPE_TRUETYPE,
294 DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION,
295 DWRITE_FONT_FILE_TYPE_TYPE1_PFM,
296 DWRITE_FONT_FILE_TYPE_TYPE1_PFB,
297 DWRITE_FONT_FILE_TYPE_VECTOR,
298 DWRITE_FONT_FILE_TYPE_BITMAP
299 } DWRITE_FONT_FILE_TYPE;
300
301 typedef enum DWRITE_FONT_SIMULATIONS {
302 DWRITE_FONT_SIMULATIONS_NONE = 0x0000,
303 DWRITE_FONT_SIMULATIONS_BOLD = 0x0001,
304 DWRITE_FONT_SIMULATIONS_OBLIQUE = 0x0002
305 } DWRITE_FONT_SIMULATIONS;
306
307 #ifdef DEFINE_ENUM_FLAG_OPERATORS
308 DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS);
309 #endif
310
311 typedef enum DWRITE_FONT_STRETCH {
312 DWRITE_FONT_STRETCH_UNDEFINED = 0,
313 DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1,
314 DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2,
315 DWRITE_FONT_STRETCH_CONDENSED = 3,
316 DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4,
317 DWRITE_FONT_STRETCH_NORMAL = 5,
318 DWRITE_FONT_STRETCH_MEDIUM = 5,
319 DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6,
320 DWRITE_FONT_STRETCH_EXPANDED = 7,
321 DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8,
322 DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9
323 } DWRITE_FONT_STRETCH;
324
325 typedef enum DWRITE_FONT_STYLE {
326 DWRITE_FONT_STYLE_NORMAL = 0,
327 DWRITE_FONT_STYLE_OBLIQUE,
328 DWRITE_FONT_STYLE_ITALIC
329 } DWRITE_FONT_STYLE;
330
331 typedef enum DWRITE_FONT_WEIGHT {
332 DWRITE_FONT_WEIGHT_THIN = 100,
333 DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200,
334 DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200,
335 DWRITE_FONT_WEIGHT_LIGHT = 300,
336 DWRITE_FONT_WEIGHT_NORMAL = 400,
337 DWRITE_FONT_WEIGHT_REGULAR = 400,
338 DWRITE_FONT_WEIGHT_MEDIUM = 500,
339 DWRITE_FONT_WEIGHT_DEMI_BOLD = 600,
340 DWRITE_FONT_WEIGHT_SEMI_BOLD = 600,
341 DWRITE_FONT_WEIGHT_BOLD = 700,
342 DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800,
343 DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800,
344 DWRITE_FONT_WEIGHT_BLACK = 900,
345 DWRITE_FONT_WEIGHT_HEAVY = 900,
346 DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950,
347 DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950
348 } DWRITE_FONT_WEIGHT;
349
350 typedef enum DWRITE_LINE_SPACING_METHOD {
351 DWRITE_LINE_SPACING_METHOD_DEFAULT = 0,
352 DWRITE_LINE_SPACING_METHOD_UNIFORM
353 } DWRITE_LINE_SPACING_METHOD;
354
355 typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD {
356 DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0,
357 DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL,
358 DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE,
359 DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL,
360 DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL
361 } DWRITE_NUMBER_SUBSTITUTION_METHOD;
362
363 typedef enum DWRITE_PARAGRAPH_ALIGNMENT {
364 DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0,
365 DWRITE_PARAGRAPH_ALIGNMENT_FAR,
366 DWRITE_PARAGRAPH_ALIGNMENT_CENTER
367 } DWRITE_PARAGRAPH_ALIGNMENT;
368
369 typedef enum DWRITE_PIXEL_GEOMETRY {
370 DWRITE_PIXEL_GEOMETRY_FLAT = 0,
371 DWRITE_PIXEL_GEOMETRY_RGB,
372 DWRITE_PIXEL_GEOMETRY_BGR
373 } DWRITE_PIXEL_GEOMETRY;
374
375 typedef enum DWRITE_READING_DIRECTION {
376 DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0,
377 DWRITE_READING_DIRECTION_RIGHT_TO_LEFT
378 } DWRITE_READING_DIRECTION;
379
380 typedef enum DWRITE_RENDERING_MODE {
381 DWRITE_RENDERING_MODE_DEFAULT = 0,
382 DWRITE_RENDERING_MODE_ALIASED,
383 DWRITE_RENDERING_MODE_GDI_CLASSIC,
384 DWRITE_RENDERING_MODE_GDI_NATURAL,
385 DWRITE_RENDERING_MODE_NATURAL,
386 DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC,
387 DWRITE_RENDERING_MODE_OUTLINE,
388 DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC,
389 DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL,
390 DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL,
391 DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC
392 } DWRITE_RENDERING_MODE;
393
394 typedef enum DWRITE_SCRIPT_SHAPES {
395 DWRITE_SCRIPT_SHAPES_DEFAULT = 0,
396 DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1
397 } DWRITE_SCRIPT_SHAPES;
398
399 typedef enum DWRITE_TEXT_ALIGNMENT {
400 DWRITE_TEXT_ALIGNMENT_LEADING = 0,
401 DWRITE_TEXT_ALIGNMENT_TRAILING,
402 DWRITE_TEXT_ALIGNMENT_CENTER
403 } DWRITE_TEXT_ALIGNMENT;
404
405 typedef enum DWRITE_TEXTURE_TYPE {
406 DWRITE_TEXTURE_ALIASED_1x1 = 0,
407 DWRITE_TEXTURE_CLEARTYPE_3x1
408 } DWRITE_TEXTURE_TYPE;
409
410 typedef enum DWRITE_TRIMMING_GRANULARITY {
411 DWRITE_TRIMMING_GRANULARITY_NONE,
412 DWRITE_TRIMMING_GRANULARITY_CHARACTER,
413 DWRITE_TRIMMING_GRANULARITY_WORD
414 } DWRITE_TRIMMING_GRANULARITY;
415
416 typedef enum DWRITE_WORD_WRAPPING {
417 DWRITE_WORD_WRAPPING_WRAP,
418 DWRITE_WORD_WRAPPING_NO_WRAP
419 } DWRITE_WORD_WRAPPING;
420
421 typedef struct _DWRITE_OVERHANG_METRICS {
422 FLOAT left;
423 FLOAT top;
424 FLOAT right;
425 FLOAT bottom;
426 } DWRITE_OVERHANG_METRICS, *PDWRITE_OVERHANG_METRICS;
427
428 typedef struct DWRITE_CLUSTER_METRICS {
429 FLOAT width;
430 UINT16 length;
431 UINT16 canWrapLineAfter :1;
432 UINT16 isWhitespace :1;
433 UINT16 isNewline :1;
434 UINT16 isSoftHyphen :1;
435 UINT16 isRightToLeft :1;
436 UINT16 padding :11;
437 } DWRITE_CLUSTER_METRICS;
438
439 typedef struct DWRITE_FONT_FEATURE {
440 DWRITE_FONT_FEATURE_TAG nameTag;
441 UINT32 parameter;
442 } DWRITE_FONT_FEATURE;
443
444 typedef struct DWRITE_FONT_METRICS {
445 UINT16 designUnitsPerEm;
446 UINT16 ascent;
447 UINT16 descent;
448 INT16 lineGap;
449 UINT16 capHeight;
450 UINT16 xHeight;
451 INT16 underlinePosition;
452 UINT16 underlineThickness;
453 INT16 strikethroughPosition;
454 UINT16 strikethroughThickness;
455 } DWRITE_FONT_METRICS;
456
457 typedef struct DWRITE_GLYPH_METRICS {
458 INT32 leftSideBearing;
459 UINT32 advanceWidth;
460 INT32 rightSideBearing;
461 INT32 topSideBearing;
462 UINT32 advanceHeight;
463 INT32 bottomSideBearing;
464 INT32 verticalOriginY;
465 } DWRITE_GLYPH_METRICS;
466
467 typedef struct DWRITE_GLYPH_OFFSET {
468 FLOAT advanceOffset;
469 FLOAT ascenderOffset;
470 } DWRITE_GLYPH_OFFSET;
471
472 typedef struct DWRITE_GLYPH_RUN {
473 IDWriteFontFace *fontFace;
474 FLOAT fontEmSize;
475 UINT32 glyphCount;
476 const UINT16 *glyphIndices;
477 const FLOAT *glyphAdvances;
478 const DWRITE_GLYPH_OFFSET *glyphOffsets;
479 WINBOOL isSideways;
480 UINT32 bidiLevel;
481 } DWRITE_GLYPH_RUN;
482
483 typedef struct DWRITE_GLYPH_RUN_DESCRIPTION {
484 const WCHAR *localeName;
485 const WCHAR *string;
486 UINT32 stringLength;
487 const UINT16 *clusterMap;
488 UINT32 textPosition;
489 } DWRITE_GLYPH_RUN_DESCRIPTION;
490
491 typedef struct DWRITE_HIT_TEST_METRICS {
492 UINT32 textPosition;
493 UINT32 length;
494 FLOAT left;
495 FLOAT top;
496 FLOAT width;
497 FLOAT height;
498 UINT32 bidiLevel;
499 WINBOOL isText;
500 WINBOOL isTrimmed;
501 } DWRITE_HIT_TEST_METRICS;
502
503 typedef struct DWRITE_INLINE_OBJECT_METRICS {
504 FLOAT width;
505 FLOAT height;
506 FLOAT baseline;
507 WINBOOL supportsSideways;
508 } DWRITE_INLINE_OBJECT_METRICS;
509
510 typedef struct DWRITE_LINE_BREAKPOINT {
511 UINT8 breakConditionBefore :2;
512 UINT8 breakConditionAfter :2;
513 UINT8 isWhitespace :1;
514 UINT8 isSoftHyphen :1;
515 UINT8 padding :2;
516 } DWRITE_LINE_BREAKPOINT;
517
518 typedef struct DWRITE_LINE_METRICS {
519 UINT32 length;
520 UINT32 trailingWhitespaceLength;
521 UINT32 newlineLength;
522 FLOAT height;
523 FLOAT baseline;
524 WINBOOL isTrimmed;
525 } DWRITE_LINE_METRICS;
526
527 typedef struct DWRITE_MATRIX {
528 FLOAT m11;
529 FLOAT m12;
530 FLOAT m21;
531 FLOAT m22;
532 FLOAT dx;
533 FLOAT dy;
534 } DWRITE_MATRIX;
535
536 typedef struct DWRITE_SCRIPT_ANALYSIS {
537 UINT16 script;
538 DWRITE_SCRIPT_SHAPES shapes;
539 } DWRITE_SCRIPT_ANALYSIS;
540
541 typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES {
542 UINT16 justification :4;
543 UINT16 isClusterStart :1;
544 UINT16 isDiacritic :1;
545 UINT16 isZeroWidthSpace :1;
546 UINT16 reserved :9;
547 } DWRITE_SHAPING_GLYPH_PROPERTIES;
548
549 typedef struct DWRITE_SHAPING_TEXT_PROPERTIES {
550 UINT16 isShapedAlone :1;
551 UINT16 reserved :15;
552 } DWRITE_SHAPING_TEXT_PROPERTIES;
553
554 typedef struct DWRITE_STRIKETHROUGH {
555 FLOAT width;
556 FLOAT thickness;
557 FLOAT offset;
558 DWRITE_READING_DIRECTION readingDirection;
559 DWRITE_FLOW_DIRECTION flowDirection;
560 const WCHAR *localeName;
561 DWRITE_MEASURING_MODE measuringMode;
562 } DWRITE_STRIKETHROUGH;
563
564 typedef struct DWRITE_TEXT_METRICS {
565 FLOAT left;
566 FLOAT top;
567 FLOAT width;
568 FLOAT widthIncludingTrailingWhitespace;
569 FLOAT height;
570 FLOAT layoutWidth;
571 FLOAT layoutHeight;
572 UINT32 maxBidiReorderingDepth;
573 UINT32 lineCount;
574 } DWRITE_TEXT_METRICS;
575
576 typedef struct DWRITE_TEXT_RANGE {
577 UINT32 startPosition;
578 UINT32 length;
579 } DWRITE_TEXT_RANGE;
580
581 typedef struct DWRITE_TRIMMING {
582 DWRITE_TRIMMING_GRANULARITY granularity;
583 UINT32 delimiter;
584 UINT32 delimiterCount;
585 } DWRITE_TRIMMING;
586
587 typedef struct DWRITE_TYPOGRAPHIC_FEATURES {
588 DWRITE_FONT_FEATURE *features;
589 UINT32 featureCount;
590 } DWRITE_TYPOGRAPHIC_FEATURES;
591
592 typedef struct DWRITE_UNDERLINE {
593 FLOAT width;
594 FLOAT thickness;
595 FLOAT offset;
596 FLOAT runHeight;
597 DWRITE_READING_DIRECTION readingDirection;
598 DWRITE_FLOW_DIRECTION flowDirection;
599 const WCHAR *localeName;
600 DWRITE_MEASURING_MODE measuringMode;
601 } DWRITE_UNDERLINE;
602
603 #define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \
604 (static_cast<UINT32>(static_cast<UINT8>(d)) << 24) | \
605 (static_cast<UINT32>(static_cast<UINT8>(c)) << 16) | \
606 (static_cast<UINT32>(static_cast<UINT8>(b)) << 8) | \
607 static_cast<UINT32>(static_cast<UINT8>(a)))
608
609 #ifndef __MINGW_DEF_ARG_VAL
610 #ifdef __cplusplus
611 #define __MINGW_DEF_ARG_VAL(x) = x
612 #else
613 #define __MINGW_DEF_ARG_VAL(x)
614 #endif
615 #endif
616
617 #undef INTERFACE
618 #define INTERFACE IDWriteBitmapRenderTarget
DECLARE_INTERFACE_(IDWriteBitmapRenderTarget,IUnknown)619 DECLARE_INTERFACE_(IDWriteBitmapRenderTarget,IUnknown)
620 {
621 BEGIN_INTERFACE
622
623 #ifndef __cplusplus
624 /* IUnknown methods */
625 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
626 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
627 STDMETHOD_(ULONG, Release)(THIS) PURE;
628 #endif
629
630 /* IDWriteBitmapRenderTarget methods */
631 STDMETHOD(DrawGlyphRun)(THIS_
632 FLOAT baselineOriginX,
633 FLOAT baselineOriginY,
634 DWRITE_MEASURING_MODE measuringMode,
635 DWRITE_GLYPH_RUN const *glyphRun,
636 IDWriteRenderingParams *renderingParams,
637 COLORREF textColor,
638 RECT *blackBoxRect __MINGW_DEF_ARG_VAL(NULL)) PURE;
639
640 STDMETHOD_(HDC, GetMemoryDC)(THIS) PURE;
641 STDMETHOD_(FLOAT, GetPixelsPerDip)(THIS) PURE;
642
643 STDMETHOD(SetPixelsPerDip)(THIS_
644 FLOAT pixelsPerDip) PURE;
645
646 STDMETHOD(GetCurrentTransform)(THIS_
647 DWRITE_MATRIX* transform) PURE;
648
649 STDMETHOD(SetCurrentTransform)(THIS_
650 DWRITE_MATRIX const *transform) PURE;
651
652 STDMETHOD(GetSize)(THIS_
653 SIZE *size) PURE;
654
655 STDMETHOD(Resize)(THIS_
656 UINT32 width,
657 UINT32 height) PURE;
658
659 END_INTERFACE
660 };
661 #ifdef COBJMACROS
662 #define IDWriteBitmapRenderTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
663 #define IDWriteBitmapRenderTarget_AddRef(This) (This)->lpVtbl->AddRef(This)
664 #define IDWriteBitmapRenderTarget_Release(This) (This)->lpVtbl->Release(This)
665 #define IDWriteBitmapRenderTarget_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuringMode,glyphRun,renderingParams,textColor,blackBoxRect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuringMode,glyphRun,renderingParams,textColor,blackBoxRect)
666 #define IDWriteBitmapRenderTarget_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
667 #define IDWriteBitmapRenderTarget_GetMemoryDC() (This)->lpVtbl->GetMemoryDC(This)
668 #define IDWriteBitmapRenderTarget_GetPixelsPerDip() (This)->lpVtbl->GetPixelsPerDip(This)
669 #define IDWriteBitmapRenderTarget_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
670 #define IDWriteBitmapRenderTarget_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
671 #define IDWriteBitmapRenderTarget_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
672 #define IDWriteBitmapRenderTarget_SetPixelsPerDip(This,pixelsPerDip) (This)->lpVtbl->SetPixelsPerDip(This,pixelsPerDip)
673 #endif /*COBJMACROS*/
674
675 #undef INTERFACE
676 #define INTERFACE IDWriteFactory
DECLARE_INTERFACE_(IDWriteFactory,IUnknown)677 DECLARE_INTERFACE_(IDWriteFactory,IUnknown)
678 {
679 BEGIN_INTERFACE
680
681 #ifndef __cplusplus
682 /* IUnknown methods */
683 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
684 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
685 STDMETHOD_(ULONG, Release)(THIS) PURE;
686 #endif
687
688 /* IDWriteFactory methods */
689 STDMETHOD(GetSystemFontCollection)(THIS_
690 IDWriteFontCollection **fontCollection,
691 WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
692
693 STDMETHOD(CreateCustomFontCollection)(THIS_
694 IDWriteFontCollectionLoader *collectionLoader,
695 void const *collectionKey,
696 UINT32 collectionKeySize,
697 IDWriteFontCollection **fontCollection) PURE;
698
699 STDMETHOD(RegisterFontCollectionLoader)(THIS_
700 IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
701
702 STDMETHOD(UnregisterFontCollectionLoader)(THIS_
703 IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
704
705 STDMETHOD(CreateFontFileReference)(THIS_
706 WCHAR const *filePath,
707 FILETIME const *lastWriteTime,
708 IDWriteFontFile **fontFile) PURE;
709
710 STDMETHOD(CreateCustomFontFileReference)(THIS_
711 void const *fontFileReferenceKey,
712 UINT32 fontFileReferenceKeySize,
713 IDWriteFontFileLoader *fontFileLoader,
714 IDWriteFontFile **fontFile) PURE;
715
716 STDMETHOD(CreateFontFace)(THIS_
717 DWRITE_FONT_FACE_TYPE fontFaceType,
718 UINT32 numberOfFiles,
719 IDWriteFontFile *const *fontFiles,
720 UINT32 faceIndex,
721 DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,
722 IDWriteFontFace **fontFace) PURE;
723
724 STDMETHOD(CreateRenderingParams)(THIS_
725 IDWriteRenderingParams **renderingParams) PURE;
726
727 STDMETHOD(CreateMonitorRenderingParams)(THIS_
728 HMONITOR monitor,
729 IDWriteRenderingParams **renderingParams) PURE;
730
731 STDMETHOD(CreateCustomRenderingParams)(THIS_
732 FLOAT gamma,
733 FLOAT enhancedContrast,
734 FLOAT clearTypeLevel,
735 DWRITE_PIXEL_GEOMETRY pixelGeometry,
736 DWRITE_RENDERING_MODE renderingMode,
737 IDWriteRenderingParams **renderingParams) PURE;
738
739 STDMETHOD(RegisterFontFileLoader)(THIS_
740 IDWriteFontFileLoader *fontFileLoader) PURE;
741
742 STDMETHOD(UnregisterFontFileLoader)(THIS_
743 IDWriteFontFileLoader *fontFileLoader) PURE;
744
745 STDMETHOD(CreateTextFormat)(THIS_
746 WCHAR const *fontFamilyName,
747 IDWriteFontCollection *fontCollection,
748 DWRITE_FONT_WEIGHT fontWeight,
749 DWRITE_FONT_STYLE fontStyle,
750 DWRITE_FONT_STRETCH fontStretch,
751 FLOAT fontSize,
752 WCHAR const *localeName,
753 IDWriteTextFormat **textFormat) PURE;
754
755 STDMETHOD(CreateTypography)(THIS_
756 IDWriteTypography **typography) PURE;
757
758 STDMETHOD(GetGdiInterop)(THIS_
759 IDWriteGdiInterop **gdiInterop) PURE;
760
761 STDMETHOD(CreateTextLayout)(THIS_
762 WCHAR const *string,
763 UINT32 stringLength,
764 IDWriteTextFormat *textFormat,
765 FLOAT maxWidth,
766 FLOAT maxHeight,
767 IDWriteTextLayout **textLayout) PURE;
768
769 STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_
770 WCHAR const *string,
771 UINT32 stringLength,
772 IDWriteTextFormat *textFormat,
773 FLOAT layoutWidth,
774 FLOAT layoutHeight,
775 FLOAT pixelsPerDip,
776 DWRITE_MATRIX const *transform,
777 WINBOOL useGdiNatural,
778 IDWriteTextLayout **textLayout) PURE;
779
780 STDMETHOD(CreateEllipsisTrimmingSign)(THIS_
781 IDWriteTextFormat *textFormat,
782 IDWriteInlineObject **trimmingSign) PURE;
783
784 STDMETHOD(CreateTextAnalyzer)(THIS_
785 IDWriteTextAnalyzer **textAnalyzer) PURE;
786
787 STDMETHOD(CreateNumberSubstitution)(THIS_
788 DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod,
789 WCHAR const *localeName,
790 WINBOOL ignoreUserOverride,
791 IDWriteNumberSubstitution **numberSubstitution) PURE;
792
793 STDMETHOD(CreateGlyphRunAnalysis)(THIS_
794 DWRITE_GLYPH_RUN const *glyphRun,
795 FLOAT pixelsPerDip,
796 DWRITE_MATRIX const *transform,
797 DWRITE_RENDERING_MODE renderingMode,
798 DWRITE_MEASURING_MODE measuringMode,
799 FLOAT baselineOriginX,
800 FLOAT baselineOriginY,
801 IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE;
802
803 END_INTERFACE
804 };
805 #ifdef COBJMACROS
806 #define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
807 #define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
808 #define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This)
809 #define IDWriteFactory_CreateCustomFontCollection(This,collectionLoader,collectionKey,collectionKeySize,fontCollection) (This)->lpVtbl->CreateCustomFontCollection(This,collectionLoader,collectionKey,collectionKeySize,fontCollection)
810 #define IDWriteFactory_CreateCustomFontFileReference(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileLoader,fontFile) (This)->lpVtbl->CreateCustomFontFileReference(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileLoader,fontFile)
811 #define IDWriteFactory_CreateCustomRenderingParams(This,gamma,enhancedContrast,clearTypeLevel,pixelGeometry,renderingMode,renderingParams) (This)->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,clearTypeLevel,pixelGeometry,renderingMode,renderingParams)
812 #define IDWriteFactory_CreateGdiCompatibleTextLayout(This,string,stringLength,textFormat,layoutWidth,layoutHeight,pixelsPerDip,transform,useGdiNatural,textLayout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,stringLength,textFormat,layoutWidth,layoutHeight,pixelsPerDip,transform,useGdiNatural,textLayout)
813 #define IDWriteFactory_CreateEllipsisTrimmingSign(This,textFormat,trimmingSign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,textFormat,trimmingSign)
814 #define IDWriteFactory_CreateFontFace(This,fontFaceType,numberOfFiles,fontFiles,faceIndex,fontFaceSimulationFlags,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFaceType,numberOfFiles,fontFiles,faceIndex,fontFaceSimulationFlags,fontFace)
815 #define IDWriteFactory_CreateFontFileReference(This,filePath,lastWriteTime,fontFile) (This)->lpVtbl->CreateFontFileReference(This,filePath,lastWriteTime,fontFile)
816 #define IDWriteFactory_CreateGlyphRunAnalysis(This,glyphRun,pixelsPerDip,transform,renderingMode,measuringMode,baselineOriginX,baselineOriginY,glyphRunAnalysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyphRun,pixelsPerDip,transform,renderingMode,measuringMode,baselineOriginX,baselineOriginY,glyphRunAnalysis)
817 #define IDWriteFactory_CreateMonitorRenderingParams(This,monitor,renderingParams) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,renderingParams)
818 #define IDWriteFactory_CreateNumberSubstitution(This,substitutionMethod,localeName,ignoreUserOverride,numberSubstitution) (This)->lpVtbl->CreateNumberSubstitution(This,substitutionMethod,localeName,ignoreUserOverride,numberSubstitution)
819 #define IDWriteFactory_CreateRenderingParams(This,renderingParams) (This)->lpVtbl->CreateRenderingParams(This,renderingParams)
820 #define IDWriteFactory_CreateTextAnalyzer(This,textAnalyzer) (This)->lpVtbl->CreateTextAnalyzer(This,textAnalyzer)
821 #define IDWriteFactory_CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat) (This)->lpVtbl->CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat)
822 #define IDWriteFactory_CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout) (This)->lpVtbl->CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout)
823 #define IDWriteFactory_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
824 #define IDWriteFactory_GetGdiInterop(This,gdiInterop) (This)->lpVtbl->GetGdiInterop(This,gdiInterop)
825 #define IDWriteFactory_GetSystemFontCollection(This,fontCollection,checkForUpdates) (This)->lpVtbl->GetSystemFontCollection(This,fontCollection,checkForUpdates)
826 #define IDWriteFactory_RegisterFontCollectionLoader(This,fontCollectionLoader) (This)->lpVtbl->RegisterFontCollectionLoader(This,fontCollectionLoader)
827 #define IDWriteFactory_RegisterFontFileLoader(This,fontFileLoader) (This)->lpVtbl->RegisterFontFileLoader(This,fontFileLoader)
828 #define IDWriteFactory_UnregisterFontCollectionLoader(This,fontCollectionLoader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,fontCollectionLoader)
829 #define IDWriteFactory_UnregisterFontFileLoader(This,fontFileLoader) (This)->lpVtbl->UnregisterFontFileLoader(This,fontFileLoader)
830 #endif /*COBJMACROS*/
831
832 #undef INTERFACE
833 #define INTERFACE IDWriteFont
DECLARE_INTERFACE_(IDWriteFont,IUnknown)834 DECLARE_INTERFACE_(IDWriteFont,IUnknown)
835 {
836 BEGIN_INTERFACE
837
838 #ifndef __cplusplus
839 /* IUnknown methods */
840 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
841 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
842 STDMETHOD_(ULONG, Release)(THIS) PURE;
843 #endif
844
845 /* IDWriteFont methods */
846 STDMETHOD(GetFontFamily)(THIS_
847 IDWriteFontFamily **fontFamily) PURE;
848
849 STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE;
850 STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE;
851 STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE;
852 STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
853
854 STDMETHOD(GetFaceNames)(THIS_
855 IDWriteLocalizedStrings **names) PURE;
856
857 STDMETHOD(GetInformationalStrings)(THIS_
858 DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
859 IDWriteLocalizedStrings **informationalStrings,
860 WINBOOL *exists) PURE;
861
862 STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
863
864 STDMETHOD_(void, GetMetrics)(THIS_
865 DWRITE_FONT_METRICS *fontMetrics) PURE;
866
867 STDMETHOD(HasCharacter)(THIS_
868 UINT32 unicodeValue,
869 WINBOOL *exists) PURE;
870
871 STDMETHOD(CreateFontFace)(THIS_
872 IDWriteFontFace **fontFace) PURE;
873
874 END_INTERFACE
875 };
876 #ifdef COBJMACROS
877 #define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
878 #define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This)
879 #define IDWriteFont_Release(This) (This)->lpVtbl->Release(This)
880 #define IDWriteFont_CreateFontFace(This,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFace)
881 #define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
882 #define IDWriteFont_GetFontFamily(This,fontFamily) (This)->lpVtbl->GetFontFamily(This,fontFamily)
883 #define IDWriteFont_GetInformationalStrings(This,informationalStringID,informationalStrings,exists) (This)->lpVtbl->GetInformationalStrings(This,informationalStringID,informationalStrings,exists)
884 #define IDWriteFont_GetMetrics(This,fontMetrics) (This)->lpVtbl->GetMetrics(This,fontMetrics)
885 #define IDWriteFont_GetSimulations() (This)->lpVtbl->GetSimulations(This)
886 #define IDWriteFont_GetStretch() (This)->lpVtbl->GetStretch(This)
887 #define IDWriteFont_GetStyle() (This)->lpVtbl->GetStyle(This)
888 #define IDWriteFont_GetWeight() (This)->lpVtbl->GetWeight(This)
889 #define IDWriteFont_HasCharacter(This,unicodeValue,exists) (This)->lpVtbl->HasCharacter(This,unicodeValue,exists)
890 #define IDWriteFont_IsSymbolFont() (This)->lpVtbl->IsSymbolFont(This)
891 #endif /*COBJMACROS*/
892
893 #undef INTERFACE
894 #define INTERFACE IDWriteFontCollection
DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown)895 DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown)
896 {
897 BEGIN_INTERFACE
898
899 #ifndef __cplusplus
900 /* IUnknown methods */
901 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
902 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
903 STDMETHOD_(ULONG, Release)(THIS) PURE;
904 #endif
905
906 /* IDWriteFontCollection methods */
907 STDMETHOD_(UINT32, GetFontFamilyCount)(THIS) PURE;
908
909 STDMETHOD(GetFontFamily)(THIS_
910 UINT32 index,
911 IDWriteFontFamily **fontFamily) PURE;
912
913 STDMETHOD(FindFamilyName)(THIS_
914 WCHAR const *familyName,
915 UINT32 *index,
916 WINBOOL *exists) PURE;
917
918 STDMETHOD(GetFontFromFontFace)(THIS_
919 IDWriteFontFace* fontFace,
920 IDWriteFont **font) PURE;
921
922 END_INTERFACE
923 };
924 #ifdef COBJMACROS
925 #define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
926 #define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
927 #define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This)
928 #define IDWriteFontCollection_FindFamilyName(This,familyName,index,exists) (This)->lpVtbl->FindFamilyName(This,familyName,index,exists)
929 #define IDWriteFontCollection_GetFontFamily(This,index,fontFamily) (This)->lpVtbl->GetFontFamily(This,index,fontFamily)
930 #define IDWriteFontCollection_GetFontFamilyCount() (This)->lpVtbl->GetFontFamilyCount(This)
931 #define IDWriteFontCollection_GetFontFromFontFace(This,fontFace,font) (This)->lpVtbl->GetFontFromFontFace(This,fontFace,font)
932 #endif /*COBJMACROS*/
933
934 #undef INTERFACE
935 #define INTERFACE IDWriteFontFace
DECLARE_INTERFACE_(IDWriteFontFace,IUnknown)936 DECLARE_INTERFACE_(IDWriteFontFace,IUnknown)
937 {
938 BEGIN_INTERFACE
939
940 #ifndef __cplusplus
941 /* IUnknown methods */
942 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
943 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
944 STDMETHOD_(ULONG, Release)(THIS) PURE;
945 #endif
946
947 /* IDWriteFontFace methods */
948 STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
949
950 STDMETHOD(GetFiles)(THIS_
951 UINT32 *numberOfFiles,
952 IDWriteFontFile **fontFiles) PURE;
953
954 STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
955 STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
956 STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
957
958 STDMETHOD_(void, GetMetrics)(THIS_
959 DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
960
961 STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE;
962
963 STDMETHOD(GetDesignGlyphMetrics)(THIS_
964 UINT16 const *glyphIndices,
965 UINT32 glyphCount,
966 DWRITE_GLYPH_METRICS *glyphMetrics,
967 WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
968
969 STDMETHOD(GetGlyphIndices)(THIS_
970 UINT32 const *codePoints,
971 UINT32 codePointCount,
972 UINT16 *glyphIndices) PURE;
973
974 STDMETHOD(TryGetFontTable)(THIS_
975 UINT32 openTypeTableTag,
976 const void **tableData,
977 UINT32 *tableSize,
978 void **tableContext,
979 WINBOOL *exists) PURE;
980
981 STDMETHOD_(void, ReleaseFontTable)(THIS_
982 void *tableContext) PURE;
983
984 STDMETHOD(GetGlyphRunOutline)(THIS_
985 FLOAT emSize,
986 UINT16 const *glyphIndices,
987 FLOAT const *glyphAdvances,
988 DWRITE_GLYPH_OFFSET const *glyphOffsets,
989 UINT32 glyphCount,
990 WINBOOL isSideways,
991 WINBOOL isRightToLeft,
992 IDWriteGeometrySink *geometrySink) PURE;
993
994 STDMETHOD(GetRecommendedRenderingMode)(THIS_
995 FLOAT emSize,
996 FLOAT pixelsPerDip,
997 DWRITE_MEASURING_MODE measuringMode,
998 IDWriteRenderingParams *renderingParams,
999 DWRITE_RENDERING_MODE *renderingMode) PURE;
1000
1001 STDMETHOD(GetGdiCompatibleMetrics)(THIS_
1002 FLOAT emSize,
1003 FLOAT pixelsPerDip,
1004 DWRITE_MATRIX const *transform,
1005 DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
1006
1007
1008 STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_
1009 FLOAT emSize,
1010 FLOAT pixelsPerDip,
1011 DWRITE_MATRIX const *transform,
1012 WINBOOL useGdiNatural,
1013 UINT16 const *glyphIndices,
1014 UINT32 glyphCount,
1015 DWRITE_GLYPH_METRICS *glyphMetrics,
1016 WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
1017
1018 END_INTERFACE
1019 };
1020 #ifdef COBJMACROS
1021 #define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1022 #define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This)
1023 #define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This)
1024 #define IDWriteFontFace_GetDesignGlyphMetrics(This,glyphIndices,glyphCount,glyphMetrics,isSideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyphIndices,glyphCount,glyphMetrics,isSideways)
1025 #define IDWriteFontFace_GetFiles(This,fontFiles) (This)->lpVtbl->GetFiles(This,fontFiles)
1026 #define IDWriteFontFace_GetGdiCompatibleMetrics(This,emSize,pixelsPerDip,transform,fontFaceMetrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixelsPerDip,transform,fontFaceMetrics)
1027 #define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This,emSize,pixelsPerDip,transform,useGdiNatural,glyphIndices,glyphCount,glyphMetrics,isSideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixelsPerDip,transform,useGdiNatural,glyphIndices,glyphCount,glyphMetrics,isSideways)
1028 #define IDWriteFontFace_GetGlyphCount() (This)->lpVtbl->GetGlyphCount(This)
1029 #define IDWriteFontFace_GetGlyphIndices(This,codePoints,codePointCount,glyphIndices) (This)->lpVtbl->GetGlyphIndices(This,codePoints,codePointCount,glyphIndices)
1030 #define IDWriteFontFace_GetGlyphRunOutline(This,emSize,glyphIndices,glyphOffsets,glyphCount,isSideways,isRightToLeft,geometrySink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyphIndices,glyphOffsets,glyphCount,isSideways,isRightToLeft,geometrySink)
1031 #define IDWriteFontFace_GetIndex() (This)->lpVtbl->GetIndex(This)
1032 #define IDWriteFontFace_GetMetrics(This,fontFaceMetrics) (This)->lpVtbl->GetMetrics(This,fontFaceMetrics)
1033 #define IDWriteFontFace_GetRecommendedRenderingMode(This,emSize,pixelsPerDip,measuringMode,renderingParams,renderingMode) (This)->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixelsPerDip,measuringMode,renderingParams,renderingMode)
1034 #define IDWriteFontFace_GetSimulations() (This)->lpVtbl->GetSimulations(This)
1035 #define IDWriteFontFace_GetType() (This)->lpVtbl->GetType(This)
1036 #define IDWriteFontFace_IsSymbolFont() (This)->lpVtbl->IsSymbolFont(This)
1037 #define IDWriteFontFace_ReleaseFontTable(This,tableContext) (This)->lpVtbl->ReleaseFontTable(This,tableContext)
1038 #define IDWriteFontFace_TryGetFontTable(This,openTypeTableTag,tableData,tableSize,tableContext,exists) (This)->lpVtbl->TryGetFontTable(This,openTypeTableTag,tableData,tableSize,tableContext,exists)
1039 #endif /*COBJMACROS*/
1040
1041 #undef INTERFACE
1042 #define INTERFACE IDWriteFontList
DECLARE_INTERFACE_(IDWriteFontList,IUnknown)1043 DECLARE_INTERFACE_(IDWriteFontList,IUnknown)
1044 {
1045 BEGIN_INTERFACE
1046
1047 #ifndef __cplusplus
1048 /* IUnknown methods */
1049 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1050 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1051 STDMETHOD_(ULONG, Release)(THIS) PURE;
1052 #endif
1053
1054 /* IDWriteFontList methods */
1055 STDMETHOD(GetFontCollection)(THIS_
1056 IDWriteFontCollection** fontCollection) PURE;
1057
1058 STDMETHOD_(UINT32, GetFontCount)(THIS) PURE;
1059
1060 STDMETHOD(GetFont)(THIS_
1061 UINT32 index,
1062 IDWriteFont **font) PURE;
1063
1064 END_INTERFACE
1065 };
1066 #ifdef COBJMACROS
1067 #define IDWriteFontList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1068 #define IDWriteFontList_AddRef(This) (This)->lpVtbl->AddRef(This)
1069 #define IDWriteFontList_Release(This) (This)->lpVtbl->Release(This)
1070 #define IDWriteFontList_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font)
1071 #define IDWriteFontList_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection)
1072 #define IDWriteFontList_GetFontCount() (This)->lpVtbl->GetFontCount(This)
1073 #endif /*COBJMACROS*/
1074
1075 #undef INTERFACE
1076 #define INTERFACE IDWriteFontFamily
DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)1077 DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)
1078 {
1079 BEGIN_INTERFACE
1080
1081 #ifndef __cplusplus
1082 /* IUnknown methods */
1083 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1084 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1085 STDMETHOD_(ULONG, Release)(THIS) PURE;
1086
1087 /* IDWriteFontList methods */
1088 STDMETHOD(GetFontCollection)(THIS_
1089 IDWriteFontCollection** fontCollection) PURE;
1090
1091 STDMETHOD_(UINT32, GetFontCount)(THIS) PURE;
1092
1093 STDMETHOD(GetFont)(THIS_
1094 UINT32 index,
1095 IDWriteFont **font) PURE;
1096 #endif
1097
1098 /* IDWriteFontFamily methods */
1099 STDMETHOD(GetFamilyNames)(THIS_
1100 IDWriteLocalizedStrings **names) PURE;
1101
1102 STDMETHOD(GetFirstMatchingFont)(THIS_
1103 DWRITE_FONT_WEIGHT weight,
1104 DWRITE_FONT_STRETCH stretch,
1105 DWRITE_FONT_STYLE style,
1106 IDWriteFont **matchingFont) PURE;
1107
1108 STDMETHOD(GetMatchingFonts)(THIS_
1109 DWRITE_FONT_WEIGHT weight,
1110 DWRITE_FONT_STRETCH stretch,
1111 DWRITE_FONT_STYLE style,
1112 IDWriteFontList **matchingFonts) PURE;
1113
1114 END_INTERFACE
1115 };
1116 #ifdef COBJMACROS
1117 #define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1118 #define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This)
1119 #define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This)
1120 #define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font)
1121 #define IDWriteFontFamily_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection)
1122 #define IDWriteFontFamily_GetFontCount() (This)->lpVtbl->GetFontCount(This)
1123 #define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
1124 #define IDWriteFontFamily_GetFirstMatchingFont(This,weight,stretch,style,matchingFont) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,matchingFont)
1125 #define IDWriteFontFamily_GetMatchingFonts(This,weight,stretch,style,matchingFonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,matchingFonts)
1126 #endif /*COBJMACROS*/
1127
1128 #undef INTERFACE
1129 #define INTERFACE IDWriteFontFile
DECLARE_INTERFACE_(IDWriteFontFile,IUnknown)1130 DECLARE_INTERFACE_(IDWriteFontFile,IUnknown)
1131 {
1132 BEGIN_INTERFACE
1133
1134 #ifndef __cplusplus
1135 /* IUnknown methods */
1136 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1137 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1138 STDMETHOD_(ULONG, Release)(THIS) PURE;
1139 #endif
1140
1141 /* IDWriteFontFile methods */
1142 STDMETHOD(GetReferenceKey)(THIS_
1143 void const **fontFileReferenceKey,
1144 UINT32 *fontFileReferenceKeySize) PURE;
1145
1146 STDMETHOD(GetLoader)(THIS_
1147 IDWriteFontFileLoader **fontFileLoader) PURE;
1148
1149 STDMETHOD(Analyze)(THIS_
1150 WINBOOL *isSupportedFontType,
1151 DWRITE_FONT_FILE_TYPE *fontFileType,
1152 DWRITE_FONT_FACE_TYPE *fontFaceType,
1153 UINT32 *numberOfFaces) PURE;
1154
1155 END_INTERFACE
1156 };
1157 #ifdef COBJMACROS
1158 #define IDWriteFontFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1159 #define IDWriteFontFile_AddRef(This) (This)->lpVtbl->AddRef(This)
1160 #define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This)
1161 #define IDWriteFontFile_Analyze(This,isSupportedFontType,fontFileType,fontFaceType,numberOfFaces) (This)->lpVtbl->Analyze(This,isSupportedFontType,fontFileType,fontFaceType,numberOfFaces)
1162 #define IDWriteFontFile_GetLoader(This,fontFileLoader) (This)->lpVtbl->GetLoader(This,fontFileLoader)
1163 #define IDWriteFontFile_GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize) (This)->lpVtbl->GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize)
1164 #endif /*COBJMACROS*/
1165
1166 #undef INTERFACE
1167 #define INTERFACE IDWriteFontFileLoader
DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown)1168 DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown)
1169 {
1170 BEGIN_INTERFACE
1171
1172 #ifndef __cplusplus
1173 /* IUnknown methods */
1174 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1175 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1176 STDMETHOD_(ULONG, Release)(THIS) PURE;
1177 #endif
1178
1179 /* IDWriteFontFileLoader methods */
1180 STDMETHOD(CreateStreamFromKey)(
1181 void const *fontFileReferenceKey,
1182 UINT32 fontFileReferenceKeySize,
1183 IDWriteFontFileStream **fontFileStream) PURE;
1184
1185 END_INTERFACE
1186 };
1187 #ifdef COBJMACROS
1188 #define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1189 #define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
1190 #define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
1191 #define IDWriteFontFileLoader_CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream) (This)->lpVtbl->CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream)
1192 #endif /*COBJMACROS*/
1193
1194 #undef INTERFACE
1195 #define INTERFACE IDWriteFontFileStream
DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown)1196 DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown)
1197 {
1198 BEGIN_INTERFACE
1199
1200 #ifndef __cplusplus
1201 /* IUnknown methods */
1202 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1203 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1204 STDMETHOD_(ULONG, Release)(THIS) PURE;
1205 #endif
1206
1207 /* IDWriteFontFileStream methods */
1208 STDMETHOD(ReadFileFragment)(THIS_
1209 void const **fragmentStart,
1210 UINT64 fileOffset,
1211 UINT64 fragmentSize,
1212 void** fragmentContext) PURE;
1213
1214 STDMETHOD_(void, ReleaseFileFragment)(THIS_
1215 void *fragmentContext) PURE;
1216
1217 STDMETHOD(GetFileSize)(THIS_
1218 UINT64 *fileSize) PURE;
1219
1220 STDMETHOD(GetLastWriteTime)(THIS_
1221 UINT64 *lastWriteTime) PURE;
1222
1223 END_INTERFACE
1224 };
1225 #ifdef COBJMACROS
1226 #define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1227 #define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
1228 #define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This)
1229 #define IDWriteFontFileStream_GetFileSize(This,fileSize) (This)->lpVtbl->GetFileSize(This,fileSize)
1230 #define IDWriteFontFileStream_GetLastWriteTime(This,lastWriteTime) (This)->lpVtbl->GetLastWriteTime(This,lastWriteTime)
1231 #define IDWriteFontFileStream_ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext) (This)->lpVtbl->ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext)
1232 #define IDWriteFontFileStream_ReleaseFileFragment(This,fragmentContext) (This)->lpVtbl->ReleaseFileFragment(This,fragmentContext)
1233 #endif /*COBJMACROS*/
1234
1235 #undef INTERFACE
1236 #define INTERFACE IDWriteFontCollectionLoader
DECLARE_INTERFACE_(IDWriteFontCollectionLoader,IUnknown)1237 DECLARE_INTERFACE_(IDWriteFontCollectionLoader,IUnknown)
1238 {
1239 BEGIN_INTERFACE
1240
1241 #ifndef __cplusplus
1242 /* IUnknown methods */
1243 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1244 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1245 STDMETHOD_(ULONG, Release)(THIS) PURE;
1246 #endif
1247
1248 /* IDWriteFontCollectionLoader methods */
1249 STDMETHOD_(HRESULT,CreateEnumeratorFromKey)(THIS_ IDWriteFactory * factory,const void * collectionKey,UINT32 collectionKeySize,IDWriteFontFileEnumerator ** fontFileEnumerator) PURE;
1250
1251 END_INTERFACE
1252 };
1253 #ifdef COBJMACROS
1254 #define IDWriteFontCollectionLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1255 #define IDWriteFontCollectionLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
1256 #define IDWriteFontCollectionLoader_Release(This) (This)->lpVtbl->Release(This)
1257 #define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This,factory,collectionKey,collectionKeySize,fontFileEnumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This,factory,collectionKey,collectionKeySize,fontFileEnumerator)
1258 #endif /*COBJMACROS*/
1259
1260 #undef INTERFACE
1261 #define INTERFACE IDWriteFontFileEnumerator
DECLARE_INTERFACE_(IDWriteFontFileEnumerator,IUnknown)1262 DECLARE_INTERFACE_(IDWriteFontFileEnumerator,IUnknown)
1263 {
1264 BEGIN_INTERFACE
1265
1266 #ifndef __cplusplus
1267 /* IUnknown methods */
1268 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1269 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1270 STDMETHOD_(ULONG, Release)(THIS) PURE;
1271 #endif
1272
1273 /* IDWriteFontFileEnumerator methods */
1274 STDMETHOD_(HRESULT,MoveNext)(THIS_ WINBOOL * hasCurrentFile) PURE;
1275 STDMETHOD_(HRESULT,GetCurrentFontFile)(THIS_ IDWriteFontFile ** fontFile) PURE;
1276
1277 END_INTERFACE
1278 };
1279 #ifdef COBJMACROS
1280 #define IDWriteFontFileEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1281 #define IDWriteFontFileEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
1282 #define IDWriteFontFileEnumerator_Release(This) (This)->lpVtbl->Release(This)
1283 #define IDWriteFontFileEnumerator_GetCurrentFontFile(This,fontFile) (This)->lpVtbl->GetCurrentFontFile(This,fontFile)
1284 #define IDWriteFontFileEnumerator_MoveNext(This,hasCurrentFile) (This)->lpVtbl->MoveNext(This,hasCurrentFile)
1285 #endif /*COBJMACROS*/
1286
1287 #undef INTERFACE
1288 #define INTERFACE IDWriteGdiInterop
DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown)1289 DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown)
1290 {
1291 BEGIN_INTERFACE
1292
1293 #ifndef __cplusplus
1294 /* IUnknown methods */
1295 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1296 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1297 STDMETHOD_(ULONG, Release)(THIS) PURE;
1298 #endif
1299
1300 /* IDWriteGdiInterop methods */
1301 STDMETHOD(CreateFontFromLOGFONT)(THIS_
1302 LOGFONTW const *logFont,
1303 IDWriteFont **font) PURE;
1304
1305 STDMETHOD(ConvertFontToLOGFONT)(THIS_
1306 IDWriteFont *font,
1307 LOGFONTW *logFont,
1308 WINBOOL *isSystemFont) PURE;
1309
1310 STDMETHOD(ConvertFontFaceToLOGFONT)(THIS_
1311 IDWriteFontFace *font,
1312 LOGFONTW *logFont) PURE;
1313
1314 STDMETHOD(CreateFontFaceFromHdc)(THIS_
1315 HDC hdc,
1316 IDWriteFontFace **fontFace) PURE;
1317
1318 STDMETHOD(CreateBitmapRenderTarget)(THIS_
1319 HDC hdc,
1320 UINT32 width,
1321 UINT32 height,
1322 IDWriteBitmapRenderTarget **renderTarget) PURE;
1323
1324 END_INTERFACE
1325 };
1326 #ifdef COBJMACROS
1327 #define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1328 #define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
1329 #define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This)
1330 #define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This,font,logFont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logFont)
1331 #define IDWriteGdiInterop_ConvertFontToLOGFONT(This,font,logFont,isSystemFont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logFont,isSystemFont)
1332 #define IDWriteGdiInterop_CreateBitmapRenderTarget(This,hdc,width,height,renderTarget) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,renderTarget)
1333 #define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontFace) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontFace)
1334 #define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logFont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logFont,font)
1335 #endif /*COBJMACROS*/
1336
1337 #undef INTERFACE
1338 #define INTERFACE IDWriteGlyphRunAnalysis
DECLARE_INTERFACE_(IDWriteGlyphRunAnalysis,IUnknown)1339 DECLARE_INTERFACE_(IDWriteGlyphRunAnalysis,IUnknown)
1340 {
1341 BEGIN_INTERFACE
1342
1343 #ifndef __cplusplus
1344 /* IUnknown methods */
1345 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1346 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1347 STDMETHOD_(ULONG, Release)(THIS) PURE;
1348 #endif
1349
1350 /* IDWriteGlyphRunAnalysis methods */
1351 STDMETHOD(GetAlphaTextureBounds)(THIS_
1352 DWRITE_TEXTURE_TYPE textureType,
1353 RECT *textureBounds) PURE;
1354
1355 STDMETHOD(CreateAlphaTexture)(THIS_
1356 DWRITE_TEXTURE_TYPE textureType,
1357 RECT const *textureBounds,
1358 BYTE *alphaValues,
1359 UINT32 bufferSize) PURE;
1360
1361 STDMETHOD(GetAlphaBlendParams)(THIS_
1362 IDWriteRenderingParams *renderingParams,
1363 FLOAT *blendGamma,
1364 FLOAT *blendEnhancedContrast,
1365 FLOAT *blendClearTypeLevel) PURE;
1366
1367 END_INTERFACE
1368 };
1369 #ifdef COBJMACROS
1370 #define IDWriteGlyphRunAnalysis_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1371 #define IDWriteGlyphRunAnalysis_AddRef(This) (This)->lpVtbl->AddRef(This)
1372 #define IDWriteGlyphRunAnalysis_Release(This) (This)->lpVtbl->Release(This)
1373 #define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This,textureType,textureBounds,alphaValues,bufferSize) (This)->lpVtbl->CreateAlphaTexture(This,textureType,textureBounds,alphaValues,bufferSize)
1374 #define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel)
1375 #define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This,textureType,textureBounds) (This)->lpVtbl->GetAlphaTextureBounds(This,textureType,textureBounds)
1376 #endif /*COBJMACROS*/
1377
1378 #undef INTERFACE
1379 #define INTERFACE IDWriteInlineObject
DECLARE_INTERFACE_(IDWriteInlineObject,IUnknown)1380 DECLARE_INTERFACE_(IDWriteInlineObject,IUnknown)
1381 {
1382 BEGIN_INTERFACE
1383
1384 #ifndef __cplusplus
1385 /* IUnknown methods */
1386 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1387 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1388 STDMETHOD_(ULONG, Release)(THIS) PURE;
1389 #endif
1390
1391 /* IDWriteInlineObject methods */
1392 STDMETHOD(Draw)(THIS_
1393 void *clientDrawingContext,
1394 IDWriteTextRenderer *renderer,
1395 FLOAT originX,
1396 FLOAT originY,
1397 WINBOOL isSideways,
1398 WINBOOL isRightToLeft,
1399 IUnknown *clientDrawingEffect) PURE;
1400 STDMETHOD(GetMetrics)(THIS_
1401 DWRITE_INLINE_OBJECT_METRICS *metrics) PURE;
1402 STDMETHOD(GetOverhangMetrics)(THIS_
1403 DWRITE_OVERHANG_METRICS *overhangs) PURE;
1404 STDMETHOD(GetBreakConditions)(THIS_
1405 DWRITE_BREAK_CONDITION *breakConditionBefore,
1406 DWRITE_BREAK_CONDITION *breakConditionAfter) PURE;
1407
1408 END_INTERFACE
1409 };
1410 #ifdef COBJMACROS
1411 #define IDWriteInlineObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1412 #define IDWriteInlineObject_AddRef(This) (This)->lpVtbl->AddRef(This)
1413 #define IDWriteInlineObject_Release(This) (This)->lpVtbl->Release(This)
1414 #define IDWriteInlineObject_Draw(This,clientDrawingContext,renderer,originX,originY,isSideways,isRightToLeft,clientDrawingEffect) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY,isSideways,isRightToLeft,clientDrawingEffect)
1415 #define IDWriteInlineObject_GetBreakConditions(This,breakConditionBefore,breakConditionAfter) (This)->lpVtbl->GetBreakConditions(This,breakConditionBefore,breakConditionAfter)
1416 #define IDWriteInlineObject_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics)
1417 #define IDWriteInlineObject_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
1418 #endif /*COBJMACROS*/
1419
1420 #undef INTERFACE
1421 #define INTERFACE IDWriteLocalFontFileLoader
DECLARE_INTERFACE_(IDWriteLocalFontFileLoader,IDWriteFontFileLoader)1422 DECLARE_INTERFACE_(IDWriteLocalFontFileLoader,IDWriteFontFileLoader)
1423 {
1424 BEGIN_INTERFACE
1425
1426 #ifndef __cplusplus
1427 /* IUnknown methods */
1428 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1429 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1430 STDMETHOD_(ULONG, Release)(THIS) PURE;
1431
1432 /* IDWriteFontFileLoader methods */
1433 STDMETHOD(CreateStreamFromKey(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,IDWriteFontFileStream **fileStream) PURE;
1434 #endif
1435
1436 /* IDWriteLocalFontFileLoader methods */
1437 STDMETHOD(GetFilePathLengthFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,UINT32 *filePathLength) PURE;
1438 STDMETHOD(GetFilePathFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,WCHAR *filePath,UINT32 filePathSize) PURE;
1439 STDMETHOD(GetLastWriteTimeFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,FILETIME *lastWriteTime) PURE;
1440
1441 END_INTERFACE
1442 };
1443 #ifdef COBJMACROS
1444 #define IDWriteLocalFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1445 #define IDWriteLocalFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
1446 #define IDWriteLocalFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
1447 #define IDWriteLocalFontFileLoader_CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fileStream) (This)->lpVtbl->CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fileStream)
1448 #define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePathLength) (This)->lpVtbl->GetFilePathLengthFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePathLength)
1449 #define IDWriteLocalFontFileLoader_GetFilePathFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePath,filePathSize) (This)->lpVtbl->GetFilePathFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePath,filePathSize)
1450 #define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,lastWriteTime) (This)->lpVtbl->GetLastWriteTimeFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,lastWriteTime)
1451 #endif /*COBJMACROS*/
1452
1453 #undef INTERFACE
1454 #define INTERFACE IDWriteLocalizedStrings
1455 DECLARE_INTERFACE_(IDWriteLocalizedStrings,IUnknown)
1456 {
1457 BEGIN_INTERFACE
1458
1459 #ifndef __cplusplus
1460 /* IUnknown methods */
1461 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1462 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1463 STDMETHOD_(ULONG, Release)(THIS) PURE;
1464 #endif
1465
1466 /* IDWriteLocalizedStrings methods */
1467 STDMETHOD_(UINT32, GetCount)(THIS) PURE;
1468
1469 STDMETHOD(FindLocaleName)(THIS_
1470 WCHAR const *localeName,
1471 UINT32 *index,
1472 WINBOOL *exists) PURE;
1473
1474 STDMETHOD(GetLocaleNameLength)(THIS_
1475 UINT32 index,
1476 UINT32 *length) PURE;
1477
1478 STDMETHOD(GetLocaleName)(THIS_
1479 UINT32 index,
1480 WCHAR *localeName,
1481 UINT32 size) PURE;
1482
1483 STDMETHOD(GetStringLength)(THIS_
1484 UINT32 index,
1485 UINT32 *length) PURE;
1486
1487 STDMETHOD(GetString)(THIS_
1488 UINT32 index,
1489 WCHAR *stringBuffer,
1490 UINT32 size) PURE;
1491
1492 END_INTERFACE
1493 };
1494 #ifdef COBJMACROS
1495 #define IDWriteLocalizedStrings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1496 #define IDWriteLocalizedStrings_AddRef(This) (This)->lpVtbl->AddRef(This)
1497 #define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This)
1498 #define IDWriteLocalizedStrings_FindLocaleName(This,localeName,index,exists) (This)->lpVtbl->FindLocaleName(This,localeName,index,exists)
1499 #define IDWriteLocalizedStrings_GetCount() (This)->lpVtbl->GetCount(This)
1500 #define IDWriteLocalizedStrings_GetLocaleName(This,index,localeName,size) (This)->lpVtbl->GetLocaleName(This,index,localeName,size)
1501 #define IDWriteLocalizedStrings_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length)
1502 #define IDWriteLocalizedStrings_GetString(This,index,stringBuffer,size) (This)->lpVtbl->GetString(This,index,stringBuffer,size)
1503 #define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length)
1504 #endif /*COBJMACROS*/
1505
1506 #undef INTERFACE
1507 #define INTERFACE IDWriteNumberSubstitution
1508 DECLARE_INTERFACE_(IDWriteNumberSubstitution,IUnknown)
1509 {
1510 BEGIN_INTERFACE
1511
1512 #ifndef __cplusplus
1513 /* IUnknown methods */
1514 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1515 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1516 STDMETHOD_(ULONG, Release)(THIS) PURE;
1517 #endif
1518
1519 /* IDWriteNumberSubstitution methods */
1520
1521 END_INTERFACE
1522 };
1523 #ifdef COBJMACROS
1524 #define IDWriteNumberSubstitution_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1525 #define IDWriteNumberSubstitution_AddRef(This) (This)->lpVtbl->AddRef(This)
1526 #define IDWriteNumberSubstitution_Release(This) (This)->lpVtbl->Release(This)
1527 #endif /*COBJMACROS*/
1528
1529 #undef INTERFACE
1530 #define INTERFACE IDWritePixelSnapping
1531 DECLARE_INTERFACE_(IDWritePixelSnapping,IUnknown)
1532 {
1533 BEGIN_INTERFACE
1534
1535 #ifndef __cplusplus
1536 /* IUnknown methods */
1537 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1538 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1539 STDMETHOD_(ULONG, Release)(THIS) PURE;
1540 #endif
1541
1542 /* IDWritePixelSnapping methods */
1543 STDMETHOD(IsPixelSnappingDisabled)(THIS_
1544 void *clientDrawingContext,
1545 WINBOOL *isDisabled) PURE;
1546 STDMETHOD(GetCurrentTransform)(THIS_
1547 void *clientDrawingContext,
1548 DWRITE_MATRIX *transform) PURE;
1549 STDMETHOD(GetPixelsPerDip)(THIS_
1550 void *clientDrawingContext,
1551 FLOAT *pixelsPerDip) PURE;
1552
1553 END_INTERFACE
1554 };
1555 #ifdef COBJMACROS
1556 #define IDWritePixelSnapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1557 #define IDWritePixelSnapping_AddRef(This) (This)->lpVtbl->AddRef(This)
1558 #define IDWritePixelSnapping_Release(This) (This)->lpVtbl->Release(This)
1559 #define IDWritePixelSnapping_GetCurrentTransform(This,clientDrawingContext,transform) (This)->lpVtbl->GetCurrentTransform(This,clientDrawingContext,transform)
1560 #define IDWritePixelSnapping_GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) (This)->lpVtbl->GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip)
1561 #define IDWritePixelSnapping_IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) (This)->lpVtbl->IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled)
1562 #endif /*COBJMACROS*/
1563
1564 #undef INTERFACE
1565 #define INTERFACE IDWriteRenderingParams
1566 DECLARE_INTERFACE_(IDWriteRenderingParams,IUnknown)
1567 {
1568 BEGIN_INTERFACE
1569
1570 #ifndef __cplusplus
1571 /* IUnknown methods */
1572 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1573 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1574 STDMETHOD_(ULONG, Release)(THIS) PURE;
1575 #endif
1576
1577 /* IDWriteRenderingParams methods */
1578 STDMETHOD_(FLOAT, GetGamma)(THIS) PURE;
1579 STDMETHOD_(FLOAT, GetEnhancedContrast)(THIS) PURE;
1580 STDMETHOD_(FLOAT, GetClearTypeLevel)(THIS) PURE;
1581 STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)(THIS) PURE;
1582 STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)(THIS) PURE;
1583
1584 END_INTERFACE
1585 };
1586 #ifdef COBJMACROS
1587 #define IDWriteRenderingParams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1588 #define IDWriteRenderingParams_AddRef(This) (This)->lpVtbl->AddRef(This)
1589 #define IDWriteRenderingParams_Release(This) (This)->lpVtbl->Release(This)
1590 #define IDWriteRenderingParams_GetClearTypeLevel() (This)->lpVtbl->GetClearTypeLevel(This)
1591 #define IDWriteRenderingParams_GetEnhancedContrast() (This)->lpVtbl->GetEnhancedContrast(This)
1592 #define IDWriteRenderingParams_GetGamma() (This)->lpVtbl->GetGamma(This)
1593 #define IDWriteRenderingParams_GetPixelGeometry() (This)->lpVtbl->GetPixelGeometry(This)
1594 #define IDWriteRenderingParams_GetRenderingMode() (This)->lpVtbl->GetRenderingMode(This)
1595 #endif /*COBJMACROS*/
1596
1597 #undef INTERFACE
1598 #define INTERFACE IDWriteTextAnalysisSink
1599 DECLARE_INTERFACE_(IDWriteTextAnalysisSink,IUnknown)
1600 {
1601 BEGIN_INTERFACE
1602
1603 #ifndef __cplusplus
1604 /* IUnknown methods */
1605 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1606 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1607 STDMETHOD_(ULONG, Release)(THIS) PURE;
1608 #endif
1609
1610 /* IDWriteTextAnalysisSink methods */
1611 STDMETHOD(SetScriptAnalysis)(
1612 UINT32 textPosition,
1613 UINT32 textLength,
1614 DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis) PURE;
1615
1616 STDMETHOD(SetLineBreakpoints)(
1617 UINT32 textPosition,
1618 UINT32 textLength,
1619 DWRITE_LINE_BREAKPOINT const *lineBreakpoints) PURE;
1620
1621 STDMETHOD(SetBidiLevel)(
1622 UINT32 textPosition,
1623 UINT32 textLength,
1624 UINT8 explicitLevel,
1625 UINT8 resolvedLevel) PURE;
1626
1627 STDMETHOD(SetNumberSubstitution)(
1628 UINT32 textPosition,
1629 UINT32 textLength,
1630 IDWriteNumberSubstitution *numberSubstitution) PURE;
1631
1632 END_INTERFACE
1633 };
1634 #ifdef COBJMACROS
1635 #define IDWriteTextAnalysisSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1636 #define IDWriteTextAnalysisSink_AddRef(This) (This)->lpVtbl->AddRef(This)
1637 #define IDWriteTextAnalysisSink_Release(This) (This)->lpVtbl->Release(This)
1638 #define IDWriteTextAnalysisSink_SetBidiLevel(This,textPosition,textLength,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,textPosition,textLength,explicitLevel,resolvedLevel)
1639 #define IDWriteTextAnalysisSink_SetLineBreakpoints(This,textPosition,textLength,lineBreakpoints) (This)->lpVtbl->SetLineBreakpoints(This,textPosition,textLength,lineBreakpoints)
1640 #define IDWriteTextAnalysisSink_SetNumberSubstitution(This,textPosition,textLength,numberSubstitution) (This)->lpVtbl->SetNumberSubstitution(This,textPosition,textLength,numberSubstitution)
1641 #define IDWriteTextAnalysisSink_SetScriptAnalysis(This,textPosition,textLength,scriptAnalysis) (This)->lpVtbl->SetScriptAnalysis(This,textPosition,textLength,scriptAnalysis)
1642 #endif /*COBJMACROS*/
1643
1644 #undef INTERFACE
1645 #define INTERFACE IDWriteTextAnalysisSource
1646 DECLARE_INTERFACE_(IDWriteTextAnalysisSource,IUnknown)
1647 {
1648 BEGIN_INTERFACE
1649
1650 #ifndef __cplusplus
1651 /* IUnknown methods */
1652 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1653 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1654 STDMETHOD_(ULONG, Release)(THIS) PURE;
1655 #endif
1656
1657 /* IDWriteTextAnalysisSource methods */
1658 STDMETHOD(GetTextAtPosition)(THIS_
1659 UINT32 textPosition,
1660 WCHAR const **textString,
1661 UINT32 *textLength) PURE;
1662
1663 STDMETHOD(GetTextBeforePosition)(THIS_
1664 UINT32 textPosition,
1665 WCHAR const **textString,
1666 UINT32 *textLength) PURE;
1667
1668 STDMETHOD_(DWRITE_READING_DIRECTION, GetParagraphReadingDirection)(THIS) PURE;
1669
1670 STDMETHOD(GetLocaleName)(THIS_
1671 UINT32 textPosition,
1672 UINT32 *textLength,
1673 WCHAR const **localeName) PURE;
1674
1675 STDMETHOD(GetNumberSubstitution)(THIS_
1676 UINT32 textPosition,
1677 UINT32 *textLength,
1678 IDWriteNumberSubstitution **numberSubstitution) PURE;
1679
1680 END_INTERFACE
1681 };
1682 #ifdef COBJMACROS
1683 #define IDWriteTextAnalysisSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1684 #define IDWriteTextAnalysisSource_AddRef(This) (This)->lpVtbl->AddRef(This)
1685 #define IDWriteTextAnalysisSource_Release(This) (This)->lpVtbl->Release(This)
1686 #define IDWriteTextAnalysisSource_GetLocaleName(This,textPosition,textLength,localeName) (This)->lpVtbl->GetLocaleName(This,textPosition,textLength,localeName)
1687 #define IDWriteTextAnalysisSource_GetNumberSubstitution(This,textPosition,textLength,numberSubstitution) (This)->lpVtbl->GetNumberSubstitution(This,textPosition,textLength,numberSubstitution)
1688 #define IDWriteTextAnalysisSource_GetParagraphReadingDirection() (This)->lpVtbl->GetParagraphReadingDirection(This)
1689 #define IDWriteTextAnalysisSource_GetTextAtPosition(This,textPosition,textString,textLength) (This)->lpVtbl->GetTextAtPosition(This,textPosition,textString,textLength)
1690 #define IDWriteTextAnalysisSource_GetTextBeforePosition(This,textPosition,textString,textLength) (This)->lpVtbl->GetTextBeforePosition(This,textPosition,textString,textLength)
1691 #endif /*COBJMACROS*/
1692
1693 #undef INTERFACE
1694 #define INTERFACE IDWriteTextAnalyzer
1695 DECLARE_INTERFACE_(IDWriteTextAnalyzer,IUnknown)
1696 {
1697 BEGIN_INTERFACE
1698
1699 #ifndef __cplusplus
1700 /* IUnknown methods */
1701 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1702 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1703 STDMETHOD_(ULONG, Release)(THIS) PURE;
1704 #endif
1705
1706 /* IDWriteTextAnalyzer methods */
1707 STDMETHOD(AnalyzeScript)(THIS_
1708 IDWriteTextAnalysisSource* analysisSource,
1709 UINT32 textPosition,
1710 UINT32 textLength,
1711 IDWriteTextAnalysisSink *analysisSink) PURE;
1712
1713 STDMETHOD(AnalyzeBidi)(THIS_
1714 IDWriteTextAnalysisSource *analysisSource,
1715 UINT32 textPosition,
1716 UINT32 textLength,
1717 IDWriteTextAnalysisSink *analysisSink) PURE;
1718
1719 STDMETHOD(AnalyzeNumberSubstitution)(THIS_
1720 IDWriteTextAnalysisSource *analysisSource,
1721 UINT32 textPosition,
1722 UINT32 textLength,
1723 IDWriteTextAnalysisSink *analysisSink) PURE;
1724
1725 STDMETHOD(AnalyzeLineBreakpoints)(THIS_
1726 IDWriteTextAnalysisSource *analysisSource,
1727 UINT32 textPosition,
1728 UINT32 textLength,
1729 IDWriteTextAnalysisSink *analysisSink) PURE;
1730
1731 STDMETHOD(GetGlyphs)(THIS_
1732 WCHAR const *textString,
1733 UINT32 textLength,
1734 IDWriteFontFace *fontFace,
1735 WINBOOL isSideways,
1736 WINBOOL isRightToLeft,
1737 DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis,
1738 WCHAR const *localeName,
1739 IDWriteNumberSubstitution *numberSubstitution,
1740 DWRITE_TYPOGRAPHIC_FEATURES const **features,
1741 UINT32 const *featureRangeLengths,
1742 UINT32 featureRanges,
1743 UINT32 maxGlyphCount,
1744 UINT16 *clusterMap,
1745 DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
1746 UINT16 *glyphIndices,
1747 DWRITE_SHAPING_GLYPH_PROPERTIES *glyphProps,
1748 UINT32 *actualGlyphCount) PURE;
1749
1750 STDMETHOD(GetGlyphPlacements)(THIS_
1751 WCHAR const *textString,
1752 UINT16 const *clusterMap,
1753 DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
1754 UINT32 textLength,
1755 UINT16 const *glyphIndices,
1756 DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps,
1757 UINT32 glyphCount,
1758 IDWriteFontFace *fontFace,
1759 FLOAT fontEmSize,
1760 WINBOOL isSideways,
1761 WINBOOL isRightToLeft,
1762 DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis,
1763 WCHAR const *localeName,
1764 DWRITE_TYPOGRAPHIC_FEATURES const **features,
1765 UINT32 const *featureRangeLengths,
1766 UINT32 featureRanges,
1767 FLOAT *glyphAdvances,
1768 DWRITE_GLYPH_OFFSET *glyphOffsets) PURE;
1769
1770 STDMETHOD(GetGdiCompatibleGlyphPlacements)(THIS_
1771 WCHAR const *textString,
1772 UINT16 const *clusterMap,
1773 DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
1774 UINT32 textLength,
1775 UINT16 const *glyphIndices,
1776 DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps,
1777 UINT32 glyphCount,
1778 IDWriteFontFace *fontFace,
1779 FLOAT fontEmSize,
1780 FLOAT pixelsPerDip,
1781 DWRITE_MATRIX const *transform,
1782 WINBOOL useGdiNatural,
1783 WINBOOL isSideways,
1784 WINBOOL isRightToLeft,
1785 DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis,
1786 WCHAR const *localeName,
1787 DWRITE_TYPOGRAPHIC_FEATURES const **features,
1788 UINT32 const *featureRangeLengths,
1789 UINT32 featureRanges,
1790 FLOAT *glyphAdvances,
1791 DWRITE_GLYPH_OFFSET *glyphOffsets) PURE;
1792
1793 END_INTERFACE
1794 };
1795 #ifdef COBJMACROS
1796 #define IDWriteTextAnalyzer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1797 #define IDWriteTextAnalyzer_AddRef(This) (This)->lpVtbl->AddRef(This)
1798 #define IDWriteTextAnalyzer_Release(This) (This)->lpVtbl->Release(This)
1799 #define IDWriteTextAnalyzer_AnalyzeBidi(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeBidi(This,analysisSource,textPosition,textLength,analysisSink)
1800 #define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,analysisSource,textPosition,textLength,analysisSink)
1801 #define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,analysisSource,textPosition,textLength,analysisSink)
1802 #define IDWriteTextAnalyzer_AnalyzeScript(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeScript(This,analysisSource,textPosition,textLength,analysisSink)
1803 #define IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,pixelsPerDip,transform,useGdiNatural,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,pixelsPerDip,transform,useGdiNatural,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets)
1804 #define IDWriteTextAnalyzer_GetGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets) (This)->lpVtbl->GetGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets)
1805 #define IDWriteTextAnalyzer_GetGlyphs(This,textString,textLength,fontFace,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,maxGlyphCount,clusterMap,textProps,glyphIndices,glyphProps,actualGlyphCount) (This)->lpVtbl->GetGlyphs(This,textString,textLength,fontFace,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,maxGlyphCount,clusterMap,textProps,glyphIndices,glyphProps,actualGlyphCount)
1806 #endif /*COBJMACROS*/
1807
1808 #undef INTERFACE
1809 #define INTERFACE IDWriteTextFormat
1810 DECLARE_INTERFACE_(IDWriteTextFormat,IUnknown)
1811 {
1812 BEGIN_INTERFACE
1813
1814 #ifndef __cplusplus
1815 /* IUnknown methods */
1816 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1817 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1818 STDMETHOD_(ULONG, Release)(THIS) PURE;
1819 #endif
1820
1821 /* IDWriteTextFormat methods */
1822 STDMETHOD(SetTextAlignment)(THIS_
1823 DWRITE_TEXT_ALIGNMENT textAlignment) PURE;
1824 STDMETHOD(SetParagraphAlignment)(THIS_
1825 DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment) PURE;
1826 STDMETHOD(SetWordWrapping)(THIS_
1827 DWRITE_WORD_WRAPPING wordWrapping) PURE;
1828 STDMETHOD(SetReadingDirection)(THIS_
1829 DWRITE_READING_DIRECTION readingDirection) PURE;
1830 STDMETHOD(SetFlowDirection)(THIS_
1831 DWRITE_FLOW_DIRECTION flowDirection) PURE;
1832 STDMETHOD(SetIncrementalTabStop)(THIS_
1833 FLOAT incrementalTabStop) PURE;
1834 STDMETHOD(SetTrimming)(THIS_
1835 DWRITE_TRIMMING const *trimmingOptions,
1836 IDWriteInlineObject *trimmingSign) PURE;
1837 STDMETHOD(SetLineSpacing)(THIS_
1838 DWRITE_LINE_SPACING_METHOD lineSpacingMethod,
1839 FLOAT lineSpacing,
1840 FLOAT baseline) PURE;
1841 STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)(THIS) PURE;
1842 STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)(THIS) PURE;
1843 STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)(THIS) PURE;
1844 STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)(THIS) PURE;
1845 STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)(THIS) PURE;
1846 STDMETHOD_(FLOAT, GetIncrementalTabStop)(THIS) PURE;
1847 STDMETHOD(GetTrimming)(THIS_
1848 DWRITE_TRIMMING* trimmingOptions,
1849 IDWriteInlineObject **trimmingSign) PURE;
1850 STDMETHOD(GetLineSpacing)(THIS_
1851 DWRITE_LINE_SPACING_METHOD *lineSpacingMethod,
1852 FLOAT *lineSpacing,
1853 FLOAT *baseline) PURE;
1854 STDMETHOD(GetFontCollection)(THIS_
1855 IDWriteFontCollection **fontCollection) PURE;
1856 STDMETHOD_(UINT32, GetFontFamilyNameLength)(THIS) PURE;
1857 STDMETHOD(GetFontFamilyName)(THIS_
1858 WCHAR *fontFamilyName,
1859 UINT32 nameSize) PURE;
1860 STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)(THIS) PURE;
1861 STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)(THIS) PURE;
1862 STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)(THIS) PURE;
1863 STDMETHOD_(FLOAT, GetFontSize)(THIS) PURE;
1864 STDMETHOD_(UINT32, GetLocaleNameLength)(THIS) PURE;
1865 STDMETHOD(GetLocaleName)(THIS_
1866 WCHAR *localeName,
1867 UINT32 nameSize) PURE;
1868
1869 END_INTERFACE
1870 };
1871 #ifdef COBJMACROS
1872 #define IDWriteTextFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1873 #define IDWriteTextFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
1874 #define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This)
1875 #define IDWriteTextFormat_GetFlowDirection() (This)->lpVtbl->GetFlowDirection(This)
1876 #define IDWriteTextFormat_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection)
1877 #define IDWriteTextFormat_GetFontFamilyName(This,fontFamilyName,nameSize) (This)->lpVtbl->GetFontFamilyName(This,fontFamilyName,nameSize)
1878 #define IDWriteTextFormat_GetFontFamilyNameLength() (This)->lpVtbl->GetFontFamilyNameLength(This)
1879 #define IDWriteTextFormat_GetFontSize() (This)->lpVtbl->GetFontSize(This)
1880 #define IDWriteTextFormat_GetFontStretch() (This)->lpVtbl->GetFontStretch(This)
1881 #define IDWriteTextFormat_GetFontStyle() (This)->lpVtbl->GetFontStyle(This)
1882 #define IDWriteTextFormat_GetFontWeight() (This)->lpVtbl->GetFontWeight(This)
1883 #define IDWriteTextFormat_GetIncrementalTabStop() (This)->lpVtbl->GetIncrementalTabStop(This)
1884 #define IDWriteTextFormat_GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline)
1885 #define IDWriteTextFormat_GetLocaleName(This,localeName,nameSize) (This)->lpVtbl->GetLocaleName(This,localeName,nameSize)
1886 #define IDWriteTextFormat_GetLocaleNameLength() (This)->lpVtbl->GetLocaleNameLength(This)
1887 #define IDWriteTextFormat_GetParagraphAlignment() (This)->lpVtbl->GetParagraphAlignment(This)
1888 #define IDWriteTextFormat_GetReadingDirection() (This)->lpVtbl->GetReadingDirection(This)
1889 #define IDWriteTextFormat_GetTextAlignment() (This)->lpVtbl->GetTextAlignment(This)
1890 #define IDWriteTextFormat_GetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->GetTrimming(This,trimmingOptions,trimmingSign)
1891 #define IDWriteTextFormat_GetWordWrapping() (This)->lpVtbl->GetWordWrapping(This)
1892 #define IDWriteTextFormat_SetFlowDirection(This,flowDirection) (This)->lpVtbl->SetFlowDirection(This,flowDirection)
1893 #define IDWriteTextFormat_SetIncrementalTabStop(This,incrementalTabStop) (This)->lpVtbl->SetIncrementalTabStop(This,incrementalTabStop)
1894 #define IDWriteTextFormat_SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline)
1895 #define IDWriteTextFormat_SetParagraphAlignment(This,paragraphAlignment) (This)->lpVtbl->SetParagraphAlignment(This,paragraphAlignment)
1896 #define IDWriteTextFormat_SetReadingDirection(This,readingDirection) (This)->lpVtbl->SetReadingDirection(This,readingDirection)
1897 #define IDWriteTextFormat_SetTextAlignment(This,textAlignment) (This)->lpVtbl->SetTextAlignment(This,textAlignment)
1898 #define IDWriteTextFormat_SetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->SetTrimming(This,trimmingOptions,trimmingSign)
1899 #define IDWriteTextFormat_SetWordWrapping(This,wordWrapping) (This)->lpVtbl->SetWordWrapping(This,wordWrapping)
1900 #endif /*COBJMACROS*/
1901
1902 #undef INTERFACE
1903 #define INTERFACE IDWriteTextLayout
1904 DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat)
1905 {
1906 BEGIN_INTERFACE
1907
1908 #ifndef __cplusplus
1909 /* IUnknown methods */
1910 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1911 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1912 STDMETHOD_(ULONG, Release)(THIS) PURE;
1913
1914 /* IDWriteTextFormat methods */
1915 STDMETHOD(SetTextAlignment)(THIS_
1916 DWRITE_TEXT_ALIGNMENT textAlignment) PURE;
1917 STDMETHOD(SetParagraphAlignment)(THIS_
1918 DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment) PURE;
1919 STDMETHOD(SetWordWrapping)(THIS_
1920 DWRITE_WORD_WRAPPING wordWrapping) PURE;
1921 STDMETHOD(SetReadingDirection)(THIS_
1922 DWRITE_READING_DIRECTION readingDirection) PURE;
1923 STDMETHOD(SetFlowDirection)(THIS_
1924 DWRITE_FLOW_DIRECTION flowDirection) PURE;
1925 STDMETHOD(SetIncrementalTabStop)(THIS_
1926 FLOAT incrementalTabStop) PURE;
1927 STDMETHOD(SetTrimming)(THIS_
1928 DWRITE_TRIMMING const *trimmingOptions,
1929 IDWriteInlineObject *trimmingSign) PURE;
1930 STDMETHOD(SetLineSpacing)(THIS_
1931 DWRITE_LINE_SPACING_METHOD lineSpacingMethod,
1932 FLOAT lineSpacing,
1933 FLOAT baseline) PURE;
1934 STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)(THIS) PURE;
1935 STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)(THIS) PURE;
1936 STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)(THIS) PURE;
1937 STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)(THIS) PURE;
1938 STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)(THIS) PURE;
1939 STDMETHOD_(FLOAT, GetIncrementalTabStop)(THIS) PURE;
1940 STDMETHOD(GetTrimming)(THIS_
1941 DWRITE_TRIMMING* trimmingOptions,
1942 IDWriteInlineObject **trimmingSign) PURE;
1943 STDMETHOD(GetLineSpacing)(THIS_
1944 DWRITE_LINE_SPACING_METHOD *lineSpacingMethod,
1945 FLOAT *lineSpacing,
1946 FLOAT *baseline) PURE;
1947 STDMETHOD(GetFontCollection)(THIS_
1948 IDWriteFontCollection **fontCollection) PURE;
1949 STDMETHOD_(UINT32, GetFontFamilyNameLength)(THIS) PURE;
1950 STDMETHOD(GetFontFamilyName)(THIS_
1951 WCHAR *fontFamilyName,
1952 UINT32 nameSize) PURE;
1953 STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)(THIS) PURE;
1954 STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)(THIS) PURE;
1955 STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)(THIS) PURE;
1956 STDMETHOD_(FLOAT, GetFontSize)(THIS) PURE;
1957 STDMETHOD_(UINT32, GetLocaleNameLength)(THIS) PURE;
1958 STDMETHOD(GetLocaleName)(THIS_
1959 WCHAR *localeName,
1960 UINT32 nameSize) PURE;
1961 #endif
1962
1963 /* IDWriteTextLayout methods */
1964 STDMETHOD(SetMaxWidth)(THIS_
1965 FLOAT maxWidth) PURE;
1966 STDMETHOD(SetMaxHeight)(THIS_
1967 FLOAT maxHeight) PURE;
1968 STDMETHOD(SetFontCollection)(THIS_
1969 IDWriteFontCollection *fontCollection,
1970 DWRITE_TEXT_RANGE textRange) PURE;
1971 STDMETHOD(SetFontFamilyName)(THIS_
1972 WCHAR const *fontFamilyName,
1973 DWRITE_TEXT_RANGE textRange) PURE;
1974 STDMETHOD(SetFontWeight)(THIS_
1975 DWRITE_FONT_WEIGHT fontWeight,
1976 DWRITE_TEXT_RANGE textRange) PURE;
1977 STDMETHOD(SetFontStyle)(THIS_
1978 DWRITE_FONT_STYLE fontStyle,
1979 DWRITE_TEXT_RANGE textRange) PURE;
1980 STDMETHOD(SetFontStretch)(THIS_
1981 DWRITE_FONT_STRETCH fontStretch,
1982 DWRITE_TEXT_RANGE textRange) PURE;
1983 STDMETHOD(SetFontSize)(THIS_
1984 FLOAT fontSize,
1985 DWRITE_TEXT_RANGE textRange) PURE;
1986 STDMETHOD(SetUnderline)(THIS_
1987 WINBOOL hasUnderline,
1988 DWRITE_TEXT_RANGE textRange) PURE;
1989 STDMETHOD(SetStrikethrough)(THIS_
1990 WINBOOL hasStrikethrough,
1991 DWRITE_TEXT_RANGE textRange) PURE;
1992 STDMETHOD(SetDrawingEffect)(THIS_
1993 IUnknown *drawingEffect,
1994 DWRITE_TEXT_RANGE textRange) PURE;
1995 STDMETHOD(SetInlineObject)(THIS_
1996 IDWriteInlineObject *inlineObject,
1997 DWRITE_TEXT_RANGE textRange) PURE;
1998 STDMETHOD(SetTypography)(THIS_
1999 IDWriteTypography *typography,
2000 DWRITE_TEXT_RANGE textRange) PURE;
2001 STDMETHOD(SetLocaleName)(THIS_
2002 WCHAR const *localeName,
2003 DWRITE_TEXT_RANGE textRange) PURE;
2004 STDMETHOD_(FLOAT, GetMaxWidth)(THIS) PURE;
2005 STDMETHOD_(FLOAT, GetMaxHeight)(THIS) PURE;
2006 STDMETHOD(GetFontCollection)(THIS_
2007 UINT32 currentPosition,
2008 IDWriteFontCollection** fontCollection,
2009 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2010 STDMETHOD(GetFontFamilyNameLength)(THIS_
2011 UINT32 currentPosition,
2012 UINT32 *nameLength,
2013 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2014 STDMETHOD(GetFontFamilyName)(THIS_
2015 UINT32 currentPosition,
2016 WCHAR *fontFamilyName,
2017 UINT32 nameSize,
2018 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2019 STDMETHOD(GetFontWeight)(THIS_
2020 UINT32 currentPosition,
2021 DWRITE_FONT_WEIGHT *fontWeight,
2022 DWRITE_TEXT_RANGE* textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2023 STDMETHOD(GetFontStyle)(THIS_
2024 UINT32 currentPosition,
2025 DWRITE_FONT_STYLE *fontStyle,
2026 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2027 STDMETHOD(GetFontStretch)(THIS_
2028 UINT32 currentPosition,
2029 DWRITE_FONT_STRETCH* fontStretch,
2030 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2031 STDMETHOD(GetFontSize)(THIS_
2032 UINT32 currentPosition,
2033 FLOAT *fontSize,
2034 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2035 STDMETHOD(GetUnderline)(THIS_
2036 UINT32 currentPosition,
2037 WINBOOL *hasUnderline,
2038 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2039 STDMETHOD(GetStrikethrough)(THIS_
2040 UINT32 currentPosition,
2041 WINBOOL *hasStrikethrough,
2042 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2043 STDMETHOD(GetDrawingEffect)(THIS_
2044 UINT32 currentPosition,
2045 IUnknown **drawingEffect,
2046 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2047 STDMETHOD(GetInlineObject)(THIS_
2048 UINT32 currentPosition,
2049 IDWriteInlineObject **inlineObject,
2050 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2051 STDMETHOD(GetTypography)(THIS_
2052 UINT32 currentPosition,
2053 IDWriteTypography **typography,
2054 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2055 STDMETHOD(GetLocaleNameLength)(THIS_
2056 UINT32 currentPosition,
2057 UINT32 *nameLength,
2058 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2059 STDMETHOD(GetLocaleName)(THIS_
2060 UINT32 currentPosition,
2061 WCHAR *localeName,
2062 UINT32 nameSize,
2063 DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
2064 STDMETHOD(Draw)(THIS_
2065 void *clientDrawingContext,
2066 IDWriteTextRenderer *renderer,
2067 FLOAT originX,
2068 FLOAT originY) PURE;
2069 STDMETHOD(GetLineMetrics)(THIS_
2070 DWRITE_LINE_METRICS *lineMetrics,
2071 UINT32 maxLineCount,
2072 UINT32 *actualLineCount) PURE;
2073 STDMETHOD(GetMetrics)(THIS_
2074 DWRITE_TEXT_METRICS *textMetrics) PURE;
2075 STDMETHOD(GetOverhangMetrics)(THIS_
2076 DWRITE_OVERHANG_METRICS *overhangs) PURE;
2077 STDMETHOD(GetClusterMetrics)(THIS_
2078 DWRITE_CLUSTER_METRICS *clusterMetrics,
2079 UINT32 maxClusterCount,
2080 UINT32 *actualClusterCount) PURE;
2081 STDMETHOD(DetermineMinWidth)(THIS_
2082 FLOAT *minWidth) PURE;
2083 STDMETHOD(HitTestPoint)(THIS_
2084 FLOAT pointX,
2085 FLOAT pointY,
2086 WINBOOL *isTrailingHit,
2087 WINBOOL *isInside,
2088 DWRITE_HIT_TEST_METRICS *hitTestMetrics) PURE;
2089 STDMETHOD(HitTestTextPosition)(THIS_
2090 UINT32 textPosition,
2091 WINBOOL isTrailingHit,
2092 FLOAT *pointX,
2093 FLOAT *pointY,
2094 DWRITE_HIT_TEST_METRICS *hitTestMetrics) PURE;
2095 STDMETHOD(HitTestTextRange)(THIS_
2096 UINT32 textPosition,
2097 UINT32 textLength,
2098 FLOAT originX,
2099 FLOAT originY,
2100 DWRITE_HIT_TEST_METRICS *hitTestMetrics,
2101 UINT32 maxHitTestMetricsCount,
2102 UINT32 *actualHitTestMetricsCount) PURE;
2103
2104 END_INTERFACE
2105 };
2106 #ifdef COBJMACROS
2107 #define IDWriteTextLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2108 #define IDWriteTextLayout_AddRef(This) (This)->lpVtbl->AddRef(This)
2109 #define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This)
2110 #define IDWriteTextLayout_GetFlowDirection() (This)->lpVtbl->GetFlowDirection(This)
2111 #define IDWriteTextLayout_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection)
2112 #define IDWriteTextLayout_GetFontFamilyName(This,fontFamilyName,nameSize) (This)->lpVtbl->GetFontFamilyName(This,fontFamilyName,nameSize)
2113 #define IDWriteTextLayout_GetFontFamilyNameLength() (This)->lpVtbl->GetFontFamilyNameLength(This)
2114 #define IDWriteTextLayout_GetFontSize() (This)->lpVtbl->GetFontSize(This)
2115 #define IDWriteTextLayout_GetFontStretch() (This)->lpVtbl->GetFontStretch(This)
2116 #define IDWriteTextLayout_GetFontStyle() (This)->lpVtbl->GetFontStyle(This)
2117 #define IDWriteTextLayout_GetFontWeight() (This)->lpVtbl->GetFontWeight(This)
2118 #define IDWriteTextLayout_GetIncrementalTabStop() (This)->lpVtbl->GetIncrementalTabStop(This)
2119 #define IDWriteTextLayout_GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline)
2120 #define IDWriteTextLayout_GetLocaleName(This,localeName,nameSize) (This)->lpVtbl->GetLocaleName(This,localeName,nameSize)
2121 #define IDWriteTextLayout_GetLocaleNameLength() (This)->lpVtbl->GetLocaleNameLength(This)
2122 #define IDWriteTextLayout_GetParagraphAlignment() (This)->lpVtbl->GetParagraphAlignment(This)
2123 #define IDWriteTextLayout_GetReadingDirection() (This)->lpVtbl->GetReadingDirection(This)
2124 #define IDWriteTextLayout_GetTextAlignment() (This)->lpVtbl->GetTextAlignment(This)
2125 #define IDWriteTextLayout_GetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->GetTrimming(This,trimmingOptions,trimmingSign)
2126 #define IDWriteTextLayout_GetWordWrapping() (This)->lpVtbl->GetWordWrapping(This)
2127 #define IDWriteTextLayout_SetFlowDirection(This,flowDirection) (This)->lpVtbl->SetFlowDirection(This,flowDirection)
2128 #define IDWriteTextLayout_SetIncrementalTabStop(This,incrementalTabStop) (This)->lpVtbl->SetIncrementalTabStop(This,incrementalTabStop)
2129 #define IDWriteTextLayout_SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline)
2130 #define IDWriteTextLayout_SetParagraphAlignment(This,paragraphAlignment) (This)->lpVtbl->SetParagraphAlignment(This,paragraphAlignment)
2131 #define IDWriteTextLayout_SetReadingDirection(This,readingDirection) (This)->lpVtbl->SetReadingDirection(This,readingDirection)
2132 #define IDWriteTextLayout_SetTextAlignment(This,textAlignment) (This)->lpVtbl->SetTextAlignment(This,textAlignment)
2133 #define IDWriteTextLayout_SetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->SetTrimming(This,trimmingOptions,trimmingSign)
2134 #define IDWriteTextLayout_SetWordWrapping(This,wordWrapping) (This)->lpVtbl->SetWordWrapping(This,wordWrapping)
2135 #define IDWriteTextLayout_Draw(This,clientDrawingContext,renderer,originX,originY) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY)
2136 #define IDWriteTextLayout_GetClusterMetrics(This,clusterMetrics,maxClusterCount,actualClusterCount) (This)->lpVtbl->GetClusterMetrics(This,clusterMetrics,maxClusterCount,actualClusterCount)
2137 #define IDWriteTextLayout_DetermineMinWidth(This,minWidth) (This)->lpVtbl->DetermineMinWidth(This,minWidth)
2138 #define IDWriteTextLayout_GetDrawingEffect(This,currentPosition,drawingEffect,textRange) (This)->lpVtbl->GetDrawingEffect(This,currentPosition,drawingEffect,textRange)
2139 #define IDWriteTextLayout_GetFontCollection(This,currentPosition,fontCollection,textRange) (This)->lpVtbl->GetFontCollection(This,currentPosition,fontCollection,textRange)
2140 #define IDWriteTextLayout_GetFontFamilyName(This,currentPosition,fontFamilyName,nameSize,textRange) (This)->lpVtbl->GetFontFamilyName(This,currentPosition,fontFamilyName,nameSize,textRange)
2141 #define IDWriteTextLayout_GetFontFamilyNameLength(This,currentPosition,nameLength,textRange) (This)->lpVtbl->GetFontFamilyNameLength(This,currentPosition,nameLength,textRange)
2142 #define IDWriteTextLayout_GetFontSize(This,currentPosition,fontSize,textRange) (This)->lpVtbl->GetFontSize(This,currentPosition,fontSize,textRange)
2143 #define IDWriteTextLayout_GetFontStretch(This,currentPosition,fontStretch,textRange) (This)->lpVtbl->GetFontStretch(This,currentPosition,fontStretch,textRange)
2144 #define IDWriteTextLayout_GetFontStyle(This,currentPosition,fontStyle,textRange) (This)->lpVtbl->GetFontStyle(This,currentPosition,fontStyle,textRange)
2145 #define IDWriteTextLayout_GetFontWeight(This,currentPosition,fontWeight,textRange) (This)->lpVtbl->GetFontWeight(This,currentPosition,fontWeight,textRange)
2146 #define IDWriteTextLayout_GetInlineObject(This,currentPosition,inlineObject,textRange) (This)->lpVtbl->GetInlineObject(This,currentPosition,inlineObject,textRange)
2147 #define IDWriteTextLayout_GetLineMetrics(This,lineMetrics,maxLineCount,actualLineCount) (This)->lpVtbl->GetLineMetrics(This,lineMetrics,maxLineCount,actualLineCount)
2148 #define IDWriteTextLayout_GetLocaleName(This,currentPosition,localeName,nameSize,textRange) (This)->lpVtbl->GetLocaleName(This,currentPosition,localeName,nameSize,textRange)
2149 #define IDWriteTextLayout_GetLocaleNameLength(This,currentPosition,nameLength,textRange) (This)->lpVtbl->GetLocaleNameLength(This,currentPosition,nameLength,textRange)
2150 #define IDWriteTextLayout_GetMaxHeight() (This)->lpVtbl->GetMaxHeight(This)
2151 #define IDWriteTextLayout_GetMaxWidth() (This)->lpVtbl->GetMaxWidth(This)
2152 #define IDWriteTextLayout_GetMetrics(This,textMetrics) (This)->lpVtbl->GetMetrics(This,textMetrics)
2153 #define IDWriteTextLayout_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
2154 #define IDWriteTextLayout_GetStrikethrough(This,currentPosition,hasStrikethrough,textRange) (This)->lpVtbl->GetStrikethrough(This,currentPosition,hasStrikethrough,textRange)
2155 #define IDWriteTextLayout_GetTypography(This,currentPosition,typography,textRange) (This)->lpVtbl->GetTypography(This,currentPosition,typography,textRange)
2156 #define IDWriteTextLayout_GetUnderline(This,currentPosition,hasUnderline,textRange) (This)->lpVtbl->GetUnderline(This,currentPosition,hasUnderline,textRange)
2157 #define IDWriteTextLayout_HitTestPoint(This,pointX,pointY,isTrailingHit,isInside,hitTestMetrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,isTrailingHit,isInside,hitTestMetrics)
2158 #define IDWriteTextLayout_HitTestTextPosition(This,textPosition,isTrailingHit,pointX,pointY,hitTestMetrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,isTrailingHit,pointX,pointY,hitTestMetrics)
2159 #define IDWriteTextLayout_HitTestTextRange(This,textPosition,textLength,originX,originY,hitTestMetrics,maxHitTestMetricsCount,actualHitTestMetricsCount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,hitTestMetrics,maxHitTestMetricsCount,actualHitTestMetricsCount)
2160 #define IDWriteTextLayout_SetDrawingEffect(This,drawingEffect,textRange) (This)->lpVtbl->SetDrawingEffect(This,drawingEffect,textRange)
2161 #define IDWriteTextLayout_SetFontCollection(This,fontCollection,textRange) (This)->lpVtbl->SetFontCollection(This,fontCollection,textRange)
2162 #define IDWriteTextLayout_SetFontFamilyName(This,fontFamilyName,textRange) (This)->lpVtbl->SetFontFamilyName(This,fontFamilyName,textRange)
2163 #define IDWriteTextLayout_SetFontSize(This,fontSize,textRange) (This)->lpVtbl->SetFontSize(This,fontSize,textRange)
2164 #define IDWriteTextLayout_SetFontStretch(This,fontStretch,textRange) (This)->lpVtbl->SetFontStretch(This,fontStretch,textRange)
2165 #define IDWriteTextLayout_SetFontStyle(This,fontStyle,textRange) (This)->lpVtbl->SetFontStyle(This,fontStyle,textRange)
2166 #define IDWriteTextLayout_SetFontWeight(This,fontWeight,textRange) (This)->lpVtbl->SetFontWeight(This,fontWeight,textRange)
2167 #define IDWriteTextLayout_SetInlineObject(This,inlineObject,textRange) (This)->lpVtbl->SetInlineObject(This,inlineObject,textRange)
2168 #define IDWriteTextLayout_SetLocaleName(This,localeName,textRange) (This)->lpVtbl->SetLocaleName(This,localeName,textRange)
2169 #define IDWriteTextLayout_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
2170 #define IDWriteTextLayout_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
2171 #define IDWriteTextLayout_SetStrikethrough(This,hasStrikethrough,textRange) (This)->lpVtbl->SetStrikethrough(This,hasStrikethrough,textRange)
2172 #define IDWriteTextLayout_SetTypography(This,typography,textRange) (This)->lpVtbl->SetTypography(This,typography,textRange)
2173 #define IDWriteTextLayout_SetUnderline(This,hasUnderline,textRange) (This)->lpVtbl->SetUnderline(This,hasUnderline,textRange)
2174 #endif /*COBJMACROS*/
2175
2176 #undef INTERFACE
2177 #define INTERFACE IDWriteTextRenderer
2178 DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping)
2179 {
2180 BEGIN_INTERFACE
2181
2182 #ifndef __cplusplus
2183 /* IUnknown methods */
2184 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
2185 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
2186 STDMETHOD_(ULONG, Release)(THIS) PURE;
2187
2188 /* IDWritePixelSnapping methods */
2189 STDMETHOD(IsPixelSnappingDisabled)(THIS_
2190 void *clientDrawingContext,
2191 WINBOOL *isDisabled) PURE;
2192 STDMETHOD(GetCurrentTransform)(THIS_
2193 void *clientDrawingContext,
2194 DWRITE_MATRIX *transform) PURE;
2195 STDMETHOD(GetPixelsPerDip)(THIS_
2196 void *clientDrawingContext,
2197 FLOAT *pixelsPerDip) PURE;
2198 #endif
2199
2200 /* IDWriteTextRenderer methods */
2201 STDMETHOD(DrawGlyphRun)(THIS_
2202 void *clientDrawingContext,
2203 FLOAT baselineOriginX,
2204 FLOAT baselineOriginY,
2205 DWRITE_MEASURING_MODE measuringMode,
2206 DWRITE_GLYPH_RUN const *glyphRun,
2207 DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription,
2208 IUnknown* clientDrawingEffect) PURE;
2209 STDMETHOD(DrawUnderline)(THIS_
2210 void *clientDrawingContext,
2211 FLOAT baselineOriginX,
2212 FLOAT baselineOriginY,
2213 DWRITE_UNDERLINE const *underline,
2214 IUnknown *clientDrawingEffect) PURE;
2215 STDMETHOD(DrawStrikethrough)(THIS_
2216 void *clientDrawingContext,
2217 FLOAT baselineOriginX,
2218 FLOAT baselineOriginY,
2219 DWRITE_STRIKETHROUGH const *strikethrough,
2220 IUnknown* clientDrawingEffect) PURE;
2221 STDMETHOD(DrawInlineObject)(
2222 void *clientDrawingContext,
2223 FLOAT originX,
2224 FLOAT originY,
2225 IDWriteInlineObject *inlineObject,
2226 WINBOOL isSideways,
2227 WINBOOL isRightToLeft,
2228 IUnknown *clientDrawingEffect) PURE;
2229
2230 END_INTERFACE
2231 };
2232 #ifdef COBJMACROS
2233 #define IDWriteTextRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2234 #define IDWriteTextRenderer_AddRef(This) (This)->lpVtbl->AddRef(This)
2235 #define IDWriteTextRenderer_GetCurrentTransform(This,clientDrawingContext,transform) (This)->lpVtbl->GetCurrentTransform(This,clientDrawingContext,transform)
2236 #define IDWriteTextRenderer_GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) (This)->lpVtbl->GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip)
2237 #define IDWriteTextRenderer_IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) (This)->lpVtbl->IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled)
2238 #define IDWriteTextRenderer_Release(This) (This)->lpVtbl->Release(This)
2239 #define IDWriteTextRenderer_DrawGlyphRun(This,clientDrawingContext,baselineOriginX,baselineOriginY,measuringMode,glyphRun,glyphRunDescription,clientDrawingEffect) (This)->lpVtbl->DrawGlyphRun(This,clientDrawingContext,baselineOriginX,baselineOriginY,measuringMode,glyphRun,glyphRunDescription,clientDrawingEffect)
2240 #define IDWriteTextRenderer_DrawInlineObject(This,clientDrawingContext,originX,originY,inlineObject,isSideways,isRightToLeft,clientDrawingEffect) (This)->lpVtbl->DrawInlineObject(This,clientDrawingContext,originX,originY,inlineObject,isSideways,isRightToLeft,clientDrawingEffect)
2241 #define IDWriteTextRenderer_DrawStrikethrough(This,clientDrawingContext,baselineOriginX,baselineOriginY,strikethrough,clientDrawingEffect) (This)->lpVtbl->DrawStrikethrough(This,clientDrawingContext,baselineOriginX,baselineOriginY,strikethrough,clientDrawingEffect)
2242 #define IDWriteTextRenderer_DrawUnderline(This,clientDrawingContext,baselineOriginX,baselineOriginY,underline,clientDrawingEffect) (This)->lpVtbl->DrawUnderline(This,clientDrawingContext,baselineOriginX,baselineOriginY,underline,clientDrawingEffect)
2243 #endif /*COBJMACROS*/
2244
2245 #undef INTERFACE
2246 #define INTERFACE IDWriteTypography
2247 DECLARE_INTERFACE_(IDWriteTypography,IUnknown)
2248 {
2249 BEGIN_INTERFACE
2250
2251 #ifndef __cplusplus
2252 /* IUnknown methods */
2253 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
2254 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
2255 STDMETHOD_(ULONG, Release)(THIS) PURE;
2256 #endif
2257
2258 /* IDWriteTypography methods */
2259 STDMETHOD(AddFontFeature)(THIS_ DWRITE_FONT_FEATURE fontFeature) PURE;
2260 STDMETHOD_(UINT32,GetFontFeatureCount)(THIS) PURE;
2261 STDMETHOD(GetFontFeature)(THIS_ UINT32 fontFeatureIndex, DWRITE_FONT_FEATURE *fontFeature) PURE;
2262
2263 END_INTERFACE
2264 };
2265 #ifdef COBJMACROS
2266 #define IDWriteTypography_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2267 #define IDWriteTypography_AddRef(This) (This)->lpVtbl->AddRef(This)
2268 #define IDWriteTypography_Release(This) (This)->lpVtbl->Release(This)
2269 #define IDWriteTypography_AddFontFeature(This,fontFeature) (This)->lpVtbl->AddFontFeature(This,fontFeature)
2270 #define IDWriteTypography_GetFontFeatureCount() (This)->lpVtbl->GetFontFeatureCount(This)
2271 #define IDWriteTypography_GetFontFeature(This,fontFeatureIndex,fontFeature) (This)->lpVtbl->GetFontFeature(This,fontFeatureIndex,fontFeature)
2272 #endif /*COBJMACROS*/
2273
2274 #ifdef __cplusplus
2275 extern "C" {
2276 #endif
2277
2278 DWRITEAPI HRESULT WINAPI DWriteCreateFactory(
2279 DWRITE_FACTORY_TYPE factoryType,
2280 REFIID iid,
2281 IUnknown **factory
2282 );
2283
2284 #ifdef __cplusplus
2285 }
2286 #endif
2287
2288 __CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3,0x8dff,0x4773,0x9f,0xf6,0x06,0x96,0xea,0xb7,0x72,0x67);
2289 __CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a,0xd838,0x4b5b,0xa2,0xe8,0x1a,0xdc,0x7d,0x93,0xdb,0x48);
2290 __CRT_UUID_DECL(IDWriteFont, 0xacd16696,0x8c14,0x4f5d,0x87,0x7e,0xfe,0x3f,0xc1,0xd3,0x27,0x37);
2291 __CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02,0x3eea,0x4eee,0xa8,0x27,0x87,0xc1,0xa0,0x2a,0x0f,0xcc);
2292 __CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d,0x7024,0x4d43,0xbf,0xa9,0xd2,0x59,0x84,0xf5,0x38,0x49);
2293 __CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438,0x1d97,0x4ec1,0xae,0xf9,0xa2,0xfb,0x86,0xed,0x6a,0xcb);
2294 __CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef,0x812a,0x4c43,0x98,0x02,0x62,0xec,0x4a,0xbd,0x7a,0xdd);
2295 __CRT_UUID_DECL(IDWriteFontFile, 0x739d886a,0xcef5,0x47dc,0x87,0x69,0x1a,0x8b,0x41,0xbe,0xbb,0xb0);
2296 __CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e,0xd6af,0x4c9e,0x8a,0x08,0xd6,0x95,0xb1,0x1c,0xaa,0x49);
2297 __CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe,0x0ab8,0x4d91,0x8f,0x62,0x5d,0xd6,0xbe,0x34,0xa3,0xe0);
2298 __CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491,0x9853,0x4299,0x89,0x8f,0x64,0x32,0x98,0x3b,0x6f,0x3a);
2299 __CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7,0xe085,0x42d4,0x81,0xe3,0x6a,0x88,0x3b,0xde,0xd1,0x18);
2300 __CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209,0x099a,0x4b34,0xb8,0x6d,0xc2,0x2b,0x11,0x0e,0x77,0x71);
2301 __CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a,0x2add,0x47cd,0x82,0xee,0xd9,0xec,0x34,0x68,0x8e,0x75);
2302 __CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44,0x0ca0,0x4701,0xb3,0xfa,0xbe,0xc5,0x18,0x2a,0xe4,0xf6);
2303 __CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58,0x5094,0x47c8,0xad,0xc8,0xfb,0xce,0xa6,0x0a,0xe9,0x2b);
2304 __CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e,0x7f46,0x43b4,0x84,0xb3,0xe4,0xe6,0x24,0x9c,0x36,0x5d);
2305 __CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da,0xecf4,0x4d24,0xb6,0x44,0xb3,0x4f,0x68,0x42,0x02,0x4b);
2306 __CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135,0x5cc6,0x45fe,0x88,0x25,0xc5,0xa0,0x72,0x4e,0xb8,0x19);
2307 __CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3,0x106f,0x47ab,0x83,0x73,0x1c,0x62,0x95,0xeb,0x10,0xb3);
2308 __CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818,0x31d7,0x4fd3,0xa1,0x51,0x7c,0x5e,0x22,0x5d,0xb5,0x5a);
2309 __CRT_UUID_DECL(IDWriteTextLayout, 0x53737037,0x6d14,0x410b,0x9b,0xfe,0x0b,0x18,0x2b,0xb7,0x09,0x61);
2310 __CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049,0x5ff7,0x435d,0x83,0x48,0x4b,0xe9,0x7c,0xfa,0x6c,0x7c);
2311 __CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4,0x52f0,0x492b,0xbf,0xa8,0x29,0xc7,0x2e,0xe0,0xa4,0x68);
2312 __CRT_UUID_DECL(IDWriteTypography, 0x55f1112b,0x1dc2,0x4b3c,0x95,0x41,0xf4,0x68,0x94,0xed,0x85,0xb6);
2313 __CRT_UUID_DECL(IDWriteLocalFontFileLoader,0xb2d9f3ec,0xc9fe,0x4a11,0xa2,0xec,0xd8,0x62,0x08,0xf7,0xc0,0xa2);
2314
2315 #endif /* __INC_DWRITE__ */
2316