master
1/*** Autogenerated by WIDL 10.4 from include/dwrite_3.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __dwrite_3_h__
17#define __dwrite_3_h__
18
19/* Forward declarations */
20
21#ifndef __IDWriteFontDownloadListener_FWD_DEFINED__
22#define __IDWriteFontDownloadListener_FWD_DEFINED__
23typedef interface IDWriteFontDownloadListener IDWriteFontDownloadListener;
24#ifdef __cplusplus
25interface IDWriteFontDownloadListener;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__
30#define __IDWriteFontDownloadQueue_FWD_DEFINED__
31typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue;
32#ifdef __cplusplus
33interface IDWriteFontDownloadQueue;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IDWriteRenderingParams3_FWD_DEFINED__
38#define __IDWriteRenderingParams3_FWD_DEFINED__
39typedef interface IDWriteRenderingParams3 IDWriteRenderingParams3;
40#ifdef __cplusplus
41interface IDWriteRenderingParams3;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IDWriteStringList_FWD_DEFINED__
46#define __IDWriteStringList_FWD_DEFINED__
47typedef interface IDWriteStringList IDWriteStringList;
48#ifdef __cplusplus
49interface IDWriteStringList;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IDWriteFontSet_FWD_DEFINED__
54#define __IDWriteFontSet_FWD_DEFINED__
55typedef interface IDWriteFontSet IDWriteFontSet;
56#ifdef __cplusplus
57interface IDWriteFontSet;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IDWriteFontResource_FWD_DEFINED__
62#define __IDWriteFontResource_FWD_DEFINED__
63typedef interface IDWriteFontResource IDWriteFontResource;
64#ifdef __cplusplus
65interface IDWriteFontResource;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IDWriteFontSet1_FWD_DEFINED__
70#define __IDWriteFontSet1_FWD_DEFINED__
71typedef interface IDWriteFontSet1 IDWriteFontSet1;
72#ifdef __cplusplus
73interface IDWriteFontSet1;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IDWriteFont3_FWD_DEFINED__
78#define __IDWriteFont3_FWD_DEFINED__
79typedef interface IDWriteFont3 IDWriteFont3;
80#ifdef __cplusplus
81interface IDWriteFont3;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IDWriteFontFamily1_FWD_DEFINED__
86#define __IDWriteFontFamily1_FWD_DEFINED__
87typedef interface IDWriteFontFamily1 IDWriteFontFamily1;
88#ifdef __cplusplus
89interface IDWriteFontFamily1;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IDWriteFontFamily2_FWD_DEFINED__
94#define __IDWriteFontFamily2_FWD_DEFINED__
95typedef interface IDWriteFontFamily2 IDWriteFontFamily2;
96#ifdef __cplusplus
97interface IDWriteFontFamily2;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __IDWriteFontCollection1_FWD_DEFINED__
102#define __IDWriteFontCollection1_FWD_DEFINED__
103typedef interface IDWriteFontCollection1 IDWriteFontCollection1;
104#ifdef __cplusplus
105interface IDWriteFontCollection1;
106#endif /* __cplusplus */
107#endif
108
109#ifndef __IDWriteFontCollection2_FWD_DEFINED__
110#define __IDWriteFontCollection2_FWD_DEFINED__
111typedef interface IDWriteFontCollection2 IDWriteFontCollection2;
112#ifdef __cplusplus
113interface IDWriteFontCollection2;
114#endif /* __cplusplus */
115#endif
116
117#ifndef __IDWriteFontCollection3_FWD_DEFINED__
118#define __IDWriteFontCollection3_FWD_DEFINED__
119typedef interface IDWriteFontCollection3 IDWriteFontCollection3;
120#ifdef __cplusplus
121interface IDWriteFontCollection3;
122#endif /* __cplusplus */
123#endif
124
125#ifndef __IDWriteFontFaceReference_FWD_DEFINED__
126#define __IDWriteFontFaceReference_FWD_DEFINED__
127typedef interface IDWriteFontFaceReference IDWriteFontFaceReference;
128#ifdef __cplusplus
129interface IDWriteFontFaceReference;
130#endif /* __cplusplus */
131#endif
132
133#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__
134#define __IDWriteFontFaceReference1_FWD_DEFINED__
135typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1;
136#ifdef __cplusplus
137interface IDWriteFontFaceReference1;
138#endif /* __cplusplus */
139#endif
140
141#ifndef __IDWriteFontList1_FWD_DEFINED__
142#define __IDWriteFontList1_FWD_DEFINED__
143typedef interface IDWriteFontList1 IDWriteFontList1;
144#ifdef __cplusplus
145interface IDWriteFontList1;
146#endif /* __cplusplus */
147#endif
148
149#ifndef __IDWriteFontList2_FWD_DEFINED__
150#define __IDWriteFontList2_FWD_DEFINED__
151typedef interface IDWriteFontList2 IDWriteFontList2;
152#ifdef __cplusplus
153interface IDWriteFontList2;
154#endif /* __cplusplus */
155#endif
156
157#ifndef __IDWriteFontSet2_FWD_DEFINED__
158#define __IDWriteFontSet2_FWD_DEFINED__
159typedef interface IDWriteFontSet2 IDWriteFontSet2;
160#ifdef __cplusplus
161interface IDWriteFontSet2;
162#endif /* __cplusplus */
163#endif
164
165#ifndef __IDWriteFontSet3_FWD_DEFINED__
166#define __IDWriteFontSet3_FWD_DEFINED__
167typedef interface IDWriteFontSet3 IDWriteFontSet3;
168#ifdef __cplusplus
169interface IDWriteFontSet3;
170#endif /* __cplusplus */
171#endif
172
173#ifndef __IDWriteFontSet4_FWD_DEFINED__
174#define __IDWriteFontSet4_FWD_DEFINED__
175typedef interface IDWriteFontSet4 IDWriteFontSet4;
176#ifdef __cplusplus
177interface IDWriteFontSet4;
178#endif /* __cplusplus */
179#endif
180
181#ifndef __IDWriteFontFace3_FWD_DEFINED__
182#define __IDWriteFontFace3_FWD_DEFINED__
183typedef interface IDWriteFontFace3 IDWriteFontFace3;
184#ifdef __cplusplus
185interface IDWriteFontFace3;
186#endif /* __cplusplus */
187#endif
188
189#ifndef __IDWriteTextFormat2_FWD_DEFINED__
190#define __IDWriteTextFormat2_FWD_DEFINED__
191typedef interface IDWriteTextFormat2 IDWriteTextFormat2;
192#ifdef __cplusplus
193interface IDWriteTextFormat2;
194#endif /* __cplusplus */
195#endif
196
197#ifndef __IDWriteTextFormat3_FWD_DEFINED__
198#define __IDWriteTextFormat3_FWD_DEFINED__
199typedef interface IDWriteTextFormat3 IDWriteTextFormat3;
200#ifdef __cplusplus
201interface IDWriteTextFormat3;
202#endif /* __cplusplus */
203#endif
204
205#ifndef __IDWriteTextLayout3_FWD_DEFINED__
206#define __IDWriteTextLayout3_FWD_DEFINED__
207typedef interface IDWriteTextLayout3 IDWriteTextLayout3;
208#ifdef __cplusplus
209interface IDWriteTextLayout3;
210#endif /* __cplusplus */
211#endif
212
213#ifndef __IDWriteTextLayout4_FWD_DEFINED__
214#define __IDWriteTextLayout4_FWD_DEFINED__
215typedef interface IDWriteTextLayout4 IDWriteTextLayout4;
216#ifdef __cplusplus
217interface IDWriteTextLayout4;
218#endif /* __cplusplus */
219#endif
220
221#ifndef __IDWriteFontFallback1_FWD_DEFINED__
222#define __IDWriteFontFallback1_FWD_DEFINED__
223typedef interface IDWriteFontFallback1 IDWriteFontFallback1;
224#ifdef __cplusplus
225interface IDWriteFontFallback1;
226#endif /* __cplusplus */
227#endif
228
229#ifndef __IDWriteGdiInterop1_FWD_DEFINED__
230#define __IDWriteGdiInterop1_FWD_DEFINED__
231typedef interface IDWriteGdiInterop1 IDWriteGdiInterop1;
232#ifdef __cplusplus
233interface IDWriteGdiInterop1;
234#endif /* __cplusplus */
235#endif
236
237#ifndef __IDWriteFontSetBuilder_FWD_DEFINED__
238#define __IDWriteFontSetBuilder_FWD_DEFINED__
239typedef interface IDWriteFontSetBuilder IDWriteFontSetBuilder;
240#ifdef __cplusplus
241interface IDWriteFontSetBuilder;
242#endif /* __cplusplus */
243#endif
244
245#ifndef __IDWriteFontSetBuilder1_FWD_DEFINED__
246#define __IDWriteFontSetBuilder1_FWD_DEFINED__
247typedef interface IDWriteFontSetBuilder1 IDWriteFontSetBuilder1;
248#ifdef __cplusplus
249interface IDWriteFontSetBuilder1;
250#endif /* __cplusplus */
251#endif
252
253#ifndef __IDWriteFontSetBuilder2_FWD_DEFINED__
254#define __IDWriteFontSetBuilder2_FWD_DEFINED__
255typedef interface IDWriteFontSetBuilder2 IDWriteFontSetBuilder2;
256#ifdef __cplusplus
257interface IDWriteFontSetBuilder2;
258#endif /* __cplusplus */
259#endif
260
261#ifndef __IDWriteFactory3_FWD_DEFINED__
262#define __IDWriteFactory3_FWD_DEFINED__
263typedef interface IDWriteFactory3 IDWriteFactory3;
264#ifdef __cplusplus
265interface IDWriteFactory3;
266#endif /* __cplusplus */
267#endif
268
269#ifndef __IDWriteFontFace4_FWD_DEFINED__
270#define __IDWriteFontFace4_FWD_DEFINED__
271typedef interface IDWriteFontFace4 IDWriteFontFace4;
272#ifdef __cplusplus
273interface IDWriteFontFace4;
274#endif /* __cplusplus */
275#endif
276
277#ifndef __IDWriteFontFace5_FWD_DEFINED__
278#define __IDWriteFontFace5_FWD_DEFINED__
279typedef interface IDWriteFontFace5 IDWriteFontFace5;
280#ifdef __cplusplus
281interface IDWriteFontFace5;
282#endif /* __cplusplus */
283#endif
284
285#ifndef __IDWriteFontFace6_FWD_DEFINED__
286#define __IDWriteFontFace6_FWD_DEFINED__
287typedef interface IDWriteFontFace6 IDWriteFontFace6;
288#ifdef __cplusplus
289interface IDWriteFontFace6;
290#endif /* __cplusplus */
291#endif
292
293#ifndef __IDWritePaintReader_FWD_DEFINED__
294#define __IDWritePaintReader_FWD_DEFINED__
295typedef interface IDWritePaintReader IDWritePaintReader;
296#ifdef __cplusplus
297interface IDWritePaintReader;
298#endif /* __cplusplus */
299#endif
300
301#ifndef __IDWriteFontFace7_FWD_DEFINED__
302#define __IDWriteFontFace7_FWD_DEFINED__
303typedef interface IDWriteFontFace7 IDWriteFontFace7;
304#ifdef __cplusplus
305interface IDWriteFontFace7;
306#endif /* __cplusplus */
307#endif
308
309#ifndef __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__
310#define __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__
311typedef interface IDWriteColorGlyphRunEnumerator1 IDWriteColorGlyphRunEnumerator1;
312#ifdef __cplusplus
313interface IDWriteColorGlyphRunEnumerator1;
314#endif /* __cplusplus */
315#endif
316
317#ifndef __IDWriteFactory4_FWD_DEFINED__
318#define __IDWriteFactory4_FWD_DEFINED__
319typedef interface IDWriteFactory4 IDWriteFactory4;
320#ifdef __cplusplus
321interface IDWriteFactory4;
322#endif /* __cplusplus */
323#endif
324
325#ifndef __IDWriteAsyncResult_FWD_DEFINED__
326#define __IDWriteAsyncResult_FWD_DEFINED__
327typedef interface IDWriteAsyncResult IDWriteAsyncResult;
328#ifdef __cplusplus
329interface IDWriteAsyncResult;
330#endif /* __cplusplus */
331#endif
332
333#ifndef __IDWriteRemoteFontFileStream_FWD_DEFINED__
334#define __IDWriteRemoteFontFileStream_FWD_DEFINED__
335typedef interface IDWriteRemoteFontFileStream IDWriteRemoteFontFileStream;
336#ifdef __cplusplus
337interface IDWriteRemoteFontFileStream;
338#endif /* __cplusplus */
339#endif
340
341#ifndef __IDWriteRemoteFontFileLoader_FWD_DEFINED__
342#define __IDWriteRemoteFontFileLoader_FWD_DEFINED__
343typedef interface IDWriteRemoteFontFileLoader IDWriteRemoteFontFileLoader;
344#ifdef __cplusplus
345interface IDWriteRemoteFontFileLoader;
346#endif /* __cplusplus */
347#endif
348
349#ifndef __IDWriteInMemoryFontFileLoader_FWD_DEFINED__
350#define __IDWriteInMemoryFontFileLoader_FWD_DEFINED__
351typedef interface IDWriteInMemoryFontFileLoader IDWriteInMemoryFontFileLoader;
352#ifdef __cplusplus
353interface IDWriteInMemoryFontFileLoader;
354#endif /* __cplusplus */
355#endif
356
357#ifndef __IDWriteFactory5_FWD_DEFINED__
358#define __IDWriteFactory5_FWD_DEFINED__
359typedef interface IDWriteFactory5 IDWriteFactory5;
360#ifdef __cplusplus
361interface IDWriteFactory5;
362#endif /* __cplusplus */
363#endif
364
365#ifndef __IDWriteFactory6_FWD_DEFINED__
366#define __IDWriteFactory6_FWD_DEFINED__
367typedef interface IDWriteFactory6 IDWriteFactory6;
368#ifdef __cplusplus
369interface IDWriteFactory6;
370#endif /* __cplusplus */
371#endif
372
373#ifndef __IDWriteFactory7_FWD_DEFINED__
374#define __IDWriteFactory7_FWD_DEFINED__
375typedef interface IDWriteFactory7 IDWriteFactory7;
376#ifdef __cplusplus
377interface IDWriteFactory7;
378#endif /* __cplusplus */
379#endif
380
381#ifndef __IDWriteFactory8_FWD_DEFINED__
382#define __IDWriteFactory8_FWD_DEFINED__
383typedef interface IDWriteFactory8 IDWriteFactory8;
384#ifdef __cplusplus
385interface IDWriteFactory8;
386#endif /* __cplusplus */
387#endif
388
389#ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__
390#define __IDWriteBitmapRenderTarget2_FWD_DEFINED__
391typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2;
392#ifdef __cplusplus
393interface IDWriteBitmapRenderTarget2;
394#endif /* __cplusplus */
395#endif
396
397#ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__
398#define __IDWriteBitmapRenderTarget3_FWD_DEFINED__
399typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3;
400#ifdef __cplusplus
401interface IDWriteBitmapRenderTarget3;
402#endif /* __cplusplus */
403#endif
404
405/* Headers for imported files */
406
407#include <dwrite_2.h>
408
409#ifdef __cplusplus
410extern "C" {
411#endif
412
413#ifndef __IDWriteFontFaceReference_FWD_DEFINED__
414#define __IDWriteFontFaceReference_FWD_DEFINED__
415typedef interface IDWriteFontFaceReference IDWriteFontFaceReference;
416#ifdef __cplusplus
417interface IDWriteFontFaceReference;
418#endif /* __cplusplus */
419#endif
420
421#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__
422#define __IDWriteFontFaceReference1_FWD_DEFINED__
423typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1;
424#ifdef __cplusplus
425interface IDWriteFontFaceReference1;
426#endif /* __cplusplus */
427#endif
428
429#ifndef __IDWriteFontFace3_FWD_DEFINED__
430#define __IDWriteFontFace3_FWD_DEFINED__
431typedef interface IDWriteFontFace3 IDWriteFontFace3;
432#ifdef __cplusplus
433interface IDWriteFontFace3;
434#endif /* __cplusplus */
435#endif
436
437#ifndef __IDWriteFontSet_FWD_DEFINED__
438#define __IDWriteFontSet_FWD_DEFINED__
439typedef interface IDWriteFontSet IDWriteFontSet;
440#ifdef __cplusplus
441interface IDWriteFontSet;
442#endif /* __cplusplus */
443#endif
444
445#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__
446#define __IDWriteFontDownloadQueue_FWD_DEFINED__
447typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue;
448#ifdef __cplusplus
449interface IDWriteFontDownloadQueue;
450#endif /* __cplusplus */
451#endif
452
453#ifndef __IDWriteFontFace5_FWD_DEFINED__
454#define __IDWriteFontFace5_FWD_DEFINED__
455typedef interface IDWriteFontFace5 IDWriteFontFace5;
456#ifdef __cplusplus
457interface IDWriteFontFace5;
458#endif /* __cplusplus */
459#endif
460
461#ifndef __IDWriteFontList2_FWD_DEFINED__
462#define __IDWriteFontList2_FWD_DEFINED__
463typedef interface IDWriteFontList2 IDWriteFontList2;
464#ifdef __cplusplus
465interface IDWriteFontList2;
466#endif /* __cplusplus */
467#endif
468
469#ifndef _WINGDI_
470typedef struct FONTSIGNATURE FONTSIGNATURE;
471#endif /* _WINGDI_ */
472typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP;
473typedef enum DWRITE_COLOR_COMPOSITE_MODE {
474 DWRITE_COLOR_COMPOSITE_CLEAR = 0,
475 DWRITE_COLOR_COMPOSITE_SRC = 1,
476 DWRITE_COLOR_COMPOSITE_DEST = 2,
477 DWRITE_COLOR_COMPOSITE_SRC_OVER = 3,
478 DWRITE_COLOR_COMPOSITE_DEST_OVER = 4,
479 DWRITE_COLOR_COMPOSITE_SRC_IN = 5,
480 DWRITE_COLOR_COMPOSITE_DEST_IN = 6,
481 DWRITE_COLOR_COMPOSITE_SRC_OUT = 7,
482 DWRITE_COLOR_COMPOSITE_DEST_OUT = 8,
483 DWRITE_COLOR_COMPOSITE_SRC_ATOP = 9,
484 DWRITE_COLOR_COMPOSITE_DEST_ATOP = 10,
485 DWRITE_COLOR_COMPOSITE_XOR = 11,
486 DWRITE_COLOR_COMPOSITE_PLUS = 12,
487 DWRITE_COLOR_COMPOSITE_SCREEN = 13,
488 DWRITE_COLOR_COMPOSITE_OVERLAY = 14,
489 DWRITE_COLOR_COMPOSITE_DARKEN = 15,
490 DWRITE_COLOR_COMPOSITE_LIGHTEN = 16,
491 DWRITE_COLOR_COMPOSITE_COLOR_DODGE = 17,
492 DWRITE_COLOR_COMPOSITE_COLOR_BURN = 18,
493 DWRITE_COLOR_COMPOSITE_HARD_LIGHT = 19,
494 DWRITE_COLOR_COMPOSITE_SOFT_LIGHT = 20,
495 DWRITE_COLOR_COMPOSITE_DIFFERENCE = 21,
496 DWRITE_COLOR_COMPOSITE_EXCLUSION = 22,
497 DWRITE_COLOR_COMPOSITE_MULTIPLY = 23,
498 DWRITE_COLOR_COMPOSITE_HSL_HUE = 24,
499 DWRITE_COLOR_COMPOSITE_HSL_SATURATION = 25,
500 DWRITE_COLOR_COMPOSITE_HSL_COLOR = 26,
501 DWRITE_COLOR_COMPOSITE_HSL_LUMINOSITY = 27
502} DWRITE_COLOR_COMPOSITE_MODE;
503typedef enum DWRITE_LOCALITY {
504 DWRITE_LOCALITY_REMOTE = 0,
505 DWRITE_LOCALITY_PARTIAL = 1,
506 DWRITE_LOCALITY_LOCAL = 2
507} DWRITE_LOCALITY;
508typedef enum DWRITE_RENDERING_MODE1 {
509 DWRITE_RENDERING_MODE1_DEFAULT = 0,
510 DWRITE_RENDERING_MODE1_ALIASED = 1,
511 DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2,
512 DWRITE_RENDERING_MODE1_GDI_NATURAL = 3,
513 DWRITE_RENDERING_MODE1_NATURAL = 4,
514 DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5,
515 DWRITE_RENDERING_MODE1_OUTLINE = 6,
516 DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7
517} DWRITE_RENDERING_MODE1;
518typedef enum DWRITE_FONT_PROPERTY_ID {
519 DWRITE_FONT_PROPERTY_ID_NONE = 0,
520 DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1,
521 DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2,
522 DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3,
523 DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4,
524 DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5,
525 DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6,
526 DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7,
527 DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8,
528 DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9,
529 DWRITE_FONT_PROPERTY_ID_WEIGHT = 10,
530 DWRITE_FONT_PROPERTY_ID_STRETCH = 11,
531 DWRITE_FONT_PROPERTY_ID_STYLE = 12,
532 DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13,
533 DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1,
534 DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1,
535 DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME,
536 DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
537 DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME
538} DWRITE_FONT_PROPERTY_ID;
539typedef struct DWRITE_FONT_PROPERTY {
540 DWRITE_FONT_PROPERTY_ID propertyId;
541 const WCHAR *propertyValue;
542 const WCHAR *localeName;
543} DWRITE_FONT_PROPERTY;
544#ifdef __cplusplus
545#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
546#else
547#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))
548#endif
549typedef enum DWRITE_FONT_AXIS_TAG {
550 DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777,
551 DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477,
552 DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73,
553 DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f,
554 DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469
555} DWRITE_FONT_AXIS_TAG;
556typedef enum DWRITE_FONT_SOURCE_TYPE {
557 DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0,
558 DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1,
559 DWRITE_FONT_SOURCE_TYPE_PER_USER = 2,
560 DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3,
561 DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4
562} DWRITE_FONT_SOURCE_TYPE;
563typedef struct DWRITE_FONT_AXIS_VALUE {
564 DWRITE_FONT_AXIS_TAG axisTag;
565 FLOAT value;
566} DWRITE_FONT_AXIS_VALUE;
567typedef struct DWRITE_FONT_AXIS_RANGE {
568 DWRITE_FONT_AXIS_TAG axisTag;
569 FLOAT minValue;
570 FLOAT maxValue;
571} DWRITE_FONT_AXIS_RANGE;
572typedef enum DWRITE_AUTOMATIC_FONT_AXES {
573 DWRITE_AUTOMATIC_FONT_AXES_NONE = 0,
574 DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1
575} DWRITE_AUTOMATIC_FONT_AXES;
576typedef enum DWRITE_FONT_AXIS_ATTRIBUTES {
577 DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0,
578 DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1,
579 DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2
580} DWRITE_FONT_AXIS_ATTRIBUTES;
581typedef enum DWRITE_FONT_FAMILY_MODEL {
582 DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0,
583 DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1
584} DWRITE_FONT_FAMILY_MODEL;
585typedef enum DWRITE_PAINT_TYPE {
586 DWRITE_PAINT_TYPE_NONE = 0,
587 DWRITE_PAINT_TYPE_LAYERS = 1,
588 DWRITE_PAINT_TYPE_SOLID_GLYPH = 2,
589 DWRITE_PAINT_TYPE_SOLID = 3,
590 DWRITE_PAINT_TYPE_LINEAR_GRADIENT = 4,
591 DWRITE_PAINT_TYPE_RADIAL_GRADIENT = 5,
592 DWRITE_PAINT_TYPE_SWEEP_GRADIENT = 6,
593 DWRITE_PAINT_TYPE_GLYPH = 7,
594 DWRITE_PAINT_TYPE_COLOR_GLYPH = 8,
595 DWRITE_PAINT_TYPE_TRANSFORM = 9,
596 DWRITE_PAINT_TYPE_COMPOSITE = 10
597} DWRITE_PAINT_TYPE;
598#ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED
599#define DWRITE_PAINT_FEATURE_LEVEL_DEFINED
600typedef enum DWRITE_PAINT_FEATURE_LEVEL {
601 DWRITE_PAINT_FEATURE_LEVEL_NONE = 0,
602 DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1,
603 DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2
604} DWRITE_PAINT_FEATURE_LEVEL;
605#endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */
606typedef enum DWRITE_PAINT_ATTRIBUTES {
607 DWRITE_PAINT_ATTRIBUTES_NONE = 0,
608 DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1,
609 DWRITE_PAINT_ATTRIBUTES_USES_TEXT_COLOR = 0x2
610} DWRITE_PAINT_ATTRIBUTES;
611DEFINE_ENUM_FLAG_OPERATORS(DWRITE_PAINT_ATTRIBUTES)
612typedef struct DWRITE_PAINT_COLOR {
613 DWRITE_COLOR_F value;
614 UINT16 paletteEntryIndex;
615 float alphaMultiplier;
616 DWRITE_PAINT_ATTRIBUTES colorAttributes;
617} DWRITE_PAINT_COLOR;
618typedef struct DWRITE_PAINT_ELEMENT {
619 DWRITE_PAINT_TYPE paintType;
620 union PAINT_UNION {
621 struct PAINT_LAYERS {
622 UINT32 childCount;
623 } layers;
624 struct PAINT_SOLID_GLYPH {
625 UINT32 glyphIndex;
626 DWRITE_PAINT_COLOR color;
627 } solidGlyph;
628 DWRITE_PAINT_COLOR solid;
629 struct PAINT_LINEAR_GRADIENT {
630 UINT32 extendMode;
631 UINT32 gradientStopCount;
632 float x0;
633 float y0;
634 float x1;
635 float y1;
636 float x2;
637 float y2;
638 } linearGradient;
639 struct PAINT_RADIAL_GRADIENT {
640 UINT32 extendMode;
641 UINT32 gradientStopCount;
642 float x0;
643 float y0;
644 float radius0;
645 float x1;
646 float y1;
647 float radius1;
648 } radialGradient;
649 struct PAINT_SWEEP_GRADIENT {
650 UINT32 extendMode;
651 UINT32 gradientStopCount;
652 float centerX;
653 float centerY;
654 float startAngle;
655 float endAngle;
656 } sweepGradient;
657 struct PAINT_GLYPH {
658 UINT32 glyphIndex;
659 } glyph;
660 struct PAINT_COLOR_GLYPH {
661 UINT32 glyphIndex;
662 D2D_RECT_F clipBox;
663 } colorGlyph;
664 DWRITE_MATRIX transform;
665 struct PAINT_COMPOSITE {
666 DWRITE_COLOR_COMPOSITE_MODE mode;
667 } composite;
668 } paint;
669} DWRITE_PAINT_ELEMENT;
670/*****************************************************************************
671 * IDWriteFontDownloadListener interface
672 */
673#ifndef __IDWriteFontDownloadListener_INTERFACE_DEFINED__
674#define __IDWriteFontDownloadListener_INTERFACE_DEFINED__
675
676DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7);
677#if defined(__cplusplus) && !defined(CINTERFACE)
678MIDL_INTERFACE("b06fe5b9-43ec-4393-881b-dbe4dc72fda7")
679IDWriteFontDownloadListener : public IUnknown
680{
681 virtual void STDMETHODCALLTYPE DownloadCompleted(
682 IDWriteFontDownloadQueue *queue,
683 IUnknown *context,
684 HRESULT result) = 0;
685
686};
687#ifdef __CRT_UUID_DECL
688__CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7)
689#endif
690#else
691typedef struct IDWriteFontDownloadListenerVtbl {
692 BEGIN_INTERFACE
693
694 /*** IUnknown methods ***/
695 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
696 IDWriteFontDownloadListener *This,
697 REFIID riid,
698 void **ppvObject);
699
700 ULONG (STDMETHODCALLTYPE *AddRef)(
701 IDWriteFontDownloadListener *This);
702
703 ULONG (STDMETHODCALLTYPE *Release)(
704 IDWriteFontDownloadListener *This);
705
706 /*** IDWriteFontDownloadListener methods ***/
707 void (STDMETHODCALLTYPE *DownloadCompleted)(
708 IDWriteFontDownloadListener *This,
709 IDWriteFontDownloadQueue *queue,
710 IUnknown *context,
711 HRESULT result);
712
713 END_INTERFACE
714} IDWriteFontDownloadListenerVtbl;
715
716interface IDWriteFontDownloadListener {
717 CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl;
718};
719
720#ifdef COBJMACROS
721#ifndef WIDL_C_INLINE_WRAPPERS
722/*** IUnknown methods ***/
723#define IDWriteFontDownloadListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
724#define IDWriteFontDownloadListener_AddRef(This) (This)->lpVtbl->AddRef(This)
725#define IDWriteFontDownloadListener_Release(This) (This)->lpVtbl->Release(This)
726/*** IDWriteFontDownloadListener methods ***/
727#define IDWriteFontDownloadListener_DownloadCompleted(This,queue,context,result) (This)->lpVtbl->DownloadCompleted(This,queue,context,result)
728#else
729/*** IUnknown methods ***/
730static inline HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This,REFIID riid,void **ppvObject) {
731 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
732}
733static inline ULONG IDWriteFontDownloadListener_AddRef(IDWriteFontDownloadListener* This) {
734 return This->lpVtbl->AddRef(This);
735}
736static inline ULONG IDWriteFontDownloadListener_Release(IDWriteFontDownloadListener* This) {
737 return This->lpVtbl->Release(This);
738}
739/*** IDWriteFontDownloadListener methods ***/
740static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This,IDWriteFontDownloadQueue *queue,IUnknown *context,HRESULT result) {
741 This->lpVtbl->DownloadCompleted(This,queue,context,result);
742}
743#endif
744#endif
745
746#endif
747
748
749#endif /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */
750
751/*****************************************************************************
752 * IDWriteFontDownloadQueue interface
753 */
754#ifndef __IDWriteFontDownloadQueue_INTERFACE_DEFINED__
755#define __IDWriteFontDownloadQueue_INTERFACE_DEFINED__
756
757DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91);
758#if defined(__cplusplus) && !defined(CINTERFACE)
759MIDL_INTERFACE("b71e6052-5aea-4fa3-832e-f60d431f7e91")
760IDWriteFontDownloadQueue : public IUnknown
761{
762 virtual HRESULT STDMETHODCALLTYPE AddListener(
763 IDWriteFontDownloadListener *listener,
764 UINT32 *token) = 0;
765
766 virtual HRESULT STDMETHODCALLTYPE RemoveListener(
767 UINT32 token) = 0;
768
769 virtual WINBOOL STDMETHODCALLTYPE IsEmpty(
770 ) = 0;
771
772 virtual HRESULT STDMETHODCALLTYPE BeginDownload(
773 IUnknown *context) = 0;
774
775 virtual HRESULT STDMETHODCALLTYPE CancelDownload(
776 ) = 0;
777
778 virtual UINT64 STDMETHODCALLTYPE GetGenerationCount(
779 ) = 0;
780
781};
782#ifdef __CRT_UUID_DECL
783__CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91)
784#endif
785#else
786typedef struct IDWriteFontDownloadQueueVtbl {
787 BEGIN_INTERFACE
788
789 /*** IUnknown methods ***/
790 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
791 IDWriteFontDownloadQueue *This,
792 REFIID riid,
793 void **ppvObject);
794
795 ULONG (STDMETHODCALLTYPE *AddRef)(
796 IDWriteFontDownloadQueue *This);
797
798 ULONG (STDMETHODCALLTYPE *Release)(
799 IDWriteFontDownloadQueue *This);
800
801 /*** IDWriteFontDownloadQueue methods ***/
802 HRESULT (STDMETHODCALLTYPE *AddListener)(
803 IDWriteFontDownloadQueue *This,
804 IDWriteFontDownloadListener *listener,
805 UINT32 *token);
806
807 HRESULT (STDMETHODCALLTYPE *RemoveListener)(
808 IDWriteFontDownloadQueue *This,
809 UINT32 token);
810
811 WINBOOL (STDMETHODCALLTYPE *IsEmpty)(
812 IDWriteFontDownloadQueue *This);
813
814 HRESULT (STDMETHODCALLTYPE *BeginDownload)(
815 IDWriteFontDownloadQueue *This,
816 IUnknown *context);
817
818 HRESULT (STDMETHODCALLTYPE *CancelDownload)(
819 IDWriteFontDownloadQueue *This);
820
821 UINT64 (STDMETHODCALLTYPE *GetGenerationCount)(
822 IDWriteFontDownloadQueue *This);
823
824 END_INTERFACE
825} IDWriteFontDownloadQueueVtbl;
826
827interface IDWriteFontDownloadQueue {
828 CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl;
829};
830
831#ifdef COBJMACROS
832#ifndef WIDL_C_INLINE_WRAPPERS
833/*** IUnknown methods ***/
834#define IDWriteFontDownloadQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
835#define IDWriteFontDownloadQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
836#define IDWriteFontDownloadQueue_Release(This) (This)->lpVtbl->Release(This)
837/*** IDWriteFontDownloadQueue methods ***/
838#define IDWriteFontDownloadQueue_AddListener(This,listener,token) (This)->lpVtbl->AddListener(This,listener,token)
839#define IDWriteFontDownloadQueue_RemoveListener(This,token) (This)->lpVtbl->RemoveListener(This,token)
840#define IDWriteFontDownloadQueue_IsEmpty(This) (This)->lpVtbl->IsEmpty(This)
841#define IDWriteFontDownloadQueue_BeginDownload(This,context) (This)->lpVtbl->BeginDownload(This,context)
842#define IDWriteFontDownloadQueue_CancelDownload(This) (This)->lpVtbl->CancelDownload(This)
843#define IDWriteFontDownloadQueue_GetGenerationCount(This) (This)->lpVtbl->GetGenerationCount(This)
844#else
845/*** IUnknown methods ***/
846static inline HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This,REFIID riid,void **ppvObject) {
847 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
848}
849static inline ULONG IDWriteFontDownloadQueue_AddRef(IDWriteFontDownloadQueue* This) {
850 return This->lpVtbl->AddRef(This);
851}
852static inline ULONG IDWriteFontDownloadQueue_Release(IDWriteFontDownloadQueue* This) {
853 return This->lpVtbl->Release(This);
854}
855/*** IDWriteFontDownloadQueue methods ***/
856static inline HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This,IDWriteFontDownloadListener *listener,UINT32 *token) {
857 return This->lpVtbl->AddListener(This,listener,token);
858}
859static inline HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This,UINT32 token) {
860 return This->lpVtbl->RemoveListener(This,token);
861}
862static inline WINBOOL IDWriteFontDownloadQueue_IsEmpty(IDWriteFontDownloadQueue* This) {
863 return This->lpVtbl->IsEmpty(This);
864}
865static inline HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This,IUnknown *context) {
866 return This->lpVtbl->BeginDownload(This,context);
867}
868static inline HRESULT IDWriteFontDownloadQueue_CancelDownload(IDWriteFontDownloadQueue* This) {
869 return This->lpVtbl->CancelDownload(This);
870}
871static inline UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDownloadQueue* This) {
872 return This->lpVtbl->GetGenerationCount(This);
873}
874#endif
875#endif
876
877#endif
878
879
880#endif /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */
881
882/*****************************************************************************
883 * IDWriteRenderingParams3 interface
884 */
885#ifndef __IDWriteRenderingParams3_INTERFACE_DEFINED__
886#define __IDWriteRenderingParams3_INTERFACE_DEFINED__
887
888DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc);
889#if defined(__cplusplus) && !defined(CINTERFACE)
890MIDL_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc")
891IDWriteRenderingParams3 : public IDWriteRenderingParams2
892{
893 virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1(
894 ) = 0;
895
896};
897#ifdef __CRT_UUID_DECL
898__CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc)
899#endif
900#else
901typedef struct IDWriteRenderingParams3Vtbl {
902 BEGIN_INTERFACE
903
904 /*** IUnknown methods ***/
905 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
906 IDWriteRenderingParams3 *This,
907 REFIID riid,
908 void **ppvObject);
909
910 ULONG (STDMETHODCALLTYPE *AddRef)(
911 IDWriteRenderingParams3 *This);
912
913 ULONG (STDMETHODCALLTYPE *Release)(
914 IDWriteRenderingParams3 *This);
915
916 /*** IDWriteRenderingParams methods ***/
917 FLOAT (STDMETHODCALLTYPE *GetGamma)(
918 IDWriteRenderingParams3 *This);
919
920 FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)(
921 IDWriteRenderingParams3 *This);
922
923 FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)(
924 IDWriteRenderingParams3 *This);
925
926 DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)(
927 IDWriteRenderingParams3 *This);
928
929 DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)(
930 IDWriteRenderingParams3 *This);
931
932 /*** IDWriteRenderingParams1 methods ***/
933 FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)(
934 IDWriteRenderingParams3 *This);
935
936 /*** IDWriteRenderingParams2 methods ***/
937 DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)(
938 IDWriteRenderingParams3 *This);
939
940 /*** IDWriteRenderingParams3 methods ***/
941 DWRITE_RENDERING_MODE1 (STDMETHODCALLTYPE *GetRenderingMode1)(
942 IDWriteRenderingParams3 *This);
943
944 END_INTERFACE
945} IDWriteRenderingParams3Vtbl;
946
947interface IDWriteRenderingParams3 {
948 CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl;
949};
950
951#ifdef COBJMACROS
952#ifndef WIDL_C_INLINE_WRAPPERS
953/*** IUnknown methods ***/
954#define IDWriteRenderingParams3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
955#define IDWriteRenderingParams3_AddRef(This) (This)->lpVtbl->AddRef(This)
956#define IDWriteRenderingParams3_Release(This) (This)->lpVtbl->Release(This)
957/*** IDWriteRenderingParams methods ***/
958#define IDWriteRenderingParams3_GetGamma(This) (This)->lpVtbl->GetGamma(This)
959#define IDWriteRenderingParams3_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This)
960#define IDWriteRenderingParams3_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This)
961#define IDWriteRenderingParams3_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This)
962#define IDWriteRenderingParams3_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This)
963/*** IDWriteRenderingParams1 methods ***/
964#define IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This)
965/*** IDWriteRenderingParams2 methods ***/
966#define IDWriteRenderingParams3_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This)
967/*** IDWriteRenderingParams3 methods ***/
968#define IDWriteRenderingParams3_GetRenderingMode1(This) (This)->lpVtbl->GetRenderingMode1(This)
969#else
970/*** IUnknown methods ***/
971static inline HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This,REFIID riid,void **ppvObject) {
972 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
973}
974static inline ULONG IDWriteRenderingParams3_AddRef(IDWriteRenderingParams3* This) {
975 return This->lpVtbl->AddRef(This);
976}
977static inline ULONG IDWriteRenderingParams3_Release(IDWriteRenderingParams3* This) {
978 return This->lpVtbl->Release(This);
979}
980/*** IDWriteRenderingParams methods ***/
981static inline FLOAT IDWriteRenderingParams3_GetGamma(IDWriteRenderingParams3* This) {
982 return This->lpVtbl->GetGamma(This);
983}
984static inline FLOAT IDWriteRenderingParams3_GetEnhancedContrast(IDWriteRenderingParams3* This) {
985 return This->lpVtbl->GetEnhancedContrast(This);
986}
987static inline FLOAT IDWriteRenderingParams3_GetClearTypeLevel(IDWriteRenderingParams3* This) {
988 return This->lpVtbl->GetClearTypeLevel(This);
989}
990static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams3_GetPixelGeometry(IDWriteRenderingParams3* This) {
991 return This->lpVtbl->GetPixelGeometry(This);
992}
993static inline DWRITE_RENDERING_MODE IDWriteRenderingParams3_GetRenderingMode(IDWriteRenderingParams3* This) {
994 return This->lpVtbl->GetRenderingMode(This);
995}
996/*** IDWriteRenderingParams1 methods ***/
997static inline FLOAT IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(IDWriteRenderingParams3* This) {
998 return This->lpVtbl->GetGrayscaleEnhancedContrast(This);
999}
1000/*** IDWriteRenderingParams2 methods ***/
1001static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams3_GetGridFitMode(IDWriteRenderingParams3* This) {
1002 return This->lpVtbl->GetGridFitMode(This);
1003}
1004/*** IDWriteRenderingParams3 methods ***/
1005static inline DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(IDWriteRenderingParams3* This) {
1006 return This->lpVtbl->GetRenderingMode1(This);
1007}
1008#endif
1009#endif
1010
1011#endif
1012
1013
1014#endif /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */
1015
1016/*****************************************************************************
1017 * IDWriteStringList interface
1018 */
1019#ifndef __IDWriteStringList_INTERFACE_DEFINED__
1020#define __IDWriteStringList_INTERFACE_DEFINED__
1021
1022DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e);
1023#if defined(__cplusplus) && !defined(CINTERFACE)
1024MIDL_INTERFACE("cfee3140-1157-47ca-8b85-31bfcf3f2d0e")
1025IDWriteStringList : public IUnknown
1026{
1027 virtual UINT32 STDMETHODCALLTYPE GetCount(
1028 ) = 0;
1029
1030 virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength(
1031 UINT32 index,
1032 UINT32 *length) = 0;
1033
1034 virtual HRESULT STDMETHODCALLTYPE GetLocaleName(
1035 UINT32 index,
1036 WCHAR *name,
1037 UINT32 size) = 0;
1038
1039 virtual HRESULT STDMETHODCALLTYPE GetStringLength(
1040 UINT32 index,
1041 UINT32 *length) = 0;
1042
1043 virtual HRESULT STDMETHODCALLTYPE GetString(
1044 UINT32 index,
1045 WCHAR *string,
1046 UINT32 size) = 0;
1047
1048};
1049#ifdef __CRT_UUID_DECL
1050__CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e)
1051#endif
1052#else
1053typedef struct IDWriteStringListVtbl {
1054 BEGIN_INTERFACE
1055
1056 /*** IUnknown methods ***/
1057 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1058 IDWriteStringList *This,
1059 REFIID riid,
1060 void **ppvObject);
1061
1062 ULONG (STDMETHODCALLTYPE *AddRef)(
1063 IDWriteStringList *This);
1064
1065 ULONG (STDMETHODCALLTYPE *Release)(
1066 IDWriteStringList *This);
1067
1068 /*** IDWriteStringList methods ***/
1069 UINT32 (STDMETHODCALLTYPE *GetCount)(
1070 IDWriteStringList *This);
1071
1072 HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)(
1073 IDWriteStringList *This,
1074 UINT32 index,
1075 UINT32 *length);
1076
1077 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
1078 IDWriteStringList *This,
1079 UINT32 index,
1080 WCHAR *name,
1081 UINT32 size);
1082
1083 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
1084 IDWriteStringList *This,
1085 UINT32 index,
1086 UINT32 *length);
1087
1088 HRESULT (STDMETHODCALLTYPE *GetString)(
1089 IDWriteStringList *This,
1090 UINT32 index,
1091 WCHAR *string,
1092 UINT32 size);
1093
1094 END_INTERFACE
1095} IDWriteStringListVtbl;
1096
1097interface IDWriteStringList {
1098 CONST_VTBL IDWriteStringListVtbl* lpVtbl;
1099};
1100
1101#ifdef COBJMACROS
1102#ifndef WIDL_C_INLINE_WRAPPERS
1103/*** IUnknown methods ***/
1104#define IDWriteStringList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1105#define IDWriteStringList_AddRef(This) (This)->lpVtbl->AddRef(This)
1106#define IDWriteStringList_Release(This) (This)->lpVtbl->Release(This)
1107/*** IDWriteStringList methods ***/
1108#define IDWriteStringList_GetCount(This) (This)->lpVtbl->GetCount(This)
1109#define IDWriteStringList_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length)
1110#define IDWriteStringList_GetLocaleName(This,index,name,size) (This)->lpVtbl->GetLocaleName(This,index,name,size)
1111#define IDWriteStringList_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length)
1112#define IDWriteStringList_GetString(This,index,string,size) (This)->lpVtbl->GetString(This,index,string,size)
1113#else
1114/*** IUnknown methods ***/
1115static inline HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This,REFIID riid,void **ppvObject) {
1116 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1117}
1118static inline ULONG IDWriteStringList_AddRef(IDWriteStringList* This) {
1119 return This->lpVtbl->AddRef(This);
1120}
1121static inline ULONG IDWriteStringList_Release(IDWriteStringList* This) {
1122 return This->lpVtbl->Release(This);
1123}
1124/*** IDWriteStringList methods ***/
1125static inline UINT32 IDWriteStringList_GetCount(IDWriteStringList* This) {
1126 return This->lpVtbl->GetCount(This);
1127}
1128static inline HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This,UINT32 index,UINT32 *length) {
1129 return This->lpVtbl->GetLocaleNameLength(This,index,length);
1130}
1131static inline HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This,UINT32 index,WCHAR *name,UINT32 size) {
1132 return This->lpVtbl->GetLocaleName(This,index,name,size);
1133}
1134static inline HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This,UINT32 index,UINT32 *length) {
1135 return This->lpVtbl->GetStringLength(This,index,length);
1136}
1137static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This,UINT32 index,WCHAR *string,UINT32 size) {
1138 return This->lpVtbl->GetString(This,index,string,size);
1139}
1140#endif
1141#endif
1142
1143#endif
1144
1145
1146#endif /* __IDWriteStringList_INTERFACE_DEFINED__ */
1147
1148/*****************************************************************************
1149 * IDWriteFontSet interface
1150 */
1151#ifndef __IDWriteFontSet_INTERFACE_DEFINED__
1152#define __IDWriteFontSet_INTERFACE_DEFINED__
1153
1154DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b);
1155#if defined(__cplusplus) && !defined(CINTERFACE)
1156MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116b")
1157IDWriteFontSet : public IUnknown
1158{
1159 virtual UINT32 STDMETHODCALLTYPE GetFontCount(
1160 ) = 0;
1161
1162 virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
1163 UINT32 index,
1164 IDWriteFontFaceReference **reference) = 0;
1165
1166 virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference(
1167 IDWriteFontFaceReference *reference,
1168 UINT32 *index,
1169 WINBOOL *exists) = 0;
1170
1171 virtual HRESULT STDMETHODCALLTYPE FindFontFace(
1172 IDWriteFontFace *fontface,
1173 UINT32 *index,
1174 WINBOOL *exists) = 0;
1175
1176 virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__(
1177 DWRITE_FONT_PROPERTY_ID id,
1178 IDWriteStringList **values) = 0;
1179
1180 virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_(
1181 DWRITE_FONT_PROPERTY_ID id,
1182 const WCHAR *preferred_locales,
1183 IDWriteStringList **values) = 0;
1184
1185 virtual HRESULT STDMETHODCALLTYPE GetPropertyValues(
1186 UINT32 index,
1187 DWRITE_FONT_PROPERTY_ID id,
1188 WINBOOL *exists,
1189 IDWriteLocalizedStrings **values) = 0;
1190
1191 virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount(
1192 const DWRITE_FONT_PROPERTY *property,
1193 UINT32 *count) = 0;
1194
1195 virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_(
1196 const WCHAR *family,
1197 DWRITE_FONT_WEIGHT weight,
1198 DWRITE_FONT_STRETCH stretch,
1199 DWRITE_FONT_STYLE style,
1200 IDWriteFontSet **fontset) = 0;
1201
1202 virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
1203 const DWRITE_FONT_PROPERTY *props,
1204 UINT32 count,
1205 IDWriteFontSet **fontset) = 0;
1206
1207};
1208#ifdef __CRT_UUID_DECL
1209__CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b)
1210#endif
1211#else
1212typedef struct IDWriteFontSetVtbl {
1213 BEGIN_INTERFACE
1214
1215 /*** IUnknown methods ***/
1216 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1217 IDWriteFontSet *This,
1218 REFIID riid,
1219 void **ppvObject);
1220
1221 ULONG (STDMETHODCALLTYPE *AddRef)(
1222 IDWriteFontSet *This);
1223
1224 ULONG (STDMETHODCALLTYPE *Release)(
1225 IDWriteFontSet *This);
1226
1227 /*** IDWriteFontSet methods ***/
1228 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
1229 IDWriteFontSet *This);
1230
1231 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
1232 IDWriteFontSet *This,
1233 UINT32 index,
1234 IDWriteFontFaceReference **reference);
1235
1236 HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
1237 IDWriteFontSet *This,
1238 IDWriteFontFaceReference *reference,
1239 UINT32 *index,
1240 WINBOOL *exists);
1241
1242 HRESULT (STDMETHODCALLTYPE *FindFontFace)(
1243 IDWriteFontSet *This,
1244 IDWriteFontFace *fontface,
1245 UINT32 *index,
1246 WINBOOL *exists);
1247
1248 HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
1249 IDWriteFontSet *This,
1250 DWRITE_FONT_PROPERTY_ID id,
1251 IDWriteStringList **values);
1252
1253 HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
1254 IDWriteFontSet *This,
1255 DWRITE_FONT_PROPERTY_ID id,
1256 const WCHAR *preferred_locales,
1257 IDWriteStringList **values);
1258
1259 HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
1260 IDWriteFontSet *This,
1261 UINT32 index,
1262 DWRITE_FONT_PROPERTY_ID id,
1263 WINBOOL *exists,
1264 IDWriteLocalizedStrings **values);
1265
1266 HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
1267 IDWriteFontSet *This,
1268 const DWRITE_FONT_PROPERTY *property,
1269 UINT32 *count);
1270
1271 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
1272 IDWriteFontSet *This,
1273 const WCHAR *family,
1274 DWRITE_FONT_WEIGHT weight,
1275 DWRITE_FONT_STRETCH stretch,
1276 DWRITE_FONT_STYLE style,
1277 IDWriteFontSet **fontset);
1278
1279 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
1280 IDWriteFontSet *This,
1281 const DWRITE_FONT_PROPERTY *props,
1282 UINT32 count,
1283 IDWriteFontSet **fontset);
1284
1285 END_INTERFACE
1286} IDWriteFontSetVtbl;
1287
1288interface IDWriteFontSet {
1289 CONST_VTBL IDWriteFontSetVtbl* lpVtbl;
1290};
1291
1292#ifdef COBJMACROS
1293#ifndef WIDL_C_INLINE_WRAPPERS
1294/*** IUnknown methods ***/
1295#define IDWriteFontSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1296#define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This)
1297#define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This)
1298/*** IDWriteFontSet methods ***/
1299#define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
1300#define IDWriteFontSet_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
1301#define IDWriteFontSet_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
1302#define IDWriteFontSet_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
1303#define IDWriteFontSet_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
1304#define IDWriteFontSet_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
1305#define IDWriteFontSet_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
1306#define IDWriteFontSet_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
1307#define IDWriteFontSet_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
1308#define IDWriteFontSet_GetMatchingFonts(This,props,count,fontset) (This)->lpVtbl->GetMatchingFonts(This,props,count,fontset)
1309#else
1310/*** IUnknown methods ***/
1311static inline HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This,REFIID riid,void **ppvObject) {
1312 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1313}
1314static inline ULONG IDWriteFontSet_AddRef(IDWriteFontSet* This) {
1315 return This->lpVtbl->AddRef(This);
1316}
1317static inline ULONG IDWriteFontSet_Release(IDWriteFontSet* This) {
1318 return This->lpVtbl->Release(This);
1319}
1320/*** IDWriteFontSet methods ***/
1321static inline UINT32 IDWriteFontSet_GetFontCount(IDWriteFontSet* This) {
1322 return This->lpVtbl->GetFontCount(This);
1323}
1324static inline HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This,UINT32 index,IDWriteFontFaceReference **reference) {
1325 return This->lpVtbl->GetFontFaceReference(This,index,reference);
1326}
1327static inline HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
1328 return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
1329}
1330static inline HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
1331 return This->lpVtbl->FindFontFace(This,fontface,index,exists);
1332}
1333static inline HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
1334 return This->lpVtbl->GetPropertyValues__(This,id,values);
1335}
1336static inline HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
1337 return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
1338}
1339static inline HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
1340 return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
1341}
1342static inline HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
1343 return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
1344}
1345static inline HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
1346 return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
1347}
1348static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *props,UINT32 count,IDWriteFontSet **fontset) {
1349 return This->lpVtbl->GetMatchingFonts(This,props,count,fontset);
1350}
1351#endif
1352#endif
1353
1354#endif
1355
1356
1357#endif /* __IDWriteFontSet_INTERFACE_DEFINED__ */
1358
1359/*****************************************************************************
1360 * IDWriteFontResource interface
1361 */
1362#ifndef __IDWriteFontResource_INTERFACE_DEFINED__
1363#define __IDWriteFontResource_INTERFACE_DEFINED__
1364
1365DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2);
1366#if defined(__cplusplus) && !defined(CINTERFACE)
1367MIDL_INTERFACE("1f803a76-6871-48e8-987f-b975551c50f2")
1368IDWriteFontResource : public IUnknown
1369{
1370 virtual HRESULT STDMETHODCALLTYPE GetFontFile(
1371 IDWriteFontFile **fontfile) = 0;
1372
1373 virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex(
1374 ) = 0;
1375
1376 virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount(
1377 ) = 0;
1378
1379 virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues(
1380 DWRITE_FONT_AXIS_VALUE *values,
1381 UINT32 num_values) = 0;
1382
1383 virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges(
1384 DWRITE_FONT_AXIS_RANGE *ranges,
1385 UINT32 num_ranges) = 0;
1386
1387 virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes(
1388 UINT32 axis) = 0;
1389
1390 virtual HRESULT STDMETHODCALLTYPE GetAxisNames(
1391 UINT32 axis,
1392 IDWriteLocalizedStrings **names) = 0;
1393
1394 virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount(
1395 UINT32 axis) = 0;
1396
1397 virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames(
1398 UINT32 axis,
1399 UINT32 axis_value,
1400 DWRITE_FONT_AXIS_RANGE *axis_range,
1401 IDWriteLocalizedStrings **names) = 0;
1402
1403 virtual WINBOOL STDMETHODCALLTYPE HasVariations(
1404 ) = 0;
1405
1406 virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
1407 DWRITE_FONT_SIMULATIONS simulations,
1408 const DWRITE_FONT_AXIS_VALUE *axis_values,
1409 UINT32 num_values,
1410 IDWriteFontFace5 **fontface) = 0;
1411
1412 virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
1413 DWRITE_FONT_SIMULATIONS simulations,
1414 const DWRITE_FONT_AXIS_VALUE *axis_values,
1415 UINT32 num_values,
1416 IDWriteFontFaceReference1 **reference) = 0;
1417
1418};
1419#ifdef __CRT_UUID_DECL
1420__CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2)
1421#endif
1422#else
1423typedef struct IDWriteFontResourceVtbl {
1424 BEGIN_INTERFACE
1425
1426 /*** IUnknown methods ***/
1427 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1428 IDWriteFontResource *This,
1429 REFIID riid,
1430 void **ppvObject);
1431
1432 ULONG (STDMETHODCALLTYPE *AddRef)(
1433 IDWriteFontResource *This);
1434
1435 ULONG (STDMETHODCALLTYPE *Release)(
1436 IDWriteFontResource *This);
1437
1438 /*** IDWriteFontResource methods ***/
1439 HRESULT (STDMETHODCALLTYPE *GetFontFile)(
1440 IDWriteFontResource *This,
1441 IDWriteFontFile **fontfile);
1442
1443 UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
1444 IDWriteFontResource *This);
1445
1446 UINT32 (STDMETHODCALLTYPE *GetFontAxisCount)(
1447 IDWriteFontResource *This);
1448
1449 HRESULT (STDMETHODCALLTYPE *GetDefaultFontAxisValues)(
1450 IDWriteFontResource *This,
1451 DWRITE_FONT_AXIS_VALUE *values,
1452 UINT32 num_values);
1453
1454 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
1455 IDWriteFontResource *This,
1456 DWRITE_FONT_AXIS_RANGE *ranges,
1457 UINT32 num_ranges);
1458
1459 DWRITE_FONT_AXIS_ATTRIBUTES (STDMETHODCALLTYPE *GetFontAxisAttributes)(
1460 IDWriteFontResource *This,
1461 UINT32 axis);
1462
1463 HRESULT (STDMETHODCALLTYPE *GetAxisNames)(
1464 IDWriteFontResource *This,
1465 UINT32 axis,
1466 IDWriteLocalizedStrings **names);
1467
1468 UINT32 (STDMETHODCALLTYPE *GetAxisValueNameCount)(
1469 IDWriteFontResource *This,
1470 UINT32 axis);
1471
1472 HRESULT (STDMETHODCALLTYPE *GetAxisValueNames)(
1473 IDWriteFontResource *This,
1474 UINT32 axis,
1475 UINT32 axis_value,
1476 DWRITE_FONT_AXIS_RANGE *axis_range,
1477 IDWriteLocalizedStrings **names);
1478
1479 WINBOOL (STDMETHODCALLTYPE *HasVariations)(
1480 IDWriteFontResource *This);
1481
1482 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
1483 IDWriteFontResource *This,
1484 DWRITE_FONT_SIMULATIONS simulations,
1485 const DWRITE_FONT_AXIS_VALUE *axis_values,
1486 UINT32 num_values,
1487 IDWriteFontFace5 **fontface);
1488
1489 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
1490 IDWriteFontResource *This,
1491 DWRITE_FONT_SIMULATIONS simulations,
1492 const DWRITE_FONT_AXIS_VALUE *axis_values,
1493 UINT32 num_values,
1494 IDWriteFontFaceReference1 **reference);
1495
1496 END_INTERFACE
1497} IDWriteFontResourceVtbl;
1498
1499interface IDWriteFontResource {
1500 CONST_VTBL IDWriteFontResourceVtbl* lpVtbl;
1501};
1502
1503#ifdef COBJMACROS
1504#ifndef WIDL_C_INLINE_WRAPPERS
1505/*** IUnknown methods ***/
1506#define IDWriteFontResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1507#define IDWriteFontResource_AddRef(This) (This)->lpVtbl->AddRef(This)
1508#define IDWriteFontResource_Release(This) (This)->lpVtbl->Release(This)
1509/*** IDWriteFontResource methods ***/
1510#define IDWriteFontResource_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
1511#define IDWriteFontResource_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
1512#define IDWriteFontResource_GetFontAxisCount(This) (This)->lpVtbl->GetFontAxisCount(This)
1513#define IDWriteFontResource_GetDefaultFontAxisValues(This,values,num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This,values,num_values)
1514#define IDWriteFontResource_GetFontAxisRanges(This,ranges,num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges)
1515#define IDWriteFontResource_GetFontAxisAttributes(This,axis) (This)->lpVtbl->GetFontAxisAttributes(This,axis)
1516#define IDWriteFontResource_GetAxisNames(This,axis,names) (This)->lpVtbl->GetAxisNames(This,axis,names)
1517#define IDWriteFontResource_GetAxisValueNameCount(This,axis) (This)->lpVtbl->GetAxisValueNameCount(This,axis)
1518#define IDWriteFontResource_GetAxisValueNames(This,axis,axis_value,axis_range,names) (This)->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names)
1519#define IDWriteFontResource_HasVariations(This) (This)->lpVtbl->HasVariations(This)
1520#define IDWriteFontResource_CreateFontFace(This,simulations,axis_values,num_values,fontface) (This)->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface)
1521#define IDWriteFontResource_CreateFontFaceReference(This,simulations,axis_values,num_values,reference) (This)->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference)
1522#else
1523/*** IUnknown methods ***/
1524static inline HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This,REFIID riid,void **ppvObject) {
1525 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1526}
1527static inline ULONG IDWriteFontResource_AddRef(IDWriteFontResource* This) {
1528 return This->lpVtbl->AddRef(This);
1529}
1530static inline ULONG IDWriteFontResource_Release(IDWriteFontResource* This) {
1531 return This->lpVtbl->Release(This);
1532}
1533/*** IDWriteFontResource methods ***/
1534static inline HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This,IDWriteFontFile **fontfile) {
1535 return This->lpVtbl->GetFontFile(This,fontfile);
1536}
1537static inline UINT32 IDWriteFontResource_GetFontFaceIndex(IDWriteFontResource* This) {
1538 return This->lpVtbl->GetFontFaceIndex(This);
1539}
1540static inline UINT32 IDWriteFontResource_GetFontAxisCount(IDWriteFontResource* This) {
1541 return This->lpVtbl->GetFontAxisCount(This);
1542}
1543static inline HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) {
1544 return This->lpVtbl->GetDefaultFontAxisValues(This,values,num_values);
1545}
1546static inline HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This,DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges) {
1547 return This->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges);
1548}
1549static inline DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This,UINT32 axis) {
1550 return This->lpVtbl->GetFontAxisAttributes(This,axis);
1551}
1552static inline HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This,UINT32 axis,IDWriteLocalizedStrings **names) {
1553 return This->lpVtbl->GetAxisNames(This,axis,names);
1554}
1555static inline UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This,UINT32 axis) {
1556 return This->lpVtbl->GetAxisValueNameCount(This,axis);
1557}
1558static inline HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This,UINT32 axis,UINT32 axis_value,DWRITE_FONT_AXIS_RANGE *axis_range,IDWriteLocalizedStrings **names) {
1559 return This->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names);
1560}
1561static inline WINBOOL IDWriteFontResource_HasVariations(IDWriteFontResource* This) {
1562 return This->lpVtbl->HasVariations(This);
1563}
1564static inline HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFace5 **fontface) {
1565 return This->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface);
1566}
1567static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFaceReference1 **reference) {
1568 return This->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference);
1569}
1570#endif
1571#endif
1572
1573#endif
1574
1575
1576#endif /* __IDWriteFontResource_INTERFACE_DEFINED__ */
1577
1578/*****************************************************************************
1579 * IDWriteFontSet1 interface
1580 */
1581#ifndef __IDWriteFontSet1_INTERFACE_DEFINED__
1582#define __IDWriteFontSet1_INTERFACE_DEFINED__
1583
1584DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3);
1585#if defined(__cplusplus) && !defined(CINTERFACE)
1586MIDL_INTERFACE("7e9fda85-6c92-4053-bc47-7ae3530db4d3")
1587IDWriteFontSet1 : public IDWriteFontSet
1588{
1589 virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
1590 const DWRITE_FONT_PROPERTY *property,
1591 const DWRITE_FONT_AXIS_VALUE *axis_values,
1592 UINT32 num_values,
1593 IDWriteFontSet1 **fontset) = 0;
1594
1595 virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources(
1596 IDWriteFontSet1 **fontset) = 0;
1597
1598 virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__(
1599 const UINT32 *indices,
1600 UINT32 num_indices,
1601 IDWriteFontSet1 **fontset) = 0;
1602
1603 virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_(
1604 const DWRITE_FONT_AXIS_RANGE *axis_ranges,
1605 UINT32 num_ranges,
1606 WINBOOL select_any_range,
1607 IDWriteFontSet1 **fontset) = 0;
1608
1609 virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts(
1610 const DWRITE_FONT_PROPERTY *props,
1611 UINT32 num_properties,
1612 WINBOOL select_any_property,
1613 IDWriteFontSet1 **fontset) = 0;
1614
1615 virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_(
1616 const DWRITE_FONT_AXIS_RANGE *ranges,
1617 UINT32 num_ranges,
1618 WINBOOL select_any_range,
1619 UINT32 *indices,
1620 UINT32 num_indices,
1621 UINT32 *actual_num_indices) = 0;
1622
1623 virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices(
1624 const DWRITE_FONT_PROPERTY *props,
1625 UINT32 num_properties,
1626 WINBOOL select_any_range,
1627 UINT32 *indices,
1628 UINT32 num_indices,
1629 UINT32 *actual_num_indices) = 0;
1630
1631 virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_(
1632 UINT32 font_index,
1633 DWRITE_FONT_AXIS_RANGE *axis_ranges,
1634 UINT32 num_ranges,
1635 UINT32 *actual_num_ranges) = 0;
1636
1637 virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges(
1638 DWRITE_FONT_AXIS_RANGE *axis_ranges,
1639 UINT32 num_ranges,
1640 UINT32 *actual_num_ranges) = 0;
1641
1642 virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
1643 UINT32 index,
1644 IDWriteFontFaceReference1 **reference) = 0;
1645
1646 virtual HRESULT STDMETHODCALLTYPE CreateFontResource(
1647 UINT32 index,
1648 IDWriteFontResource **resource) = 0;
1649
1650 virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
1651 UINT32 index,
1652 IDWriteFontFace5 **fontface) = 0;
1653
1654 virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
1655 UINT32 index) = 0;
1656
1657};
1658#ifdef __CRT_UUID_DECL
1659__CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3)
1660#endif
1661#else
1662typedef struct IDWriteFontSet1Vtbl {
1663 BEGIN_INTERFACE
1664
1665 /*** IUnknown methods ***/
1666 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1667 IDWriteFontSet1 *This,
1668 REFIID riid,
1669 void **ppvObject);
1670
1671 ULONG (STDMETHODCALLTYPE *AddRef)(
1672 IDWriteFontSet1 *This);
1673
1674 ULONG (STDMETHODCALLTYPE *Release)(
1675 IDWriteFontSet1 *This);
1676
1677 /*** IDWriteFontSet methods ***/
1678 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
1679 IDWriteFontSet1 *This);
1680
1681 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
1682 IDWriteFontSet1 *This,
1683 UINT32 index,
1684 IDWriteFontFaceReference **reference);
1685
1686 HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
1687 IDWriteFontSet1 *This,
1688 IDWriteFontFaceReference *reference,
1689 UINT32 *index,
1690 WINBOOL *exists);
1691
1692 HRESULT (STDMETHODCALLTYPE *FindFontFace)(
1693 IDWriteFontSet1 *This,
1694 IDWriteFontFace *fontface,
1695 UINT32 *index,
1696 WINBOOL *exists);
1697
1698 HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
1699 IDWriteFontSet1 *This,
1700 DWRITE_FONT_PROPERTY_ID id,
1701 IDWriteStringList **values);
1702
1703 HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
1704 IDWriteFontSet1 *This,
1705 DWRITE_FONT_PROPERTY_ID id,
1706 const WCHAR *preferred_locales,
1707 IDWriteStringList **values);
1708
1709 HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
1710 IDWriteFontSet1 *This,
1711 UINT32 index,
1712 DWRITE_FONT_PROPERTY_ID id,
1713 WINBOOL *exists,
1714 IDWriteLocalizedStrings **values);
1715
1716 HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
1717 IDWriteFontSet1 *This,
1718 const DWRITE_FONT_PROPERTY *property,
1719 UINT32 *count);
1720
1721 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
1722 IDWriteFontSet1 *This,
1723 const WCHAR *family,
1724 DWRITE_FONT_WEIGHT weight,
1725 DWRITE_FONT_STRETCH stretch,
1726 DWRITE_FONT_STYLE style,
1727 IDWriteFontSet **fontset);
1728
1729 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
1730 IDWriteFontSet1 *This,
1731 const DWRITE_FONT_PROPERTY *props,
1732 UINT32 count,
1733 IDWriteFontSet **fontset);
1734
1735 /*** IDWriteFontSet1 methods ***/
1736 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
1737 IDWriteFontSet1 *This,
1738 const DWRITE_FONT_PROPERTY *property,
1739 const DWRITE_FONT_AXIS_VALUE *axis_values,
1740 UINT32 num_values,
1741 IDWriteFontSet1 **fontset);
1742
1743 HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
1744 IDWriteFontSet1 *This,
1745 IDWriteFontSet1 **fontset);
1746
1747 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
1748 IDWriteFontSet1 *This,
1749 const UINT32 *indices,
1750 UINT32 num_indices,
1751 IDWriteFontSet1 **fontset);
1752
1753 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
1754 IDWriteFontSet1 *This,
1755 const DWRITE_FONT_AXIS_RANGE *axis_ranges,
1756 UINT32 num_ranges,
1757 WINBOOL select_any_range,
1758 IDWriteFontSet1 **fontset);
1759
1760 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
1761 IDWriteFontSet1 *This,
1762 const DWRITE_FONT_PROPERTY *props,
1763 UINT32 num_properties,
1764 WINBOOL select_any_property,
1765 IDWriteFontSet1 **fontset);
1766
1767 HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
1768 IDWriteFontSet1 *This,
1769 const DWRITE_FONT_AXIS_RANGE *ranges,
1770 UINT32 num_ranges,
1771 WINBOOL select_any_range,
1772 UINT32 *indices,
1773 UINT32 num_indices,
1774 UINT32 *actual_num_indices);
1775
1776 HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
1777 IDWriteFontSet1 *This,
1778 const DWRITE_FONT_PROPERTY *props,
1779 UINT32 num_properties,
1780 WINBOOL select_any_range,
1781 UINT32 *indices,
1782 UINT32 num_indices,
1783 UINT32 *actual_num_indices);
1784
1785 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
1786 IDWriteFontSet1 *This,
1787 UINT32 font_index,
1788 DWRITE_FONT_AXIS_RANGE *axis_ranges,
1789 UINT32 num_ranges,
1790 UINT32 *actual_num_ranges);
1791
1792 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
1793 IDWriteFontSet1 *This,
1794 DWRITE_FONT_AXIS_RANGE *axis_ranges,
1795 UINT32 num_ranges,
1796 UINT32 *actual_num_ranges);
1797
1798 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
1799 IDWriteFontSet1 *This,
1800 UINT32 index,
1801 IDWriteFontFaceReference1 **reference);
1802
1803 HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
1804 IDWriteFontSet1 *This,
1805 UINT32 index,
1806 IDWriteFontResource **resource);
1807
1808 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
1809 IDWriteFontSet1 *This,
1810 UINT32 index,
1811 IDWriteFontFace5 **fontface);
1812
1813 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
1814 IDWriteFontSet1 *This,
1815 UINT32 index);
1816
1817 END_INTERFACE
1818} IDWriteFontSet1Vtbl;
1819
1820interface IDWriteFontSet1 {
1821 CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl;
1822};
1823
1824#ifdef COBJMACROS
1825#ifndef WIDL_C_INLINE_WRAPPERS
1826/*** IUnknown methods ***/
1827#define IDWriteFontSet1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1828#define IDWriteFontSet1_AddRef(This) (This)->lpVtbl->AddRef(This)
1829#define IDWriteFontSet1_Release(This) (This)->lpVtbl->Release(This)
1830/*** IDWriteFontSet methods ***/
1831#define IDWriteFontSet1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
1832#define IDWriteFontSet1_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
1833#define IDWriteFontSet1_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
1834#define IDWriteFontSet1_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
1835#define IDWriteFontSet1_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
1836#define IDWriteFontSet1_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
1837#define IDWriteFontSet1_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
1838#define IDWriteFontSet1_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
1839/*** IDWriteFontSet1 methods ***/
1840#define IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
1841#define IDWriteFontSet1_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
1842#define IDWriteFontSet1_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
1843#define IDWriteFontSet1_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
1844#define IDWriteFontSet1_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
1845#define IDWriteFontSet1_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
1846#define IDWriteFontSet1_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
1847#define IDWriteFontSet1_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
1848#define IDWriteFontSet1_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
1849#define IDWriteFontSet1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
1850#define IDWriteFontSet1_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
1851#define IDWriteFontSet1_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
1852#define IDWriteFontSet1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
1853#else
1854/*** IUnknown methods ***/
1855static inline HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This,REFIID riid,void **ppvObject) {
1856 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1857}
1858static inline ULONG IDWriteFontSet1_AddRef(IDWriteFontSet1* This) {
1859 return This->lpVtbl->AddRef(This);
1860}
1861static inline ULONG IDWriteFontSet1_Release(IDWriteFontSet1* This) {
1862 return This->lpVtbl->Release(This);
1863}
1864/*** IDWriteFontSet methods ***/
1865static inline UINT32 IDWriteFontSet1_GetFontCount(IDWriteFontSet1* This) {
1866 return This->lpVtbl->GetFontCount(This);
1867}
1868static inline HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
1869 return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
1870}
1871static inline HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
1872 return This->lpVtbl->FindFontFace(This,fontface,index,exists);
1873}
1874static inline HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
1875 return This->lpVtbl->GetPropertyValues__(This,id,values);
1876}
1877static inline HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
1878 return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
1879}
1880static inline HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
1881 return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
1882}
1883static inline HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
1884 return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
1885}
1886static inline HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
1887 return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
1888}
1889/*** IDWriteFontSet1 methods ***/
1890static inline HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
1891 return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
1892}
1893static inline HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This,IDWriteFontSet1 **fontset) {
1894 return This->lpVtbl->GetFirstFontResources(This,fontset);
1895}
1896static inline HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
1897 return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
1898}
1899static inline HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
1900 return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
1901}
1902static inline HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
1903 return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
1904}
1905static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
1906 return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
1907}
1908static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
1909 return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
1910}
1911static inline HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
1912 return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
1913}
1914static inline HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
1915 return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
1916}
1917static inline HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
1918 return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
1919}
1920static inline HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This,UINT32 index,IDWriteFontResource **resource) {
1921 return This->lpVtbl->CreateFontResource(This,index,resource);
1922}
1923static inline HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This,UINT32 index,IDWriteFontFace5 **fontface) {
1924 return This->lpVtbl->CreateFontFace(This,index,fontface);
1925}
1926static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This,UINT32 index) {
1927 return This->lpVtbl->GetFontLocality(This,index);
1928}
1929#endif
1930#endif
1931
1932#endif
1933
1934
1935#endif /* __IDWriteFontSet1_INTERFACE_DEFINED__ */
1936
1937/*****************************************************************************
1938 * IDWriteFont3 interface
1939 */
1940#ifndef __IDWriteFont3_INTERFACE_DEFINED__
1941#define __IDWriteFont3_INTERFACE_DEFINED__
1942
1943DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44);
1944#if defined(__cplusplus) && !defined(CINTERFACE)
1945MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944")
1946IDWriteFont3 : public IDWriteFont2
1947{
1948 virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
1949 IDWriteFontFace3 **fontface) = 0;
1950
1951 virtual WINBOOL STDMETHODCALLTYPE Equals(
1952 IDWriteFont *font) = 0;
1953
1954 virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
1955 IDWriteFontFaceReference **reference) = 0;
1956
1957 virtual WINBOOL STDMETHODCALLTYPE HasCharacter(
1958 UINT32 character) = 0;
1959
1960 virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
1961 ) = 0;
1962
1963};
1964#ifdef __CRT_UUID_DECL
1965__CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44)
1966#endif
1967#else
1968typedef struct IDWriteFont3Vtbl {
1969 BEGIN_INTERFACE
1970
1971 /*** IUnknown methods ***/
1972 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1973 IDWriteFont3 *This,
1974 REFIID riid,
1975 void **ppvObject);
1976
1977 ULONG (STDMETHODCALLTYPE *AddRef)(
1978 IDWriteFont3 *This);
1979
1980 ULONG (STDMETHODCALLTYPE *Release)(
1981 IDWriteFont3 *This);
1982
1983 /*** IDWriteFont methods ***/
1984 HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
1985 IDWriteFont3 *This,
1986 IDWriteFontFamily **family);
1987
1988 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
1989 IDWriteFont3 *This);
1990
1991 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
1992 IDWriteFont3 *This);
1993
1994 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
1995 IDWriteFont3 *This);
1996
1997 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
1998 IDWriteFont3 *This);
1999
2000 HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
2001 IDWriteFont3 *This,
2002 IDWriteLocalizedStrings **names);
2003
2004 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
2005 IDWriteFont3 *This,
2006 DWRITE_INFORMATIONAL_STRING_ID stringid,
2007 IDWriteLocalizedStrings **strings,
2008 WINBOOL *exists);
2009
2010 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
2011 IDWriteFont3 *This);
2012
2013 void (STDMETHODCALLTYPE *GetMetrics)(
2014 IDWriteFont3 *This,
2015 DWRITE_FONT_METRICS *metrics);
2016
2017 HRESULT (STDMETHODCALLTYPE *HasCharacter)(
2018 IDWriteFont3 *This,
2019 UINT32 value,
2020 WINBOOL *exists);
2021
2022 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
2023 IDWriteFont3 *This,
2024 IDWriteFontFace **face);
2025
2026 /*** IDWriteFont1 methods ***/
2027 void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)(
2028 IDWriteFont3 *This,
2029 DWRITE_FONT_METRICS1 *metrics);
2030
2031 void (STDMETHODCALLTYPE *GetPanose)(
2032 IDWriteFont3 *This,
2033 DWRITE_PANOSE *panose);
2034
2035 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
2036 IDWriteFont3 *This,
2037 UINT32 max_count,
2038 DWRITE_UNICODE_RANGE *ranges,
2039 UINT32 *count);
2040
2041 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
2042 IDWriteFont3 *This);
2043
2044 /*** IDWriteFont2 methods ***/
2045 WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
2046 IDWriteFont3 *This);
2047
2048 /*** IDWriteFont3 methods ***/
2049 HRESULT (STDMETHODCALLTYPE *IDWriteFont3_CreateFontFace)(
2050 IDWriteFont3 *This,
2051 IDWriteFontFace3 **fontface);
2052
2053 WINBOOL (STDMETHODCALLTYPE *Equals)(
2054 IDWriteFont3 *This,
2055 IDWriteFont *font);
2056
2057 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
2058 IDWriteFont3 *This,
2059 IDWriteFontFaceReference **reference);
2060
2061 WINBOOL (STDMETHODCALLTYPE *IDWriteFont3_HasCharacter)(
2062 IDWriteFont3 *This,
2063 UINT32 character);
2064
2065 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
2066 IDWriteFont3 *This);
2067
2068 END_INTERFACE
2069} IDWriteFont3Vtbl;
2070
2071interface IDWriteFont3 {
2072 CONST_VTBL IDWriteFont3Vtbl* lpVtbl;
2073};
2074
2075#ifdef COBJMACROS
2076#ifndef WIDL_C_INLINE_WRAPPERS
2077/*** IUnknown methods ***/
2078#define IDWriteFont3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2079#define IDWriteFont3_AddRef(This) (This)->lpVtbl->AddRef(This)
2080#define IDWriteFont3_Release(This) (This)->lpVtbl->Release(This)
2081/*** IDWriteFont methods ***/
2082#define IDWriteFont3_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family)
2083#define IDWriteFont3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
2084#define IDWriteFont3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
2085#define IDWriteFont3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
2086#define IDWriteFont3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
2087#define IDWriteFont3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
2088#define IDWriteFont3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
2089#define IDWriteFont3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
2090/*** IDWriteFont1 methods ***/
2091#define IDWriteFont3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics)
2092#define IDWriteFont3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
2093#define IDWriteFont3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
2094#define IDWriteFont3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
2095/*** IDWriteFont2 methods ***/
2096#define IDWriteFont3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
2097/*** IDWriteFont3 methods ***/
2098#define IDWriteFont3_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface)
2099#define IDWriteFont3_Equals(This,font) (This)->lpVtbl->Equals(This,font)
2100#define IDWriteFont3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
2101#define IDWriteFont3_HasCharacter(This,character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This,character)
2102#define IDWriteFont3_GetLocality(This) (This)->lpVtbl->GetLocality(This)
2103#else
2104/*** IUnknown methods ***/
2105static inline HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This,REFIID riid,void **ppvObject) {
2106 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2107}
2108static inline ULONG IDWriteFont3_AddRef(IDWriteFont3* This) {
2109 return This->lpVtbl->AddRef(This);
2110}
2111static inline ULONG IDWriteFont3_Release(IDWriteFont3* This) {
2112 return This->lpVtbl->Release(This);
2113}
2114/*** IDWriteFont methods ***/
2115static inline HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This,IDWriteFontFamily **family) {
2116 return This->lpVtbl->GetFontFamily(This,family);
2117}
2118static inline DWRITE_FONT_WEIGHT IDWriteFont3_GetWeight(IDWriteFont3* This) {
2119 return This->lpVtbl->GetWeight(This);
2120}
2121static inline DWRITE_FONT_STRETCH IDWriteFont3_GetStretch(IDWriteFont3* This) {
2122 return This->lpVtbl->GetStretch(This);
2123}
2124static inline DWRITE_FONT_STYLE IDWriteFont3_GetStyle(IDWriteFont3* This) {
2125 return This->lpVtbl->GetStyle(This);
2126}
2127static inline WINBOOL IDWriteFont3_IsSymbolFont(IDWriteFont3* This) {
2128 return This->lpVtbl->IsSymbolFont(This);
2129}
2130static inline HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This,IDWriteLocalizedStrings **names) {
2131 return This->lpVtbl->GetFaceNames(This,names);
2132}
2133static inline HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
2134 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
2135}
2136static inline DWRITE_FONT_SIMULATIONS IDWriteFont3_GetSimulations(IDWriteFont3* This) {
2137 return This->lpVtbl->GetSimulations(This);
2138}
2139/*** IDWriteFont1 methods ***/
2140static inline void IDWriteFont3_GetMetrics(IDWriteFont3* This,DWRITE_FONT_METRICS1 *metrics) {
2141 This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics);
2142}
2143static inline void IDWriteFont3_GetPanose(IDWriteFont3* This,DWRITE_PANOSE *panose) {
2144 This->lpVtbl->GetPanose(This,panose);
2145}
2146static inline HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
2147 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
2148}
2149static inline WINBOOL IDWriteFont3_IsMonospacedFont(IDWriteFont3* This) {
2150 return This->lpVtbl->IsMonospacedFont(This);
2151}
2152/*** IDWriteFont2 methods ***/
2153static inline WINBOOL IDWriteFont3_IsColorFont(IDWriteFont3* This) {
2154 return This->lpVtbl->IsColorFont(This);
2155}
2156/*** IDWriteFont3 methods ***/
2157static inline HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This,IDWriteFontFace3 **fontface) {
2158 return This->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface);
2159}
2160static inline WINBOOL IDWriteFont3_Equals(IDWriteFont3* This,IDWriteFont *font) {
2161 return This->lpVtbl->Equals(This,font);
2162}
2163static inline HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This,IDWriteFontFaceReference **reference) {
2164 return This->lpVtbl->GetFontFaceReference(This,reference);
2165}
2166static inline WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This,UINT32 character) {
2167 return This->lpVtbl->IDWriteFont3_HasCharacter(This,character);
2168}
2169static inline DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) {
2170 return This->lpVtbl->GetLocality(This);
2171}
2172#endif
2173#endif
2174
2175#endif
2176
2177
2178#endif /* __IDWriteFont3_INTERFACE_DEFINED__ */
2179
2180/*****************************************************************************
2181 * IDWriteFontFamily1 interface
2182 */
2183#ifndef __IDWriteFontFamily1_INTERFACE_DEFINED__
2184#define __IDWriteFontFamily1_INTERFACE_DEFINED__
2185
2186DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf);
2187#if defined(__cplusplus) && !defined(CINTERFACE)
2188MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7adf")
2189IDWriteFontFamily1 : public IDWriteFontFamily
2190{
2191 virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
2192 UINT32 index) = 0;
2193
2194 virtual HRESULT STDMETHODCALLTYPE GetFont(
2195 UINT32 index,
2196 IDWriteFont3 **font) = 0;
2197
2198 virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
2199 UINT32 index,
2200 IDWriteFontFaceReference **reference) = 0;
2201
2202};
2203#ifdef __CRT_UUID_DECL
2204__CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf)
2205#endif
2206#else
2207typedef struct IDWriteFontFamily1Vtbl {
2208 BEGIN_INTERFACE
2209
2210 /*** IUnknown methods ***/
2211 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2212 IDWriteFontFamily1 *This,
2213 REFIID riid,
2214 void **ppvObject);
2215
2216 ULONG (STDMETHODCALLTYPE *AddRef)(
2217 IDWriteFontFamily1 *This);
2218
2219 ULONG (STDMETHODCALLTYPE *Release)(
2220 IDWriteFontFamily1 *This);
2221
2222 /*** IDWriteFontList methods ***/
2223 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
2224 IDWriteFontFamily1 *This,
2225 IDWriteFontCollection **collection);
2226
2227 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
2228 IDWriteFontFamily1 *This);
2229
2230 HRESULT (STDMETHODCALLTYPE *GetFont)(
2231 IDWriteFontFamily1 *This,
2232 UINT32 index,
2233 IDWriteFont **font);
2234
2235 /*** IDWriteFontFamily methods ***/
2236 HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
2237 IDWriteFontFamily1 *This,
2238 IDWriteLocalizedStrings **names);
2239
2240 HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
2241 IDWriteFontFamily1 *This,
2242 DWRITE_FONT_WEIGHT weight,
2243 DWRITE_FONT_STRETCH stretch,
2244 DWRITE_FONT_STYLE style,
2245 IDWriteFont **font);
2246
2247 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
2248 IDWriteFontFamily1 *This,
2249 DWRITE_FONT_WEIGHT weight,
2250 DWRITE_FONT_STRETCH stretch,
2251 DWRITE_FONT_STYLE style,
2252 IDWriteFontList **fonts);
2253
2254 /*** IDWriteFontFamily1 methods ***/
2255 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
2256 IDWriteFontFamily1 *This,
2257 UINT32 index);
2258
2259 HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)(
2260 IDWriteFontFamily1 *This,
2261 UINT32 index,
2262 IDWriteFont3 **font);
2263
2264 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
2265 IDWriteFontFamily1 *This,
2266 UINT32 index,
2267 IDWriteFontFaceReference **reference);
2268
2269 END_INTERFACE
2270} IDWriteFontFamily1Vtbl;
2271
2272interface IDWriteFontFamily1 {
2273 CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl;
2274};
2275
2276#ifdef COBJMACROS
2277#ifndef WIDL_C_INLINE_WRAPPERS
2278/*** IUnknown methods ***/
2279#define IDWriteFontFamily1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2280#define IDWriteFontFamily1_AddRef(This) (This)->lpVtbl->AddRef(This)
2281#define IDWriteFontFamily1_Release(This) (This)->lpVtbl->Release(This)
2282/*** IDWriteFontList methods ***/
2283#define IDWriteFontFamily1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
2284#define IDWriteFontFamily1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
2285/*** IDWriteFontFamily methods ***/
2286#define IDWriteFontFamily1_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
2287#define IDWriteFontFamily1_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
2288#define IDWriteFontFamily1_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts)
2289/*** IDWriteFontFamily1 methods ***/
2290#define IDWriteFontFamily1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
2291#define IDWriteFontFamily1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font)
2292#define IDWriteFontFamily1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
2293#else
2294/*** IUnknown methods ***/
2295static inline HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This,REFIID riid,void **ppvObject) {
2296 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2297}
2298static inline ULONG IDWriteFontFamily1_AddRef(IDWriteFontFamily1* This) {
2299 return This->lpVtbl->AddRef(This);
2300}
2301static inline ULONG IDWriteFontFamily1_Release(IDWriteFontFamily1* This) {
2302 return This->lpVtbl->Release(This);
2303}
2304/*** IDWriteFontList methods ***/
2305static inline HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This,IDWriteFontCollection **collection) {
2306 return This->lpVtbl->GetFontCollection(This,collection);
2307}
2308static inline UINT32 IDWriteFontFamily1_GetFontCount(IDWriteFontFamily1* This) {
2309 return This->lpVtbl->GetFontCount(This);
2310}
2311/*** IDWriteFontFamily methods ***/
2312static inline HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This,IDWriteLocalizedStrings **names) {
2313 return This->lpVtbl->GetFamilyNames(This,names);
2314}
2315static inline HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
2316 return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
2317}
2318static inline HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) {
2319 return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts);
2320}
2321/*** IDWriteFontFamily1 methods ***/
2322static inline DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This,UINT32 index) {
2323 return This->lpVtbl->GetFontLocality(This,index);
2324}
2325static inline HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This,UINT32 index,IDWriteFont3 **font) {
2326 return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font);
2327}
2328static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This,UINT32 index,IDWriteFontFaceReference **reference) {
2329 return This->lpVtbl->GetFontFaceReference(This,index,reference);
2330}
2331#endif
2332#endif
2333
2334#endif
2335
2336
2337#endif /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */
2338
2339/*****************************************************************************
2340 * IDWriteFontFamily2 interface
2341 */
2342#ifndef __IDWriteFontFamily2_INTERFACE_DEFINED__
2343#define __IDWriteFontFamily2_INTERFACE_DEFINED__
2344
2345DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3);
2346#if defined(__cplusplus) && !defined(CINTERFACE)
2347MIDL_INTERFACE("3ed49e77-a398-4261-b9cf-c126c2131ef3")
2348IDWriteFontFamily2 : public IDWriteFontFamily1
2349{
2350 virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
2351 const DWRITE_FONT_AXIS_VALUE *axis_values,
2352 UINT32 num_values,
2353 IDWriteFontList2 **fontlist) = 0;
2354
2355 virtual HRESULT STDMETHODCALLTYPE GetFontSet(
2356 IDWriteFontSet1 **fontset) = 0;
2357
2358};
2359#ifdef __CRT_UUID_DECL
2360__CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3)
2361#endif
2362#else
2363typedef struct IDWriteFontFamily2Vtbl {
2364 BEGIN_INTERFACE
2365
2366 /*** IUnknown methods ***/
2367 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2368 IDWriteFontFamily2 *This,
2369 REFIID riid,
2370 void **ppvObject);
2371
2372 ULONG (STDMETHODCALLTYPE *AddRef)(
2373 IDWriteFontFamily2 *This);
2374
2375 ULONG (STDMETHODCALLTYPE *Release)(
2376 IDWriteFontFamily2 *This);
2377
2378 /*** IDWriteFontList methods ***/
2379 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
2380 IDWriteFontFamily2 *This,
2381 IDWriteFontCollection **collection);
2382
2383 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
2384 IDWriteFontFamily2 *This);
2385
2386 HRESULT (STDMETHODCALLTYPE *GetFont)(
2387 IDWriteFontFamily2 *This,
2388 UINT32 index,
2389 IDWriteFont **font);
2390
2391 /*** IDWriteFontFamily methods ***/
2392 HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
2393 IDWriteFontFamily2 *This,
2394 IDWriteLocalizedStrings **names);
2395
2396 HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
2397 IDWriteFontFamily2 *This,
2398 DWRITE_FONT_WEIGHT weight,
2399 DWRITE_FONT_STRETCH stretch,
2400 DWRITE_FONT_STYLE style,
2401 IDWriteFont **font);
2402
2403 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
2404 IDWriteFontFamily2 *This,
2405 DWRITE_FONT_WEIGHT weight,
2406 DWRITE_FONT_STRETCH stretch,
2407 DWRITE_FONT_STYLE style,
2408 IDWriteFontList **fonts);
2409
2410 /*** IDWriteFontFamily1 methods ***/
2411 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
2412 IDWriteFontFamily2 *This,
2413 UINT32 index);
2414
2415 HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)(
2416 IDWriteFontFamily2 *This,
2417 UINT32 index,
2418 IDWriteFont3 **font);
2419
2420 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
2421 IDWriteFontFamily2 *This,
2422 UINT32 index,
2423 IDWriteFontFaceReference **reference);
2424
2425 /*** IDWriteFontFamily2 methods ***/
2426 HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily2_GetMatchingFonts)(
2427 IDWriteFontFamily2 *This,
2428 const DWRITE_FONT_AXIS_VALUE *axis_values,
2429 UINT32 num_values,
2430 IDWriteFontList2 **fontlist);
2431
2432 HRESULT (STDMETHODCALLTYPE *GetFontSet)(
2433 IDWriteFontFamily2 *This,
2434 IDWriteFontSet1 **fontset);
2435
2436 END_INTERFACE
2437} IDWriteFontFamily2Vtbl;
2438
2439interface IDWriteFontFamily2 {
2440 CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl;
2441};
2442
2443#ifdef COBJMACROS
2444#ifndef WIDL_C_INLINE_WRAPPERS
2445/*** IUnknown methods ***/
2446#define IDWriteFontFamily2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2447#define IDWriteFontFamily2_AddRef(This) (This)->lpVtbl->AddRef(This)
2448#define IDWriteFontFamily2_Release(This) (This)->lpVtbl->Release(This)
2449/*** IDWriteFontList methods ***/
2450#define IDWriteFontFamily2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
2451#define IDWriteFontFamily2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
2452/*** IDWriteFontFamily methods ***/
2453#define IDWriteFontFamily2_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
2454#define IDWriteFontFamily2_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
2455/*** IDWriteFontFamily1 methods ***/
2456#define IDWriteFontFamily2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
2457#define IDWriteFontFamily2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font)
2458#define IDWriteFontFamily2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
2459/*** IDWriteFontFamily2 methods ***/
2460#define IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist)
2461#define IDWriteFontFamily2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
2462#else
2463/*** IUnknown methods ***/
2464static inline HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This,REFIID riid,void **ppvObject) {
2465 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2466}
2467static inline ULONG IDWriteFontFamily2_AddRef(IDWriteFontFamily2* This) {
2468 return This->lpVtbl->AddRef(This);
2469}
2470static inline ULONG IDWriteFontFamily2_Release(IDWriteFontFamily2* This) {
2471 return This->lpVtbl->Release(This);
2472}
2473/*** IDWriteFontList methods ***/
2474static inline HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This,IDWriteFontCollection **collection) {
2475 return This->lpVtbl->GetFontCollection(This,collection);
2476}
2477static inline UINT32 IDWriteFontFamily2_GetFontCount(IDWriteFontFamily2* This) {
2478 return This->lpVtbl->GetFontCount(This);
2479}
2480/*** IDWriteFontFamily methods ***/
2481static inline HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This,IDWriteLocalizedStrings **names) {
2482 return This->lpVtbl->GetFamilyNames(This,names);
2483}
2484static inline HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
2485 return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
2486}
2487/*** IDWriteFontFamily1 methods ***/
2488static inline DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This,UINT32 index) {
2489 return This->lpVtbl->GetFontLocality(This,index);
2490}
2491static inline HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This,UINT32 index,IDWriteFont3 **font) {
2492 return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font);
2493}
2494static inline HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This,UINT32 index,IDWriteFontFaceReference **reference) {
2495 return This->lpVtbl->GetFontFaceReference(This,index,reference);
2496}
2497/*** IDWriteFontFamily2 methods ***/
2498static inline HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
2499 return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist);
2500}
2501static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This,IDWriteFontSet1 **fontset) {
2502 return This->lpVtbl->GetFontSet(This,fontset);
2503}
2504#endif
2505#endif
2506
2507#endif
2508
2509
2510#endif /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */
2511
2512/*****************************************************************************
2513 * IDWriteFontCollection1 interface
2514 */
2515#ifndef __IDWriteFontCollection1_INTERFACE_DEFINED__
2516#define __IDWriteFontCollection1_INTERFACE_DEFINED__
2517
2518DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c);
2519#if defined(__cplusplus) && !defined(CINTERFACE)
2520MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116c")
2521IDWriteFontCollection1 : public IDWriteFontCollection
2522{
2523 virtual HRESULT STDMETHODCALLTYPE GetFontSet(
2524 IDWriteFontSet **fontset) = 0;
2525
2526 virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
2527 UINT32 index,
2528 IDWriteFontFamily1 **family) = 0;
2529
2530};
2531#ifdef __CRT_UUID_DECL
2532__CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c)
2533#endif
2534#else
2535typedef struct IDWriteFontCollection1Vtbl {
2536 BEGIN_INTERFACE
2537
2538 /*** IUnknown methods ***/
2539 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2540 IDWriteFontCollection1 *This,
2541 REFIID riid,
2542 void **ppvObject);
2543
2544 ULONG (STDMETHODCALLTYPE *AddRef)(
2545 IDWriteFontCollection1 *This);
2546
2547 ULONG (STDMETHODCALLTYPE *Release)(
2548 IDWriteFontCollection1 *This);
2549
2550 /*** IDWriteFontCollection methods ***/
2551 UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
2552 IDWriteFontCollection1 *This);
2553
2554 HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
2555 IDWriteFontCollection1 *This,
2556 UINT32 index,
2557 IDWriteFontFamily **family);
2558
2559 HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
2560 IDWriteFontCollection1 *This,
2561 const WCHAR *name,
2562 UINT32 *index,
2563 WINBOOL *exists);
2564
2565 HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
2566 IDWriteFontCollection1 *This,
2567 IDWriteFontFace *face,
2568 IDWriteFont **font);
2569
2570 /*** IDWriteFontCollection1 methods ***/
2571 HRESULT (STDMETHODCALLTYPE *GetFontSet)(
2572 IDWriteFontCollection1 *This,
2573 IDWriteFontSet **fontset);
2574
2575 HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
2576 IDWriteFontCollection1 *This,
2577 UINT32 index,
2578 IDWriteFontFamily1 **family);
2579
2580 END_INTERFACE
2581} IDWriteFontCollection1Vtbl;
2582
2583interface IDWriteFontCollection1 {
2584 CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl;
2585};
2586
2587#ifdef COBJMACROS
2588#ifndef WIDL_C_INLINE_WRAPPERS
2589/*** IUnknown methods ***/
2590#define IDWriteFontCollection1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2591#define IDWriteFontCollection1_AddRef(This) (This)->lpVtbl->AddRef(This)
2592#define IDWriteFontCollection1_Release(This) (This)->lpVtbl->Release(This)
2593/*** IDWriteFontCollection methods ***/
2594#define IDWriteFontCollection1_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
2595#define IDWriteFontCollection1_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
2596#define IDWriteFontCollection1_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
2597/*** IDWriteFontCollection1 methods ***/
2598#define IDWriteFontCollection1_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
2599#define IDWriteFontCollection1_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family)
2600#else
2601/*** IUnknown methods ***/
2602static inline HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This,REFIID riid,void **ppvObject) {
2603 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2604}
2605static inline ULONG IDWriteFontCollection1_AddRef(IDWriteFontCollection1* This) {
2606 return This->lpVtbl->AddRef(This);
2607}
2608static inline ULONG IDWriteFontCollection1_Release(IDWriteFontCollection1* This) {
2609 return This->lpVtbl->Release(This);
2610}
2611/*** IDWriteFontCollection methods ***/
2612static inline UINT32 IDWriteFontCollection1_GetFontFamilyCount(IDWriteFontCollection1* This) {
2613 return This->lpVtbl->GetFontFamilyCount(This);
2614}
2615static inline HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
2616 return This->lpVtbl->FindFamilyName(This,name,index,exists);
2617}
2618static inline HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This,IDWriteFontFace *face,IDWriteFont **font) {
2619 return This->lpVtbl->GetFontFromFontFace(This,face,font);
2620}
2621/*** IDWriteFontCollection1 methods ***/
2622static inline HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This,IDWriteFontSet **fontset) {
2623 return This->lpVtbl->GetFontSet(This,fontset);
2624}
2625static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This,UINT32 index,IDWriteFontFamily1 **family) {
2626 return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family);
2627}
2628#endif
2629#endif
2630
2631#endif
2632
2633
2634#endif /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */
2635
2636/*****************************************************************************
2637 * IDWriteFontCollection2 interface
2638 */
2639#ifndef __IDWriteFontCollection2_INTERFACE_DEFINED__
2640#define __IDWriteFontCollection2_INTERFACE_DEFINED__
2641
2642DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0);
2643#if defined(__cplusplus) && !defined(CINTERFACE)
2644MIDL_INTERFACE("514039c6-4617-4064-bf8b-92ea83e506e0")
2645IDWriteFontCollection2 : public IDWriteFontCollection1
2646{
2647 virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
2648 UINT32 index,
2649 IDWriteFontFamily2 **family) = 0;
2650
2651 virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
2652 const WCHAR *familyname,
2653 const DWRITE_FONT_AXIS_VALUE *axis_values,
2654 UINT32 num_values,
2655 IDWriteFontList2 **fontlist) = 0;
2656
2657 virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel(
2658 ) = 0;
2659
2660 virtual HRESULT STDMETHODCALLTYPE GetFontSet(
2661 IDWriteFontSet1 **fontset) = 0;
2662
2663};
2664#ifdef __CRT_UUID_DECL
2665__CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0)
2666#endif
2667#else
2668typedef struct IDWriteFontCollection2Vtbl {
2669 BEGIN_INTERFACE
2670
2671 /*** IUnknown methods ***/
2672 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2673 IDWriteFontCollection2 *This,
2674 REFIID riid,
2675 void **ppvObject);
2676
2677 ULONG (STDMETHODCALLTYPE *AddRef)(
2678 IDWriteFontCollection2 *This);
2679
2680 ULONG (STDMETHODCALLTYPE *Release)(
2681 IDWriteFontCollection2 *This);
2682
2683 /*** IDWriteFontCollection methods ***/
2684 UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
2685 IDWriteFontCollection2 *This);
2686
2687 HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
2688 IDWriteFontCollection2 *This,
2689 UINT32 index,
2690 IDWriteFontFamily **family);
2691
2692 HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
2693 IDWriteFontCollection2 *This,
2694 const WCHAR *name,
2695 UINT32 *index,
2696 WINBOOL *exists);
2697
2698 HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
2699 IDWriteFontCollection2 *This,
2700 IDWriteFontFace *face,
2701 IDWriteFont **font);
2702
2703 /*** IDWriteFontCollection1 methods ***/
2704 HRESULT (STDMETHODCALLTYPE *GetFontSet)(
2705 IDWriteFontCollection2 *This,
2706 IDWriteFontSet **fontset);
2707
2708 HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
2709 IDWriteFontCollection2 *This,
2710 UINT32 index,
2711 IDWriteFontFamily1 **family);
2712
2713 /*** IDWriteFontCollection2 methods ***/
2714 HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)(
2715 IDWriteFontCollection2 *This,
2716 UINT32 index,
2717 IDWriteFontFamily2 **family);
2718
2719 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
2720 IDWriteFontCollection2 *This,
2721 const WCHAR *familyname,
2722 const DWRITE_FONT_AXIS_VALUE *axis_values,
2723 UINT32 num_values,
2724 IDWriteFontList2 **fontlist);
2725
2726 DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)(
2727 IDWriteFontCollection2 *This);
2728
2729 HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)(
2730 IDWriteFontCollection2 *This,
2731 IDWriteFontSet1 **fontset);
2732
2733 END_INTERFACE
2734} IDWriteFontCollection2Vtbl;
2735
2736interface IDWriteFontCollection2 {
2737 CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl;
2738};
2739
2740#ifdef COBJMACROS
2741#ifndef WIDL_C_INLINE_WRAPPERS
2742/*** IUnknown methods ***/
2743#define IDWriteFontCollection2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2744#define IDWriteFontCollection2_AddRef(This) (This)->lpVtbl->AddRef(This)
2745#define IDWriteFontCollection2_Release(This) (This)->lpVtbl->Release(This)
2746/*** IDWriteFontCollection methods ***/
2747#define IDWriteFontCollection2_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
2748#define IDWriteFontCollection2_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
2749#define IDWriteFontCollection2_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
2750/*** IDWriteFontCollection1 methods ***/
2751/*** IDWriteFontCollection2 methods ***/
2752#define IDWriteFontCollection2_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family)
2753#define IDWriteFontCollection2_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist)
2754#define IDWriteFontCollection2_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This)
2755#define IDWriteFontCollection2_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset)
2756#else
2757/*** IUnknown methods ***/
2758static inline HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This,REFIID riid,void **ppvObject) {
2759 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2760}
2761static inline ULONG IDWriteFontCollection2_AddRef(IDWriteFontCollection2* This) {
2762 return This->lpVtbl->AddRef(This);
2763}
2764static inline ULONG IDWriteFontCollection2_Release(IDWriteFontCollection2* This) {
2765 return This->lpVtbl->Release(This);
2766}
2767/*** IDWriteFontCollection methods ***/
2768static inline UINT32 IDWriteFontCollection2_GetFontFamilyCount(IDWriteFontCollection2* This) {
2769 return This->lpVtbl->GetFontFamilyCount(This);
2770}
2771static inline HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
2772 return This->lpVtbl->FindFamilyName(This,name,index,exists);
2773}
2774static inline HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This,IDWriteFontFace *face,IDWriteFont **font) {
2775 return This->lpVtbl->GetFontFromFontFace(This,face,font);
2776}
2777/*** IDWriteFontCollection1 methods ***/
2778/*** IDWriteFontCollection2 methods ***/
2779static inline HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This,UINT32 index,IDWriteFontFamily2 **family) {
2780 return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family);
2781}
2782static inline HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
2783 return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist);
2784}
2785static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection2_GetFontFamilyModel(IDWriteFontCollection2* This) {
2786 return This->lpVtbl->GetFontFamilyModel(This);
2787}
2788static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This,IDWriteFontSet1 **fontset) {
2789 return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset);
2790}
2791#endif
2792#endif
2793
2794#endif
2795
2796
2797#endif /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */
2798
2799/*****************************************************************************
2800 * IDWriteFontCollection3 interface
2801 */
2802#ifndef __IDWriteFontCollection3_INTERFACE_DEFINED__
2803#define __IDWriteFontCollection3_INTERFACE_DEFINED__
2804
2805DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9);
2806#if defined(__cplusplus) && !defined(CINTERFACE)
2807MIDL_INTERFACE("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9")
2808IDWriteFontCollection3 : public IDWriteFontCollection2
2809{
2810 virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent(
2811 ) = 0;
2812
2813};
2814#ifdef __CRT_UUID_DECL
2815__CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9)
2816#endif
2817#else
2818typedef struct IDWriteFontCollection3Vtbl {
2819 BEGIN_INTERFACE
2820
2821 /*** IUnknown methods ***/
2822 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2823 IDWriteFontCollection3 *This,
2824 REFIID riid,
2825 void **ppvObject);
2826
2827 ULONG (STDMETHODCALLTYPE *AddRef)(
2828 IDWriteFontCollection3 *This);
2829
2830 ULONG (STDMETHODCALLTYPE *Release)(
2831 IDWriteFontCollection3 *This);
2832
2833 /*** IDWriteFontCollection methods ***/
2834 UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
2835 IDWriteFontCollection3 *This);
2836
2837 HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
2838 IDWriteFontCollection3 *This,
2839 UINT32 index,
2840 IDWriteFontFamily **family);
2841
2842 HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
2843 IDWriteFontCollection3 *This,
2844 const WCHAR *name,
2845 UINT32 *index,
2846 WINBOOL *exists);
2847
2848 HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
2849 IDWriteFontCollection3 *This,
2850 IDWriteFontFace *face,
2851 IDWriteFont **font);
2852
2853 /*** IDWriteFontCollection1 methods ***/
2854 HRESULT (STDMETHODCALLTYPE *GetFontSet)(
2855 IDWriteFontCollection3 *This,
2856 IDWriteFontSet **fontset);
2857
2858 HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
2859 IDWriteFontCollection3 *This,
2860 UINT32 index,
2861 IDWriteFontFamily1 **family);
2862
2863 /*** IDWriteFontCollection2 methods ***/
2864 HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)(
2865 IDWriteFontCollection3 *This,
2866 UINT32 index,
2867 IDWriteFontFamily2 **family);
2868
2869 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
2870 IDWriteFontCollection3 *This,
2871 const WCHAR *familyname,
2872 const DWRITE_FONT_AXIS_VALUE *axis_values,
2873 UINT32 num_values,
2874 IDWriteFontList2 **fontlist);
2875
2876 DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)(
2877 IDWriteFontCollection3 *This);
2878
2879 HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)(
2880 IDWriteFontCollection3 *This,
2881 IDWriteFontSet1 **fontset);
2882
2883 /*** IDWriteFontCollection3 methods ***/
2884 HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
2885 IDWriteFontCollection3 *This);
2886
2887 END_INTERFACE
2888} IDWriteFontCollection3Vtbl;
2889
2890interface IDWriteFontCollection3 {
2891 CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl;
2892};
2893
2894#ifdef COBJMACROS
2895#ifndef WIDL_C_INLINE_WRAPPERS
2896/*** IUnknown methods ***/
2897#define IDWriteFontCollection3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2898#define IDWriteFontCollection3_AddRef(This) (This)->lpVtbl->AddRef(This)
2899#define IDWriteFontCollection3_Release(This) (This)->lpVtbl->Release(This)
2900/*** IDWriteFontCollection methods ***/
2901#define IDWriteFontCollection3_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
2902#define IDWriteFontCollection3_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
2903#define IDWriteFontCollection3_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
2904/*** IDWriteFontCollection1 methods ***/
2905/*** IDWriteFontCollection2 methods ***/
2906#define IDWriteFontCollection3_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family)
2907#define IDWriteFontCollection3_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist)
2908#define IDWriteFontCollection3_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This)
2909#define IDWriteFontCollection3_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset)
2910/*** IDWriteFontCollection3 methods ***/
2911#define IDWriteFontCollection3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
2912#else
2913/*** IUnknown methods ***/
2914static inline HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This,REFIID riid,void **ppvObject) {
2915 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2916}
2917static inline ULONG IDWriteFontCollection3_AddRef(IDWriteFontCollection3* This) {
2918 return This->lpVtbl->AddRef(This);
2919}
2920static inline ULONG IDWriteFontCollection3_Release(IDWriteFontCollection3* This) {
2921 return This->lpVtbl->Release(This);
2922}
2923/*** IDWriteFontCollection methods ***/
2924static inline UINT32 IDWriteFontCollection3_GetFontFamilyCount(IDWriteFontCollection3* This) {
2925 return This->lpVtbl->GetFontFamilyCount(This);
2926}
2927static inline HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
2928 return This->lpVtbl->FindFamilyName(This,name,index,exists);
2929}
2930static inline HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This,IDWriteFontFace *face,IDWriteFont **font) {
2931 return This->lpVtbl->GetFontFromFontFace(This,face,font);
2932}
2933/*** IDWriteFontCollection1 methods ***/
2934/*** IDWriteFontCollection2 methods ***/
2935static inline HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This,UINT32 index,IDWriteFontFamily2 **family) {
2936 return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family);
2937}
2938static inline HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
2939 return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist);
2940}
2941static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection3_GetFontFamilyModel(IDWriteFontCollection3* This) {
2942 return This->lpVtbl->GetFontFamilyModel(This);
2943}
2944static inline HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This,IDWriteFontSet1 **fontset) {
2945 return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset);
2946}
2947/*** IDWriteFontCollection3 methods ***/
2948static inline HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollection3* This) {
2949 return This->lpVtbl->GetExpirationEvent(This);
2950}
2951#endif
2952#endif
2953
2954#endif
2955
2956
2957#endif /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */
2958
2959/*****************************************************************************
2960 * IDWriteFontFaceReference interface
2961 */
2962#ifndef __IDWriteFontFaceReference_INTERFACE_DEFINED__
2963#define __IDWriteFontFaceReference_INTERFACE_DEFINED__
2964
2965DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd);
2966#if defined(__cplusplus) && !defined(CINTERFACE)
2967MIDL_INTERFACE("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd")
2968IDWriteFontFaceReference : public IUnknown
2969{
2970 virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
2971 IDWriteFontFace3 **fontface) = 0;
2972
2973 virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations(
2974 DWRITE_FONT_SIMULATIONS simulations,
2975 IDWriteFontFace3 **fontface) = 0;
2976
2977 virtual WINBOOL STDMETHODCALLTYPE Equals(
2978 IDWriteFontFaceReference *reference) = 0;
2979
2980 virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex(
2981 ) = 0;
2982
2983 virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations(
2984 ) = 0;
2985
2986 virtual HRESULT STDMETHODCALLTYPE GetFontFile(
2987 IDWriteFontFile **fontfile) = 0;
2988
2989 virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize(
2990 ) = 0;
2991
2992 virtual UINT64 STDMETHODCALLTYPE GetFileSize(
2993 ) = 0;
2994
2995 virtual HRESULT STDMETHODCALLTYPE GetFileTime(
2996 FILETIME *writetime) = 0;
2997
2998 virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
2999 ) = 0;
3000
3001 virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest(
3002 ) = 0;
3003
3004 virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest(
3005 const WCHAR *chars,
3006 UINT32 count) = 0;
3007
3008 virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest(
3009 const UINT16 *glyphs,
3010 UINT32 count) = 0;
3011
3012 virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest(
3013 UINT64 offset,
3014 UINT64 size) = 0;
3015
3016};
3017#ifdef __CRT_UUID_DECL
3018__CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd)
3019#endif
3020#else
3021typedef struct IDWriteFontFaceReferenceVtbl {
3022 BEGIN_INTERFACE
3023
3024 /*** IUnknown methods ***/
3025 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3026 IDWriteFontFaceReference *This,
3027 REFIID riid,
3028 void **ppvObject);
3029
3030 ULONG (STDMETHODCALLTYPE *AddRef)(
3031 IDWriteFontFaceReference *This);
3032
3033 ULONG (STDMETHODCALLTYPE *Release)(
3034 IDWriteFontFaceReference *This);
3035
3036 /*** IDWriteFontFaceReference methods ***/
3037 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
3038 IDWriteFontFaceReference *This,
3039 IDWriteFontFace3 **fontface);
3040
3041 HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)(
3042 IDWriteFontFaceReference *This,
3043 DWRITE_FONT_SIMULATIONS simulations,
3044 IDWriteFontFace3 **fontface);
3045
3046 WINBOOL (STDMETHODCALLTYPE *Equals)(
3047 IDWriteFontFaceReference *This,
3048 IDWriteFontFaceReference *reference);
3049
3050 UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
3051 IDWriteFontFaceReference *This);
3052
3053 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
3054 IDWriteFontFaceReference *This);
3055
3056 HRESULT (STDMETHODCALLTYPE *GetFontFile)(
3057 IDWriteFontFaceReference *This,
3058 IDWriteFontFile **fontfile);
3059
3060 UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)(
3061 IDWriteFontFaceReference *This);
3062
3063 UINT64 (STDMETHODCALLTYPE *GetFileSize)(
3064 IDWriteFontFaceReference *This);
3065
3066 HRESULT (STDMETHODCALLTYPE *GetFileTime)(
3067 IDWriteFontFaceReference *This,
3068 FILETIME *writetime);
3069
3070 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
3071 IDWriteFontFaceReference *This);
3072
3073 HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)(
3074 IDWriteFontFaceReference *This);
3075
3076 HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)(
3077 IDWriteFontFaceReference *This,
3078 const WCHAR *chars,
3079 UINT32 count);
3080
3081 HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)(
3082 IDWriteFontFaceReference *This,
3083 const UINT16 *glyphs,
3084 UINT32 count);
3085
3086 HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)(
3087 IDWriteFontFaceReference *This,
3088 UINT64 offset,
3089 UINT64 size);
3090
3091 END_INTERFACE
3092} IDWriteFontFaceReferenceVtbl;
3093
3094interface IDWriteFontFaceReference {
3095 CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl;
3096};
3097
3098#ifdef COBJMACROS
3099#ifndef WIDL_C_INLINE_WRAPPERS
3100/*** IUnknown methods ***/
3101#define IDWriteFontFaceReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3102#define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This)
3103#define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This)
3104/*** IDWriteFontFaceReference methods ***/
3105#define IDWriteFontFaceReference_CreateFontFace(This,fontface) (This)->lpVtbl->CreateFontFace(This,fontface)
3106#define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface)
3107#define IDWriteFontFaceReference_Equals(This,reference) (This)->lpVtbl->Equals(This,reference)
3108#define IDWriteFontFaceReference_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
3109#define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
3110#define IDWriteFontFaceReference_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
3111#define IDWriteFontFaceReference_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This)
3112#define IDWriteFontFaceReference_GetFileSize(This) (This)->lpVtbl->GetFileSize(This)
3113#define IDWriteFontFaceReference_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime)
3114#define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This)
3115#define IDWriteFontFaceReference_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This)
3116#define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count)
3117#define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count)
3118#define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size)
3119#else
3120/*** IUnknown methods ***/
3121static inline HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This,REFIID riid,void **ppvObject) {
3122 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3123}
3124static inline ULONG IDWriteFontFaceReference_AddRef(IDWriteFontFaceReference* This) {
3125 return This->lpVtbl->AddRef(This);
3126}
3127static inline ULONG IDWriteFontFaceReference_Release(IDWriteFontFaceReference* This) {
3128 return This->lpVtbl->Release(This);
3129}
3130/*** IDWriteFontFaceReference methods ***/
3131static inline HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This,IDWriteFontFace3 **fontface) {
3132 return This->lpVtbl->CreateFontFace(This,fontface);
3133}
3134static inline HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) {
3135 return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface);
3136}
3137static inline WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This,IDWriteFontFaceReference *reference) {
3138 return This->lpVtbl->Equals(This,reference);
3139}
3140static inline UINT32 IDWriteFontFaceReference_GetFontFaceIndex(IDWriteFontFaceReference* This) {
3141 return This->lpVtbl->GetFontFaceIndex(This);
3142}
3143static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference_GetSimulations(IDWriteFontFaceReference* This) {
3144 return This->lpVtbl->GetSimulations(This);
3145}
3146static inline HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This,IDWriteFontFile **fontfile) {
3147 return This->lpVtbl->GetFontFile(This,fontfile);
3148}
3149static inline UINT64 IDWriteFontFaceReference_GetLocalFileSize(IDWriteFontFaceReference* This) {
3150 return This->lpVtbl->GetLocalFileSize(This);
3151}
3152static inline UINT64 IDWriteFontFaceReference_GetFileSize(IDWriteFontFaceReference* This) {
3153 return This->lpVtbl->GetFileSize(This);
3154}
3155static inline HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This,FILETIME *writetime) {
3156 return This->lpVtbl->GetFileTime(This,writetime);
3157}
3158static inline DWRITE_LOCALITY IDWriteFontFaceReference_GetLocality(IDWriteFontFaceReference* This) {
3159 return This->lpVtbl->GetLocality(This);
3160}
3161static inline HRESULT IDWriteFontFaceReference_EnqueueFontDownloadRequest(IDWriteFontFaceReference* This) {
3162 return This->lpVtbl->EnqueueFontDownloadRequest(This);
3163}
3164static inline HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This,const WCHAR *chars,UINT32 count) {
3165 return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count);
3166}
3167static inline HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This,const UINT16 *glyphs,UINT32 count) {
3168 return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count);
3169}
3170static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This,UINT64 offset,UINT64 size) {
3171 return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size);
3172}
3173#endif
3174#endif
3175
3176#endif
3177
3178
3179#endif /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */
3180
3181/*****************************************************************************
3182 * IDWriteFontFaceReference1 interface
3183 */
3184#ifndef __IDWriteFontFaceReference1_INTERFACE_DEFINED__
3185#define __IDWriteFontFaceReference1_INTERFACE_DEFINED__
3186
3187DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a);
3188#if defined(__cplusplus) && !defined(CINTERFACE)
3189MIDL_INTERFACE("c081fe77-2fd1-41ac-a5a3-34983c4ba61a")
3190IDWriteFontFaceReference1 : public IDWriteFontFaceReference
3191{
3192 virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
3193 IDWriteFontFace5 **fontface) = 0;
3194
3195 virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
3196 ) = 0;
3197
3198 virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
3199 DWRITE_FONT_AXIS_VALUE *values,
3200 UINT32 num_values) = 0;
3201
3202};
3203#ifdef __CRT_UUID_DECL
3204__CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a)
3205#endif
3206#else
3207typedef struct IDWriteFontFaceReference1Vtbl {
3208 BEGIN_INTERFACE
3209
3210 /*** IUnknown methods ***/
3211 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3212 IDWriteFontFaceReference1 *This,
3213 REFIID riid,
3214 void **ppvObject);
3215
3216 ULONG (STDMETHODCALLTYPE *AddRef)(
3217 IDWriteFontFaceReference1 *This);
3218
3219 ULONG (STDMETHODCALLTYPE *Release)(
3220 IDWriteFontFaceReference1 *This);
3221
3222 /*** IDWriteFontFaceReference methods ***/
3223 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
3224 IDWriteFontFaceReference1 *This,
3225 IDWriteFontFace3 **fontface);
3226
3227 HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)(
3228 IDWriteFontFaceReference1 *This,
3229 DWRITE_FONT_SIMULATIONS simulations,
3230 IDWriteFontFace3 **fontface);
3231
3232 WINBOOL (STDMETHODCALLTYPE *Equals)(
3233 IDWriteFontFaceReference1 *This,
3234 IDWriteFontFaceReference *reference);
3235
3236 UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
3237 IDWriteFontFaceReference1 *This);
3238
3239 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
3240 IDWriteFontFaceReference1 *This);
3241
3242 HRESULT (STDMETHODCALLTYPE *GetFontFile)(
3243 IDWriteFontFaceReference1 *This,
3244 IDWriteFontFile **fontfile);
3245
3246 UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)(
3247 IDWriteFontFaceReference1 *This);
3248
3249 UINT64 (STDMETHODCALLTYPE *GetFileSize)(
3250 IDWriteFontFaceReference1 *This);
3251
3252 HRESULT (STDMETHODCALLTYPE *GetFileTime)(
3253 IDWriteFontFaceReference1 *This,
3254 FILETIME *writetime);
3255
3256 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
3257 IDWriteFontFaceReference1 *This);
3258
3259 HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)(
3260 IDWriteFontFaceReference1 *This);
3261
3262 HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)(
3263 IDWriteFontFaceReference1 *This,
3264 const WCHAR *chars,
3265 UINT32 count);
3266
3267 HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)(
3268 IDWriteFontFaceReference1 *This,
3269 const UINT16 *glyphs,
3270 UINT32 count);
3271
3272 HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)(
3273 IDWriteFontFaceReference1 *This,
3274 UINT64 offset,
3275 UINT64 size);
3276
3277 /*** IDWriteFontFaceReference1 methods ***/
3278 HRESULT (STDMETHODCALLTYPE *IDWriteFontFaceReference1_CreateFontFace)(
3279 IDWriteFontFaceReference1 *This,
3280 IDWriteFontFace5 **fontface);
3281
3282 UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
3283 IDWriteFontFaceReference1 *This);
3284
3285 HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
3286 IDWriteFontFaceReference1 *This,
3287 DWRITE_FONT_AXIS_VALUE *values,
3288 UINT32 num_values);
3289
3290 END_INTERFACE
3291} IDWriteFontFaceReference1Vtbl;
3292
3293interface IDWriteFontFaceReference1 {
3294 CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl;
3295};
3296
3297#ifdef COBJMACROS
3298#ifndef WIDL_C_INLINE_WRAPPERS
3299/*** IUnknown methods ***/
3300#define IDWriteFontFaceReference1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3301#define IDWriteFontFaceReference1_AddRef(This) (This)->lpVtbl->AddRef(This)
3302#define IDWriteFontFaceReference1_Release(This) (This)->lpVtbl->Release(This)
3303/*** IDWriteFontFaceReference methods ***/
3304#define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface)
3305#define IDWriteFontFaceReference1_Equals(This,reference) (This)->lpVtbl->Equals(This,reference)
3306#define IDWriteFontFaceReference1_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
3307#define IDWriteFontFaceReference1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
3308#define IDWriteFontFaceReference1_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
3309#define IDWriteFontFaceReference1_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This)
3310#define IDWriteFontFaceReference1_GetFileSize(This) (This)->lpVtbl->GetFileSize(This)
3311#define IDWriteFontFaceReference1_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime)
3312#define IDWriteFontFaceReference1_GetLocality(This) (This)->lpVtbl->GetLocality(This)
3313#define IDWriteFontFaceReference1_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This)
3314#define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count)
3315#define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count)
3316#define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size)
3317/*** IDWriteFontFaceReference1 methods ***/
3318#define IDWriteFontFaceReference1_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface)
3319#define IDWriteFontFaceReference1_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
3320#define IDWriteFontFaceReference1_GetFontAxisValues(This,values,num_values) (This)->lpVtbl->GetFontAxisValues(This,values,num_values)
3321#else
3322/*** IUnknown methods ***/
3323static inline HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This,REFIID riid,void **ppvObject) {
3324 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3325}
3326static inline ULONG IDWriteFontFaceReference1_AddRef(IDWriteFontFaceReference1* This) {
3327 return This->lpVtbl->AddRef(This);
3328}
3329static inline ULONG IDWriteFontFaceReference1_Release(IDWriteFontFaceReference1* This) {
3330 return This->lpVtbl->Release(This);
3331}
3332/*** IDWriteFontFaceReference methods ***/
3333static inline HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) {
3334 return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface);
3335}
3336static inline WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This,IDWriteFontFaceReference *reference) {
3337 return This->lpVtbl->Equals(This,reference);
3338}
3339static inline UINT32 IDWriteFontFaceReference1_GetFontFaceIndex(IDWriteFontFaceReference1* This) {
3340 return This->lpVtbl->GetFontFaceIndex(This);
3341}
3342static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference1_GetSimulations(IDWriteFontFaceReference1* This) {
3343 return This->lpVtbl->GetSimulations(This);
3344}
3345static inline HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This,IDWriteFontFile **fontfile) {
3346 return This->lpVtbl->GetFontFile(This,fontfile);
3347}
3348static inline UINT64 IDWriteFontFaceReference1_GetLocalFileSize(IDWriteFontFaceReference1* This) {
3349 return This->lpVtbl->GetLocalFileSize(This);
3350}
3351static inline UINT64 IDWriteFontFaceReference1_GetFileSize(IDWriteFontFaceReference1* This) {
3352 return This->lpVtbl->GetFileSize(This);
3353}
3354static inline HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This,FILETIME *writetime) {
3355 return This->lpVtbl->GetFileTime(This,writetime);
3356}
3357static inline DWRITE_LOCALITY IDWriteFontFaceReference1_GetLocality(IDWriteFontFaceReference1* This) {
3358 return This->lpVtbl->GetLocality(This);
3359}
3360static inline HRESULT IDWriteFontFaceReference1_EnqueueFontDownloadRequest(IDWriteFontFaceReference1* This) {
3361 return This->lpVtbl->EnqueueFontDownloadRequest(This);
3362}
3363static inline HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This,const WCHAR *chars,UINT32 count) {
3364 return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count);
3365}
3366static inline HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This,const UINT16 *glyphs,UINT32 count) {
3367 return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count);
3368}
3369static inline HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This,UINT64 offset,UINT64 size) {
3370 return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size);
3371}
3372/*** IDWriteFontFaceReference1 methods ***/
3373static inline HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This,IDWriteFontFace5 **fontface) {
3374 return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface);
3375}
3376static inline UINT32 IDWriteFontFaceReference1_GetFontAxisValueCount(IDWriteFontFaceReference1* This) {
3377 return This->lpVtbl->GetFontAxisValueCount(This);
3378}
3379static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) {
3380 return This->lpVtbl->GetFontAxisValues(This,values,num_values);
3381}
3382#endif
3383#endif
3384
3385#endif
3386
3387
3388#endif /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */
3389
3390/*****************************************************************************
3391 * IDWriteFontList1 interface
3392 */
3393#ifndef __IDWriteFontList1_INTERFACE_DEFINED__
3394#define __IDWriteFontList1_INTERFACE_DEFINED__
3395
3396DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde);
3397#if defined(__cplusplus) && !defined(CINTERFACE)
3398MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7ade")
3399IDWriteFontList1 : public IDWriteFontList
3400{
3401 virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
3402 UINT32 index) = 0;
3403
3404 virtual HRESULT STDMETHODCALLTYPE GetFont(
3405 UINT32 index,
3406 IDWriteFont3 **font) = 0;
3407
3408 virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
3409 UINT32 index,
3410 IDWriteFontFaceReference **reference) = 0;
3411
3412};
3413#ifdef __CRT_UUID_DECL
3414__CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde)
3415#endif
3416#else
3417typedef struct IDWriteFontList1Vtbl {
3418 BEGIN_INTERFACE
3419
3420 /*** IUnknown methods ***/
3421 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3422 IDWriteFontList1 *This,
3423 REFIID riid,
3424 void **ppvObject);
3425
3426 ULONG (STDMETHODCALLTYPE *AddRef)(
3427 IDWriteFontList1 *This);
3428
3429 ULONG (STDMETHODCALLTYPE *Release)(
3430 IDWriteFontList1 *This);
3431
3432 /*** IDWriteFontList methods ***/
3433 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
3434 IDWriteFontList1 *This,
3435 IDWriteFontCollection **collection);
3436
3437 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
3438 IDWriteFontList1 *This);
3439
3440 HRESULT (STDMETHODCALLTYPE *GetFont)(
3441 IDWriteFontList1 *This,
3442 UINT32 index,
3443 IDWriteFont **font);
3444
3445 /*** IDWriteFontList1 methods ***/
3446 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
3447 IDWriteFontList1 *This,
3448 UINT32 index);
3449
3450 HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)(
3451 IDWriteFontList1 *This,
3452 UINT32 index,
3453 IDWriteFont3 **font);
3454
3455 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
3456 IDWriteFontList1 *This,
3457 UINT32 index,
3458 IDWriteFontFaceReference **reference);
3459
3460 END_INTERFACE
3461} IDWriteFontList1Vtbl;
3462
3463interface IDWriteFontList1 {
3464 CONST_VTBL IDWriteFontList1Vtbl* lpVtbl;
3465};
3466
3467#ifdef COBJMACROS
3468#ifndef WIDL_C_INLINE_WRAPPERS
3469/*** IUnknown methods ***/
3470#define IDWriteFontList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3471#define IDWriteFontList1_AddRef(This) (This)->lpVtbl->AddRef(This)
3472#define IDWriteFontList1_Release(This) (This)->lpVtbl->Release(This)
3473/*** IDWriteFontList methods ***/
3474#define IDWriteFontList1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
3475#define IDWriteFontList1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
3476/*** IDWriteFontList1 methods ***/
3477#define IDWriteFontList1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
3478#define IDWriteFontList1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font)
3479#define IDWriteFontList1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
3480#else
3481/*** IUnknown methods ***/
3482static inline HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This,REFIID riid,void **ppvObject) {
3483 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3484}
3485static inline ULONG IDWriteFontList1_AddRef(IDWriteFontList1* This) {
3486 return This->lpVtbl->AddRef(This);
3487}
3488static inline ULONG IDWriteFontList1_Release(IDWriteFontList1* This) {
3489 return This->lpVtbl->Release(This);
3490}
3491/*** IDWriteFontList methods ***/
3492static inline HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This,IDWriteFontCollection **collection) {
3493 return This->lpVtbl->GetFontCollection(This,collection);
3494}
3495static inline UINT32 IDWriteFontList1_GetFontCount(IDWriteFontList1* This) {
3496 return This->lpVtbl->GetFontCount(This);
3497}
3498/*** IDWriteFontList1 methods ***/
3499static inline DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This,UINT32 index) {
3500 return This->lpVtbl->GetFontLocality(This,index);
3501}
3502static inline HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This,UINT32 index,IDWriteFont3 **font) {
3503 return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font);
3504}
3505static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This,UINT32 index,IDWriteFontFaceReference **reference) {
3506 return This->lpVtbl->GetFontFaceReference(This,index,reference);
3507}
3508#endif
3509#endif
3510
3511#endif
3512
3513
3514#endif /* __IDWriteFontList1_INTERFACE_DEFINED__ */
3515
3516/*****************************************************************************
3517 * IDWriteFontList2 interface
3518 */
3519#ifndef __IDWriteFontList2_INTERFACE_DEFINED__
3520#define __IDWriteFontList2_INTERFACE_DEFINED__
3521
3522DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5);
3523#if defined(__cplusplus) && !defined(CINTERFACE)
3524MIDL_INTERFACE("c0763a34-77af-445a-b735-08c37b0a5bf5")
3525IDWriteFontList2 : public IDWriteFontList1
3526{
3527 virtual HRESULT STDMETHODCALLTYPE GetFontSet(
3528 IDWriteFontSet1 **fontset) = 0;
3529
3530};
3531#ifdef __CRT_UUID_DECL
3532__CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5)
3533#endif
3534#else
3535typedef struct IDWriteFontList2Vtbl {
3536 BEGIN_INTERFACE
3537
3538 /*** IUnknown methods ***/
3539 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3540 IDWriteFontList2 *This,
3541 REFIID riid,
3542 void **ppvObject);
3543
3544 ULONG (STDMETHODCALLTYPE *AddRef)(
3545 IDWriteFontList2 *This);
3546
3547 ULONG (STDMETHODCALLTYPE *Release)(
3548 IDWriteFontList2 *This);
3549
3550 /*** IDWriteFontList methods ***/
3551 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
3552 IDWriteFontList2 *This,
3553 IDWriteFontCollection **collection);
3554
3555 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
3556 IDWriteFontList2 *This);
3557
3558 HRESULT (STDMETHODCALLTYPE *GetFont)(
3559 IDWriteFontList2 *This,
3560 UINT32 index,
3561 IDWriteFont **font);
3562
3563 /*** IDWriteFontList1 methods ***/
3564 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
3565 IDWriteFontList2 *This,
3566 UINT32 index);
3567
3568 HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)(
3569 IDWriteFontList2 *This,
3570 UINT32 index,
3571 IDWriteFont3 **font);
3572
3573 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
3574 IDWriteFontList2 *This,
3575 UINT32 index,
3576 IDWriteFontFaceReference **reference);
3577
3578 /*** IDWriteFontList2 methods ***/
3579 HRESULT (STDMETHODCALLTYPE *GetFontSet)(
3580 IDWriteFontList2 *This,
3581 IDWriteFontSet1 **fontset);
3582
3583 END_INTERFACE
3584} IDWriteFontList2Vtbl;
3585
3586interface IDWriteFontList2 {
3587 CONST_VTBL IDWriteFontList2Vtbl* lpVtbl;
3588};
3589
3590#ifdef COBJMACROS
3591#ifndef WIDL_C_INLINE_WRAPPERS
3592/*** IUnknown methods ***/
3593#define IDWriteFontList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3594#define IDWriteFontList2_AddRef(This) (This)->lpVtbl->AddRef(This)
3595#define IDWriteFontList2_Release(This) (This)->lpVtbl->Release(This)
3596/*** IDWriteFontList methods ***/
3597#define IDWriteFontList2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
3598#define IDWriteFontList2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
3599/*** IDWriteFontList1 methods ***/
3600#define IDWriteFontList2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
3601#define IDWriteFontList2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font)
3602#define IDWriteFontList2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
3603/*** IDWriteFontList2 methods ***/
3604#define IDWriteFontList2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
3605#else
3606/*** IUnknown methods ***/
3607static inline HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This,REFIID riid,void **ppvObject) {
3608 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3609}
3610static inline ULONG IDWriteFontList2_AddRef(IDWriteFontList2* This) {
3611 return This->lpVtbl->AddRef(This);
3612}
3613static inline ULONG IDWriteFontList2_Release(IDWriteFontList2* This) {
3614 return This->lpVtbl->Release(This);
3615}
3616/*** IDWriteFontList methods ***/
3617static inline HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This,IDWriteFontCollection **collection) {
3618 return This->lpVtbl->GetFontCollection(This,collection);
3619}
3620static inline UINT32 IDWriteFontList2_GetFontCount(IDWriteFontList2* This) {
3621 return This->lpVtbl->GetFontCount(This);
3622}
3623/*** IDWriteFontList1 methods ***/
3624static inline DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This,UINT32 index) {
3625 return This->lpVtbl->GetFontLocality(This,index);
3626}
3627static inline HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This,UINT32 index,IDWriteFont3 **font) {
3628 return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font);
3629}
3630static inline HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This,UINT32 index,IDWriteFontFaceReference **reference) {
3631 return This->lpVtbl->GetFontFaceReference(This,index,reference);
3632}
3633/*** IDWriteFontList2 methods ***/
3634static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This,IDWriteFontSet1 **fontset) {
3635 return This->lpVtbl->GetFontSet(This,fontset);
3636}
3637#endif
3638#endif
3639
3640#endif
3641
3642
3643#endif /* __IDWriteFontList2_INTERFACE_DEFINED__ */
3644
3645/*****************************************************************************
3646 * IDWriteFontSet2 interface
3647 */
3648#ifndef __IDWriteFontSet2_INTERFACE_DEFINED__
3649#define __IDWriteFontSet2_INTERFACE_DEFINED__
3650
3651DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f);
3652#if defined(__cplusplus) && !defined(CINTERFACE)
3653MIDL_INTERFACE("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f")
3654IDWriteFontSet2 : public IDWriteFontSet1
3655{
3656 virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent(
3657 ) = 0;
3658
3659};
3660#ifdef __CRT_UUID_DECL
3661__CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f)
3662#endif
3663#else
3664typedef struct IDWriteFontSet2Vtbl {
3665 BEGIN_INTERFACE
3666
3667 /*** IUnknown methods ***/
3668 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3669 IDWriteFontSet2 *This,
3670 REFIID riid,
3671 void **ppvObject);
3672
3673 ULONG (STDMETHODCALLTYPE *AddRef)(
3674 IDWriteFontSet2 *This);
3675
3676 ULONG (STDMETHODCALLTYPE *Release)(
3677 IDWriteFontSet2 *This);
3678
3679 /*** IDWriteFontSet methods ***/
3680 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
3681 IDWriteFontSet2 *This);
3682
3683 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
3684 IDWriteFontSet2 *This,
3685 UINT32 index,
3686 IDWriteFontFaceReference **reference);
3687
3688 HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
3689 IDWriteFontSet2 *This,
3690 IDWriteFontFaceReference *reference,
3691 UINT32 *index,
3692 WINBOOL *exists);
3693
3694 HRESULT (STDMETHODCALLTYPE *FindFontFace)(
3695 IDWriteFontSet2 *This,
3696 IDWriteFontFace *fontface,
3697 UINT32 *index,
3698 WINBOOL *exists);
3699
3700 HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
3701 IDWriteFontSet2 *This,
3702 DWRITE_FONT_PROPERTY_ID id,
3703 IDWriteStringList **values);
3704
3705 HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
3706 IDWriteFontSet2 *This,
3707 DWRITE_FONT_PROPERTY_ID id,
3708 const WCHAR *preferred_locales,
3709 IDWriteStringList **values);
3710
3711 HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
3712 IDWriteFontSet2 *This,
3713 UINT32 index,
3714 DWRITE_FONT_PROPERTY_ID id,
3715 WINBOOL *exists,
3716 IDWriteLocalizedStrings **values);
3717
3718 HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
3719 IDWriteFontSet2 *This,
3720 const DWRITE_FONT_PROPERTY *property,
3721 UINT32 *count);
3722
3723 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
3724 IDWriteFontSet2 *This,
3725 const WCHAR *family,
3726 DWRITE_FONT_WEIGHT weight,
3727 DWRITE_FONT_STRETCH stretch,
3728 DWRITE_FONT_STYLE style,
3729 IDWriteFontSet **fontset);
3730
3731 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
3732 IDWriteFontSet2 *This,
3733 const DWRITE_FONT_PROPERTY *props,
3734 UINT32 count,
3735 IDWriteFontSet **fontset);
3736
3737 /*** IDWriteFontSet1 methods ***/
3738 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
3739 IDWriteFontSet2 *This,
3740 const DWRITE_FONT_PROPERTY *property,
3741 const DWRITE_FONT_AXIS_VALUE *axis_values,
3742 UINT32 num_values,
3743 IDWriteFontSet1 **fontset);
3744
3745 HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
3746 IDWriteFontSet2 *This,
3747 IDWriteFontSet1 **fontset);
3748
3749 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
3750 IDWriteFontSet2 *This,
3751 const UINT32 *indices,
3752 UINT32 num_indices,
3753 IDWriteFontSet1 **fontset);
3754
3755 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
3756 IDWriteFontSet2 *This,
3757 const DWRITE_FONT_AXIS_RANGE *axis_ranges,
3758 UINT32 num_ranges,
3759 WINBOOL select_any_range,
3760 IDWriteFontSet1 **fontset);
3761
3762 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
3763 IDWriteFontSet2 *This,
3764 const DWRITE_FONT_PROPERTY *props,
3765 UINT32 num_properties,
3766 WINBOOL select_any_property,
3767 IDWriteFontSet1 **fontset);
3768
3769 HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
3770 IDWriteFontSet2 *This,
3771 const DWRITE_FONT_AXIS_RANGE *ranges,
3772 UINT32 num_ranges,
3773 WINBOOL select_any_range,
3774 UINT32 *indices,
3775 UINT32 num_indices,
3776 UINT32 *actual_num_indices);
3777
3778 HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
3779 IDWriteFontSet2 *This,
3780 const DWRITE_FONT_PROPERTY *props,
3781 UINT32 num_properties,
3782 WINBOOL select_any_range,
3783 UINT32 *indices,
3784 UINT32 num_indices,
3785 UINT32 *actual_num_indices);
3786
3787 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
3788 IDWriteFontSet2 *This,
3789 UINT32 font_index,
3790 DWRITE_FONT_AXIS_RANGE *axis_ranges,
3791 UINT32 num_ranges,
3792 UINT32 *actual_num_ranges);
3793
3794 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
3795 IDWriteFontSet2 *This,
3796 DWRITE_FONT_AXIS_RANGE *axis_ranges,
3797 UINT32 num_ranges,
3798 UINT32 *actual_num_ranges);
3799
3800 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
3801 IDWriteFontSet2 *This,
3802 UINT32 index,
3803 IDWriteFontFaceReference1 **reference);
3804
3805 HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
3806 IDWriteFontSet2 *This,
3807 UINT32 index,
3808 IDWriteFontResource **resource);
3809
3810 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
3811 IDWriteFontSet2 *This,
3812 UINT32 index,
3813 IDWriteFontFace5 **fontface);
3814
3815 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
3816 IDWriteFontSet2 *This,
3817 UINT32 index);
3818
3819 /*** IDWriteFontSet2 methods ***/
3820 HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
3821 IDWriteFontSet2 *This);
3822
3823 END_INTERFACE
3824} IDWriteFontSet2Vtbl;
3825
3826interface IDWriteFontSet2 {
3827 CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl;
3828};
3829
3830#ifdef COBJMACROS
3831#ifndef WIDL_C_INLINE_WRAPPERS
3832/*** IUnknown methods ***/
3833#define IDWriteFontSet2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3834#define IDWriteFontSet2_AddRef(This) (This)->lpVtbl->AddRef(This)
3835#define IDWriteFontSet2_Release(This) (This)->lpVtbl->Release(This)
3836/*** IDWriteFontSet methods ***/
3837#define IDWriteFontSet2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
3838#define IDWriteFontSet2_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
3839#define IDWriteFontSet2_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
3840#define IDWriteFontSet2_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
3841#define IDWriteFontSet2_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
3842#define IDWriteFontSet2_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
3843#define IDWriteFontSet2_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
3844#define IDWriteFontSet2_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
3845/*** IDWriteFontSet1 methods ***/
3846#define IDWriteFontSet2_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
3847#define IDWriteFontSet2_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
3848#define IDWriteFontSet2_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
3849#define IDWriteFontSet2_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
3850#define IDWriteFontSet2_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
3851#define IDWriteFontSet2_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
3852#define IDWriteFontSet2_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
3853#define IDWriteFontSet2_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
3854#define IDWriteFontSet2_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
3855#define IDWriteFontSet2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
3856#define IDWriteFontSet2_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
3857#define IDWriteFontSet2_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
3858#define IDWriteFontSet2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
3859/*** IDWriteFontSet2 methods ***/
3860#define IDWriteFontSet2_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
3861#else
3862/*** IUnknown methods ***/
3863static inline HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This,REFIID riid,void **ppvObject) {
3864 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3865}
3866static inline ULONG IDWriteFontSet2_AddRef(IDWriteFontSet2* This) {
3867 return This->lpVtbl->AddRef(This);
3868}
3869static inline ULONG IDWriteFontSet2_Release(IDWriteFontSet2* This) {
3870 return This->lpVtbl->Release(This);
3871}
3872/*** IDWriteFontSet methods ***/
3873static inline UINT32 IDWriteFontSet2_GetFontCount(IDWriteFontSet2* This) {
3874 return This->lpVtbl->GetFontCount(This);
3875}
3876static inline HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
3877 return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
3878}
3879static inline HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
3880 return This->lpVtbl->FindFontFace(This,fontface,index,exists);
3881}
3882static inline HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
3883 return This->lpVtbl->GetPropertyValues__(This,id,values);
3884}
3885static inline HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
3886 return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
3887}
3888static inline HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
3889 return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
3890}
3891static inline HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
3892 return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
3893}
3894static inline HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
3895 return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
3896}
3897/*** IDWriteFontSet1 methods ***/
3898static inline HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
3899 return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
3900}
3901static inline HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This,IDWriteFontSet1 **fontset) {
3902 return This->lpVtbl->GetFirstFontResources(This,fontset);
3903}
3904static inline HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
3905 return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
3906}
3907static inline HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
3908 return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
3909}
3910static inline HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
3911 return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
3912}
3913static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
3914 return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
3915}
3916static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
3917 return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
3918}
3919static inline HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
3920 return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
3921}
3922static inline HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
3923 return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
3924}
3925static inline HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
3926 return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
3927}
3928static inline HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This,UINT32 index,IDWriteFontResource **resource) {
3929 return This->lpVtbl->CreateFontResource(This,index,resource);
3930}
3931static inline HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This,UINT32 index,IDWriteFontFace5 **fontface) {
3932 return This->lpVtbl->CreateFontFace(This,index,fontface);
3933}
3934static inline DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This,UINT32 index) {
3935 return This->lpVtbl->GetFontLocality(This,index);
3936}
3937/*** IDWriteFontSet2 methods ***/
3938static inline HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) {
3939 return This->lpVtbl->GetExpirationEvent(This);
3940}
3941#endif
3942#endif
3943
3944#endif
3945
3946
3947#endif /* __IDWriteFontSet2_INTERFACE_DEFINED__ */
3948
3949/*****************************************************************************
3950 * IDWriteFontSet3 interface
3951 */
3952#ifndef __IDWriteFontSet3_INTERFACE_DEFINED__
3953#define __IDWriteFontSet3_INTERFACE_DEFINED__
3954
3955DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90);
3956#if defined(__cplusplus) && !defined(CINTERFACE)
3957MIDL_INTERFACE("7c073ef2-a7f4-4045-8c32-8ab8ae640f90")
3958IDWriteFontSet3 : public IDWriteFontSet2
3959{
3960 virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType(
3961 UINT32 index) = 0;
3962
3963 virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength(
3964 UINT32 index) = 0;
3965
3966 virtual HRESULT STDMETHODCALLTYPE GetFontSourceName(
3967 UINT32 index,
3968 WCHAR *buffer,
3969 UINT32 buffer_size) = 0;
3970
3971};
3972#ifdef __CRT_UUID_DECL
3973__CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90)
3974#endif
3975#else
3976typedef struct IDWriteFontSet3Vtbl {
3977 BEGIN_INTERFACE
3978
3979 /*** IUnknown methods ***/
3980 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3981 IDWriteFontSet3 *This,
3982 REFIID riid,
3983 void **ppvObject);
3984
3985 ULONG (STDMETHODCALLTYPE *AddRef)(
3986 IDWriteFontSet3 *This);
3987
3988 ULONG (STDMETHODCALLTYPE *Release)(
3989 IDWriteFontSet3 *This);
3990
3991 /*** IDWriteFontSet methods ***/
3992 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
3993 IDWriteFontSet3 *This);
3994
3995 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
3996 IDWriteFontSet3 *This,
3997 UINT32 index,
3998 IDWriteFontFaceReference **reference);
3999
4000 HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
4001 IDWriteFontSet3 *This,
4002 IDWriteFontFaceReference *reference,
4003 UINT32 *index,
4004 WINBOOL *exists);
4005
4006 HRESULT (STDMETHODCALLTYPE *FindFontFace)(
4007 IDWriteFontSet3 *This,
4008 IDWriteFontFace *fontface,
4009 UINT32 *index,
4010 WINBOOL *exists);
4011
4012 HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
4013 IDWriteFontSet3 *This,
4014 DWRITE_FONT_PROPERTY_ID id,
4015 IDWriteStringList **values);
4016
4017 HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
4018 IDWriteFontSet3 *This,
4019 DWRITE_FONT_PROPERTY_ID id,
4020 const WCHAR *preferred_locales,
4021 IDWriteStringList **values);
4022
4023 HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
4024 IDWriteFontSet3 *This,
4025 UINT32 index,
4026 DWRITE_FONT_PROPERTY_ID id,
4027 WINBOOL *exists,
4028 IDWriteLocalizedStrings **values);
4029
4030 HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
4031 IDWriteFontSet3 *This,
4032 const DWRITE_FONT_PROPERTY *property,
4033 UINT32 *count);
4034
4035 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
4036 IDWriteFontSet3 *This,
4037 const WCHAR *family,
4038 DWRITE_FONT_WEIGHT weight,
4039 DWRITE_FONT_STRETCH stretch,
4040 DWRITE_FONT_STYLE style,
4041 IDWriteFontSet **fontset);
4042
4043 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
4044 IDWriteFontSet3 *This,
4045 const DWRITE_FONT_PROPERTY *props,
4046 UINT32 count,
4047 IDWriteFontSet **fontset);
4048
4049 /*** IDWriteFontSet1 methods ***/
4050 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
4051 IDWriteFontSet3 *This,
4052 const DWRITE_FONT_PROPERTY *property,
4053 const DWRITE_FONT_AXIS_VALUE *axis_values,
4054 UINT32 num_values,
4055 IDWriteFontSet1 **fontset);
4056
4057 HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
4058 IDWriteFontSet3 *This,
4059 IDWriteFontSet1 **fontset);
4060
4061 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
4062 IDWriteFontSet3 *This,
4063 const UINT32 *indices,
4064 UINT32 num_indices,
4065 IDWriteFontSet1 **fontset);
4066
4067 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
4068 IDWriteFontSet3 *This,
4069 const DWRITE_FONT_AXIS_RANGE *axis_ranges,
4070 UINT32 num_ranges,
4071 WINBOOL select_any_range,
4072 IDWriteFontSet1 **fontset);
4073
4074 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
4075 IDWriteFontSet3 *This,
4076 const DWRITE_FONT_PROPERTY *props,
4077 UINT32 num_properties,
4078 WINBOOL select_any_property,
4079 IDWriteFontSet1 **fontset);
4080
4081 HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
4082 IDWriteFontSet3 *This,
4083 const DWRITE_FONT_AXIS_RANGE *ranges,
4084 UINT32 num_ranges,
4085 WINBOOL select_any_range,
4086 UINT32 *indices,
4087 UINT32 num_indices,
4088 UINT32 *actual_num_indices);
4089
4090 HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
4091 IDWriteFontSet3 *This,
4092 const DWRITE_FONT_PROPERTY *props,
4093 UINT32 num_properties,
4094 WINBOOL select_any_range,
4095 UINT32 *indices,
4096 UINT32 num_indices,
4097 UINT32 *actual_num_indices);
4098
4099 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
4100 IDWriteFontSet3 *This,
4101 UINT32 font_index,
4102 DWRITE_FONT_AXIS_RANGE *axis_ranges,
4103 UINT32 num_ranges,
4104 UINT32 *actual_num_ranges);
4105
4106 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
4107 IDWriteFontSet3 *This,
4108 DWRITE_FONT_AXIS_RANGE *axis_ranges,
4109 UINT32 num_ranges,
4110 UINT32 *actual_num_ranges);
4111
4112 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
4113 IDWriteFontSet3 *This,
4114 UINT32 index,
4115 IDWriteFontFaceReference1 **reference);
4116
4117 HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
4118 IDWriteFontSet3 *This,
4119 UINT32 index,
4120 IDWriteFontResource **resource);
4121
4122 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
4123 IDWriteFontSet3 *This,
4124 UINT32 index,
4125 IDWriteFontFace5 **fontface);
4126
4127 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
4128 IDWriteFontSet3 *This,
4129 UINT32 index);
4130
4131 /*** IDWriteFontSet2 methods ***/
4132 HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
4133 IDWriteFontSet3 *This);
4134
4135 /*** IDWriteFontSet3 methods ***/
4136 DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)(
4137 IDWriteFontSet3 *This,
4138 UINT32 index);
4139
4140 UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)(
4141 IDWriteFontSet3 *This,
4142 UINT32 index);
4143
4144 HRESULT (STDMETHODCALLTYPE *GetFontSourceName)(
4145 IDWriteFontSet3 *This,
4146 UINT32 index,
4147 WCHAR *buffer,
4148 UINT32 buffer_size);
4149
4150 END_INTERFACE
4151} IDWriteFontSet3Vtbl;
4152
4153interface IDWriteFontSet3 {
4154 CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl;
4155};
4156
4157#ifdef COBJMACROS
4158#ifndef WIDL_C_INLINE_WRAPPERS
4159/*** IUnknown methods ***/
4160#define IDWriteFontSet3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4161#define IDWriteFontSet3_AddRef(This) (This)->lpVtbl->AddRef(This)
4162#define IDWriteFontSet3_Release(This) (This)->lpVtbl->Release(This)
4163/*** IDWriteFontSet methods ***/
4164#define IDWriteFontSet3_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
4165#define IDWriteFontSet3_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
4166#define IDWriteFontSet3_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
4167#define IDWriteFontSet3_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
4168#define IDWriteFontSet3_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
4169#define IDWriteFontSet3_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
4170#define IDWriteFontSet3_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
4171#define IDWriteFontSet3_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
4172/*** IDWriteFontSet1 methods ***/
4173#define IDWriteFontSet3_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
4174#define IDWriteFontSet3_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
4175#define IDWriteFontSet3_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
4176#define IDWriteFontSet3_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
4177#define IDWriteFontSet3_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
4178#define IDWriteFontSet3_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
4179#define IDWriteFontSet3_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
4180#define IDWriteFontSet3_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
4181#define IDWriteFontSet3_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
4182#define IDWriteFontSet3_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
4183#define IDWriteFontSet3_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
4184#define IDWriteFontSet3_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
4185#define IDWriteFontSet3_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
4186/*** IDWriteFontSet2 methods ***/
4187#define IDWriteFontSet3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
4188/*** IDWriteFontSet3 methods ***/
4189#define IDWriteFontSet3_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index)
4190#define IDWriteFontSet3_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index)
4191#define IDWriteFontSet3_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size)
4192#else
4193/*** IUnknown methods ***/
4194static inline HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This,REFIID riid,void **ppvObject) {
4195 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4196}
4197static inline ULONG IDWriteFontSet3_AddRef(IDWriteFontSet3* This) {
4198 return This->lpVtbl->AddRef(This);
4199}
4200static inline ULONG IDWriteFontSet3_Release(IDWriteFontSet3* This) {
4201 return This->lpVtbl->Release(This);
4202}
4203/*** IDWriteFontSet methods ***/
4204static inline UINT32 IDWriteFontSet3_GetFontCount(IDWriteFontSet3* This) {
4205 return This->lpVtbl->GetFontCount(This);
4206}
4207static inline HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
4208 return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
4209}
4210static inline HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
4211 return This->lpVtbl->FindFontFace(This,fontface,index,exists);
4212}
4213static inline HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
4214 return This->lpVtbl->GetPropertyValues__(This,id,values);
4215}
4216static inline HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
4217 return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
4218}
4219static inline HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
4220 return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
4221}
4222static inline HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
4223 return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
4224}
4225static inline HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
4226 return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
4227}
4228/*** IDWriteFontSet1 methods ***/
4229static inline HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
4230 return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
4231}
4232static inline HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This,IDWriteFontSet1 **fontset) {
4233 return This->lpVtbl->GetFirstFontResources(This,fontset);
4234}
4235static inline HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
4236 return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
4237}
4238static inline HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
4239 return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
4240}
4241static inline HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
4242 return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
4243}
4244static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
4245 return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
4246}
4247static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
4248 return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
4249}
4250static inline HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
4251 return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
4252}
4253static inline HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
4254 return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
4255}
4256static inline HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
4257 return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
4258}
4259static inline HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This,UINT32 index,IDWriteFontResource **resource) {
4260 return This->lpVtbl->CreateFontResource(This,index,resource);
4261}
4262static inline HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This,UINT32 index,IDWriteFontFace5 **fontface) {
4263 return This->lpVtbl->CreateFontFace(This,index,fontface);
4264}
4265static inline DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This,UINT32 index) {
4266 return This->lpVtbl->GetFontLocality(This,index);
4267}
4268/*** IDWriteFontSet2 methods ***/
4269static inline HANDLE IDWriteFontSet3_GetExpirationEvent(IDWriteFontSet3* This) {
4270 return This->lpVtbl->GetExpirationEvent(This);
4271}
4272/*** IDWriteFontSet3 methods ***/
4273static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This,UINT32 index) {
4274 return This->lpVtbl->GetFontSourceType(This,index);
4275}
4276static inline UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This,UINT32 index) {
4277 return This->lpVtbl->GetFontSourceNameLength(This,index);
4278}
4279static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) {
4280 return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size);
4281}
4282#endif
4283#endif
4284
4285#endif
4286
4287
4288#endif /* __IDWriteFontSet3_INTERFACE_DEFINED__ */
4289
4290/*****************************************************************************
4291 * IDWriteFontSet4 interface
4292 */
4293#ifndef __IDWriteFontSet4_INTERFACE_DEFINED__
4294#define __IDWriteFontSet4_INTERFACE_DEFINED__
4295
4296DEFINE_GUID(IID_IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82);
4297#if defined(__cplusplus) && !defined(CINTERFACE)
4298MIDL_INTERFACE("eec175fc-bea9-4c86-8b53-ccbdd7df0c82")
4299IDWriteFontSet4 : public IDWriteFontSet3
4300{
4301 virtual UINT32 STDMETHODCALLTYPE ConvertWeightStretchStyleToFontAxisValues(
4302 const DWRITE_FONT_AXIS_VALUE *input_axis_values,
4303 UINT32 input_axis_count,
4304 DWRITE_FONT_WEIGHT weight,
4305 DWRITE_FONT_STRETCH stretch,
4306 DWRITE_FONT_STYLE style,
4307 float size,
4308 DWRITE_FONT_AXIS_VALUE *output_axis_values) = 0;
4309
4310 virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
4311 const WCHAR *family_name,
4312 const DWRITE_FONT_AXIS_VALUE *axis_values,
4313 UINT32 axis_value_count,
4314 DWRITE_FONT_SIMULATIONS allowed_simulations,
4315 IDWriteFontSet4 **fonts) = 0;
4316
4317};
4318#ifdef __CRT_UUID_DECL
4319__CRT_UUID_DECL(IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82)
4320#endif
4321#else
4322typedef struct IDWriteFontSet4Vtbl {
4323 BEGIN_INTERFACE
4324
4325 /*** IUnknown methods ***/
4326 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4327 IDWriteFontSet4 *This,
4328 REFIID riid,
4329 void **ppvObject);
4330
4331 ULONG (STDMETHODCALLTYPE *AddRef)(
4332 IDWriteFontSet4 *This);
4333
4334 ULONG (STDMETHODCALLTYPE *Release)(
4335 IDWriteFontSet4 *This);
4336
4337 /*** IDWriteFontSet methods ***/
4338 UINT32 (STDMETHODCALLTYPE *GetFontCount)(
4339 IDWriteFontSet4 *This);
4340
4341 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
4342 IDWriteFontSet4 *This,
4343 UINT32 index,
4344 IDWriteFontFaceReference **reference);
4345
4346 HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
4347 IDWriteFontSet4 *This,
4348 IDWriteFontFaceReference *reference,
4349 UINT32 *index,
4350 WINBOOL *exists);
4351
4352 HRESULT (STDMETHODCALLTYPE *FindFontFace)(
4353 IDWriteFontSet4 *This,
4354 IDWriteFontFace *fontface,
4355 UINT32 *index,
4356 WINBOOL *exists);
4357
4358 HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
4359 IDWriteFontSet4 *This,
4360 DWRITE_FONT_PROPERTY_ID id,
4361 IDWriteStringList **values);
4362
4363 HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
4364 IDWriteFontSet4 *This,
4365 DWRITE_FONT_PROPERTY_ID id,
4366 const WCHAR *preferred_locales,
4367 IDWriteStringList **values);
4368
4369 HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
4370 IDWriteFontSet4 *This,
4371 UINT32 index,
4372 DWRITE_FONT_PROPERTY_ID id,
4373 WINBOOL *exists,
4374 IDWriteLocalizedStrings **values);
4375
4376 HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
4377 IDWriteFontSet4 *This,
4378 const DWRITE_FONT_PROPERTY *property,
4379 UINT32 *count);
4380
4381 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
4382 IDWriteFontSet4 *This,
4383 const WCHAR *family,
4384 DWRITE_FONT_WEIGHT weight,
4385 DWRITE_FONT_STRETCH stretch,
4386 DWRITE_FONT_STYLE style,
4387 IDWriteFontSet **fontset);
4388
4389 HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
4390 IDWriteFontSet4 *This,
4391 const DWRITE_FONT_PROPERTY *props,
4392 UINT32 count,
4393 IDWriteFontSet **fontset);
4394
4395 /*** IDWriteFontSet1 methods ***/
4396 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
4397 IDWriteFontSet4 *This,
4398 const DWRITE_FONT_PROPERTY *property,
4399 const DWRITE_FONT_AXIS_VALUE *axis_values,
4400 UINT32 num_values,
4401 IDWriteFontSet1 **fontset);
4402
4403 HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
4404 IDWriteFontSet4 *This,
4405 IDWriteFontSet1 **fontset);
4406
4407 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
4408 IDWriteFontSet4 *This,
4409 const UINT32 *indices,
4410 UINT32 num_indices,
4411 IDWriteFontSet1 **fontset);
4412
4413 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
4414 IDWriteFontSet4 *This,
4415 const DWRITE_FONT_AXIS_RANGE *axis_ranges,
4416 UINT32 num_ranges,
4417 WINBOOL select_any_range,
4418 IDWriteFontSet1 **fontset);
4419
4420 HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
4421 IDWriteFontSet4 *This,
4422 const DWRITE_FONT_PROPERTY *props,
4423 UINT32 num_properties,
4424 WINBOOL select_any_property,
4425 IDWriteFontSet1 **fontset);
4426
4427 HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
4428 IDWriteFontSet4 *This,
4429 const DWRITE_FONT_AXIS_RANGE *ranges,
4430 UINT32 num_ranges,
4431 WINBOOL select_any_range,
4432 UINT32 *indices,
4433 UINT32 num_indices,
4434 UINT32 *actual_num_indices);
4435
4436 HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
4437 IDWriteFontSet4 *This,
4438 const DWRITE_FONT_PROPERTY *props,
4439 UINT32 num_properties,
4440 WINBOOL select_any_range,
4441 UINT32 *indices,
4442 UINT32 num_indices,
4443 UINT32 *actual_num_indices);
4444
4445 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
4446 IDWriteFontSet4 *This,
4447 UINT32 font_index,
4448 DWRITE_FONT_AXIS_RANGE *axis_ranges,
4449 UINT32 num_ranges,
4450 UINT32 *actual_num_ranges);
4451
4452 HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
4453 IDWriteFontSet4 *This,
4454 DWRITE_FONT_AXIS_RANGE *axis_ranges,
4455 UINT32 num_ranges,
4456 UINT32 *actual_num_ranges);
4457
4458 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
4459 IDWriteFontSet4 *This,
4460 UINT32 index,
4461 IDWriteFontFaceReference1 **reference);
4462
4463 HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
4464 IDWriteFontSet4 *This,
4465 UINT32 index,
4466 IDWriteFontResource **resource);
4467
4468 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
4469 IDWriteFontSet4 *This,
4470 UINT32 index,
4471 IDWriteFontFace5 **fontface);
4472
4473 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
4474 IDWriteFontSet4 *This,
4475 UINT32 index);
4476
4477 /*** IDWriteFontSet2 methods ***/
4478 HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
4479 IDWriteFontSet4 *This);
4480
4481 /*** IDWriteFontSet3 methods ***/
4482 DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)(
4483 IDWriteFontSet4 *This,
4484 UINT32 index);
4485
4486 UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)(
4487 IDWriteFontSet4 *This,
4488 UINT32 index);
4489
4490 HRESULT (STDMETHODCALLTYPE *GetFontSourceName)(
4491 IDWriteFontSet4 *This,
4492 UINT32 index,
4493 WCHAR *buffer,
4494 UINT32 buffer_size);
4495
4496 /*** IDWriteFontSet4 methods ***/
4497 UINT32 (STDMETHODCALLTYPE *ConvertWeightStretchStyleToFontAxisValues)(
4498 IDWriteFontSet4 *This,
4499 const DWRITE_FONT_AXIS_VALUE *input_axis_values,
4500 UINT32 input_axis_count,
4501 DWRITE_FONT_WEIGHT weight,
4502 DWRITE_FONT_STRETCH stretch,
4503 DWRITE_FONT_STYLE style,
4504 float size,
4505 DWRITE_FONT_AXIS_VALUE *output_axis_values);
4506
4507 HRESULT (STDMETHODCALLTYPE *IDWriteFontSet4_GetMatchingFonts)(
4508 IDWriteFontSet4 *This,
4509 const WCHAR *family_name,
4510 const DWRITE_FONT_AXIS_VALUE *axis_values,
4511 UINT32 axis_value_count,
4512 DWRITE_FONT_SIMULATIONS allowed_simulations,
4513 IDWriteFontSet4 **fonts);
4514
4515 END_INTERFACE
4516} IDWriteFontSet4Vtbl;
4517
4518interface IDWriteFontSet4 {
4519 CONST_VTBL IDWriteFontSet4Vtbl* lpVtbl;
4520};
4521
4522#ifdef COBJMACROS
4523#ifndef WIDL_C_INLINE_WRAPPERS
4524/*** IUnknown methods ***/
4525#define IDWriteFontSet4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4526#define IDWriteFontSet4_AddRef(This) (This)->lpVtbl->AddRef(This)
4527#define IDWriteFontSet4_Release(This) (This)->lpVtbl->Release(This)
4528/*** IDWriteFontSet methods ***/
4529#define IDWriteFontSet4_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
4530#define IDWriteFontSet4_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
4531#define IDWriteFontSet4_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
4532#define IDWriteFontSet4_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
4533#define IDWriteFontSet4_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
4534#define IDWriteFontSet4_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
4535#define IDWriteFontSet4_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
4536#define IDWriteFontSet4_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
4537/*** IDWriteFontSet1 methods ***/
4538#define IDWriteFontSet4_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
4539#define IDWriteFontSet4_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
4540#define IDWriteFontSet4_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
4541#define IDWriteFontSet4_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
4542#define IDWriteFontSet4_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
4543#define IDWriteFontSet4_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
4544#define IDWriteFontSet4_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
4545#define IDWriteFontSet4_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
4546#define IDWriteFontSet4_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
4547#define IDWriteFontSet4_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
4548#define IDWriteFontSet4_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
4549#define IDWriteFontSet4_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
4550/*** IDWriteFontSet2 methods ***/
4551#define IDWriteFontSet4_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
4552/*** IDWriteFontSet3 methods ***/
4553#define IDWriteFontSet4_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index)
4554#define IDWriteFontSet4_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index)
4555#define IDWriteFontSet4_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size)
4556/*** IDWriteFontSet4 methods ***/
4557#define IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) (This)->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values)
4558#define IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) (This)->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts)
4559#else
4560/*** IUnknown methods ***/
4561static inline HRESULT IDWriteFontSet4_QueryInterface(IDWriteFontSet4* This,REFIID riid,void **ppvObject) {
4562 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4563}
4564static inline ULONG IDWriteFontSet4_AddRef(IDWriteFontSet4* This) {
4565 return This->lpVtbl->AddRef(This);
4566}
4567static inline ULONG IDWriteFontSet4_Release(IDWriteFontSet4* This) {
4568 return This->lpVtbl->Release(This);
4569}
4570/*** IDWriteFontSet methods ***/
4571static inline UINT32 IDWriteFontSet4_GetFontCount(IDWriteFontSet4* This) {
4572 return This->lpVtbl->GetFontCount(This);
4573}
4574static inline HRESULT IDWriteFontSet4_FindFontFaceReference(IDWriteFontSet4* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
4575 return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
4576}
4577static inline HRESULT IDWriteFontSet4_FindFontFace(IDWriteFontSet4* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
4578 return This->lpVtbl->FindFontFace(This,fontface,index,exists);
4579}
4580static inline HRESULT IDWriteFontSet4_GetPropertyValues__(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
4581 return This->lpVtbl->GetPropertyValues__(This,id,values);
4582}
4583static inline HRESULT IDWriteFontSet4_GetPropertyValues_(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
4584 return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
4585}
4586static inline HRESULT IDWriteFontSet4_GetPropertyValues(IDWriteFontSet4* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
4587 return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
4588}
4589static inline HRESULT IDWriteFontSet4_GetPropertyOccurrenceCount(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
4590 return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
4591}
4592static inline HRESULT IDWriteFontSet4_GetMatchingFonts_(IDWriteFontSet4* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
4593 return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
4594}
4595/*** IDWriteFontSet1 methods ***/
4596static inline HRESULT IDWriteFontSet4_GetFirstFontResources(IDWriteFontSet4* This,IDWriteFontSet1 **fontset) {
4597 return This->lpVtbl->GetFirstFontResources(This,fontset);
4598}
4599static inline HRESULT IDWriteFontSet4_GetFilteredFonts__(IDWriteFontSet4* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
4600 return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
4601}
4602static inline HRESULT IDWriteFontSet4_GetFilteredFonts_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
4603 return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
4604}
4605static inline HRESULT IDWriteFontSet4_GetFilteredFonts(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
4606 return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
4607}
4608static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
4609 return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
4610}
4611static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
4612 return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
4613}
4614static inline HRESULT IDWriteFontSet4_GetFontAxisRanges_(IDWriteFontSet4* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
4615 return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
4616}
4617static inline HRESULT IDWriteFontSet4_GetFontAxisRanges(IDWriteFontSet4* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
4618 return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
4619}
4620static inline HRESULT IDWriteFontSet4_GetFontFaceReference(IDWriteFontSet4* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
4621 return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
4622}
4623static inline HRESULT IDWriteFontSet4_CreateFontResource(IDWriteFontSet4* This,UINT32 index,IDWriteFontResource **resource) {
4624 return This->lpVtbl->CreateFontResource(This,index,resource);
4625}
4626static inline HRESULT IDWriteFontSet4_CreateFontFace(IDWriteFontSet4* This,UINT32 index,IDWriteFontFace5 **fontface) {
4627 return This->lpVtbl->CreateFontFace(This,index,fontface);
4628}
4629static inline DWRITE_LOCALITY IDWriteFontSet4_GetFontLocality(IDWriteFontSet4* This,UINT32 index) {
4630 return This->lpVtbl->GetFontLocality(This,index);
4631}
4632/*** IDWriteFontSet2 methods ***/
4633static inline HANDLE IDWriteFontSet4_GetExpirationEvent(IDWriteFontSet4* This) {
4634 return This->lpVtbl->GetExpirationEvent(This);
4635}
4636/*** IDWriteFontSet3 methods ***/
4637static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet4_GetFontSourceType(IDWriteFontSet4* This,UINT32 index) {
4638 return This->lpVtbl->GetFontSourceType(This,index);
4639}
4640static inline UINT32 IDWriteFontSet4_GetFontSourceNameLength(IDWriteFontSet4* This,UINT32 index) {
4641 return This->lpVtbl->GetFontSourceNameLength(This,index);
4642}
4643static inline HRESULT IDWriteFontSet4_GetFontSourceName(IDWriteFontSet4* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) {
4644 return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size);
4645}
4646/*** IDWriteFontSet4 methods ***/
4647static inline UINT32 IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_VALUE *input_axis_values,UINT32 input_axis_count,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,float size,DWRITE_FONT_AXIS_VALUE *output_axis_values) {
4648 return This->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values);
4649}
4650static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This,const WCHAR *family_name,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 axis_value_count,DWRITE_FONT_SIMULATIONS allowed_simulations,IDWriteFontSet4 **fonts) {
4651 return This->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts);
4652}
4653#endif
4654#endif
4655
4656#endif
4657
4658
4659#endif /* __IDWriteFontSet4_INTERFACE_DEFINED__ */
4660
4661/*****************************************************************************
4662 * IDWriteFontFace3 interface
4663 */
4664#ifndef __IDWriteFontFace3_INTERFACE_DEFINED__
4665#define __IDWriteFontFace3_INTERFACE_DEFINED__
4666
4667DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2);
4668#if defined(__cplusplus) && !defined(CINTERFACE)
4669MIDL_INTERFACE("d37d7598-09be-4222-a236-2081341cc1f2")
4670IDWriteFontFace3 : public IDWriteFontFace2
4671{
4672 virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
4673 IDWriteFontFaceReference **reference) = 0;
4674
4675 virtual void STDMETHODCALLTYPE GetPanose(
4676 DWRITE_PANOSE *panose) = 0;
4677
4678 virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight(
4679 ) = 0;
4680
4681 virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch(
4682 ) = 0;
4683
4684 virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle(
4685 ) = 0;
4686
4687 virtual HRESULT STDMETHODCALLTYPE GetFamilyNames(
4688 IDWriteLocalizedStrings **names) = 0;
4689
4690 virtual HRESULT STDMETHODCALLTYPE GetFaceNames(
4691 IDWriteLocalizedStrings **names) = 0;
4692
4693 virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings(
4694 DWRITE_INFORMATIONAL_STRING_ID stringid,
4695 IDWriteLocalizedStrings **strings,
4696 WINBOOL *exists) = 0;
4697
4698 virtual WINBOOL STDMETHODCALLTYPE HasCharacter(
4699 UINT32 character) = 0;
4700
4701 virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode(
4702 FLOAT emsize,
4703 FLOAT dpi_x,
4704 FLOAT dpi_y,
4705 const DWRITE_MATRIX *transform,
4706 WINBOOL is_sideways,
4707 DWRITE_OUTLINE_THRESHOLD threshold,
4708 DWRITE_MEASURING_MODE measuring_mode,
4709 IDWriteRenderingParams *params,
4710 DWRITE_RENDERING_MODE1 *rendering_mode,
4711 DWRITE_GRID_FIT_MODE *gridfit_mode) = 0;
4712
4713 virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal(
4714 UINT32 character) = 0;
4715
4716 virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal(
4717 UINT16 glyph) = 0;
4718
4719 virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal(
4720 const WCHAR *characters,
4721 UINT32 count,
4722 WINBOOL enqueue_if_not,
4723 WINBOOL *are_local) = 0;
4724
4725 virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal(
4726 const UINT16 *glyphs,
4727 UINT32 count,
4728 WINBOOL enqueue_if_not,
4729 WINBOOL *are_local) = 0;
4730
4731};
4732#ifdef __CRT_UUID_DECL
4733__CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2)
4734#endif
4735#else
4736typedef struct IDWriteFontFace3Vtbl {
4737 BEGIN_INTERFACE
4738
4739 /*** IUnknown methods ***/
4740 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4741 IDWriteFontFace3 *This,
4742 REFIID riid,
4743 void **ppvObject);
4744
4745 ULONG (STDMETHODCALLTYPE *AddRef)(
4746 IDWriteFontFace3 *This);
4747
4748 ULONG (STDMETHODCALLTYPE *Release)(
4749 IDWriteFontFace3 *This);
4750
4751 /*** IDWriteFontFace methods ***/
4752 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
4753 IDWriteFontFace3 *This);
4754
4755 HRESULT (STDMETHODCALLTYPE *GetFiles)(
4756 IDWriteFontFace3 *This,
4757 UINT32 *number_of_files,
4758 IDWriteFontFile **fontfiles);
4759
4760 UINT32 (STDMETHODCALLTYPE *GetIndex)(
4761 IDWriteFontFace3 *This);
4762
4763 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
4764 IDWriteFontFace3 *This);
4765
4766 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
4767 IDWriteFontFace3 *This);
4768
4769 void (STDMETHODCALLTYPE *GetMetrics)(
4770 IDWriteFontFace3 *This,
4771 DWRITE_FONT_METRICS *metrics);
4772
4773 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
4774 IDWriteFontFace3 *This);
4775
4776 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
4777 IDWriteFontFace3 *This,
4778 const UINT16 *glyph_indices,
4779 UINT32 glyph_count,
4780 DWRITE_GLYPH_METRICS *metrics,
4781 WINBOOL is_sideways);
4782
4783 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
4784 IDWriteFontFace3 *This,
4785 const UINT32 *codepoints,
4786 UINT32 count,
4787 UINT16 *glyph_indices);
4788
4789 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
4790 IDWriteFontFace3 *This,
4791 UINT32 table_tag,
4792 const void **table_data,
4793 UINT32 *table_size,
4794 void **context,
4795 WINBOOL *exists);
4796
4797 void (STDMETHODCALLTYPE *ReleaseFontTable)(
4798 IDWriteFontFace3 *This,
4799 void *table_context);
4800
4801 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
4802 IDWriteFontFace3 *This,
4803 FLOAT emSize,
4804 const UINT16 *glyph_indices,
4805 const FLOAT *glyph_advances,
4806 const DWRITE_GLYPH_OFFSET *glyph_offsets,
4807 UINT32 glyph_count,
4808 WINBOOL is_sideways,
4809 WINBOOL is_rtl,
4810 IDWriteGeometrySink *geometrysink);
4811
4812 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
4813 IDWriteFontFace3 *This,
4814 FLOAT emSize,
4815 FLOAT pixels_per_dip,
4816 DWRITE_MEASURING_MODE mode,
4817 IDWriteRenderingParams *params,
4818 DWRITE_RENDERING_MODE *rendering_mode);
4819
4820 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
4821 IDWriteFontFace3 *This,
4822 FLOAT emSize,
4823 FLOAT pixels_per_dip,
4824 const DWRITE_MATRIX *transform,
4825 DWRITE_FONT_METRICS *metrics);
4826
4827 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
4828 IDWriteFontFace3 *This,
4829 FLOAT emSize,
4830 FLOAT pixels_per_dip,
4831 const DWRITE_MATRIX *transform,
4832 WINBOOL use_gdi_natural,
4833 const UINT16 *glyph_indices,
4834 UINT32 glyph_count,
4835 DWRITE_GLYPH_METRICS *metrics,
4836 WINBOOL is_sideways);
4837
4838 /*** IDWriteFontFace1 methods ***/
4839 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
4840 IDWriteFontFace3 *This,
4841 DWRITE_FONT_METRICS1 *metrics);
4842
4843 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
4844 IDWriteFontFace3 *This,
4845 FLOAT em_size,
4846 FLOAT pixels_per_dip,
4847 const DWRITE_MATRIX *transform,
4848 DWRITE_FONT_METRICS1 *metrics);
4849
4850 void (STDMETHODCALLTYPE *GetCaretMetrics)(
4851 IDWriteFontFace3 *This,
4852 DWRITE_CARET_METRICS *metrics);
4853
4854 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
4855 IDWriteFontFace3 *This,
4856 UINT32 max_count,
4857 DWRITE_UNICODE_RANGE *ranges,
4858 UINT32 *count);
4859
4860 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
4861 IDWriteFontFace3 *This);
4862
4863 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
4864 IDWriteFontFace3 *This,
4865 UINT32 glyph_count,
4866 const UINT16 *indices,
4867 INT32 *advances,
4868 WINBOOL is_sideways);
4869
4870 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
4871 IDWriteFontFace3 *This,
4872 FLOAT em_size,
4873 FLOAT pixels_per_dip,
4874 const DWRITE_MATRIX *transform,
4875 WINBOOL use_gdi_natural,
4876 WINBOOL is_sideways,
4877 UINT32 glyph_count,
4878 const UINT16 *indices,
4879 INT32 *advances);
4880
4881 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
4882 IDWriteFontFace3 *This,
4883 UINT32 glyph_count,
4884 const UINT16 *indices,
4885 INT32 *adjustments);
4886
4887 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
4888 IDWriteFontFace3 *This);
4889
4890 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
4891 IDWriteFontFace3 *This,
4892 FLOAT font_emsize,
4893 FLOAT dpiX,
4894 FLOAT dpiY,
4895 const DWRITE_MATRIX *transform,
4896 WINBOOL is_sideways,
4897 DWRITE_OUTLINE_THRESHOLD threshold,
4898 DWRITE_MEASURING_MODE measuring_mode,
4899 DWRITE_RENDERING_MODE *rendering_mode);
4900
4901 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
4902 IDWriteFontFace3 *This,
4903 UINT32 glyph_count,
4904 const UINT16 *nominal_indices,
4905 UINT16 *vertical_indices);
4906
4907 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
4908 IDWriteFontFace3 *This);
4909
4910 /*** IDWriteFontFace2 methods ***/
4911 WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
4912 IDWriteFontFace3 *This);
4913
4914 UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
4915 IDWriteFontFace3 *This);
4916
4917 UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
4918 IDWriteFontFace3 *This);
4919
4920 HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
4921 IDWriteFontFace3 *This,
4922 UINT32 palette_index,
4923 UINT32 first_entry_index,
4924 UINT32 entry_count,
4925 DWRITE_COLOR_F *entries);
4926
4927 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
4928 IDWriteFontFace3 *This,
4929 FLOAT fontEmSize,
4930 FLOAT dpiX,
4931 FLOAT dpiY,
4932 const DWRITE_MATRIX *transform,
4933 WINBOOL is_sideways,
4934 DWRITE_OUTLINE_THRESHOLD threshold,
4935 DWRITE_MEASURING_MODE measuringmode,
4936 IDWriteRenderingParams *params,
4937 DWRITE_RENDERING_MODE *renderingmode,
4938 DWRITE_GRID_FIT_MODE *gridfitmode);
4939
4940 /*** IDWriteFontFace3 methods ***/
4941 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
4942 IDWriteFontFace3 *This,
4943 IDWriteFontFaceReference **reference);
4944
4945 void (STDMETHODCALLTYPE *GetPanose)(
4946 IDWriteFontFace3 *This,
4947 DWRITE_PANOSE *panose);
4948
4949 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
4950 IDWriteFontFace3 *This);
4951
4952 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
4953 IDWriteFontFace3 *This);
4954
4955 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
4956 IDWriteFontFace3 *This);
4957
4958 HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
4959 IDWriteFontFace3 *This,
4960 IDWriteLocalizedStrings **names);
4961
4962 HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
4963 IDWriteFontFace3 *This,
4964 IDWriteLocalizedStrings **names);
4965
4966 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
4967 IDWriteFontFace3 *This,
4968 DWRITE_INFORMATIONAL_STRING_ID stringid,
4969 IDWriteLocalizedStrings **strings,
4970 WINBOOL *exists);
4971
4972 WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
4973 IDWriteFontFace3 *This,
4974 UINT32 character);
4975
4976 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
4977 IDWriteFontFace3 *This,
4978 FLOAT emsize,
4979 FLOAT dpi_x,
4980 FLOAT dpi_y,
4981 const DWRITE_MATRIX *transform,
4982 WINBOOL is_sideways,
4983 DWRITE_OUTLINE_THRESHOLD threshold,
4984 DWRITE_MEASURING_MODE measuring_mode,
4985 IDWriteRenderingParams *params,
4986 DWRITE_RENDERING_MODE1 *rendering_mode,
4987 DWRITE_GRID_FIT_MODE *gridfit_mode);
4988
4989 WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
4990 IDWriteFontFace3 *This,
4991 UINT32 character);
4992
4993 WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
4994 IDWriteFontFace3 *This,
4995 UINT16 glyph);
4996
4997 HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
4998 IDWriteFontFace3 *This,
4999 const WCHAR *characters,
5000 UINT32 count,
5001 WINBOOL enqueue_if_not,
5002 WINBOOL *are_local);
5003
5004 HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
5005 IDWriteFontFace3 *This,
5006 const UINT16 *glyphs,
5007 UINT32 count,
5008 WINBOOL enqueue_if_not,
5009 WINBOOL *are_local);
5010
5011 END_INTERFACE
5012} IDWriteFontFace3Vtbl;
5013
5014interface IDWriteFontFace3 {
5015 CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl;
5016};
5017
5018#ifdef COBJMACROS
5019#ifndef WIDL_C_INLINE_WRAPPERS
5020/*** IUnknown methods ***/
5021#define IDWriteFontFace3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5022#define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This)
5023#define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This)
5024/*** IDWriteFontFace methods ***/
5025#define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This)
5026#define IDWriteFontFace3_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
5027#define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This)
5028#define IDWriteFontFace3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
5029#define IDWriteFontFace3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
5030#define IDWriteFontFace3_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
5031#define IDWriteFontFace3_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
5032#define IDWriteFontFace3_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
5033#define IDWriteFontFace3_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
5034#define IDWriteFontFace3_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
5035#define IDWriteFontFace3_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
5036#define IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
5037/*** IDWriteFontFace1 methods ***/
5038#define IDWriteFontFace3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
5039#define IDWriteFontFace3_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
5040#define IDWriteFontFace3_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
5041#define IDWriteFontFace3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
5042#define IDWriteFontFace3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
5043#define IDWriteFontFace3_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
5044#define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
5045#define IDWriteFontFace3_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
5046#define IDWriteFontFace3_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
5047#define IDWriteFontFace3_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
5048#define IDWriteFontFace3_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
5049/*** IDWriteFontFace2 methods ***/
5050#define IDWriteFontFace3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
5051#define IDWriteFontFace3_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
5052#define IDWriteFontFace3_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
5053#define IDWriteFontFace3_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
5054/*** IDWriteFontFace3 methods ***/
5055#define IDWriteFontFace3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
5056#define IDWriteFontFace3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
5057#define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
5058#define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
5059#define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
5060#define IDWriteFontFace3_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
5061#define IDWriteFontFace3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
5062#define IDWriteFontFace3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
5063#define IDWriteFontFace3_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
5064#define IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
5065#define IDWriteFontFace3_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
5066#define IDWriteFontFace3_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
5067#define IDWriteFontFace3_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
5068#define IDWriteFontFace3_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
5069#else
5070/*** IUnknown methods ***/
5071static inline HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This,REFIID riid,void **ppvObject) {
5072 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5073}
5074static inline ULONG IDWriteFontFace3_AddRef(IDWriteFontFace3* This) {
5075 return This->lpVtbl->AddRef(This);
5076}
5077static inline ULONG IDWriteFontFace3_Release(IDWriteFontFace3* This) {
5078 return This->lpVtbl->Release(This);
5079}
5080/*** IDWriteFontFace methods ***/
5081static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace3_GetType(IDWriteFontFace3* This) {
5082 return This->lpVtbl->GetType(This);
5083}
5084static inline HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
5085 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
5086}
5087static inline UINT32 IDWriteFontFace3_GetIndex(IDWriteFontFace3* This) {
5088 return This->lpVtbl->GetIndex(This);
5089}
5090static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace3_GetSimulations(IDWriteFontFace3* This) {
5091 return This->lpVtbl->GetSimulations(This);
5092}
5093static inline WINBOOL IDWriteFontFace3_IsSymbolFont(IDWriteFontFace3* This) {
5094 return This->lpVtbl->IsSymbolFont(This);
5095}
5096static inline UINT16 IDWriteFontFace3_GetGlyphCount(IDWriteFontFace3* This) {
5097 return This->lpVtbl->GetGlyphCount(This);
5098}
5099static inline HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
5100 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
5101}
5102static inline HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
5103 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
5104}
5105static inline HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
5106 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
5107}
5108static inline void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This,void *table_context) {
5109 This->lpVtbl->ReleaseFontTable(This,table_context);
5110}
5111static inline HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
5112 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
5113}
5114static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
5115 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
5116}
5117/*** IDWriteFontFace1 methods ***/
5118static inline void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This,DWRITE_FONT_METRICS1 *metrics) {
5119 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
5120}
5121static inline HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
5122 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
5123}
5124static inline void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This,DWRITE_CARET_METRICS *metrics) {
5125 This->lpVtbl->GetCaretMetrics(This,metrics);
5126}
5127static inline HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
5128 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
5129}
5130static inline WINBOOL IDWriteFontFace3_IsMonospacedFont(IDWriteFontFace3* This) {
5131 return This->lpVtbl->IsMonospacedFont(This);
5132}
5133static inline HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
5134 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
5135}
5136static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
5137 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
5138}
5139static inline HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
5140 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
5141}
5142static inline WINBOOL IDWriteFontFace3_HasKerningPairs(IDWriteFontFace3* This) {
5143 return This->lpVtbl->HasKerningPairs(This);
5144}
5145static inline HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
5146 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
5147}
5148static inline WINBOOL IDWriteFontFace3_HasVerticalGlyphVariants(IDWriteFontFace3* This) {
5149 return This->lpVtbl->HasVerticalGlyphVariants(This);
5150}
5151/*** IDWriteFontFace2 methods ***/
5152static inline WINBOOL IDWriteFontFace3_IsColorFont(IDWriteFontFace3* This) {
5153 return This->lpVtbl->IsColorFont(This);
5154}
5155static inline UINT32 IDWriteFontFace3_GetColorPaletteCount(IDWriteFontFace3* This) {
5156 return This->lpVtbl->GetColorPaletteCount(This);
5157}
5158static inline UINT32 IDWriteFontFace3_GetPaletteEntryCount(IDWriteFontFace3* This) {
5159 return This->lpVtbl->GetPaletteEntryCount(This);
5160}
5161static inline HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
5162 return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
5163}
5164/*** IDWriteFontFace3 methods ***/
5165static inline HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This,IDWriteFontFaceReference **reference) {
5166 return This->lpVtbl->GetFontFaceReference(This,reference);
5167}
5168static inline void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This,DWRITE_PANOSE *panose) {
5169 This->lpVtbl->GetPanose(This,panose);
5170}
5171static inline DWRITE_FONT_WEIGHT IDWriteFontFace3_GetWeight(IDWriteFontFace3* This) {
5172 return This->lpVtbl->GetWeight(This);
5173}
5174static inline DWRITE_FONT_STRETCH IDWriteFontFace3_GetStretch(IDWriteFontFace3* This) {
5175 return This->lpVtbl->GetStretch(This);
5176}
5177static inline DWRITE_FONT_STYLE IDWriteFontFace3_GetStyle(IDWriteFontFace3* This) {
5178 return This->lpVtbl->GetStyle(This);
5179}
5180static inline HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) {
5181 return This->lpVtbl->GetFamilyNames(This,names);
5182}
5183static inline HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) {
5184 return This->lpVtbl->GetFaceNames(This,names);
5185}
5186static inline HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
5187 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
5188}
5189static inline WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This,UINT32 character) {
5190 return This->lpVtbl->HasCharacter(This,character);
5191}
5192static inline HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
5193 return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
5194}
5195static inline WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This,UINT32 character) {
5196 return This->lpVtbl->IsCharacterLocal(This,character);
5197}
5198static inline WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This,UINT16 glyph) {
5199 return This->lpVtbl->IsGlyphLocal(This,glyph);
5200}
5201static inline HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
5202 return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
5203}
5204static inline HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
5205 return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
5206}
5207#endif
5208#endif
5209
5210#endif
5211
5212
5213#endif /* __IDWriteFontFace3_INTERFACE_DEFINED__ */
5214
5215typedef struct DWRITE_LINE_METRICS1 {
5216 UINT32 length;
5217 UINT32 trailingWhitespaceLength;
5218 UINT32 newlineLength;
5219 FLOAT height;
5220 FLOAT baseline;
5221 WINBOOL isTrimmed;
5222 FLOAT leadingBefore;
5223 FLOAT leadingAfter;
5224} DWRITE_LINE_METRICS1;
5225typedef enum DWRITE_FONT_LINE_GAP_USAGE {
5226 DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0,
5227 DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1,
5228 DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2
5229} DWRITE_FONT_LINE_GAP_USAGE;
5230typedef struct DWRITE_LINE_SPACING {
5231 DWRITE_LINE_SPACING_METHOD method;
5232 FLOAT height;
5233 FLOAT baseline;
5234 FLOAT leadingBefore;
5235 DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage;
5236} DWRITE_LINE_SPACING;
5237/*****************************************************************************
5238 * IDWriteTextFormat2 interface
5239 */
5240#ifndef __IDWriteTextFormat2_INTERFACE_DEFINED__
5241#define __IDWriteTextFormat2_INTERFACE_DEFINED__
5242
5243DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70);
5244#if defined(__cplusplus) && !defined(CINTERFACE)
5245MIDL_INTERFACE("f67e0edd-9e3d-4ecc-8c32-4183253dfe70")
5246IDWriteTextFormat2 : public IDWriteTextFormat1
5247{
5248 virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
5249 const DWRITE_LINE_SPACING *spacing) = 0;
5250
5251 virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
5252 DWRITE_LINE_SPACING *spacing) = 0;
5253
5254};
5255#ifdef __CRT_UUID_DECL
5256__CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70)
5257#endif
5258#else
5259typedef struct IDWriteTextFormat2Vtbl {
5260 BEGIN_INTERFACE
5261
5262 /*** IUnknown methods ***/
5263 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5264 IDWriteTextFormat2 *This,
5265 REFIID riid,
5266 void **ppvObject);
5267
5268 ULONG (STDMETHODCALLTYPE *AddRef)(
5269 IDWriteTextFormat2 *This);
5270
5271 ULONG (STDMETHODCALLTYPE *Release)(
5272 IDWriteTextFormat2 *This);
5273
5274 /*** IDWriteTextFormat methods ***/
5275 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
5276 IDWriteTextFormat2 *This,
5277 DWRITE_TEXT_ALIGNMENT alignment);
5278
5279 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
5280 IDWriteTextFormat2 *This,
5281 DWRITE_PARAGRAPH_ALIGNMENT alignment);
5282
5283 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
5284 IDWriteTextFormat2 *This,
5285 DWRITE_WORD_WRAPPING wrapping);
5286
5287 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
5288 IDWriteTextFormat2 *This,
5289 DWRITE_READING_DIRECTION direction);
5290
5291 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
5292 IDWriteTextFormat2 *This,
5293 DWRITE_FLOW_DIRECTION direction);
5294
5295 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
5296 IDWriteTextFormat2 *This,
5297 FLOAT tabstop);
5298
5299 HRESULT (STDMETHODCALLTYPE *SetTrimming)(
5300 IDWriteTextFormat2 *This,
5301 const DWRITE_TRIMMING *trimming,
5302 IDWriteInlineObject *trimming_sign);
5303
5304 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
5305 IDWriteTextFormat2 *This,
5306 DWRITE_LINE_SPACING_METHOD spacing,
5307 FLOAT line_spacing,
5308 FLOAT baseline);
5309
5310 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
5311 IDWriteTextFormat2 *This);
5312
5313 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
5314 IDWriteTextFormat2 *This);
5315
5316 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
5317 IDWriteTextFormat2 *This);
5318
5319 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
5320 IDWriteTextFormat2 *This);
5321
5322 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
5323 IDWriteTextFormat2 *This);
5324
5325 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
5326 IDWriteTextFormat2 *This);
5327
5328 HRESULT (STDMETHODCALLTYPE *GetTrimming)(
5329 IDWriteTextFormat2 *This,
5330 DWRITE_TRIMMING *options,
5331 IDWriteInlineObject **trimming_sign);
5332
5333 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
5334 IDWriteTextFormat2 *This,
5335 DWRITE_LINE_SPACING_METHOD *method,
5336 FLOAT *spacing,
5337 FLOAT *baseline);
5338
5339 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
5340 IDWriteTextFormat2 *This,
5341 IDWriteFontCollection **collection);
5342
5343 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
5344 IDWriteTextFormat2 *This);
5345
5346 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
5347 IDWriteTextFormat2 *This,
5348 WCHAR *name,
5349 UINT32 size);
5350
5351 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
5352 IDWriteTextFormat2 *This);
5353
5354 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
5355 IDWriteTextFormat2 *This);
5356
5357 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
5358 IDWriteTextFormat2 *This);
5359
5360 FLOAT (STDMETHODCALLTYPE *GetFontSize)(
5361 IDWriteTextFormat2 *This);
5362
5363 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
5364 IDWriteTextFormat2 *This);
5365
5366 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
5367 IDWriteTextFormat2 *This,
5368 WCHAR *name,
5369 UINT32 size);
5370
5371 /*** IDWriteTextFormat1 methods ***/
5372 HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
5373 IDWriteTextFormat2 *This,
5374 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
5375
5376 DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
5377 IDWriteTextFormat2 *This);
5378
5379 HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
5380 IDWriteTextFormat2 *This,
5381 WINBOOL lastline_wrapping_enabled);
5382
5383 WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
5384 IDWriteTextFormat2 *This);
5385
5386 HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
5387 IDWriteTextFormat2 *This,
5388 DWRITE_OPTICAL_ALIGNMENT alignment);
5389
5390 DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
5391 IDWriteTextFormat2 *This);
5392
5393 HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
5394 IDWriteTextFormat2 *This,
5395 IDWriteFontFallback *fallback);
5396
5397 HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
5398 IDWriteTextFormat2 *This,
5399 IDWriteFontFallback **fallback);
5400
5401 /*** IDWriteTextFormat2 methods ***/
5402 HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)(
5403 IDWriteTextFormat2 *This,
5404 const DWRITE_LINE_SPACING *spacing);
5405
5406 HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)(
5407 IDWriteTextFormat2 *This,
5408 DWRITE_LINE_SPACING *spacing);
5409
5410 END_INTERFACE
5411} IDWriteTextFormat2Vtbl;
5412
5413interface IDWriteTextFormat2 {
5414 CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl;
5415};
5416
5417#ifdef COBJMACROS
5418#ifndef WIDL_C_INLINE_WRAPPERS
5419/*** IUnknown methods ***/
5420#define IDWriteTextFormat2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5421#define IDWriteTextFormat2_AddRef(This) (This)->lpVtbl->AddRef(This)
5422#define IDWriteTextFormat2_Release(This) (This)->lpVtbl->Release(This)
5423/*** IDWriteTextFormat methods ***/
5424#define IDWriteTextFormat2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
5425#define IDWriteTextFormat2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
5426#define IDWriteTextFormat2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
5427#define IDWriteTextFormat2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
5428#define IDWriteTextFormat2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
5429#define IDWriteTextFormat2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
5430#define IDWriteTextFormat2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
5431#define IDWriteTextFormat2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
5432#define IDWriteTextFormat2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
5433#define IDWriteTextFormat2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
5434#define IDWriteTextFormat2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
5435#define IDWriteTextFormat2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
5436#define IDWriteTextFormat2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
5437#define IDWriteTextFormat2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
5438#define IDWriteTextFormat2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
5439#define IDWriteTextFormat2_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
5440#define IDWriteTextFormat2_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
5441#define IDWriteTextFormat2_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
5442#define IDWriteTextFormat2_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
5443#define IDWriteTextFormat2_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
5444#define IDWriteTextFormat2_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
5445#define IDWriteTextFormat2_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
5446#define IDWriteTextFormat2_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
5447/*** IDWriteTextFormat1 methods ***/
5448#define IDWriteTextFormat2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
5449#define IDWriteTextFormat2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
5450#define IDWriteTextFormat2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
5451#define IDWriteTextFormat2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
5452#define IDWriteTextFormat2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
5453#define IDWriteTextFormat2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
5454#define IDWriteTextFormat2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
5455#define IDWriteTextFormat2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
5456/*** IDWriteTextFormat2 methods ***/
5457#define IDWriteTextFormat2_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing)
5458#define IDWriteTextFormat2_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing)
5459#else
5460/*** IUnknown methods ***/
5461static inline HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This,REFIID riid,void **ppvObject) {
5462 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5463}
5464static inline ULONG IDWriteTextFormat2_AddRef(IDWriteTextFormat2* This) {
5465 return This->lpVtbl->AddRef(This);
5466}
5467static inline ULONG IDWriteTextFormat2_Release(IDWriteTextFormat2* This) {
5468 return This->lpVtbl->Release(This);
5469}
5470/*** IDWriteTextFormat methods ***/
5471static inline HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This,DWRITE_TEXT_ALIGNMENT alignment) {
5472 return This->lpVtbl->SetTextAlignment(This,alignment);
5473}
5474static inline HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
5475 return This->lpVtbl->SetParagraphAlignment(This,alignment);
5476}
5477static inline HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This,DWRITE_WORD_WRAPPING wrapping) {
5478 return This->lpVtbl->SetWordWrapping(This,wrapping);
5479}
5480static inline HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This,DWRITE_READING_DIRECTION direction) {
5481 return This->lpVtbl->SetReadingDirection(This,direction);
5482}
5483static inline HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This,DWRITE_FLOW_DIRECTION direction) {
5484 return This->lpVtbl->SetFlowDirection(This,direction);
5485}
5486static inline HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This,FLOAT tabstop) {
5487 return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
5488}
5489static inline HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
5490 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
5491}
5492static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat2_GetTextAlignment(IDWriteTextFormat2* This) {
5493 return This->lpVtbl->GetTextAlignment(This);
5494}
5495static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat2_GetParagraphAlignment(IDWriteTextFormat2* This) {
5496 return This->lpVtbl->GetParagraphAlignment(This);
5497}
5498static inline DWRITE_WORD_WRAPPING IDWriteTextFormat2_GetWordWrapping(IDWriteTextFormat2* This) {
5499 return This->lpVtbl->GetWordWrapping(This);
5500}
5501static inline DWRITE_READING_DIRECTION IDWriteTextFormat2_GetReadingDirection(IDWriteTextFormat2* This) {
5502 return This->lpVtbl->GetReadingDirection(This);
5503}
5504static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat2_GetFlowDirection(IDWriteTextFormat2* This) {
5505 return This->lpVtbl->GetFlowDirection(This);
5506}
5507static inline FLOAT IDWriteTextFormat2_GetIncrementalTabStop(IDWriteTextFormat2* This) {
5508 return This->lpVtbl->GetIncrementalTabStop(This);
5509}
5510static inline HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
5511 return This->lpVtbl->GetTrimming(This,options,trimming_sign);
5512}
5513static inline HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This,IDWriteFontCollection **collection) {
5514 return This->lpVtbl->GetFontCollection(This,collection);
5515}
5516static inline UINT32 IDWriteTextFormat2_GetFontFamilyNameLength(IDWriteTextFormat2* This) {
5517 return This->lpVtbl->GetFontFamilyNameLength(This);
5518}
5519static inline HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) {
5520 return This->lpVtbl->GetFontFamilyName(This,name,size);
5521}
5522static inline DWRITE_FONT_WEIGHT IDWriteTextFormat2_GetFontWeight(IDWriteTextFormat2* This) {
5523 return This->lpVtbl->GetFontWeight(This);
5524}
5525static inline DWRITE_FONT_STYLE IDWriteTextFormat2_GetFontStyle(IDWriteTextFormat2* This) {
5526 return This->lpVtbl->GetFontStyle(This);
5527}
5528static inline DWRITE_FONT_STRETCH IDWriteTextFormat2_GetFontStretch(IDWriteTextFormat2* This) {
5529 return This->lpVtbl->GetFontStretch(This);
5530}
5531static inline FLOAT IDWriteTextFormat2_GetFontSize(IDWriteTextFormat2* This) {
5532 return This->lpVtbl->GetFontSize(This);
5533}
5534static inline UINT32 IDWriteTextFormat2_GetLocaleNameLength(IDWriteTextFormat2* This) {
5535 return This->lpVtbl->GetLocaleNameLength(This);
5536}
5537static inline HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) {
5538 return This->lpVtbl->GetLocaleName(This,name,size);
5539}
5540/*** IDWriteTextFormat1 methods ***/
5541static inline HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
5542 return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
5543}
5544static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat2_GetVerticalGlyphOrientation(IDWriteTextFormat2* This) {
5545 return This->lpVtbl->GetVerticalGlyphOrientation(This);
5546}
5547static inline HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This,WINBOOL lastline_wrapping_enabled) {
5548 return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
5549}
5550static inline WINBOOL IDWriteTextFormat2_GetLastLineWrapping(IDWriteTextFormat2* This) {
5551 return This->lpVtbl->GetLastLineWrapping(This);
5552}
5553static inline HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
5554 return This->lpVtbl->SetOpticalAlignment(This,alignment);
5555}
5556static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat2_GetOpticalAlignment(IDWriteTextFormat2* This) {
5557 return This->lpVtbl->GetOpticalAlignment(This);
5558}
5559static inline HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback *fallback) {
5560 return This->lpVtbl->SetFontFallback(This,fallback);
5561}
5562static inline HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback **fallback) {
5563 return This->lpVtbl->GetFontFallback(This,fallback);
5564}
5565/*** IDWriteTextFormat2 methods ***/
5566static inline HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This,const DWRITE_LINE_SPACING *spacing) {
5567 return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing);
5568}
5569static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This,DWRITE_LINE_SPACING *spacing) {
5570 return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing);
5571}
5572#endif
5573#endif
5574
5575#endif
5576
5577
5578#endif /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */
5579
5580/*****************************************************************************
5581 * IDWriteTextFormat3 interface
5582 */
5583#ifndef __IDWriteTextFormat3_INTERFACE_DEFINED__
5584#define __IDWriteTextFormat3_INTERFACE_DEFINED__
5585
5586DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27);
5587#if defined(__cplusplus) && !defined(CINTERFACE)
5588MIDL_INTERFACE("6d3b5641-e550-430d-a85b-b7bf48a93427")
5589IDWriteTextFormat3 : public IDWriteTextFormat2
5590{
5591 virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues(
5592 const DWRITE_FONT_AXIS_VALUE *axis_values,
5593 UINT32 num_values) = 0;
5594
5595 virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
5596 ) = 0;
5597
5598 virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
5599 DWRITE_FONT_AXIS_VALUE *axis_values,
5600 UINT32 num_values) = 0;
5601
5602 virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
5603 ) = 0;
5604
5605 virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes(
5606 DWRITE_AUTOMATIC_FONT_AXES axes) = 0;
5607
5608};
5609#ifdef __CRT_UUID_DECL
5610__CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27)
5611#endif
5612#else
5613typedef struct IDWriteTextFormat3Vtbl {
5614 BEGIN_INTERFACE
5615
5616 /*** IUnknown methods ***/
5617 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5618 IDWriteTextFormat3 *This,
5619 REFIID riid,
5620 void **ppvObject);
5621
5622 ULONG (STDMETHODCALLTYPE *AddRef)(
5623 IDWriteTextFormat3 *This);
5624
5625 ULONG (STDMETHODCALLTYPE *Release)(
5626 IDWriteTextFormat3 *This);
5627
5628 /*** IDWriteTextFormat methods ***/
5629 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
5630 IDWriteTextFormat3 *This,
5631 DWRITE_TEXT_ALIGNMENT alignment);
5632
5633 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
5634 IDWriteTextFormat3 *This,
5635 DWRITE_PARAGRAPH_ALIGNMENT alignment);
5636
5637 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
5638 IDWriteTextFormat3 *This,
5639 DWRITE_WORD_WRAPPING wrapping);
5640
5641 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
5642 IDWriteTextFormat3 *This,
5643 DWRITE_READING_DIRECTION direction);
5644
5645 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
5646 IDWriteTextFormat3 *This,
5647 DWRITE_FLOW_DIRECTION direction);
5648
5649 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
5650 IDWriteTextFormat3 *This,
5651 FLOAT tabstop);
5652
5653 HRESULT (STDMETHODCALLTYPE *SetTrimming)(
5654 IDWriteTextFormat3 *This,
5655 const DWRITE_TRIMMING *trimming,
5656 IDWriteInlineObject *trimming_sign);
5657
5658 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
5659 IDWriteTextFormat3 *This,
5660 DWRITE_LINE_SPACING_METHOD spacing,
5661 FLOAT line_spacing,
5662 FLOAT baseline);
5663
5664 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
5665 IDWriteTextFormat3 *This);
5666
5667 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
5668 IDWriteTextFormat3 *This);
5669
5670 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
5671 IDWriteTextFormat3 *This);
5672
5673 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
5674 IDWriteTextFormat3 *This);
5675
5676 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
5677 IDWriteTextFormat3 *This);
5678
5679 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
5680 IDWriteTextFormat3 *This);
5681
5682 HRESULT (STDMETHODCALLTYPE *GetTrimming)(
5683 IDWriteTextFormat3 *This,
5684 DWRITE_TRIMMING *options,
5685 IDWriteInlineObject **trimming_sign);
5686
5687 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
5688 IDWriteTextFormat3 *This,
5689 DWRITE_LINE_SPACING_METHOD *method,
5690 FLOAT *spacing,
5691 FLOAT *baseline);
5692
5693 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
5694 IDWriteTextFormat3 *This,
5695 IDWriteFontCollection **collection);
5696
5697 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
5698 IDWriteTextFormat3 *This);
5699
5700 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
5701 IDWriteTextFormat3 *This,
5702 WCHAR *name,
5703 UINT32 size);
5704
5705 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
5706 IDWriteTextFormat3 *This);
5707
5708 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
5709 IDWriteTextFormat3 *This);
5710
5711 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
5712 IDWriteTextFormat3 *This);
5713
5714 FLOAT (STDMETHODCALLTYPE *GetFontSize)(
5715 IDWriteTextFormat3 *This);
5716
5717 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
5718 IDWriteTextFormat3 *This);
5719
5720 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
5721 IDWriteTextFormat3 *This,
5722 WCHAR *name,
5723 UINT32 size);
5724
5725 /*** IDWriteTextFormat1 methods ***/
5726 HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
5727 IDWriteTextFormat3 *This,
5728 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
5729
5730 DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
5731 IDWriteTextFormat3 *This);
5732
5733 HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
5734 IDWriteTextFormat3 *This,
5735 WINBOOL lastline_wrapping_enabled);
5736
5737 WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
5738 IDWriteTextFormat3 *This);
5739
5740 HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
5741 IDWriteTextFormat3 *This,
5742 DWRITE_OPTICAL_ALIGNMENT alignment);
5743
5744 DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
5745 IDWriteTextFormat3 *This);
5746
5747 HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
5748 IDWriteTextFormat3 *This,
5749 IDWriteFontFallback *fallback);
5750
5751 HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
5752 IDWriteTextFormat3 *This,
5753 IDWriteFontFallback **fallback);
5754
5755 /*** IDWriteTextFormat2 methods ***/
5756 HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)(
5757 IDWriteTextFormat3 *This,
5758 const DWRITE_LINE_SPACING *spacing);
5759
5760 HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)(
5761 IDWriteTextFormat3 *This,
5762 DWRITE_LINE_SPACING *spacing);
5763
5764 /*** IDWriteTextFormat3 methods ***/
5765 HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)(
5766 IDWriteTextFormat3 *This,
5767 const DWRITE_FONT_AXIS_VALUE *axis_values,
5768 UINT32 num_values);
5769
5770 UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
5771 IDWriteTextFormat3 *This);
5772
5773 HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
5774 IDWriteTextFormat3 *This,
5775 DWRITE_FONT_AXIS_VALUE *axis_values,
5776 UINT32 num_values);
5777
5778 DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
5779 IDWriteTextFormat3 *This);
5780
5781 HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)(
5782 IDWriteTextFormat3 *This,
5783 DWRITE_AUTOMATIC_FONT_AXES axes);
5784
5785 END_INTERFACE
5786} IDWriteTextFormat3Vtbl;
5787
5788interface IDWriteTextFormat3 {
5789 CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl;
5790};
5791
5792#ifdef COBJMACROS
5793#ifndef WIDL_C_INLINE_WRAPPERS
5794/*** IUnknown methods ***/
5795#define IDWriteTextFormat3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5796#define IDWriteTextFormat3_AddRef(This) (This)->lpVtbl->AddRef(This)
5797#define IDWriteTextFormat3_Release(This) (This)->lpVtbl->Release(This)
5798/*** IDWriteTextFormat methods ***/
5799#define IDWriteTextFormat3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
5800#define IDWriteTextFormat3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
5801#define IDWriteTextFormat3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
5802#define IDWriteTextFormat3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
5803#define IDWriteTextFormat3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
5804#define IDWriteTextFormat3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
5805#define IDWriteTextFormat3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
5806#define IDWriteTextFormat3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
5807#define IDWriteTextFormat3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
5808#define IDWriteTextFormat3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
5809#define IDWriteTextFormat3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
5810#define IDWriteTextFormat3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
5811#define IDWriteTextFormat3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
5812#define IDWriteTextFormat3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
5813#define IDWriteTextFormat3_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
5814#define IDWriteTextFormat3_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
5815#define IDWriteTextFormat3_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
5816#define IDWriteTextFormat3_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
5817#define IDWriteTextFormat3_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
5818#define IDWriteTextFormat3_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
5819#define IDWriteTextFormat3_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
5820#define IDWriteTextFormat3_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
5821#define IDWriteTextFormat3_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
5822/*** IDWriteTextFormat1 methods ***/
5823#define IDWriteTextFormat3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
5824#define IDWriteTextFormat3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
5825#define IDWriteTextFormat3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
5826#define IDWriteTextFormat3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
5827#define IDWriteTextFormat3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
5828#define IDWriteTextFormat3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
5829#define IDWriteTextFormat3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
5830#define IDWriteTextFormat3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
5831/*** IDWriteTextFormat2 methods ***/
5832#define IDWriteTextFormat3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing)
5833#define IDWriteTextFormat3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing)
5834/*** IDWriteTextFormat3 methods ***/
5835#define IDWriteTextFormat3_SetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values)
5836#define IDWriteTextFormat3_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
5837#define IDWriteTextFormat3_GetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->GetFontAxisValues(This,axis_values,num_values)
5838#define IDWriteTextFormat3_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This)
5839#define IDWriteTextFormat3_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes)
5840#else
5841/*** IUnknown methods ***/
5842static inline HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This,REFIID riid,void **ppvObject) {
5843 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5844}
5845static inline ULONG IDWriteTextFormat3_AddRef(IDWriteTextFormat3* This) {
5846 return This->lpVtbl->AddRef(This);
5847}
5848static inline ULONG IDWriteTextFormat3_Release(IDWriteTextFormat3* This) {
5849 return This->lpVtbl->Release(This);
5850}
5851/*** IDWriteTextFormat methods ***/
5852static inline HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This,DWRITE_TEXT_ALIGNMENT alignment) {
5853 return This->lpVtbl->SetTextAlignment(This,alignment);
5854}
5855static inline HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
5856 return This->lpVtbl->SetParagraphAlignment(This,alignment);
5857}
5858static inline HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This,DWRITE_WORD_WRAPPING wrapping) {
5859 return This->lpVtbl->SetWordWrapping(This,wrapping);
5860}
5861static inline HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This,DWRITE_READING_DIRECTION direction) {
5862 return This->lpVtbl->SetReadingDirection(This,direction);
5863}
5864static inline HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This,DWRITE_FLOW_DIRECTION direction) {
5865 return This->lpVtbl->SetFlowDirection(This,direction);
5866}
5867static inline HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This,FLOAT tabstop) {
5868 return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
5869}
5870static inline HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
5871 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
5872}
5873static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat3_GetTextAlignment(IDWriteTextFormat3* This) {
5874 return This->lpVtbl->GetTextAlignment(This);
5875}
5876static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat3_GetParagraphAlignment(IDWriteTextFormat3* This) {
5877 return This->lpVtbl->GetParagraphAlignment(This);
5878}
5879static inline DWRITE_WORD_WRAPPING IDWriteTextFormat3_GetWordWrapping(IDWriteTextFormat3* This) {
5880 return This->lpVtbl->GetWordWrapping(This);
5881}
5882static inline DWRITE_READING_DIRECTION IDWriteTextFormat3_GetReadingDirection(IDWriteTextFormat3* This) {
5883 return This->lpVtbl->GetReadingDirection(This);
5884}
5885static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat3_GetFlowDirection(IDWriteTextFormat3* This) {
5886 return This->lpVtbl->GetFlowDirection(This);
5887}
5888static inline FLOAT IDWriteTextFormat3_GetIncrementalTabStop(IDWriteTextFormat3* This) {
5889 return This->lpVtbl->GetIncrementalTabStop(This);
5890}
5891static inline HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
5892 return This->lpVtbl->GetTrimming(This,options,trimming_sign);
5893}
5894static inline HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This,IDWriteFontCollection **collection) {
5895 return This->lpVtbl->GetFontCollection(This,collection);
5896}
5897static inline UINT32 IDWriteTextFormat3_GetFontFamilyNameLength(IDWriteTextFormat3* This) {
5898 return This->lpVtbl->GetFontFamilyNameLength(This);
5899}
5900static inline HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) {
5901 return This->lpVtbl->GetFontFamilyName(This,name,size);
5902}
5903static inline DWRITE_FONT_WEIGHT IDWriteTextFormat3_GetFontWeight(IDWriteTextFormat3* This) {
5904 return This->lpVtbl->GetFontWeight(This);
5905}
5906static inline DWRITE_FONT_STYLE IDWriteTextFormat3_GetFontStyle(IDWriteTextFormat3* This) {
5907 return This->lpVtbl->GetFontStyle(This);
5908}
5909static inline DWRITE_FONT_STRETCH IDWriteTextFormat3_GetFontStretch(IDWriteTextFormat3* This) {
5910 return This->lpVtbl->GetFontStretch(This);
5911}
5912static inline FLOAT IDWriteTextFormat3_GetFontSize(IDWriteTextFormat3* This) {
5913 return This->lpVtbl->GetFontSize(This);
5914}
5915static inline UINT32 IDWriteTextFormat3_GetLocaleNameLength(IDWriteTextFormat3* This) {
5916 return This->lpVtbl->GetLocaleNameLength(This);
5917}
5918static inline HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) {
5919 return This->lpVtbl->GetLocaleName(This,name,size);
5920}
5921/*** IDWriteTextFormat1 methods ***/
5922static inline HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
5923 return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
5924}
5925static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat3_GetVerticalGlyphOrientation(IDWriteTextFormat3* This) {
5926 return This->lpVtbl->GetVerticalGlyphOrientation(This);
5927}
5928static inline HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This,WINBOOL lastline_wrapping_enabled) {
5929 return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
5930}
5931static inline WINBOOL IDWriteTextFormat3_GetLastLineWrapping(IDWriteTextFormat3* This) {
5932 return This->lpVtbl->GetLastLineWrapping(This);
5933}
5934static inline HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
5935 return This->lpVtbl->SetOpticalAlignment(This,alignment);
5936}
5937static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat3_GetOpticalAlignment(IDWriteTextFormat3* This) {
5938 return This->lpVtbl->GetOpticalAlignment(This);
5939}
5940static inline HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback *fallback) {
5941 return This->lpVtbl->SetFontFallback(This,fallback);
5942}
5943static inline HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback **fallback) {
5944 return This->lpVtbl->GetFontFallback(This,fallback);
5945}
5946/*** IDWriteTextFormat2 methods ***/
5947static inline HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This,const DWRITE_LINE_SPACING *spacing) {
5948 return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing);
5949}
5950static inline HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This,DWRITE_LINE_SPACING *spacing) {
5951 return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing);
5952}
5953/*** IDWriteTextFormat3 methods ***/
5954static inline HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
5955 return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values);
5956}
5957static inline UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) {
5958 return This->lpVtbl->GetFontAxisValueCount(This);
5959}
5960static inline HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
5961 return This->lpVtbl->GetFontAxisValues(This,axis_values,num_values);
5962}
5963static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) {
5964 return This->lpVtbl->GetAutomaticFontAxes(This);
5965}
5966static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This,DWRITE_AUTOMATIC_FONT_AXES axes) {
5967 return This->lpVtbl->SetAutomaticFontAxes(This,axes);
5968}
5969#endif
5970#endif
5971
5972#endif
5973
5974
5975#endif /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */
5976
5977/*****************************************************************************
5978 * IDWriteTextLayout3 interface
5979 */
5980#ifndef __IDWriteTextLayout3_INTERFACE_DEFINED__
5981#define __IDWriteTextLayout3_INTERFACE_DEFINED__
5982
5983DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d);
5984#if defined(__cplusplus) && !defined(CINTERFACE)
5985MIDL_INTERFACE("07ddcd52-020e-4de8-ac33-6c953d83f92d")
5986IDWriteTextLayout3 : public IDWriteTextLayout2
5987{
5988 virtual HRESULT STDMETHODCALLTYPE InvalidateLayout(
5989 ) = 0;
5990
5991 virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
5992 const DWRITE_LINE_SPACING *spacing) = 0;
5993
5994 virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
5995 DWRITE_LINE_SPACING *spacing) = 0;
5996
5997 virtual HRESULT STDMETHODCALLTYPE GetLineMetrics(
5998 DWRITE_LINE_METRICS1 *metrics,
5999 UINT32 max_count,
6000 UINT32 *count) = 0;
6001
6002};
6003#ifdef __CRT_UUID_DECL
6004__CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d)
6005#endif
6006#else
6007typedef struct IDWriteTextLayout3Vtbl {
6008 BEGIN_INTERFACE
6009
6010 /*** IUnknown methods ***/
6011 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6012 IDWriteTextLayout3 *This,
6013 REFIID riid,
6014 void **ppvObject);
6015
6016 ULONG (STDMETHODCALLTYPE *AddRef)(
6017 IDWriteTextLayout3 *This);
6018
6019 ULONG (STDMETHODCALLTYPE *Release)(
6020 IDWriteTextLayout3 *This);
6021
6022 /*** IDWriteTextFormat methods ***/
6023 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
6024 IDWriteTextLayout3 *This,
6025 DWRITE_TEXT_ALIGNMENT alignment);
6026
6027 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
6028 IDWriteTextLayout3 *This,
6029 DWRITE_PARAGRAPH_ALIGNMENT alignment);
6030
6031 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
6032 IDWriteTextLayout3 *This,
6033 DWRITE_WORD_WRAPPING wrapping);
6034
6035 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
6036 IDWriteTextLayout3 *This,
6037 DWRITE_READING_DIRECTION direction);
6038
6039 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
6040 IDWriteTextLayout3 *This,
6041 DWRITE_FLOW_DIRECTION direction);
6042
6043 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
6044 IDWriteTextLayout3 *This,
6045 FLOAT tabstop);
6046
6047 HRESULT (STDMETHODCALLTYPE *SetTrimming)(
6048 IDWriteTextLayout3 *This,
6049 const DWRITE_TRIMMING *trimming,
6050 IDWriteInlineObject *trimming_sign);
6051
6052 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
6053 IDWriteTextLayout3 *This,
6054 DWRITE_LINE_SPACING_METHOD spacing,
6055 FLOAT line_spacing,
6056 FLOAT baseline);
6057
6058 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
6059 IDWriteTextLayout3 *This);
6060
6061 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
6062 IDWriteTextLayout3 *This);
6063
6064 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
6065 IDWriteTextLayout3 *This);
6066
6067 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
6068 IDWriteTextLayout3 *This);
6069
6070 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
6071 IDWriteTextLayout3 *This);
6072
6073 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
6074 IDWriteTextLayout3 *This);
6075
6076 HRESULT (STDMETHODCALLTYPE *GetTrimming)(
6077 IDWriteTextLayout3 *This,
6078 DWRITE_TRIMMING *options,
6079 IDWriteInlineObject **trimming_sign);
6080
6081 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
6082 IDWriteTextLayout3 *This,
6083 DWRITE_LINE_SPACING_METHOD *method,
6084 FLOAT *spacing,
6085 FLOAT *baseline);
6086
6087 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
6088 IDWriteTextLayout3 *This,
6089 IDWriteFontCollection **collection);
6090
6091 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
6092 IDWriteTextLayout3 *This);
6093
6094 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
6095 IDWriteTextLayout3 *This,
6096 WCHAR *name,
6097 UINT32 size);
6098
6099 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
6100 IDWriteTextLayout3 *This);
6101
6102 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
6103 IDWriteTextLayout3 *This);
6104
6105 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
6106 IDWriteTextLayout3 *This);
6107
6108 FLOAT (STDMETHODCALLTYPE *GetFontSize)(
6109 IDWriteTextLayout3 *This);
6110
6111 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
6112 IDWriteTextLayout3 *This);
6113
6114 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
6115 IDWriteTextLayout3 *This,
6116 WCHAR *name,
6117 UINT32 size);
6118
6119 /*** IDWriteTextLayout methods ***/
6120 HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
6121 IDWriteTextLayout3 *This,
6122 FLOAT maxWidth);
6123
6124 HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
6125 IDWriteTextLayout3 *This,
6126 FLOAT maxHeight);
6127
6128 HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
6129 IDWriteTextLayout3 *This,
6130 IDWriteFontCollection *collection,
6131 DWRITE_TEXT_RANGE range);
6132
6133 HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
6134 IDWriteTextLayout3 *This,
6135 const WCHAR *name,
6136 DWRITE_TEXT_RANGE range);
6137
6138 HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
6139 IDWriteTextLayout3 *This,
6140 DWRITE_FONT_WEIGHT weight,
6141 DWRITE_TEXT_RANGE range);
6142
6143 HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
6144 IDWriteTextLayout3 *This,
6145 DWRITE_FONT_STYLE style,
6146 DWRITE_TEXT_RANGE range);
6147
6148 HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
6149 IDWriteTextLayout3 *This,
6150 DWRITE_FONT_STRETCH stretch,
6151 DWRITE_TEXT_RANGE range);
6152
6153 HRESULT (STDMETHODCALLTYPE *SetFontSize)(
6154 IDWriteTextLayout3 *This,
6155 FLOAT size,
6156 DWRITE_TEXT_RANGE range);
6157
6158 HRESULT (STDMETHODCALLTYPE *SetUnderline)(
6159 IDWriteTextLayout3 *This,
6160 WINBOOL underline,
6161 DWRITE_TEXT_RANGE range);
6162
6163 HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
6164 IDWriteTextLayout3 *This,
6165 WINBOOL strikethrough,
6166 DWRITE_TEXT_RANGE range);
6167
6168 HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
6169 IDWriteTextLayout3 *This,
6170 IUnknown *effect,
6171 DWRITE_TEXT_RANGE range);
6172
6173 HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
6174 IDWriteTextLayout3 *This,
6175 IDWriteInlineObject *object,
6176 DWRITE_TEXT_RANGE range);
6177
6178 HRESULT (STDMETHODCALLTYPE *SetTypography)(
6179 IDWriteTextLayout3 *This,
6180 IDWriteTypography *typography,
6181 DWRITE_TEXT_RANGE range);
6182
6183 HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
6184 IDWriteTextLayout3 *This,
6185 const WCHAR *locale,
6186 DWRITE_TEXT_RANGE range);
6187
6188 FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
6189 IDWriteTextLayout3 *This);
6190
6191 FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
6192 IDWriteTextLayout3 *This);
6193
6194 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
6195 IDWriteTextLayout3 *This,
6196 UINT32 pos,
6197 IDWriteFontCollection **collection,
6198 DWRITE_TEXT_RANGE *range);
6199
6200 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
6201 IDWriteTextLayout3 *This,
6202 UINT32 pos,
6203 UINT32 *len,
6204 DWRITE_TEXT_RANGE *range);
6205
6206 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
6207 IDWriteTextLayout3 *This,
6208 UINT32 position,
6209 WCHAR *name,
6210 UINT32 name_size,
6211 DWRITE_TEXT_RANGE *range);
6212
6213 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
6214 IDWriteTextLayout3 *This,
6215 UINT32 position,
6216 DWRITE_FONT_WEIGHT *weight,
6217 DWRITE_TEXT_RANGE *range);
6218
6219 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
6220 IDWriteTextLayout3 *This,
6221 UINT32 currentPosition,
6222 DWRITE_FONT_STYLE *style,
6223 DWRITE_TEXT_RANGE *range);
6224
6225 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
6226 IDWriteTextLayout3 *This,
6227 UINT32 position,
6228 DWRITE_FONT_STRETCH *stretch,
6229 DWRITE_TEXT_RANGE *range);
6230
6231 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
6232 IDWriteTextLayout3 *This,
6233 UINT32 position,
6234 FLOAT *size,
6235 DWRITE_TEXT_RANGE *range);
6236
6237 HRESULT (STDMETHODCALLTYPE *GetUnderline)(
6238 IDWriteTextLayout3 *This,
6239 UINT32 position,
6240 WINBOOL *has_underline,
6241 DWRITE_TEXT_RANGE *range);
6242
6243 HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
6244 IDWriteTextLayout3 *This,
6245 UINT32 position,
6246 WINBOOL *has_strikethrough,
6247 DWRITE_TEXT_RANGE *range);
6248
6249 HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
6250 IDWriteTextLayout3 *This,
6251 UINT32 position,
6252 IUnknown **effect,
6253 DWRITE_TEXT_RANGE *range);
6254
6255 HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
6256 IDWriteTextLayout3 *This,
6257 UINT32 position,
6258 IDWriteInlineObject **object,
6259 DWRITE_TEXT_RANGE *range);
6260
6261 HRESULT (STDMETHODCALLTYPE *GetTypography)(
6262 IDWriteTextLayout3 *This,
6263 UINT32 position,
6264 IDWriteTypography **typography,
6265 DWRITE_TEXT_RANGE *range);
6266
6267 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
6268 IDWriteTextLayout3 *This,
6269 UINT32 position,
6270 UINT32 *length,
6271 DWRITE_TEXT_RANGE *range);
6272
6273 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
6274 IDWriteTextLayout3 *This,
6275 UINT32 position,
6276 WCHAR *name,
6277 UINT32 name_size,
6278 DWRITE_TEXT_RANGE *range);
6279
6280 HRESULT (STDMETHODCALLTYPE *Draw)(
6281 IDWriteTextLayout3 *This,
6282 void *context,
6283 IDWriteTextRenderer *renderer,
6284 FLOAT originX,
6285 FLOAT originY);
6286
6287 HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
6288 IDWriteTextLayout3 *This,
6289 DWRITE_LINE_METRICS *metrics,
6290 UINT32 max_count,
6291 UINT32 *actual_count);
6292
6293 HRESULT (STDMETHODCALLTYPE *GetMetrics)(
6294 IDWriteTextLayout3 *This,
6295 DWRITE_TEXT_METRICS *metrics);
6296
6297 HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
6298 IDWriteTextLayout3 *This,
6299 DWRITE_OVERHANG_METRICS *overhangs);
6300
6301 HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
6302 IDWriteTextLayout3 *This,
6303 DWRITE_CLUSTER_METRICS *metrics,
6304 UINT32 max_count,
6305 UINT32 *act_count);
6306
6307 HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
6308 IDWriteTextLayout3 *This,
6309 FLOAT *min_width);
6310
6311 HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
6312 IDWriteTextLayout3 *This,
6313 FLOAT pointX,
6314 FLOAT pointY,
6315 WINBOOL *is_trailinghit,
6316 WINBOOL *is_inside,
6317 DWRITE_HIT_TEST_METRICS *metrics);
6318
6319 HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
6320 IDWriteTextLayout3 *This,
6321 UINT32 textPosition,
6322 WINBOOL is_trailinghit,
6323 FLOAT *pointX,
6324 FLOAT *pointY,
6325 DWRITE_HIT_TEST_METRICS *metrics);
6326
6327 HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
6328 IDWriteTextLayout3 *This,
6329 UINT32 textPosition,
6330 UINT32 textLength,
6331 FLOAT originX,
6332 FLOAT originY,
6333 DWRITE_HIT_TEST_METRICS *metrics,
6334 UINT32 max_metricscount,
6335 UINT32 *actual_metricscount);
6336
6337 /*** IDWriteTextLayout1 methods ***/
6338 HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
6339 IDWriteTextLayout3 *This,
6340 WINBOOL is_pairkerning_enabled,
6341 DWRITE_TEXT_RANGE range);
6342
6343 HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
6344 IDWriteTextLayout3 *This,
6345 UINT32 position,
6346 WINBOOL *is_pairkerning_enabled,
6347 DWRITE_TEXT_RANGE *range);
6348
6349 HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
6350 IDWriteTextLayout3 *This,
6351 FLOAT leading_spacing,
6352 FLOAT trailing_spacing,
6353 FLOAT minimum_advance_width,
6354 DWRITE_TEXT_RANGE range);
6355
6356 HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
6357 IDWriteTextLayout3 *This,
6358 UINT32 position,
6359 FLOAT *leading_spacing,
6360 FLOAT *trailing_spacing,
6361 FLOAT *minimum_advance_width,
6362 DWRITE_TEXT_RANGE *range);
6363
6364 /*** IDWriteTextLayout2 methods ***/
6365 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
6366 IDWriteTextLayout3 *This,
6367 DWRITE_TEXT_METRICS1 *metrics);
6368
6369 HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
6370 IDWriteTextLayout3 *This,
6371 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
6372
6373 DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
6374 IDWriteTextLayout3 *This);
6375
6376 HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
6377 IDWriteTextLayout3 *This,
6378 WINBOOL lastline_wrapping_enabled);
6379
6380 WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
6381 IDWriteTextLayout3 *This);
6382
6383 HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
6384 IDWriteTextLayout3 *This,
6385 DWRITE_OPTICAL_ALIGNMENT alignment);
6386
6387 DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
6388 IDWriteTextLayout3 *This);
6389
6390 HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
6391 IDWriteTextLayout3 *This,
6392 IDWriteFontFallback *fallback);
6393
6394 HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
6395 IDWriteTextLayout3 *This,
6396 IDWriteFontFallback **fallback);
6397
6398 /*** IDWriteTextLayout3 methods ***/
6399 HRESULT (STDMETHODCALLTYPE *InvalidateLayout)(
6400 IDWriteTextLayout3 *This);
6401
6402 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)(
6403 IDWriteTextLayout3 *This,
6404 const DWRITE_LINE_SPACING *spacing);
6405
6406 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)(
6407 IDWriteTextLayout3 *This,
6408 DWRITE_LINE_SPACING *spacing);
6409
6410 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)(
6411 IDWriteTextLayout3 *This,
6412 DWRITE_LINE_METRICS1 *metrics,
6413 UINT32 max_count,
6414 UINT32 *count);
6415
6416 END_INTERFACE
6417} IDWriteTextLayout3Vtbl;
6418
6419interface IDWriteTextLayout3 {
6420 CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl;
6421};
6422
6423#ifdef COBJMACROS
6424#ifndef WIDL_C_INLINE_WRAPPERS
6425/*** IUnknown methods ***/
6426#define IDWriteTextLayout3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6427#define IDWriteTextLayout3_AddRef(This) (This)->lpVtbl->AddRef(This)
6428#define IDWriteTextLayout3_Release(This) (This)->lpVtbl->Release(This)
6429/*** IDWriteTextFormat methods ***/
6430#define IDWriteTextLayout3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
6431#define IDWriteTextLayout3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
6432#define IDWriteTextLayout3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
6433#define IDWriteTextLayout3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
6434#define IDWriteTextLayout3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
6435#define IDWriteTextLayout3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
6436#define IDWriteTextLayout3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
6437#define IDWriteTextLayout3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
6438#define IDWriteTextLayout3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
6439#define IDWriteTextLayout3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
6440#define IDWriteTextLayout3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
6441#define IDWriteTextLayout3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
6442#define IDWriteTextLayout3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
6443#define IDWriteTextLayout3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
6444/*** IDWriteTextLayout methods ***/
6445#define IDWriteTextLayout3_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
6446#define IDWriteTextLayout3_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
6447#define IDWriteTextLayout3_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
6448#define IDWriteTextLayout3_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
6449#define IDWriteTextLayout3_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
6450#define IDWriteTextLayout3_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
6451#define IDWriteTextLayout3_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
6452#define IDWriteTextLayout3_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
6453#define IDWriteTextLayout3_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
6454#define IDWriteTextLayout3_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
6455#define IDWriteTextLayout3_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
6456#define IDWriteTextLayout3_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
6457#define IDWriteTextLayout3_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
6458#define IDWriteTextLayout3_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
6459#define IDWriteTextLayout3_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
6460#define IDWriteTextLayout3_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
6461#define IDWriteTextLayout3_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
6462#define IDWriteTextLayout3_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
6463#define IDWriteTextLayout3_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
6464#define IDWriteTextLayout3_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
6465#define IDWriteTextLayout3_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
6466#define IDWriteTextLayout3_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
6467#define IDWriteTextLayout3_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
6468#define IDWriteTextLayout3_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
6469#define IDWriteTextLayout3_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
6470#define IDWriteTextLayout3_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
6471#define IDWriteTextLayout3_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
6472#define IDWriteTextLayout3_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
6473#define IDWriteTextLayout3_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
6474#define IDWriteTextLayout3_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
6475#define IDWriteTextLayout3_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
6476#define IDWriteTextLayout3_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
6477#define IDWriteTextLayout3_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
6478#define IDWriteTextLayout3_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
6479#define IDWriteTextLayout3_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
6480#define IDWriteTextLayout3_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
6481#define IDWriteTextLayout3_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
6482/*** IDWriteTextLayout1 methods ***/
6483#define IDWriteTextLayout3_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
6484#define IDWriteTextLayout3_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
6485#define IDWriteTextLayout3_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
6486#define IDWriteTextLayout3_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
6487/*** IDWriteTextLayout2 methods ***/
6488#define IDWriteTextLayout3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
6489#define IDWriteTextLayout3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
6490#define IDWriteTextLayout3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
6491#define IDWriteTextLayout3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
6492#define IDWriteTextLayout3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
6493#define IDWriteTextLayout3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
6494#define IDWriteTextLayout3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
6495#define IDWriteTextLayout3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
6496#define IDWriteTextLayout3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
6497/*** IDWriteTextLayout3 methods ***/
6498#define IDWriteTextLayout3_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This)
6499#define IDWriteTextLayout3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing)
6500#define IDWriteTextLayout3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing)
6501#define IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count)
6502#else
6503/*** IUnknown methods ***/
6504static inline HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This,REFIID riid,void **ppvObject) {
6505 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6506}
6507static inline ULONG IDWriteTextLayout3_AddRef(IDWriteTextLayout3* This) {
6508 return This->lpVtbl->AddRef(This);
6509}
6510static inline ULONG IDWriteTextLayout3_Release(IDWriteTextLayout3* This) {
6511 return This->lpVtbl->Release(This);
6512}
6513/*** IDWriteTextFormat methods ***/
6514static inline HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This,DWRITE_TEXT_ALIGNMENT alignment) {
6515 return This->lpVtbl->SetTextAlignment(This,alignment);
6516}
6517static inline HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
6518 return This->lpVtbl->SetParagraphAlignment(This,alignment);
6519}
6520static inline HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This,DWRITE_WORD_WRAPPING wrapping) {
6521 return This->lpVtbl->SetWordWrapping(This,wrapping);
6522}
6523static inline HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This,DWRITE_READING_DIRECTION direction) {
6524 return This->lpVtbl->SetReadingDirection(This,direction);
6525}
6526static inline HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This,DWRITE_FLOW_DIRECTION direction) {
6527 return This->lpVtbl->SetFlowDirection(This,direction);
6528}
6529static inline HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This,FLOAT tabstop) {
6530 return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
6531}
6532static inline HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
6533 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
6534}
6535static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout3_GetTextAlignment(IDWriteTextLayout3* This) {
6536 return This->lpVtbl->GetTextAlignment(This);
6537}
6538static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout3_GetParagraphAlignment(IDWriteTextLayout3* This) {
6539 return This->lpVtbl->GetParagraphAlignment(This);
6540}
6541static inline DWRITE_WORD_WRAPPING IDWriteTextLayout3_GetWordWrapping(IDWriteTextLayout3* This) {
6542 return This->lpVtbl->GetWordWrapping(This);
6543}
6544static inline DWRITE_READING_DIRECTION IDWriteTextLayout3_GetReadingDirection(IDWriteTextLayout3* This) {
6545 return This->lpVtbl->GetReadingDirection(This);
6546}
6547static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout3_GetFlowDirection(IDWriteTextLayout3* This) {
6548 return This->lpVtbl->GetFlowDirection(This);
6549}
6550static inline FLOAT IDWriteTextLayout3_GetIncrementalTabStop(IDWriteTextLayout3* This) {
6551 return This->lpVtbl->GetIncrementalTabStop(This);
6552}
6553static inline HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
6554 return This->lpVtbl->GetTrimming(This,options,trimming_sign);
6555}
6556/*** IDWriteTextLayout methods ***/
6557static inline HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This,FLOAT maxWidth) {
6558 return This->lpVtbl->SetMaxWidth(This,maxWidth);
6559}
6560static inline HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This,FLOAT maxHeight) {
6561 return This->lpVtbl->SetMaxHeight(This,maxHeight);
6562}
6563static inline HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
6564 return This->lpVtbl->SetFontCollection(This,collection,range);
6565}
6566static inline HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
6567 return This->lpVtbl->SetFontFamilyName(This,name,range);
6568}
6569static inline HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
6570 return This->lpVtbl->SetFontWeight(This,weight,range);
6571}
6572static inline HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
6573 return This->lpVtbl->SetFontStyle(This,style,range);
6574}
6575static inline HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
6576 return This->lpVtbl->SetFontStretch(This,stretch,range);
6577}
6578static inline HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This,FLOAT size,DWRITE_TEXT_RANGE range) {
6579 return This->lpVtbl->SetFontSize(This,size,range);
6580}
6581static inline HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
6582 return This->lpVtbl->SetUnderline(This,underline,range);
6583}
6584static inline HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
6585 return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
6586}
6587static inline HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
6588 return This->lpVtbl->SetDrawingEffect(This,effect,range);
6589}
6590static inline HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
6591 return This->lpVtbl->SetInlineObject(This,object,range);
6592}
6593static inline HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
6594 return This->lpVtbl->SetTypography(This,typography,range);
6595}
6596static inline HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
6597 return This->lpVtbl->SetLocaleName(This,locale,range);
6598}
6599static inline FLOAT IDWriteTextLayout3_GetMaxWidth(IDWriteTextLayout3* This) {
6600 return This->lpVtbl->GetMaxWidth(This);
6601}
6602static inline FLOAT IDWriteTextLayout3_GetMaxHeight(IDWriteTextLayout3* This) {
6603 return This->lpVtbl->GetMaxHeight(This);
6604}
6605static inline HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
6606 return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
6607}
6608static inline HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
6609 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
6610}
6611static inline HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
6612 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
6613}
6614static inline HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
6615 return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
6616}
6617static inline HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
6618 return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
6619}
6620static inline HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
6621 return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
6622}
6623static inline HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
6624 return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
6625}
6626static inline HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
6627 return This->lpVtbl->GetUnderline(This,position,has_underline,range);
6628}
6629static inline HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
6630 return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
6631}
6632static inline HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
6633 return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
6634}
6635static inline HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
6636 return This->lpVtbl->GetInlineObject(This,position,object,range);
6637}
6638static inline HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
6639 return This->lpVtbl->GetTypography(This,position,typography,range);
6640}
6641static inline HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
6642 return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
6643}
6644static inline HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
6645 return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
6646}
6647static inline HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
6648 return This->lpVtbl->Draw(This,context,renderer,originX,originY);
6649}
6650static inline HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This,DWRITE_OVERHANG_METRICS *overhangs) {
6651 return This->lpVtbl->GetOverhangMetrics(This,overhangs);
6652}
6653static inline HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
6654 return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
6655}
6656static inline HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This,FLOAT *min_width) {
6657 return This->lpVtbl->DetermineMinWidth(This,min_width);
6658}
6659static inline HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
6660 return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
6661}
6662static inline HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
6663 return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
6664}
6665static inline HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
6666 return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
6667}
6668/*** IDWriteTextLayout1 methods ***/
6669static inline HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
6670 return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
6671}
6672static inline HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
6673 return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
6674}
6675static inline HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
6676 return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
6677}
6678static inline HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
6679 return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
6680}
6681/*** IDWriteTextLayout2 methods ***/
6682static inline HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This,DWRITE_TEXT_METRICS1 *metrics) {
6683 return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
6684}
6685static inline HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
6686 return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
6687}
6688static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout3_GetVerticalGlyphOrientation(IDWriteTextLayout3* This) {
6689 return This->lpVtbl->GetVerticalGlyphOrientation(This);
6690}
6691static inline HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This,WINBOOL lastline_wrapping_enabled) {
6692 return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
6693}
6694static inline WINBOOL IDWriteTextLayout3_GetLastLineWrapping(IDWriteTextLayout3* This) {
6695 return This->lpVtbl->GetLastLineWrapping(This);
6696}
6697static inline HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
6698 return This->lpVtbl->SetOpticalAlignment(This,alignment);
6699}
6700static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout3_GetOpticalAlignment(IDWriteTextLayout3* This) {
6701 return This->lpVtbl->GetOpticalAlignment(This);
6702}
6703static inline HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback *fallback) {
6704 return This->lpVtbl->SetFontFallback(This,fallback);
6705}
6706static inline HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback **fallback) {
6707 return This->lpVtbl->GetFontFallback(This,fallback);
6708}
6709/*** IDWriteTextLayout3 methods ***/
6710static inline HRESULT IDWriteTextLayout3_InvalidateLayout(IDWriteTextLayout3* This) {
6711 return This->lpVtbl->InvalidateLayout(This);
6712}
6713static inline HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This,const DWRITE_LINE_SPACING *spacing) {
6714 return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing);
6715}
6716static inline HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This,DWRITE_LINE_SPACING *spacing) {
6717 return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing);
6718}
6719static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) {
6720 return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count);
6721}
6722#endif
6723#endif
6724
6725#endif
6726
6727
6728#endif /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */
6729
6730/*****************************************************************************
6731 * IDWriteTextLayout4 interface
6732 */
6733#ifndef __IDWriteTextLayout4_INTERFACE_DEFINED__
6734#define __IDWriteTextLayout4_INTERFACE_DEFINED__
6735
6736DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9);
6737#if defined(__cplusplus) && !defined(CINTERFACE)
6738MIDL_INTERFACE("05a9bf42-223f-4441-b5fb-8263685f55e9")
6739IDWriteTextLayout4 : public IDWriteTextLayout3
6740{
6741 virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues(
6742 const DWRITE_FONT_AXIS_VALUE *axis_values,
6743 UINT32 num_values,
6744 DWRITE_TEXT_RANGE range) = 0;
6745
6746 virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
6747 UINT32 pos) = 0;
6748
6749 virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
6750 UINT32 pos,
6751 DWRITE_FONT_AXIS_VALUE *values,
6752 UINT32 num_values,
6753 DWRITE_TEXT_RANGE *range) = 0;
6754
6755 virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
6756 ) = 0;
6757
6758 virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes(
6759 DWRITE_AUTOMATIC_FONT_AXES axes) = 0;
6760
6761};
6762#ifdef __CRT_UUID_DECL
6763__CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9)
6764#endif
6765#else
6766typedef struct IDWriteTextLayout4Vtbl {
6767 BEGIN_INTERFACE
6768
6769 /*** IUnknown methods ***/
6770 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6771 IDWriteTextLayout4 *This,
6772 REFIID riid,
6773 void **ppvObject);
6774
6775 ULONG (STDMETHODCALLTYPE *AddRef)(
6776 IDWriteTextLayout4 *This);
6777
6778 ULONG (STDMETHODCALLTYPE *Release)(
6779 IDWriteTextLayout4 *This);
6780
6781 /*** IDWriteTextFormat methods ***/
6782 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
6783 IDWriteTextLayout4 *This,
6784 DWRITE_TEXT_ALIGNMENT alignment);
6785
6786 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
6787 IDWriteTextLayout4 *This,
6788 DWRITE_PARAGRAPH_ALIGNMENT alignment);
6789
6790 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
6791 IDWriteTextLayout4 *This,
6792 DWRITE_WORD_WRAPPING wrapping);
6793
6794 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
6795 IDWriteTextLayout4 *This,
6796 DWRITE_READING_DIRECTION direction);
6797
6798 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
6799 IDWriteTextLayout4 *This,
6800 DWRITE_FLOW_DIRECTION direction);
6801
6802 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
6803 IDWriteTextLayout4 *This,
6804 FLOAT tabstop);
6805
6806 HRESULT (STDMETHODCALLTYPE *SetTrimming)(
6807 IDWriteTextLayout4 *This,
6808 const DWRITE_TRIMMING *trimming,
6809 IDWriteInlineObject *trimming_sign);
6810
6811 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
6812 IDWriteTextLayout4 *This,
6813 DWRITE_LINE_SPACING_METHOD spacing,
6814 FLOAT line_spacing,
6815 FLOAT baseline);
6816
6817 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
6818 IDWriteTextLayout4 *This);
6819
6820 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
6821 IDWriteTextLayout4 *This);
6822
6823 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
6824 IDWriteTextLayout4 *This);
6825
6826 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
6827 IDWriteTextLayout4 *This);
6828
6829 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
6830 IDWriteTextLayout4 *This);
6831
6832 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
6833 IDWriteTextLayout4 *This);
6834
6835 HRESULT (STDMETHODCALLTYPE *GetTrimming)(
6836 IDWriteTextLayout4 *This,
6837 DWRITE_TRIMMING *options,
6838 IDWriteInlineObject **trimming_sign);
6839
6840 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
6841 IDWriteTextLayout4 *This,
6842 DWRITE_LINE_SPACING_METHOD *method,
6843 FLOAT *spacing,
6844 FLOAT *baseline);
6845
6846 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
6847 IDWriteTextLayout4 *This,
6848 IDWriteFontCollection **collection);
6849
6850 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
6851 IDWriteTextLayout4 *This);
6852
6853 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
6854 IDWriteTextLayout4 *This,
6855 WCHAR *name,
6856 UINT32 size);
6857
6858 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
6859 IDWriteTextLayout4 *This);
6860
6861 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
6862 IDWriteTextLayout4 *This);
6863
6864 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
6865 IDWriteTextLayout4 *This);
6866
6867 FLOAT (STDMETHODCALLTYPE *GetFontSize)(
6868 IDWriteTextLayout4 *This);
6869
6870 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
6871 IDWriteTextLayout4 *This);
6872
6873 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
6874 IDWriteTextLayout4 *This,
6875 WCHAR *name,
6876 UINT32 size);
6877
6878 /*** IDWriteTextLayout methods ***/
6879 HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
6880 IDWriteTextLayout4 *This,
6881 FLOAT maxWidth);
6882
6883 HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
6884 IDWriteTextLayout4 *This,
6885 FLOAT maxHeight);
6886
6887 HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
6888 IDWriteTextLayout4 *This,
6889 IDWriteFontCollection *collection,
6890 DWRITE_TEXT_RANGE range);
6891
6892 HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
6893 IDWriteTextLayout4 *This,
6894 const WCHAR *name,
6895 DWRITE_TEXT_RANGE range);
6896
6897 HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
6898 IDWriteTextLayout4 *This,
6899 DWRITE_FONT_WEIGHT weight,
6900 DWRITE_TEXT_RANGE range);
6901
6902 HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
6903 IDWriteTextLayout4 *This,
6904 DWRITE_FONT_STYLE style,
6905 DWRITE_TEXT_RANGE range);
6906
6907 HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
6908 IDWriteTextLayout4 *This,
6909 DWRITE_FONT_STRETCH stretch,
6910 DWRITE_TEXT_RANGE range);
6911
6912 HRESULT (STDMETHODCALLTYPE *SetFontSize)(
6913 IDWriteTextLayout4 *This,
6914 FLOAT size,
6915 DWRITE_TEXT_RANGE range);
6916
6917 HRESULT (STDMETHODCALLTYPE *SetUnderline)(
6918 IDWriteTextLayout4 *This,
6919 WINBOOL underline,
6920 DWRITE_TEXT_RANGE range);
6921
6922 HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
6923 IDWriteTextLayout4 *This,
6924 WINBOOL strikethrough,
6925 DWRITE_TEXT_RANGE range);
6926
6927 HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
6928 IDWriteTextLayout4 *This,
6929 IUnknown *effect,
6930 DWRITE_TEXT_RANGE range);
6931
6932 HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
6933 IDWriteTextLayout4 *This,
6934 IDWriteInlineObject *object,
6935 DWRITE_TEXT_RANGE range);
6936
6937 HRESULT (STDMETHODCALLTYPE *SetTypography)(
6938 IDWriteTextLayout4 *This,
6939 IDWriteTypography *typography,
6940 DWRITE_TEXT_RANGE range);
6941
6942 HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
6943 IDWriteTextLayout4 *This,
6944 const WCHAR *locale,
6945 DWRITE_TEXT_RANGE range);
6946
6947 FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
6948 IDWriteTextLayout4 *This);
6949
6950 FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
6951 IDWriteTextLayout4 *This);
6952
6953 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
6954 IDWriteTextLayout4 *This,
6955 UINT32 pos,
6956 IDWriteFontCollection **collection,
6957 DWRITE_TEXT_RANGE *range);
6958
6959 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
6960 IDWriteTextLayout4 *This,
6961 UINT32 pos,
6962 UINT32 *len,
6963 DWRITE_TEXT_RANGE *range);
6964
6965 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
6966 IDWriteTextLayout4 *This,
6967 UINT32 position,
6968 WCHAR *name,
6969 UINT32 name_size,
6970 DWRITE_TEXT_RANGE *range);
6971
6972 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
6973 IDWriteTextLayout4 *This,
6974 UINT32 position,
6975 DWRITE_FONT_WEIGHT *weight,
6976 DWRITE_TEXT_RANGE *range);
6977
6978 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
6979 IDWriteTextLayout4 *This,
6980 UINT32 currentPosition,
6981 DWRITE_FONT_STYLE *style,
6982 DWRITE_TEXT_RANGE *range);
6983
6984 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
6985 IDWriteTextLayout4 *This,
6986 UINT32 position,
6987 DWRITE_FONT_STRETCH *stretch,
6988 DWRITE_TEXT_RANGE *range);
6989
6990 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
6991 IDWriteTextLayout4 *This,
6992 UINT32 position,
6993 FLOAT *size,
6994 DWRITE_TEXT_RANGE *range);
6995
6996 HRESULT (STDMETHODCALLTYPE *GetUnderline)(
6997 IDWriteTextLayout4 *This,
6998 UINT32 position,
6999 WINBOOL *has_underline,
7000 DWRITE_TEXT_RANGE *range);
7001
7002 HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
7003 IDWriteTextLayout4 *This,
7004 UINT32 position,
7005 WINBOOL *has_strikethrough,
7006 DWRITE_TEXT_RANGE *range);
7007
7008 HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
7009 IDWriteTextLayout4 *This,
7010 UINT32 position,
7011 IUnknown **effect,
7012 DWRITE_TEXT_RANGE *range);
7013
7014 HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
7015 IDWriteTextLayout4 *This,
7016 UINT32 position,
7017 IDWriteInlineObject **object,
7018 DWRITE_TEXT_RANGE *range);
7019
7020 HRESULT (STDMETHODCALLTYPE *GetTypography)(
7021 IDWriteTextLayout4 *This,
7022 UINT32 position,
7023 IDWriteTypography **typography,
7024 DWRITE_TEXT_RANGE *range);
7025
7026 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
7027 IDWriteTextLayout4 *This,
7028 UINT32 position,
7029 UINT32 *length,
7030 DWRITE_TEXT_RANGE *range);
7031
7032 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
7033 IDWriteTextLayout4 *This,
7034 UINT32 position,
7035 WCHAR *name,
7036 UINT32 name_size,
7037 DWRITE_TEXT_RANGE *range);
7038
7039 HRESULT (STDMETHODCALLTYPE *Draw)(
7040 IDWriteTextLayout4 *This,
7041 void *context,
7042 IDWriteTextRenderer *renderer,
7043 FLOAT originX,
7044 FLOAT originY);
7045
7046 HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
7047 IDWriteTextLayout4 *This,
7048 DWRITE_LINE_METRICS *metrics,
7049 UINT32 max_count,
7050 UINT32 *actual_count);
7051
7052 HRESULT (STDMETHODCALLTYPE *GetMetrics)(
7053 IDWriteTextLayout4 *This,
7054 DWRITE_TEXT_METRICS *metrics);
7055
7056 HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
7057 IDWriteTextLayout4 *This,
7058 DWRITE_OVERHANG_METRICS *overhangs);
7059
7060 HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
7061 IDWriteTextLayout4 *This,
7062 DWRITE_CLUSTER_METRICS *metrics,
7063 UINT32 max_count,
7064 UINT32 *act_count);
7065
7066 HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
7067 IDWriteTextLayout4 *This,
7068 FLOAT *min_width);
7069
7070 HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
7071 IDWriteTextLayout4 *This,
7072 FLOAT pointX,
7073 FLOAT pointY,
7074 WINBOOL *is_trailinghit,
7075 WINBOOL *is_inside,
7076 DWRITE_HIT_TEST_METRICS *metrics);
7077
7078 HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
7079 IDWriteTextLayout4 *This,
7080 UINT32 textPosition,
7081 WINBOOL is_trailinghit,
7082 FLOAT *pointX,
7083 FLOAT *pointY,
7084 DWRITE_HIT_TEST_METRICS *metrics);
7085
7086 HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
7087 IDWriteTextLayout4 *This,
7088 UINT32 textPosition,
7089 UINT32 textLength,
7090 FLOAT originX,
7091 FLOAT originY,
7092 DWRITE_HIT_TEST_METRICS *metrics,
7093 UINT32 max_metricscount,
7094 UINT32 *actual_metricscount);
7095
7096 /*** IDWriteTextLayout1 methods ***/
7097 HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
7098 IDWriteTextLayout4 *This,
7099 WINBOOL is_pairkerning_enabled,
7100 DWRITE_TEXT_RANGE range);
7101
7102 HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
7103 IDWriteTextLayout4 *This,
7104 UINT32 position,
7105 WINBOOL *is_pairkerning_enabled,
7106 DWRITE_TEXT_RANGE *range);
7107
7108 HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
7109 IDWriteTextLayout4 *This,
7110 FLOAT leading_spacing,
7111 FLOAT trailing_spacing,
7112 FLOAT minimum_advance_width,
7113 DWRITE_TEXT_RANGE range);
7114
7115 HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
7116 IDWriteTextLayout4 *This,
7117 UINT32 position,
7118 FLOAT *leading_spacing,
7119 FLOAT *trailing_spacing,
7120 FLOAT *minimum_advance_width,
7121 DWRITE_TEXT_RANGE *range);
7122
7123 /*** IDWriteTextLayout2 methods ***/
7124 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
7125 IDWriteTextLayout4 *This,
7126 DWRITE_TEXT_METRICS1 *metrics);
7127
7128 HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
7129 IDWriteTextLayout4 *This,
7130 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
7131
7132 DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
7133 IDWriteTextLayout4 *This);
7134
7135 HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
7136 IDWriteTextLayout4 *This,
7137 WINBOOL lastline_wrapping_enabled);
7138
7139 WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
7140 IDWriteTextLayout4 *This);
7141
7142 HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
7143 IDWriteTextLayout4 *This,
7144 DWRITE_OPTICAL_ALIGNMENT alignment);
7145
7146 DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
7147 IDWriteTextLayout4 *This);
7148
7149 HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
7150 IDWriteTextLayout4 *This,
7151 IDWriteFontFallback *fallback);
7152
7153 HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
7154 IDWriteTextLayout4 *This,
7155 IDWriteFontFallback **fallback);
7156
7157 /*** IDWriteTextLayout3 methods ***/
7158 HRESULT (STDMETHODCALLTYPE *InvalidateLayout)(
7159 IDWriteTextLayout4 *This);
7160
7161 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)(
7162 IDWriteTextLayout4 *This,
7163 const DWRITE_LINE_SPACING *spacing);
7164
7165 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)(
7166 IDWriteTextLayout4 *This,
7167 DWRITE_LINE_SPACING *spacing);
7168
7169 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)(
7170 IDWriteTextLayout4 *This,
7171 DWRITE_LINE_METRICS1 *metrics,
7172 UINT32 max_count,
7173 UINT32 *count);
7174
7175 /*** IDWriteTextLayout4 methods ***/
7176 HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)(
7177 IDWriteTextLayout4 *This,
7178 const DWRITE_FONT_AXIS_VALUE *axis_values,
7179 UINT32 num_values,
7180 DWRITE_TEXT_RANGE range);
7181
7182 UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
7183 IDWriteTextLayout4 *This,
7184 UINT32 pos);
7185
7186 HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
7187 IDWriteTextLayout4 *This,
7188 UINT32 pos,
7189 DWRITE_FONT_AXIS_VALUE *values,
7190 UINT32 num_values,
7191 DWRITE_TEXT_RANGE *range);
7192
7193 DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
7194 IDWriteTextLayout4 *This);
7195
7196 HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)(
7197 IDWriteTextLayout4 *This,
7198 DWRITE_AUTOMATIC_FONT_AXES axes);
7199
7200 END_INTERFACE
7201} IDWriteTextLayout4Vtbl;
7202
7203interface IDWriteTextLayout4 {
7204 CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl;
7205};
7206
7207#ifdef COBJMACROS
7208#ifndef WIDL_C_INLINE_WRAPPERS
7209/*** IUnknown methods ***/
7210#define IDWriteTextLayout4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7211#define IDWriteTextLayout4_AddRef(This) (This)->lpVtbl->AddRef(This)
7212#define IDWriteTextLayout4_Release(This) (This)->lpVtbl->Release(This)
7213/*** IDWriteTextFormat methods ***/
7214#define IDWriteTextLayout4_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
7215#define IDWriteTextLayout4_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
7216#define IDWriteTextLayout4_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
7217#define IDWriteTextLayout4_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
7218#define IDWriteTextLayout4_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
7219#define IDWriteTextLayout4_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
7220#define IDWriteTextLayout4_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
7221#define IDWriteTextLayout4_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
7222#define IDWriteTextLayout4_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
7223#define IDWriteTextLayout4_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
7224#define IDWriteTextLayout4_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
7225#define IDWriteTextLayout4_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
7226#define IDWriteTextLayout4_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
7227#define IDWriteTextLayout4_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
7228/*** IDWriteTextLayout methods ***/
7229#define IDWriteTextLayout4_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
7230#define IDWriteTextLayout4_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
7231#define IDWriteTextLayout4_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
7232#define IDWriteTextLayout4_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
7233#define IDWriteTextLayout4_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
7234#define IDWriteTextLayout4_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
7235#define IDWriteTextLayout4_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
7236#define IDWriteTextLayout4_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
7237#define IDWriteTextLayout4_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
7238#define IDWriteTextLayout4_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
7239#define IDWriteTextLayout4_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
7240#define IDWriteTextLayout4_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
7241#define IDWriteTextLayout4_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
7242#define IDWriteTextLayout4_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
7243#define IDWriteTextLayout4_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
7244#define IDWriteTextLayout4_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
7245#define IDWriteTextLayout4_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
7246#define IDWriteTextLayout4_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
7247#define IDWriteTextLayout4_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
7248#define IDWriteTextLayout4_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
7249#define IDWriteTextLayout4_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
7250#define IDWriteTextLayout4_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
7251#define IDWriteTextLayout4_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
7252#define IDWriteTextLayout4_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
7253#define IDWriteTextLayout4_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
7254#define IDWriteTextLayout4_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
7255#define IDWriteTextLayout4_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
7256#define IDWriteTextLayout4_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
7257#define IDWriteTextLayout4_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
7258#define IDWriteTextLayout4_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
7259#define IDWriteTextLayout4_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
7260#define IDWriteTextLayout4_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
7261#define IDWriteTextLayout4_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
7262#define IDWriteTextLayout4_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
7263#define IDWriteTextLayout4_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
7264#define IDWriteTextLayout4_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
7265#define IDWriteTextLayout4_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
7266/*** IDWriteTextLayout1 methods ***/
7267#define IDWriteTextLayout4_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
7268#define IDWriteTextLayout4_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
7269#define IDWriteTextLayout4_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
7270#define IDWriteTextLayout4_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
7271/*** IDWriteTextLayout2 methods ***/
7272#define IDWriteTextLayout4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
7273#define IDWriteTextLayout4_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
7274#define IDWriteTextLayout4_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
7275#define IDWriteTextLayout4_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
7276#define IDWriteTextLayout4_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
7277#define IDWriteTextLayout4_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
7278#define IDWriteTextLayout4_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
7279#define IDWriteTextLayout4_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
7280#define IDWriteTextLayout4_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
7281/*** IDWriteTextLayout3 methods ***/
7282#define IDWriteTextLayout4_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This)
7283#define IDWriteTextLayout4_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing)
7284#define IDWriteTextLayout4_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing)
7285#define IDWriteTextLayout4_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count)
7286/*** IDWriteTextLayout4 methods ***/
7287#define IDWriteTextLayout4_SetFontAxisValues(This,axis_values,num_values,range) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range)
7288#define IDWriteTextLayout4_GetFontAxisValueCount(This,pos) (This)->lpVtbl->GetFontAxisValueCount(This,pos)
7289#define IDWriteTextLayout4_GetFontAxisValues(This,pos,values,num_values,range) (This)->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range)
7290#define IDWriteTextLayout4_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This)
7291#define IDWriteTextLayout4_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes)
7292#else
7293/*** IUnknown methods ***/
7294static inline HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This,REFIID riid,void **ppvObject) {
7295 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7296}
7297static inline ULONG IDWriteTextLayout4_AddRef(IDWriteTextLayout4* This) {
7298 return This->lpVtbl->AddRef(This);
7299}
7300static inline ULONG IDWriteTextLayout4_Release(IDWriteTextLayout4* This) {
7301 return This->lpVtbl->Release(This);
7302}
7303/*** IDWriteTextFormat methods ***/
7304static inline HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This,DWRITE_TEXT_ALIGNMENT alignment) {
7305 return This->lpVtbl->SetTextAlignment(This,alignment);
7306}
7307static inline HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
7308 return This->lpVtbl->SetParagraphAlignment(This,alignment);
7309}
7310static inline HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This,DWRITE_WORD_WRAPPING wrapping) {
7311 return This->lpVtbl->SetWordWrapping(This,wrapping);
7312}
7313static inline HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This,DWRITE_READING_DIRECTION direction) {
7314 return This->lpVtbl->SetReadingDirection(This,direction);
7315}
7316static inline HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This,DWRITE_FLOW_DIRECTION direction) {
7317 return This->lpVtbl->SetFlowDirection(This,direction);
7318}
7319static inline HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This,FLOAT tabstop) {
7320 return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
7321}
7322static inline HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
7323 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
7324}
7325static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout4_GetTextAlignment(IDWriteTextLayout4* This) {
7326 return This->lpVtbl->GetTextAlignment(This);
7327}
7328static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout4_GetParagraphAlignment(IDWriteTextLayout4* This) {
7329 return This->lpVtbl->GetParagraphAlignment(This);
7330}
7331static inline DWRITE_WORD_WRAPPING IDWriteTextLayout4_GetWordWrapping(IDWriteTextLayout4* This) {
7332 return This->lpVtbl->GetWordWrapping(This);
7333}
7334static inline DWRITE_READING_DIRECTION IDWriteTextLayout4_GetReadingDirection(IDWriteTextLayout4* This) {
7335 return This->lpVtbl->GetReadingDirection(This);
7336}
7337static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout4_GetFlowDirection(IDWriteTextLayout4* This) {
7338 return This->lpVtbl->GetFlowDirection(This);
7339}
7340static inline FLOAT IDWriteTextLayout4_GetIncrementalTabStop(IDWriteTextLayout4* This) {
7341 return This->lpVtbl->GetIncrementalTabStop(This);
7342}
7343static inline HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
7344 return This->lpVtbl->GetTrimming(This,options,trimming_sign);
7345}
7346/*** IDWriteTextLayout methods ***/
7347static inline HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This,FLOAT maxWidth) {
7348 return This->lpVtbl->SetMaxWidth(This,maxWidth);
7349}
7350static inline HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This,FLOAT maxHeight) {
7351 return This->lpVtbl->SetMaxHeight(This,maxHeight);
7352}
7353static inline HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
7354 return This->lpVtbl->SetFontCollection(This,collection,range);
7355}
7356static inline HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
7357 return This->lpVtbl->SetFontFamilyName(This,name,range);
7358}
7359static inline HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
7360 return This->lpVtbl->SetFontWeight(This,weight,range);
7361}
7362static inline HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
7363 return This->lpVtbl->SetFontStyle(This,style,range);
7364}
7365static inline HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
7366 return This->lpVtbl->SetFontStretch(This,stretch,range);
7367}
7368static inline HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This,FLOAT size,DWRITE_TEXT_RANGE range) {
7369 return This->lpVtbl->SetFontSize(This,size,range);
7370}
7371static inline HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
7372 return This->lpVtbl->SetUnderline(This,underline,range);
7373}
7374static inline HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
7375 return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
7376}
7377static inline HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
7378 return This->lpVtbl->SetDrawingEffect(This,effect,range);
7379}
7380static inline HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
7381 return This->lpVtbl->SetInlineObject(This,object,range);
7382}
7383static inline HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
7384 return This->lpVtbl->SetTypography(This,typography,range);
7385}
7386static inline HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
7387 return This->lpVtbl->SetLocaleName(This,locale,range);
7388}
7389static inline FLOAT IDWriteTextLayout4_GetMaxWidth(IDWriteTextLayout4* This) {
7390 return This->lpVtbl->GetMaxWidth(This);
7391}
7392static inline FLOAT IDWriteTextLayout4_GetMaxHeight(IDWriteTextLayout4* This) {
7393 return This->lpVtbl->GetMaxHeight(This);
7394}
7395static inline HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
7396 return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
7397}
7398static inline HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
7399 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
7400}
7401static inline HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
7402 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
7403}
7404static inline HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
7405 return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
7406}
7407static inline HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
7408 return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
7409}
7410static inline HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
7411 return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
7412}
7413static inline HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
7414 return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
7415}
7416static inline HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
7417 return This->lpVtbl->GetUnderline(This,position,has_underline,range);
7418}
7419static inline HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
7420 return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
7421}
7422static inline HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
7423 return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
7424}
7425static inline HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
7426 return This->lpVtbl->GetInlineObject(This,position,object,range);
7427}
7428static inline HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
7429 return This->lpVtbl->GetTypography(This,position,typography,range);
7430}
7431static inline HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
7432 return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
7433}
7434static inline HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
7435 return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
7436}
7437static inline HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
7438 return This->lpVtbl->Draw(This,context,renderer,originX,originY);
7439}
7440static inline HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This,DWRITE_OVERHANG_METRICS *overhangs) {
7441 return This->lpVtbl->GetOverhangMetrics(This,overhangs);
7442}
7443static inline HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
7444 return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
7445}
7446static inline HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This,FLOAT *min_width) {
7447 return This->lpVtbl->DetermineMinWidth(This,min_width);
7448}
7449static inline HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
7450 return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
7451}
7452static inline HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
7453 return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
7454}
7455static inline HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
7456 return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
7457}
7458/*** IDWriteTextLayout1 methods ***/
7459static inline HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
7460 return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
7461}
7462static inline HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
7463 return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
7464}
7465static inline HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
7466 return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
7467}
7468static inline HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
7469 return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
7470}
7471/*** IDWriteTextLayout2 methods ***/
7472static inline HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This,DWRITE_TEXT_METRICS1 *metrics) {
7473 return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
7474}
7475static inline HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
7476 return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
7477}
7478static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout4_GetVerticalGlyphOrientation(IDWriteTextLayout4* This) {
7479 return This->lpVtbl->GetVerticalGlyphOrientation(This);
7480}
7481static inline HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This,WINBOOL lastline_wrapping_enabled) {
7482 return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
7483}
7484static inline WINBOOL IDWriteTextLayout4_GetLastLineWrapping(IDWriteTextLayout4* This) {
7485 return This->lpVtbl->GetLastLineWrapping(This);
7486}
7487static inline HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
7488 return This->lpVtbl->SetOpticalAlignment(This,alignment);
7489}
7490static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout4_GetOpticalAlignment(IDWriteTextLayout4* This) {
7491 return This->lpVtbl->GetOpticalAlignment(This);
7492}
7493static inline HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback *fallback) {
7494 return This->lpVtbl->SetFontFallback(This,fallback);
7495}
7496static inline HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback **fallback) {
7497 return This->lpVtbl->GetFontFallback(This,fallback);
7498}
7499/*** IDWriteTextLayout3 methods ***/
7500static inline HRESULT IDWriteTextLayout4_InvalidateLayout(IDWriteTextLayout4* This) {
7501 return This->lpVtbl->InvalidateLayout(This);
7502}
7503static inline HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This,const DWRITE_LINE_SPACING *spacing) {
7504 return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing);
7505}
7506static inline HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This,DWRITE_LINE_SPACING *spacing) {
7507 return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing);
7508}
7509static inline HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) {
7510 return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count);
7511}
7512/*** IDWriteTextLayout4 methods ***/
7513static inline HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,DWRITE_TEXT_RANGE range) {
7514 return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range);
7515}
7516static inline UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This,UINT32 pos) {
7517 return This->lpVtbl->GetFontAxisValueCount(This,pos);
7518}
7519static inline HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This,UINT32 pos,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values,DWRITE_TEXT_RANGE *range) {
7520 return This->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range);
7521}
7522static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextLayout4_GetAutomaticFontAxes(IDWriteTextLayout4* This) {
7523 return This->lpVtbl->GetAutomaticFontAxes(This);
7524}
7525static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This,DWRITE_AUTOMATIC_FONT_AXES axes) {
7526 return This->lpVtbl->SetAutomaticFontAxes(This,axes);
7527}
7528#endif
7529#endif
7530
7531#endif
7532
7533
7534#endif /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */
7535
7536/*****************************************************************************
7537 * IDWriteFontFallback1 interface
7538 */
7539#ifndef __IDWriteFontFallback1_INTERFACE_DEFINED__
7540#define __IDWriteFontFallback1_INTERFACE_DEFINED__
7541
7542DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77);
7543#if defined(__cplusplus) && !defined(CINTERFACE)
7544MIDL_INTERFACE("2397599d-dd0d-4681-bd6a-f4f31eaade77")
7545IDWriteFontFallback1 : public IDWriteFontFallback
7546{
7547 virtual HRESULT STDMETHODCALLTYPE MapCharacters(
7548 IDWriteTextAnalysisSource *source,
7549 UINT32 pos,
7550 UINT32 length,
7551 IDWriteFontCollection *base_collection,
7552 const WCHAR *familyname,
7553 const DWRITE_FONT_AXIS_VALUE *axis_values,
7554 UINT32 num_values,
7555 UINT32 *mapped_length,
7556 FLOAT *scale,
7557 IDWriteFontFace5 **fontface) = 0;
7558
7559};
7560#ifdef __CRT_UUID_DECL
7561__CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77)
7562#endif
7563#else
7564typedef struct IDWriteFontFallback1Vtbl {
7565 BEGIN_INTERFACE
7566
7567 /*** IUnknown methods ***/
7568 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7569 IDWriteFontFallback1 *This,
7570 REFIID riid,
7571 void **ppvObject);
7572
7573 ULONG (STDMETHODCALLTYPE *AddRef)(
7574 IDWriteFontFallback1 *This);
7575
7576 ULONG (STDMETHODCALLTYPE *Release)(
7577 IDWriteFontFallback1 *This);
7578
7579 /*** IDWriteFontFallback methods ***/
7580 HRESULT (STDMETHODCALLTYPE *MapCharacters)(
7581 IDWriteFontFallback1 *This,
7582 IDWriteTextAnalysisSource *source,
7583 UINT32 position,
7584 UINT32 length,
7585 IDWriteFontCollection *basecollection,
7586 const WCHAR *baseFamilyName,
7587 DWRITE_FONT_WEIGHT baseWeight,
7588 DWRITE_FONT_STYLE baseStyle,
7589 DWRITE_FONT_STRETCH baseStretch,
7590 UINT32 *mappedLength,
7591 IDWriteFont **mappedFont,
7592 FLOAT *scale);
7593
7594 /*** IDWriteFontFallback1 methods ***/
7595 HRESULT (STDMETHODCALLTYPE *IDWriteFontFallback1_MapCharacters)(
7596 IDWriteFontFallback1 *This,
7597 IDWriteTextAnalysisSource *source,
7598 UINT32 pos,
7599 UINT32 length,
7600 IDWriteFontCollection *base_collection,
7601 const WCHAR *familyname,
7602 const DWRITE_FONT_AXIS_VALUE *axis_values,
7603 UINT32 num_values,
7604 UINT32 *mapped_length,
7605 FLOAT *scale,
7606 IDWriteFontFace5 **fontface);
7607
7608 END_INTERFACE
7609} IDWriteFontFallback1Vtbl;
7610
7611interface IDWriteFontFallback1 {
7612 CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl;
7613};
7614
7615#ifdef COBJMACROS
7616#ifndef WIDL_C_INLINE_WRAPPERS
7617/*** IUnknown methods ***/
7618#define IDWriteFontFallback1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7619#define IDWriteFontFallback1_AddRef(This) (This)->lpVtbl->AddRef(This)
7620#define IDWriteFontFallback1_Release(This) (This)->lpVtbl->Release(This)
7621/*** IDWriteFontFallback methods ***/
7622/*** IDWriteFontFallback1 methods ***/
7623#define IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface)
7624#else
7625/*** IUnknown methods ***/
7626static inline HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This,REFIID riid,void **ppvObject) {
7627 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7628}
7629static inline ULONG IDWriteFontFallback1_AddRef(IDWriteFontFallback1* This) {
7630 return This->lpVtbl->AddRef(This);
7631}
7632static inline ULONG IDWriteFontFallback1_Release(IDWriteFontFallback1* This) {
7633 return This->lpVtbl->Release(This);
7634}
7635/*** IDWriteFontFallback methods ***/
7636/*** IDWriteFontFallback1 methods ***/
7637static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This,IDWriteTextAnalysisSource *source,UINT32 pos,UINT32 length,IDWriteFontCollection *base_collection,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,UINT32 *mapped_length,FLOAT *scale,IDWriteFontFace5 **fontface) {
7638 return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface);
7639}
7640#endif
7641#endif
7642
7643#endif
7644
7645
7646#endif /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */
7647
7648/*****************************************************************************
7649 * IDWriteGdiInterop1 interface
7650 */
7651#ifndef __IDWriteGdiInterop1_INTERFACE_DEFINED__
7652#define __IDWriteGdiInterop1_INTERFACE_DEFINED__
7653
7654DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15);
7655#if defined(__cplusplus) && !defined(CINTERFACE)
7656MIDL_INTERFACE("4556be70-3abd-4f70-90be-421780a6f515")
7657IDWriteGdiInterop1 : public IDWriteGdiInterop
7658{
7659 virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT(
7660 const LOGFONTW *logfont,
7661 IDWriteFontCollection *collection,
7662 IDWriteFont **font) = 0;
7663
7664 virtual HRESULT STDMETHODCALLTYPE GetFontSignature_(
7665 IDWriteFontFace *fontface,
7666 FONTSIGNATURE *fontsig) = 0;
7667
7668 virtual HRESULT STDMETHODCALLTYPE GetFontSignature(
7669 IDWriteFont *font,
7670 FONTSIGNATURE *fontsig) = 0;
7671
7672 virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT(
7673 const LOGFONTW *logfont,
7674 IDWriteFontSet *fontset,
7675 IDWriteFontSet **subset) = 0;
7676
7677};
7678#ifdef __CRT_UUID_DECL
7679__CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15)
7680#endif
7681#else
7682typedef struct IDWriteGdiInterop1Vtbl {
7683 BEGIN_INTERFACE
7684
7685 /*** IUnknown methods ***/
7686 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7687 IDWriteGdiInterop1 *This,
7688 REFIID riid,
7689 void **ppvObject);
7690
7691 ULONG (STDMETHODCALLTYPE *AddRef)(
7692 IDWriteGdiInterop1 *This);
7693
7694 ULONG (STDMETHODCALLTYPE *Release)(
7695 IDWriteGdiInterop1 *This);
7696
7697 /*** IDWriteGdiInterop methods ***/
7698 HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)(
7699 IDWriteGdiInterop1 *This,
7700 const LOGFONTW *logfont,
7701 IDWriteFont **font);
7702
7703 HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)(
7704 IDWriteGdiInterop1 *This,
7705 IDWriteFont *font,
7706 LOGFONTW *logfont,
7707 WINBOOL *is_systemfont);
7708
7709 HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)(
7710 IDWriteGdiInterop1 *This,
7711 IDWriteFontFace *font,
7712 LOGFONTW *logfont);
7713
7714 HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)(
7715 IDWriteGdiInterop1 *This,
7716 HDC hdc,
7717 IDWriteFontFace **fontface);
7718
7719 HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)(
7720 IDWriteGdiInterop1 *This,
7721 HDC hdc,
7722 UINT32 width,
7723 UINT32 height,
7724 IDWriteBitmapRenderTarget **target);
7725
7726 /*** IDWriteGdiInterop1 methods ***/
7727 HRESULT (STDMETHODCALLTYPE *IDWriteGdiInterop1_CreateFontFromLOGFONT)(
7728 IDWriteGdiInterop1 *This,
7729 const LOGFONTW *logfont,
7730 IDWriteFontCollection *collection,
7731 IDWriteFont **font);
7732
7733 HRESULT (STDMETHODCALLTYPE *GetFontSignature_)(
7734 IDWriteGdiInterop1 *This,
7735 IDWriteFontFace *fontface,
7736 FONTSIGNATURE *fontsig);
7737
7738 HRESULT (STDMETHODCALLTYPE *GetFontSignature)(
7739 IDWriteGdiInterop1 *This,
7740 IDWriteFont *font,
7741 FONTSIGNATURE *fontsig);
7742
7743 HRESULT (STDMETHODCALLTYPE *GetMatchingFontsByLOGFONT)(
7744 IDWriteGdiInterop1 *This,
7745 const LOGFONTW *logfont,
7746 IDWriteFontSet *fontset,
7747 IDWriteFontSet **subset);
7748
7749 END_INTERFACE
7750} IDWriteGdiInterop1Vtbl;
7751
7752interface IDWriteGdiInterop1 {
7753 CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl;
7754};
7755
7756#ifdef COBJMACROS
7757#ifndef WIDL_C_INLINE_WRAPPERS
7758/*** IUnknown methods ***/
7759#define IDWriteGdiInterop1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7760#define IDWriteGdiInterop1_AddRef(This) (This)->lpVtbl->AddRef(This)
7761#define IDWriteGdiInterop1_Release(This) (This)->lpVtbl->Release(This)
7762/*** IDWriteGdiInterop methods ***/
7763#define IDWriteGdiInterop1_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont)
7764#define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont)
7765#define IDWriteGdiInterop1_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface)
7766#define IDWriteGdiInterop1_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target)
7767/*** IDWriteGdiInterop1 methods ***/
7768#define IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font)
7769#define IDWriteGdiInterop1_GetFontSignature_(This,fontface,fontsig) (This)->lpVtbl->GetFontSignature_(This,fontface,fontsig)
7770#define IDWriteGdiInterop1_GetFontSignature(This,font,fontsig) (This)->lpVtbl->GetFontSignature(This,font,fontsig)
7771#define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset)
7772#else
7773/*** IUnknown methods ***/
7774static inline HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This,REFIID riid,void **ppvObject) {
7775 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7776}
7777static inline ULONG IDWriteGdiInterop1_AddRef(IDWriteGdiInterop1* This) {
7778 return This->lpVtbl->AddRef(This);
7779}
7780static inline ULONG IDWriteGdiInterop1_Release(IDWriteGdiInterop1* This) {
7781 return This->lpVtbl->Release(This);
7782}
7783/*** IDWriteGdiInterop methods ***/
7784static inline HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) {
7785 return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont);
7786}
7787static inline HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This,IDWriteFontFace *font,LOGFONTW *logfont) {
7788 return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont);
7789}
7790static inline HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This,HDC hdc,IDWriteFontFace **fontface) {
7791 return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface);
7792}
7793static inline HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) {
7794 return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target);
7795}
7796/*** IDWriteGdiInterop1 methods ***/
7797static inline HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontCollection *collection,IDWriteFont **font) {
7798 return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font);
7799}
7800static inline HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This,IDWriteFontFace *fontface,FONTSIGNATURE *fontsig) {
7801 return This->lpVtbl->GetFontSignature_(This,fontface,fontsig);
7802}
7803static inline HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This,IDWriteFont *font,FONTSIGNATURE *fontsig) {
7804 return This->lpVtbl->GetFontSignature(This,font,fontsig);
7805}
7806static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontSet *fontset,IDWriteFontSet **subset) {
7807 return This->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset);
7808}
7809#endif
7810#endif
7811
7812#endif
7813
7814
7815#endif /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */
7816
7817/*****************************************************************************
7818 * IDWriteFontSetBuilder interface
7819 */
7820#ifndef __IDWriteFontSetBuilder_INTERFACE_DEFINED__
7821#define __IDWriteFontSetBuilder_INTERFACE_DEFINED__
7822
7823DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d);
7824#if defined(__cplusplus) && !defined(CINTERFACE)
7825MIDL_INTERFACE("2f642afe-9c68-4f40-b8be-457401afcb3d")
7826IDWriteFontSetBuilder : public IUnknown
7827{
7828 virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_(
7829 IDWriteFontFaceReference *ref,
7830 const DWRITE_FONT_PROPERTY *props,
7831 UINT32 prop_count) = 0;
7832
7833 virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference(
7834 IDWriteFontFaceReference *ref) = 0;
7835
7836 virtual HRESULT STDMETHODCALLTYPE AddFontSet(
7837 IDWriteFontSet *fontset) = 0;
7838
7839 virtual HRESULT STDMETHODCALLTYPE CreateFontSet(
7840 IDWriteFontSet **fontset) = 0;
7841
7842};
7843#ifdef __CRT_UUID_DECL
7844__CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d)
7845#endif
7846#else
7847typedef struct IDWriteFontSetBuilderVtbl {
7848 BEGIN_INTERFACE
7849
7850 /*** IUnknown methods ***/
7851 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7852 IDWriteFontSetBuilder *This,
7853 REFIID riid,
7854 void **ppvObject);
7855
7856 ULONG (STDMETHODCALLTYPE *AddRef)(
7857 IDWriteFontSetBuilder *This);
7858
7859 ULONG (STDMETHODCALLTYPE *Release)(
7860 IDWriteFontSetBuilder *This);
7861
7862 /*** IDWriteFontSetBuilder methods ***/
7863 HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
7864 IDWriteFontSetBuilder *This,
7865 IDWriteFontFaceReference *ref,
7866 const DWRITE_FONT_PROPERTY *props,
7867 UINT32 prop_count);
7868
7869 HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
7870 IDWriteFontSetBuilder *This,
7871 IDWriteFontFaceReference *ref);
7872
7873 HRESULT (STDMETHODCALLTYPE *AddFontSet)(
7874 IDWriteFontSetBuilder *This,
7875 IDWriteFontSet *fontset);
7876
7877 HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
7878 IDWriteFontSetBuilder *This,
7879 IDWriteFontSet **fontset);
7880
7881 END_INTERFACE
7882} IDWriteFontSetBuilderVtbl;
7883
7884interface IDWriteFontSetBuilder {
7885 CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl;
7886};
7887
7888#ifdef COBJMACROS
7889#ifndef WIDL_C_INLINE_WRAPPERS
7890/*** IUnknown methods ***/
7891#define IDWriteFontSetBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7892#define IDWriteFontSetBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
7893#define IDWriteFontSetBuilder_Release(This) (This)->lpVtbl->Release(This)
7894/*** IDWriteFontSetBuilder methods ***/
7895#define IDWriteFontSetBuilder_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
7896#define IDWriteFontSetBuilder_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
7897#define IDWriteFontSetBuilder_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
7898#define IDWriteFontSetBuilder_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
7899#else
7900/*** IUnknown methods ***/
7901static inline HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This,REFIID riid,void **ppvObject) {
7902 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7903}
7904static inline ULONG IDWriteFontSetBuilder_AddRef(IDWriteFontSetBuilder* This) {
7905 return This->lpVtbl->AddRef(This);
7906}
7907static inline ULONG IDWriteFontSetBuilder_Release(IDWriteFontSetBuilder* This) {
7908 return This->lpVtbl->Release(This);
7909}
7910/*** IDWriteFontSetBuilder methods ***/
7911static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
7912 return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
7913}
7914static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref) {
7915 return This->lpVtbl->AddFontFaceReference(This,ref);
7916}
7917static inline HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet *fontset) {
7918 return This->lpVtbl->AddFontSet(This,fontset);
7919}
7920static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet **fontset) {
7921 return This->lpVtbl->CreateFontSet(This,fontset);
7922}
7923#endif
7924#endif
7925
7926#endif
7927
7928
7929#endif /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */
7930
7931/*****************************************************************************
7932 * IDWriteFontSetBuilder1 interface
7933 */
7934#ifndef __IDWriteFontSetBuilder1_INTERFACE_DEFINED__
7935#define __IDWriteFontSetBuilder1_INTERFACE_DEFINED__
7936
7937DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd);
7938#if defined(__cplusplus) && !defined(CINTERFACE)
7939MIDL_INTERFACE("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd")
7940IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder
7941{
7942 virtual HRESULT STDMETHODCALLTYPE AddFontFile(
7943 IDWriteFontFile *file) = 0;
7944
7945};
7946#ifdef __CRT_UUID_DECL
7947__CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd)
7948#endif
7949#else
7950typedef struct IDWriteFontSetBuilder1Vtbl {
7951 BEGIN_INTERFACE
7952
7953 /*** IUnknown methods ***/
7954 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7955 IDWriteFontSetBuilder1 *This,
7956 REFIID riid,
7957 void **ppvObject);
7958
7959 ULONG (STDMETHODCALLTYPE *AddRef)(
7960 IDWriteFontSetBuilder1 *This);
7961
7962 ULONG (STDMETHODCALLTYPE *Release)(
7963 IDWriteFontSetBuilder1 *This);
7964
7965 /*** IDWriteFontSetBuilder methods ***/
7966 HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
7967 IDWriteFontSetBuilder1 *This,
7968 IDWriteFontFaceReference *ref,
7969 const DWRITE_FONT_PROPERTY *props,
7970 UINT32 prop_count);
7971
7972 HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
7973 IDWriteFontSetBuilder1 *This,
7974 IDWriteFontFaceReference *ref);
7975
7976 HRESULT (STDMETHODCALLTYPE *AddFontSet)(
7977 IDWriteFontSetBuilder1 *This,
7978 IDWriteFontSet *fontset);
7979
7980 HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
7981 IDWriteFontSetBuilder1 *This,
7982 IDWriteFontSet **fontset);
7983
7984 /*** IDWriteFontSetBuilder1 methods ***/
7985 HRESULT (STDMETHODCALLTYPE *AddFontFile)(
7986 IDWriteFontSetBuilder1 *This,
7987 IDWriteFontFile *file);
7988
7989 END_INTERFACE
7990} IDWriteFontSetBuilder1Vtbl;
7991
7992interface IDWriteFontSetBuilder1 {
7993 CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl;
7994};
7995
7996#ifdef COBJMACROS
7997#ifndef WIDL_C_INLINE_WRAPPERS
7998/*** IUnknown methods ***/
7999#define IDWriteFontSetBuilder1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8000#define IDWriteFontSetBuilder1_AddRef(This) (This)->lpVtbl->AddRef(This)
8001#define IDWriteFontSetBuilder1_Release(This) (This)->lpVtbl->Release(This)
8002/*** IDWriteFontSetBuilder methods ***/
8003#define IDWriteFontSetBuilder1_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
8004#define IDWriteFontSetBuilder1_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
8005#define IDWriteFontSetBuilder1_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
8006#define IDWriteFontSetBuilder1_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
8007/*** IDWriteFontSetBuilder1 methods ***/
8008#define IDWriteFontSetBuilder1_AddFontFile(This,file) (This)->lpVtbl->AddFontFile(This,file)
8009#else
8010/*** IUnknown methods ***/
8011static inline HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This,REFIID riid,void **ppvObject) {
8012 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8013}
8014static inline ULONG IDWriteFontSetBuilder1_AddRef(IDWriteFontSetBuilder1* This) {
8015 return This->lpVtbl->AddRef(This);
8016}
8017static inline ULONG IDWriteFontSetBuilder1_Release(IDWriteFontSetBuilder1* This) {
8018 return This->lpVtbl->Release(This);
8019}
8020/*** IDWriteFontSetBuilder methods ***/
8021static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
8022 return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
8023}
8024static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref) {
8025 return This->lpVtbl->AddFontFaceReference(This,ref);
8026}
8027static inline HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet *fontset) {
8028 return This->lpVtbl->AddFontSet(This,fontset);
8029}
8030static inline HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet **fontset) {
8031 return This->lpVtbl->CreateFontSet(This,fontset);
8032}
8033/*** IDWriteFontSetBuilder1 methods ***/
8034static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This,IDWriteFontFile *file) {
8035 return This->lpVtbl->AddFontFile(This,file);
8036}
8037#endif
8038#endif
8039
8040#endif
8041
8042
8043#endif /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */
8044
8045/*****************************************************************************
8046 * IDWriteFontSetBuilder2 interface
8047 */
8048#ifndef __IDWriteFontSetBuilder2_INTERFACE_DEFINED__
8049#define __IDWriteFontSetBuilder2_INTERFACE_DEFINED__
8050
8051DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45);
8052#if defined(__cplusplus) && !defined(CINTERFACE)
8053MIDL_INTERFACE("ee5ba612-b131-463c-8f4f-3189b9401e45")
8054IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1
8055{
8056 virtual HRESULT STDMETHODCALLTYPE AddFont(
8057 IDWriteFontFile *fontfile,
8058 UINT32 face_index,
8059 DWRITE_FONT_SIMULATIONS simulations,
8060 const DWRITE_FONT_AXIS_VALUE *axis_values,
8061 UINT32 num_values,
8062 const DWRITE_FONT_AXIS_RANGE *axis_ranges,
8063 UINT32 num_ranges,
8064 const DWRITE_FONT_PROPERTY *props,
8065 UINT32 num_properties) = 0;
8066
8067 virtual HRESULT STDMETHODCALLTYPE AddFontFile(
8068 const WCHAR *filepath) = 0;
8069
8070};
8071#ifdef __CRT_UUID_DECL
8072__CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45)
8073#endif
8074#else
8075typedef struct IDWriteFontSetBuilder2Vtbl {
8076 BEGIN_INTERFACE
8077
8078 /*** IUnknown methods ***/
8079 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8080 IDWriteFontSetBuilder2 *This,
8081 REFIID riid,
8082 void **ppvObject);
8083
8084 ULONG (STDMETHODCALLTYPE *AddRef)(
8085 IDWriteFontSetBuilder2 *This);
8086
8087 ULONG (STDMETHODCALLTYPE *Release)(
8088 IDWriteFontSetBuilder2 *This);
8089
8090 /*** IDWriteFontSetBuilder methods ***/
8091 HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
8092 IDWriteFontSetBuilder2 *This,
8093 IDWriteFontFaceReference *ref,
8094 const DWRITE_FONT_PROPERTY *props,
8095 UINT32 prop_count);
8096
8097 HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
8098 IDWriteFontSetBuilder2 *This,
8099 IDWriteFontFaceReference *ref);
8100
8101 HRESULT (STDMETHODCALLTYPE *AddFontSet)(
8102 IDWriteFontSetBuilder2 *This,
8103 IDWriteFontSet *fontset);
8104
8105 HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
8106 IDWriteFontSetBuilder2 *This,
8107 IDWriteFontSet **fontset);
8108
8109 /*** IDWriteFontSetBuilder1 methods ***/
8110 HRESULT (STDMETHODCALLTYPE *AddFontFile)(
8111 IDWriteFontSetBuilder2 *This,
8112 IDWriteFontFile *file);
8113
8114 /*** IDWriteFontSetBuilder2 methods ***/
8115 HRESULT (STDMETHODCALLTYPE *AddFont)(
8116 IDWriteFontSetBuilder2 *This,
8117 IDWriteFontFile *fontfile,
8118 UINT32 face_index,
8119 DWRITE_FONT_SIMULATIONS simulations,
8120 const DWRITE_FONT_AXIS_VALUE *axis_values,
8121 UINT32 num_values,
8122 const DWRITE_FONT_AXIS_RANGE *axis_ranges,
8123 UINT32 num_ranges,
8124 const DWRITE_FONT_PROPERTY *props,
8125 UINT32 num_properties);
8126
8127 HRESULT (STDMETHODCALLTYPE *IDWriteFontSetBuilder2_AddFontFile)(
8128 IDWriteFontSetBuilder2 *This,
8129 const WCHAR *filepath);
8130
8131 END_INTERFACE
8132} IDWriteFontSetBuilder2Vtbl;
8133
8134interface IDWriteFontSetBuilder2 {
8135 CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl;
8136};
8137
8138#ifdef COBJMACROS
8139#ifndef WIDL_C_INLINE_WRAPPERS
8140/*** IUnknown methods ***/
8141#define IDWriteFontSetBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8142#define IDWriteFontSetBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
8143#define IDWriteFontSetBuilder2_Release(This) (This)->lpVtbl->Release(This)
8144/*** IDWriteFontSetBuilder methods ***/
8145#define IDWriteFontSetBuilder2_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
8146#define IDWriteFontSetBuilder2_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
8147#define IDWriteFontSetBuilder2_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
8148#define IDWriteFontSetBuilder2_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
8149/*** IDWriteFontSetBuilder1 methods ***/
8150/*** IDWriteFontSetBuilder2 methods ***/
8151#define IDWriteFontSetBuilder2_AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) (This)->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties)
8152#define IDWriteFontSetBuilder2_AddFontFile(This,filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath)
8153#else
8154/*** IUnknown methods ***/
8155static inline HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This,REFIID riid,void **ppvObject) {
8156 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8157}
8158static inline ULONG IDWriteFontSetBuilder2_AddRef(IDWriteFontSetBuilder2* This) {
8159 return This->lpVtbl->AddRef(This);
8160}
8161static inline ULONG IDWriteFontSetBuilder2_Release(IDWriteFontSetBuilder2* This) {
8162 return This->lpVtbl->Release(This);
8163}
8164/*** IDWriteFontSetBuilder methods ***/
8165static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
8166 return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
8167}
8168static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref) {
8169 return This->lpVtbl->AddFontFaceReference(This,ref);
8170}
8171static inline HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet *fontset) {
8172 return This->lpVtbl->AddFontSet(This,fontset);
8173}
8174static inline HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet **fontset) {
8175 return This->lpVtbl->CreateFontSet(This,fontset);
8176}
8177/*** IDWriteFontSetBuilder1 methods ***/
8178/*** IDWriteFontSetBuilder2 methods ***/
8179static inline HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This,IDWriteFontFile *fontfile,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties) {
8180 return This->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties);
8181}
8182static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This,const WCHAR *filepath) {
8183 return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath);
8184}
8185#endif
8186#endif
8187
8188#endif
8189
8190
8191#endif /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */
8192
8193/*****************************************************************************
8194 * IDWriteFactory3 interface
8195 */
8196#ifndef __IDWriteFactory3_INTERFACE_DEFINED__
8197#define __IDWriteFactory3_INTERFACE_DEFINED__
8198
8199DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65);
8200#if defined(__cplusplus) && !defined(CINTERFACE)
8201MIDL_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65")
8202IDWriteFactory3 : public IDWriteFactory2
8203{
8204 virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis(
8205 const DWRITE_GLYPH_RUN *run,
8206 const DWRITE_MATRIX *transform,
8207 DWRITE_RENDERING_MODE1 rendering_mode,
8208 DWRITE_MEASURING_MODE measuring_mode,
8209 DWRITE_GRID_FIT_MODE gridfit_mode,
8210 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
8211 FLOAT origin_x,
8212 FLOAT origin_y,
8213 IDWriteGlyphRunAnalysis **analysis) = 0;
8214
8215 virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams(
8216 FLOAT gamma,
8217 FLOAT enhanced_contrast,
8218 FLOAT grayscale_enhanced_contrast,
8219 FLOAT cleartype_level,
8220 DWRITE_PIXEL_GEOMETRY pixel_geometry,
8221 DWRITE_RENDERING_MODE1 rendering_mode,
8222 DWRITE_GRID_FIT_MODE gridfit_mode,
8223 IDWriteRenderingParams3 **params) = 0;
8224
8225 virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_(
8226 IDWriteFontFile *file,
8227 UINT32 index,
8228 DWRITE_FONT_SIMULATIONS simulations,
8229 IDWriteFontFaceReference **reference) = 0;
8230
8231 virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
8232 const WCHAR *path,
8233 const FILETIME *writetime,
8234 UINT32 index,
8235 DWRITE_FONT_SIMULATIONS simulations,
8236 IDWriteFontFaceReference **reference) = 0;
8237
8238 virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
8239 IDWriteFontSet **fontset) = 0;
8240
8241 virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
8242 IDWriteFontSetBuilder **builder) = 0;
8243
8244 virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet(
8245 IDWriteFontSet *fontset,
8246 IDWriteFontCollection1 **collection) = 0;
8247
8248 virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
8249 WINBOOL include_downloadable,
8250 IDWriteFontCollection1 **collection,
8251 WINBOOL check_for_updates) = 0;
8252
8253 virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue(
8254 IDWriteFontDownloadQueue **queue) = 0;
8255
8256};
8257#ifdef __CRT_UUID_DECL
8258__CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65)
8259#endif
8260#else
8261typedef struct IDWriteFactory3Vtbl {
8262 BEGIN_INTERFACE
8263
8264 /*** IUnknown methods ***/
8265 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8266 IDWriteFactory3 *This,
8267 REFIID riid,
8268 void **ppvObject);
8269
8270 ULONG (STDMETHODCALLTYPE *AddRef)(
8271 IDWriteFactory3 *This);
8272
8273 ULONG (STDMETHODCALLTYPE *Release)(
8274 IDWriteFactory3 *This);
8275
8276 /*** IDWriteFactory methods ***/
8277 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
8278 IDWriteFactory3 *This,
8279 IDWriteFontCollection **collection,
8280 WINBOOL check_for_updates);
8281
8282 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
8283 IDWriteFactory3 *This,
8284 IDWriteFontCollectionLoader *loader,
8285 const void *key,
8286 UINT32 key_size,
8287 IDWriteFontCollection **collection);
8288
8289 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
8290 IDWriteFactory3 *This,
8291 IDWriteFontCollectionLoader *loader);
8292
8293 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
8294 IDWriteFactory3 *This,
8295 IDWriteFontCollectionLoader *loader);
8296
8297 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
8298 IDWriteFactory3 *This,
8299 const WCHAR *path,
8300 const FILETIME *writetime,
8301 IDWriteFontFile **font_file);
8302
8303 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
8304 IDWriteFactory3 *This,
8305 const void *reference_key,
8306 UINT32 key_size,
8307 IDWriteFontFileLoader *loader,
8308 IDWriteFontFile **font_file);
8309
8310 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
8311 IDWriteFactory3 *This,
8312 DWRITE_FONT_FACE_TYPE facetype,
8313 UINT32 files_number,
8314 IDWriteFontFile *const *font_files,
8315 UINT32 index,
8316 DWRITE_FONT_SIMULATIONS sim_flags,
8317 IDWriteFontFace **font_face);
8318
8319 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
8320 IDWriteFactory3 *This,
8321 IDWriteRenderingParams **params);
8322
8323 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
8324 IDWriteFactory3 *This,
8325 HMONITOR monitor,
8326 IDWriteRenderingParams **params);
8327
8328 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
8329 IDWriteFactory3 *This,
8330 FLOAT gamma,
8331 FLOAT enhancedContrast,
8332 FLOAT cleartype_level,
8333 DWRITE_PIXEL_GEOMETRY geometry,
8334 DWRITE_RENDERING_MODE mode,
8335 IDWriteRenderingParams **params);
8336
8337 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
8338 IDWriteFactory3 *This,
8339 IDWriteFontFileLoader *loader);
8340
8341 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
8342 IDWriteFactory3 *This,
8343 IDWriteFontFileLoader *loader);
8344
8345 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
8346 IDWriteFactory3 *This,
8347 const WCHAR *family_name,
8348 IDWriteFontCollection *collection,
8349 DWRITE_FONT_WEIGHT weight,
8350 DWRITE_FONT_STYLE style,
8351 DWRITE_FONT_STRETCH stretch,
8352 FLOAT size,
8353 const WCHAR *locale,
8354 IDWriteTextFormat **format);
8355
8356 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
8357 IDWriteFactory3 *This,
8358 IDWriteTypography **typography);
8359
8360 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
8361 IDWriteFactory3 *This,
8362 IDWriteGdiInterop **gdi_interop);
8363
8364 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
8365 IDWriteFactory3 *This,
8366 const WCHAR *string,
8367 UINT32 len,
8368 IDWriteTextFormat *format,
8369 FLOAT max_width,
8370 FLOAT max_height,
8371 IDWriteTextLayout **layout);
8372
8373 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
8374 IDWriteFactory3 *This,
8375 const WCHAR *string,
8376 UINT32 len,
8377 IDWriteTextFormat *format,
8378 FLOAT layout_width,
8379 FLOAT layout_height,
8380 FLOAT pixels_per_dip,
8381 const DWRITE_MATRIX *transform,
8382 WINBOOL use_gdi_natural,
8383 IDWriteTextLayout **layout);
8384
8385 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
8386 IDWriteFactory3 *This,
8387 IDWriteTextFormat *format,
8388 IDWriteInlineObject **trimming_sign);
8389
8390 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
8391 IDWriteFactory3 *This,
8392 IDWriteTextAnalyzer **analyzer);
8393
8394 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
8395 IDWriteFactory3 *This,
8396 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
8397 const WCHAR *locale,
8398 WINBOOL ignore_user_override,
8399 IDWriteNumberSubstitution **substitution);
8400
8401 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
8402 IDWriteFactory3 *This,
8403 const DWRITE_GLYPH_RUN *glyph_run,
8404 FLOAT pixels_per_dip,
8405 const DWRITE_MATRIX *transform,
8406 DWRITE_RENDERING_MODE rendering_mode,
8407 DWRITE_MEASURING_MODE measuring_mode,
8408 FLOAT baseline_x,
8409 FLOAT baseline_y,
8410 IDWriteGlyphRunAnalysis **analysis);
8411
8412 /*** IDWriteFactory1 methods ***/
8413 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
8414 IDWriteFactory3 *This,
8415 IDWriteFontCollection **collection,
8416 WINBOOL check_for_updates);
8417
8418 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
8419 IDWriteFactory3 *This,
8420 FLOAT gamma,
8421 FLOAT enhcontrast,
8422 FLOAT enhcontrast_grayscale,
8423 FLOAT cleartype_level,
8424 DWRITE_PIXEL_GEOMETRY geometry,
8425 DWRITE_RENDERING_MODE mode,
8426 IDWriteRenderingParams1 **params);
8427
8428 /*** IDWriteFactory2 methods ***/
8429 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
8430 IDWriteFactory3 *This,
8431 IDWriteFontFallback **fallback);
8432
8433 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
8434 IDWriteFactory3 *This,
8435 IDWriteFontFallbackBuilder **fallbackbuilder);
8436
8437 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
8438 IDWriteFactory3 *This,
8439 FLOAT originX,
8440 FLOAT originY,
8441 const DWRITE_GLYPH_RUN *run,
8442 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
8443 DWRITE_MEASURING_MODE mode,
8444 const DWRITE_MATRIX *transform,
8445 UINT32 palette_index,
8446 IDWriteColorGlyphRunEnumerator **colorlayers);
8447
8448 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
8449 IDWriteFactory3 *This,
8450 FLOAT gamma,
8451 FLOAT contrast,
8452 FLOAT grayscalecontrast,
8453 FLOAT cleartypeLevel,
8454 DWRITE_PIXEL_GEOMETRY pixelGeometry,
8455 DWRITE_RENDERING_MODE renderingMode,
8456 DWRITE_GRID_FIT_MODE gridFitMode,
8457 IDWriteRenderingParams2 **params);
8458
8459 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
8460 IDWriteFactory3 *This,
8461 const DWRITE_GLYPH_RUN *run,
8462 const DWRITE_MATRIX *transform,
8463 DWRITE_RENDERING_MODE renderingMode,
8464 DWRITE_MEASURING_MODE measuringMode,
8465 DWRITE_GRID_FIT_MODE gridFitMode,
8466 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
8467 FLOAT originX,
8468 FLOAT originY,
8469 IDWriteGlyphRunAnalysis **analysis);
8470
8471 /*** IDWriteFactory3 methods ***/
8472 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
8473 IDWriteFactory3 *This,
8474 const DWRITE_GLYPH_RUN *run,
8475 const DWRITE_MATRIX *transform,
8476 DWRITE_RENDERING_MODE1 rendering_mode,
8477 DWRITE_MEASURING_MODE measuring_mode,
8478 DWRITE_GRID_FIT_MODE gridfit_mode,
8479 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
8480 FLOAT origin_x,
8481 FLOAT origin_y,
8482 IDWriteGlyphRunAnalysis **analysis);
8483
8484 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
8485 IDWriteFactory3 *This,
8486 FLOAT gamma,
8487 FLOAT enhanced_contrast,
8488 FLOAT grayscale_enhanced_contrast,
8489 FLOAT cleartype_level,
8490 DWRITE_PIXEL_GEOMETRY pixel_geometry,
8491 DWRITE_RENDERING_MODE1 rendering_mode,
8492 DWRITE_GRID_FIT_MODE gridfit_mode,
8493 IDWriteRenderingParams3 **params);
8494
8495 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
8496 IDWriteFactory3 *This,
8497 IDWriteFontFile *file,
8498 UINT32 index,
8499 DWRITE_FONT_SIMULATIONS simulations,
8500 IDWriteFontFaceReference **reference);
8501
8502 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
8503 IDWriteFactory3 *This,
8504 const WCHAR *path,
8505 const FILETIME *writetime,
8506 UINT32 index,
8507 DWRITE_FONT_SIMULATIONS simulations,
8508 IDWriteFontFaceReference **reference);
8509
8510 HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
8511 IDWriteFactory3 *This,
8512 IDWriteFontSet **fontset);
8513
8514 HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
8515 IDWriteFactory3 *This,
8516 IDWriteFontSetBuilder **builder);
8517
8518 HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
8519 IDWriteFactory3 *This,
8520 IDWriteFontSet *fontset,
8521 IDWriteFontCollection1 **collection);
8522
8523 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
8524 IDWriteFactory3 *This,
8525 WINBOOL include_downloadable,
8526 IDWriteFontCollection1 **collection,
8527 WINBOOL check_for_updates);
8528
8529 HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
8530 IDWriteFactory3 *This,
8531 IDWriteFontDownloadQueue **queue);
8532
8533 END_INTERFACE
8534} IDWriteFactory3Vtbl;
8535
8536interface IDWriteFactory3 {
8537 CONST_VTBL IDWriteFactory3Vtbl* lpVtbl;
8538};
8539
8540#ifdef COBJMACROS
8541#ifndef WIDL_C_INLINE_WRAPPERS
8542/*** IUnknown methods ***/
8543#define IDWriteFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8544#define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This)
8545#define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This)
8546/*** IDWriteFactory methods ***/
8547#define IDWriteFactory3_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
8548#define IDWriteFactory3_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
8549#define IDWriteFactory3_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
8550#define IDWriteFactory3_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
8551#define IDWriteFactory3_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
8552#define IDWriteFactory3_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
8553#define IDWriteFactory3_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
8554#define IDWriteFactory3_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
8555#define IDWriteFactory3_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
8556#define IDWriteFactory3_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
8557#define IDWriteFactory3_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
8558#define IDWriteFactory3_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
8559#define IDWriteFactory3_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
8560#define IDWriteFactory3_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
8561#define IDWriteFactory3_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
8562#define IDWriteFactory3_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
8563#define IDWriteFactory3_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
8564#define IDWriteFactory3_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
8565/*** IDWriteFactory1 methods ***/
8566#define IDWriteFactory3_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
8567/*** IDWriteFactory2 methods ***/
8568#define IDWriteFactory3_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
8569#define IDWriteFactory3_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
8570#define IDWriteFactory3_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers)
8571/*** IDWriteFactory3 methods ***/
8572#define IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
8573#define IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
8574#define IDWriteFactory3_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
8575#define IDWriteFactory3_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
8576#define IDWriteFactory3_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
8577#define IDWriteFactory3_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder)
8578#define IDWriteFactory3_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
8579#define IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
8580#define IDWriteFactory3_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
8581#else
8582/*** IUnknown methods ***/
8583static inline HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This,REFIID riid,void **ppvObject) {
8584 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8585}
8586static inline ULONG IDWriteFactory3_AddRef(IDWriteFactory3* This) {
8587 return This->lpVtbl->AddRef(This);
8588}
8589static inline ULONG IDWriteFactory3_Release(IDWriteFactory3* This) {
8590 return This->lpVtbl->Release(This);
8591}
8592/*** IDWriteFactory methods ***/
8593static inline HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
8594 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
8595}
8596static inline HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) {
8597 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
8598}
8599static inline HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) {
8600 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
8601}
8602static inline HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
8603 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
8604}
8605static inline HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
8606 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
8607}
8608static inline HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
8609 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
8610}
8611static inline HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This,IDWriteRenderingParams **params) {
8612 return This->lpVtbl->CreateRenderingParams(This,params);
8613}
8614static inline HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This,HMONITOR monitor,IDWriteRenderingParams **params) {
8615 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
8616}
8617static inline HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) {
8618 return This->lpVtbl->RegisterFontFileLoader(This,loader);
8619}
8620static inline HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) {
8621 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
8622}
8623static inline HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
8624 return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
8625}
8626static inline HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This,IDWriteTypography **typography) {
8627 return This->lpVtbl->CreateTypography(This,typography);
8628}
8629static inline HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This,IDWriteGdiInterop **gdi_interop) {
8630 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
8631}
8632static inline HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
8633 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
8634}
8635static inline HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
8636 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
8637}
8638static inline HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
8639 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
8640}
8641static inline HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This,IDWriteTextAnalyzer **analyzer) {
8642 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
8643}
8644static inline HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
8645 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
8646}
8647/*** IDWriteFactory1 methods ***/
8648static inline HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
8649 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
8650}
8651/*** IDWriteFactory2 methods ***/
8652static inline HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This,IDWriteFontFallback **fallback) {
8653 return This->lpVtbl->GetSystemFontFallback(This,fallback);
8654}
8655static inline HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
8656 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
8657}
8658static inline HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) {
8659 return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers);
8660}
8661/*** IDWriteFactory3 methods ***/
8662static inline HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
8663 return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
8664}
8665static inline HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
8666 return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
8667}
8668static inline HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
8669 return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
8670}
8671static inline HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
8672 return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
8673}
8674static inline HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This,IDWriteFontSet **fontset) {
8675 return This->lpVtbl->GetSystemFontSet(This,fontset);
8676}
8677static inline HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This,IDWriteFontSetBuilder **builder) {
8678 return This->lpVtbl->CreateFontSetBuilder(This,builder);
8679}
8680static inline HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
8681 return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
8682}
8683static inline HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
8684 return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
8685}
8686static inline HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This,IDWriteFontDownloadQueue **queue) {
8687 return This->lpVtbl->GetFontDownloadQueue(This,queue);
8688}
8689#endif
8690#endif
8691
8692#endif
8693
8694
8695#endif /* __IDWriteFactory3_INTERFACE_DEFINED__ */
8696
8697typedef struct DWRITE_GLYPH_IMAGE_DATA {
8698 const void *imageData;
8699 UINT32 imageDataSize;
8700 UINT32 uniqueDataId;
8701 UINT32 pixelsPerEm;
8702 D2D1_SIZE_U pixelSize;
8703 D2D1_POINT_2L horizontalLeftOrigin;
8704 D2D1_POINT_2L horizontalRightOrigin;
8705 D2D1_POINT_2L verticalTopOrigin;
8706 D2D1_POINT_2L verticalBottomOrigin;
8707} DWRITE_GLYPH_IMAGE_DATA;
8708/*****************************************************************************
8709 * IDWriteFontFace4 interface
8710 */
8711#ifndef __IDWriteFontFace4_INTERFACE_DEFINED__
8712#define __IDWriteFontFace4_INTERFACE_DEFINED__
8713
8714DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f);
8715#if defined(__cplusplus) && !defined(CINTERFACE)
8716MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f")
8717IDWriteFontFace4 : public IDWriteFontFace3
8718{
8719 virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_(
8720 UINT16 glyph,
8721 UINT32 ppem_first,
8722 UINT32 ppem_last,
8723 DWRITE_GLYPH_IMAGE_FORMATS *formats) = 0;
8724
8725 virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats(
8726 ) = 0;
8727
8728 virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData(
8729 UINT16 glyph,
8730 UINT32 ppem,
8731 DWRITE_GLYPH_IMAGE_FORMATS format,
8732 DWRITE_GLYPH_IMAGE_DATA *data,
8733 void **context) = 0;
8734
8735 virtual void STDMETHODCALLTYPE ReleaseGlyphImageData(
8736 void *context) = 0;
8737
8738};
8739#ifdef __CRT_UUID_DECL
8740__CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f)
8741#endif
8742#else
8743typedef struct IDWriteFontFace4Vtbl {
8744 BEGIN_INTERFACE
8745
8746 /*** IUnknown methods ***/
8747 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8748 IDWriteFontFace4 *This,
8749 REFIID riid,
8750 void **ppvObject);
8751
8752 ULONG (STDMETHODCALLTYPE *AddRef)(
8753 IDWriteFontFace4 *This);
8754
8755 ULONG (STDMETHODCALLTYPE *Release)(
8756 IDWriteFontFace4 *This);
8757
8758 /*** IDWriteFontFace methods ***/
8759 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
8760 IDWriteFontFace4 *This);
8761
8762 HRESULT (STDMETHODCALLTYPE *GetFiles)(
8763 IDWriteFontFace4 *This,
8764 UINT32 *number_of_files,
8765 IDWriteFontFile **fontfiles);
8766
8767 UINT32 (STDMETHODCALLTYPE *GetIndex)(
8768 IDWriteFontFace4 *This);
8769
8770 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
8771 IDWriteFontFace4 *This);
8772
8773 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
8774 IDWriteFontFace4 *This);
8775
8776 void (STDMETHODCALLTYPE *GetMetrics)(
8777 IDWriteFontFace4 *This,
8778 DWRITE_FONT_METRICS *metrics);
8779
8780 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
8781 IDWriteFontFace4 *This);
8782
8783 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
8784 IDWriteFontFace4 *This,
8785 const UINT16 *glyph_indices,
8786 UINT32 glyph_count,
8787 DWRITE_GLYPH_METRICS *metrics,
8788 WINBOOL is_sideways);
8789
8790 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
8791 IDWriteFontFace4 *This,
8792 const UINT32 *codepoints,
8793 UINT32 count,
8794 UINT16 *glyph_indices);
8795
8796 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
8797 IDWriteFontFace4 *This,
8798 UINT32 table_tag,
8799 const void **table_data,
8800 UINT32 *table_size,
8801 void **context,
8802 WINBOOL *exists);
8803
8804 void (STDMETHODCALLTYPE *ReleaseFontTable)(
8805 IDWriteFontFace4 *This,
8806 void *table_context);
8807
8808 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
8809 IDWriteFontFace4 *This,
8810 FLOAT emSize,
8811 const UINT16 *glyph_indices,
8812 const FLOAT *glyph_advances,
8813 const DWRITE_GLYPH_OFFSET *glyph_offsets,
8814 UINT32 glyph_count,
8815 WINBOOL is_sideways,
8816 WINBOOL is_rtl,
8817 IDWriteGeometrySink *geometrysink);
8818
8819 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
8820 IDWriteFontFace4 *This,
8821 FLOAT emSize,
8822 FLOAT pixels_per_dip,
8823 DWRITE_MEASURING_MODE mode,
8824 IDWriteRenderingParams *params,
8825 DWRITE_RENDERING_MODE *rendering_mode);
8826
8827 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
8828 IDWriteFontFace4 *This,
8829 FLOAT emSize,
8830 FLOAT pixels_per_dip,
8831 const DWRITE_MATRIX *transform,
8832 DWRITE_FONT_METRICS *metrics);
8833
8834 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
8835 IDWriteFontFace4 *This,
8836 FLOAT emSize,
8837 FLOAT pixels_per_dip,
8838 const DWRITE_MATRIX *transform,
8839 WINBOOL use_gdi_natural,
8840 const UINT16 *glyph_indices,
8841 UINT32 glyph_count,
8842 DWRITE_GLYPH_METRICS *metrics,
8843 WINBOOL is_sideways);
8844
8845 /*** IDWriteFontFace1 methods ***/
8846 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
8847 IDWriteFontFace4 *This,
8848 DWRITE_FONT_METRICS1 *metrics);
8849
8850 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
8851 IDWriteFontFace4 *This,
8852 FLOAT em_size,
8853 FLOAT pixels_per_dip,
8854 const DWRITE_MATRIX *transform,
8855 DWRITE_FONT_METRICS1 *metrics);
8856
8857 void (STDMETHODCALLTYPE *GetCaretMetrics)(
8858 IDWriteFontFace4 *This,
8859 DWRITE_CARET_METRICS *metrics);
8860
8861 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
8862 IDWriteFontFace4 *This,
8863 UINT32 max_count,
8864 DWRITE_UNICODE_RANGE *ranges,
8865 UINT32 *count);
8866
8867 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
8868 IDWriteFontFace4 *This);
8869
8870 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
8871 IDWriteFontFace4 *This,
8872 UINT32 glyph_count,
8873 const UINT16 *indices,
8874 INT32 *advances,
8875 WINBOOL is_sideways);
8876
8877 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
8878 IDWriteFontFace4 *This,
8879 FLOAT em_size,
8880 FLOAT pixels_per_dip,
8881 const DWRITE_MATRIX *transform,
8882 WINBOOL use_gdi_natural,
8883 WINBOOL is_sideways,
8884 UINT32 glyph_count,
8885 const UINT16 *indices,
8886 INT32 *advances);
8887
8888 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
8889 IDWriteFontFace4 *This,
8890 UINT32 glyph_count,
8891 const UINT16 *indices,
8892 INT32 *adjustments);
8893
8894 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
8895 IDWriteFontFace4 *This);
8896
8897 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
8898 IDWriteFontFace4 *This,
8899 FLOAT font_emsize,
8900 FLOAT dpiX,
8901 FLOAT dpiY,
8902 const DWRITE_MATRIX *transform,
8903 WINBOOL is_sideways,
8904 DWRITE_OUTLINE_THRESHOLD threshold,
8905 DWRITE_MEASURING_MODE measuring_mode,
8906 DWRITE_RENDERING_MODE *rendering_mode);
8907
8908 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
8909 IDWriteFontFace4 *This,
8910 UINT32 glyph_count,
8911 const UINT16 *nominal_indices,
8912 UINT16 *vertical_indices);
8913
8914 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
8915 IDWriteFontFace4 *This);
8916
8917 /*** IDWriteFontFace2 methods ***/
8918 WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
8919 IDWriteFontFace4 *This);
8920
8921 UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
8922 IDWriteFontFace4 *This);
8923
8924 UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
8925 IDWriteFontFace4 *This);
8926
8927 HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
8928 IDWriteFontFace4 *This,
8929 UINT32 palette_index,
8930 UINT32 first_entry_index,
8931 UINT32 entry_count,
8932 DWRITE_COLOR_F *entries);
8933
8934 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
8935 IDWriteFontFace4 *This,
8936 FLOAT fontEmSize,
8937 FLOAT dpiX,
8938 FLOAT dpiY,
8939 const DWRITE_MATRIX *transform,
8940 WINBOOL is_sideways,
8941 DWRITE_OUTLINE_THRESHOLD threshold,
8942 DWRITE_MEASURING_MODE measuringmode,
8943 IDWriteRenderingParams *params,
8944 DWRITE_RENDERING_MODE *renderingmode,
8945 DWRITE_GRID_FIT_MODE *gridfitmode);
8946
8947 /*** IDWriteFontFace3 methods ***/
8948 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
8949 IDWriteFontFace4 *This,
8950 IDWriteFontFaceReference **reference);
8951
8952 void (STDMETHODCALLTYPE *GetPanose)(
8953 IDWriteFontFace4 *This,
8954 DWRITE_PANOSE *panose);
8955
8956 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
8957 IDWriteFontFace4 *This);
8958
8959 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
8960 IDWriteFontFace4 *This);
8961
8962 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
8963 IDWriteFontFace4 *This);
8964
8965 HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
8966 IDWriteFontFace4 *This,
8967 IDWriteLocalizedStrings **names);
8968
8969 HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
8970 IDWriteFontFace4 *This,
8971 IDWriteLocalizedStrings **names);
8972
8973 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
8974 IDWriteFontFace4 *This,
8975 DWRITE_INFORMATIONAL_STRING_ID stringid,
8976 IDWriteLocalizedStrings **strings,
8977 WINBOOL *exists);
8978
8979 WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
8980 IDWriteFontFace4 *This,
8981 UINT32 character);
8982
8983 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
8984 IDWriteFontFace4 *This,
8985 FLOAT emsize,
8986 FLOAT dpi_x,
8987 FLOAT dpi_y,
8988 const DWRITE_MATRIX *transform,
8989 WINBOOL is_sideways,
8990 DWRITE_OUTLINE_THRESHOLD threshold,
8991 DWRITE_MEASURING_MODE measuring_mode,
8992 IDWriteRenderingParams *params,
8993 DWRITE_RENDERING_MODE1 *rendering_mode,
8994 DWRITE_GRID_FIT_MODE *gridfit_mode);
8995
8996 WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
8997 IDWriteFontFace4 *This,
8998 UINT32 character);
8999
9000 WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
9001 IDWriteFontFace4 *This,
9002 UINT16 glyph);
9003
9004 HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
9005 IDWriteFontFace4 *This,
9006 const WCHAR *characters,
9007 UINT32 count,
9008 WINBOOL enqueue_if_not,
9009 WINBOOL *are_local);
9010
9011 HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
9012 IDWriteFontFace4 *This,
9013 const UINT16 *glyphs,
9014 UINT32 count,
9015 WINBOOL enqueue_if_not,
9016 WINBOOL *are_local);
9017
9018 /*** IDWriteFontFace4 methods ***/
9019 HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
9020 IDWriteFontFace4 *This,
9021 UINT16 glyph,
9022 UINT32 ppem_first,
9023 UINT32 ppem_last,
9024 DWRITE_GLYPH_IMAGE_FORMATS *formats);
9025
9026 DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
9027 IDWriteFontFace4 *This);
9028
9029 HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
9030 IDWriteFontFace4 *This,
9031 UINT16 glyph,
9032 UINT32 ppem,
9033 DWRITE_GLYPH_IMAGE_FORMATS format,
9034 DWRITE_GLYPH_IMAGE_DATA *data,
9035 void **context);
9036
9037 void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
9038 IDWriteFontFace4 *This,
9039 void *context);
9040
9041 END_INTERFACE
9042} IDWriteFontFace4Vtbl;
9043
9044interface IDWriteFontFace4 {
9045 CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl;
9046};
9047
9048#ifdef COBJMACROS
9049#ifndef WIDL_C_INLINE_WRAPPERS
9050/*** IUnknown methods ***/
9051#define IDWriteFontFace4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9052#define IDWriteFontFace4_AddRef(This) (This)->lpVtbl->AddRef(This)
9053#define IDWriteFontFace4_Release(This) (This)->lpVtbl->Release(This)
9054/*** IDWriteFontFace methods ***/
9055#define IDWriteFontFace4_GetType(This) (This)->lpVtbl->GetType(This)
9056#define IDWriteFontFace4_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
9057#define IDWriteFontFace4_GetIndex(This) (This)->lpVtbl->GetIndex(This)
9058#define IDWriteFontFace4_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
9059#define IDWriteFontFace4_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
9060#define IDWriteFontFace4_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
9061#define IDWriteFontFace4_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
9062#define IDWriteFontFace4_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
9063#define IDWriteFontFace4_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
9064#define IDWriteFontFace4_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
9065#define IDWriteFontFace4_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
9066#define IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
9067/*** IDWriteFontFace1 methods ***/
9068#define IDWriteFontFace4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
9069#define IDWriteFontFace4_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
9070#define IDWriteFontFace4_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
9071#define IDWriteFontFace4_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
9072#define IDWriteFontFace4_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
9073#define IDWriteFontFace4_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
9074#define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
9075#define IDWriteFontFace4_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
9076#define IDWriteFontFace4_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
9077#define IDWriteFontFace4_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
9078#define IDWriteFontFace4_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
9079/*** IDWriteFontFace2 methods ***/
9080#define IDWriteFontFace4_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
9081#define IDWriteFontFace4_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
9082#define IDWriteFontFace4_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
9083#define IDWriteFontFace4_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
9084/*** IDWriteFontFace3 methods ***/
9085#define IDWriteFontFace4_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
9086#define IDWriteFontFace4_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
9087#define IDWriteFontFace4_GetWeight(This) (This)->lpVtbl->GetWeight(This)
9088#define IDWriteFontFace4_GetStretch(This) (This)->lpVtbl->GetStretch(This)
9089#define IDWriteFontFace4_GetStyle(This) (This)->lpVtbl->GetStyle(This)
9090#define IDWriteFontFace4_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
9091#define IDWriteFontFace4_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
9092#define IDWriteFontFace4_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
9093#define IDWriteFontFace4_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
9094#define IDWriteFontFace4_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
9095#define IDWriteFontFace4_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
9096#define IDWriteFontFace4_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
9097#define IDWriteFontFace4_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
9098#define IDWriteFontFace4_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
9099/*** IDWriteFontFace4 methods ***/
9100#define IDWriteFontFace4_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
9101#define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
9102#define IDWriteFontFace4_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
9103#define IDWriteFontFace4_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
9104#else
9105/*** IUnknown methods ***/
9106static inline HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This,REFIID riid,void **ppvObject) {
9107 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9108}
9109static inline ULONG IDWriteFontFace4_AddRef(IDWriteFontFace4* This) {
9110 return This->lpVtbl->AddRef(This);
9111}
9112static inline ULONG IDWriteFontFace4_Release(IDWriteFontFace4* This) {
9113 return This->lpVtbl->Release(This);
9114}
9115/*** IDWriteFontFace methods ***/
9116static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace4_GetType(IDWriteFontFace4* This) {
9117 return This->lpVtbl->GetType(This);
9118}
9119static inline HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
9120 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
9121}
9122static inline UINT32 IDWriteFontFace4_GetIndex(IDWriteFontFace4* This) {
9123 return This->lpVtbl->GetIndex(This);
9124}
9125static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace4_GetSimulations(IDWriteFontFace4* This) {
9126 return This->lpVtbl->GetSimulations(This);
9127}
9128static inline WINBOOL IDWriteFontFace4_IsSymbolFont(IDWriteFontFace4* This) {
9129 return This->lpVtbl->IsSymbolFont(This);
9130}
9131static inline UINT16 IDWriteFontFace4_GetGlyphCount(IDWriteFontFace4* This) {
9132 return This->lpVtbl->GetGlyphCount(This);
9133}
9134static inline HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
9135 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
9136}
9137static inline HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
9138 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
9139}
9140static inline HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
9141 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
9142}
9143static inline void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This,void *table_context) {
9144 This->lpVtbl->ReleaseFontTable(This,table_context);
9145}
9146static inline HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
9147 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
9148}
9149static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
9150 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
9151}
9152/*** IDWriteFontFace1 methods ***/
9153static inline void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This,DWRITE_FONT_METRICS1 *metrics) {
9154 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
9155}
9156static inline HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
9157 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
9158}
9159static inline void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This,DWRITE_CARET_METRICS *metrics) {
9160 This->lpVtbl->GetCaretMetrics(This,metrics);
9161}
9162static inline HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
9163 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
9164}
9165static inline WINBOOL IDWriteFontFace4_IsMonospacedFont(IDWriteFontFace4* This) {
9166 return This->lpVtbl->IsMonospacedFont(This);
9167}
9168static inline HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
9169 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
9170}
9171static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
9172 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
9173}
9174static inline HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
9175 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
9176}
9177static inline WINBOOL IDWriteFontFace4_HasKerningPairs(IDWriteFontFace4* This) {
9178 return This->lpVtbl->HasKerningPairs(This);
9179}
9180static inline HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
9181 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
9182}
9183static inline WINBOOL IDWriteFontFace4_HasVerticalGlyphVariants(IDWriteFontFace4* This) {
9184 return This->lpVtbl->HasVerticalGlyphVariants(This);
9185}
9186/*** IDWriteFontFace2 methods ***/
9187static inline WINBOOL IDWriteFontFace4_IsColorFont(IDWriteFontFace4* This) {
9188 return This->lpVtbl->IsColorFont(This);
9189}
9190static inline UINT32 IDWriteFontFace4_GetColorPaletteCount(IDWriteFontFace4* This) {
9191 return This->lpVtbl->GetColorPaletteCount(This);
9192}
9193static inline UINT32 IDWriteFontFace4_GetPaletteEntryCount(IDWriteFontFace4* This) {
9194 return This->lpVtbl->GetPaletteEntryCount(This);
9195}
9196static inline HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
9197 return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
9198}
9199/*** IDWriteFontFace3 methods ***/
9200static inline HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This,IDWriteFontFaceReference **reference) {
9201 return This->lpVtbl->GetFontFaceReference(This,reference);
9202}
9203static inline void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This,DWRITE_PANOSE *panose) {
9204 This->lpVtbl->GetPanose(This,panose);
9205}
9206static inline DWRITE_FONT_WEIGHT IDWriteFontFace4_GetWeight(IDWriteFontFace4* This) {
9207 return This->lpVtbl->GetWeight(This);
9208}
9209static inline DWRITE_FONT_STRETCH IDWriteFontFace4_GetStretch(IDWriteFontFace4* This) {
9210 return This->lpVtbl->GetStretch(This);
9211}
9212static inline DWRITE_FONT_STYLE IDWriteFontFace4_GetStyle(IDWriteFontFace4* This) {
9213 return This->lpVtbl->GetStyle(This);
9214}
9215static inline HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) {
9216 return This->lpVtbl->GetFamilyNames(This,names);
9217}
9218static inline HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) {
9219 return This->lpVtbl->GetFaceNames(This,names);
9220}
9221static inline HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
9222 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
9223}
9224static inline WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This,UINT32 character) {
9225 return This->lpVtbl->HasCharacter(This,character);
9226}
9227static inline HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
9228 return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
9229}
9230static inline WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This,UINT32 character) {
9231 return This->lpVtbl->IsCharacterLocal(This,character);
9232}
9233static inline WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This,UINT16 glyph) {
9234 return This->lpVtbl->IsGlyphLocal(This,glyph);
9235}
9236static inline HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
9237 return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
9238}
9239static inline HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
9240 return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
9241}
9242/*** IDWriteFontFace4 methods ***/
9243static inline HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
9244 return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
9245}
9246static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) {
9247 return This->lpVtbl->GetGlyphImageFormats(This);
9248}
9249static inline HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
9250 return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
9251}
9252static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This,void *context) {
9253 This->lpVtbl->ReleaseGlyphImageData(This,context);
9254}
9255#endif
9256#endif
9257
9258#endif
9259
9260
9261#endif /* __IDWriteFontFace4_INTERFACE_DEFINED__ */
9262
9263/*****************************************************************************
9264 * IDWriteFontFace5 interface
9265 */
9266#ifndef __IDWriteFontFace5_INTERFACE_DEFINED__
9267#define __IDWriteFontFace5_INTERFACE_DEFINED__
9268
9269DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29);
9270#if defined(__cplusplus) && !defined(CINTERFACE)
9271MIDL_INTERFACE("98eff3a5-b667-479a-b145-e2fa5b9fdc29")
9272IDWriteFontFace5 : public IDWriteFontFace4
9273{
9274 virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
9275 ) = 0;
9276
9277 virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
9278 DWRITE_FONT_AXIS_VALUE *values,
9279 UINT32 value_count) = 0;
9280
9281 virtual WINBOOL STDMETHODCALLTYPE HasVariations(
9282 ) = 0;
9283
9284 virtual HRESULT STDMETHODCALLTYPE GetFontResource(
9285 IDWriteFontResource **resource) = 0;
9286
9287 virtual WINBOOL STDMETHODCALLTYPE Equals(
9288 IDWriteFontFace *fontface) = 0;
9289
9290};
9291#ifdef __CRT_UUID_DECL
9292__CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29)
9293#endif
9294#else
9295typedef struct IDWriteFontFace5Vtbl {
9296 BEGIN_INTERFACE
9297
9298 /*** IUnknown methods ***/
9299 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9300 IDWriteFontFace5 *This,
9301 REFIID riid,
9302 void **ppvObject);
9303
9304 ULONG (STDMETHODCALLTYPE *AddRef)(
9305 IDWriteFontFace5 *This);
9306
9307 ULONG (STDMETHODCALLTYPE *Release)(
9308 IDWriteFontFace5 *This);
9309
9310 /*** IDWriteFontFace methods ***/
9311 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
9312 IDWriteFontFace5 *This);
9313
9314 HRESULT (STDMETHODCALLTYPE *GetFiles)(
9315 IDWriteFontFace5 *This,
9316 UINT32 *number_of_files,
9317 IDWriteFontFile **fontfiles);
9318
9319 UINT32 (STDMETHODCALLTYPE *GetIndex)(
9320 IDWriteFontFace5 *This);
9321
9322 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
9323 IDWriteFontFace5 *This);
9324
9325 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
9326 IDWriteFontFace5 *This);
9327
9328 void (STDMETHODCALLTYPE *GetMetrics)(
9329 IDWriteFontFace5 *This,
9330 DWRITE_FONT_METRICS *metrics);
9331
9332 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
9333 IDWriteFontFace5 *This);
9334
9335 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
9336 IDWriteFontFace5 *This,
9337 const UINT16 *glyph_indices,
9338 UINT32 glyph_count,
9339 DWRITE_GLYPH_METRICS *metrics,
9340 WINBOOL is_sideways);
9341
9342 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
9343 IDWriteFontFace5 *This,
9344 const UINT32 *codepoints,
9345 UINT32 count,
9346 UINT16 *glyph_indices);
9347
9348 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
9349 IDWriteFontFace5 *This,
9350 UINT32 table_tag,
9351 const void **table_data,
9352 UINT32 *table_size,
9353 void **context,
9354 WINBOOL *exists);
9355
9356 void (STDMETHODCALLTYPE *ReleaseFontTable)(
9357 IDWriteFontFace5 *This,
9358 void *table_context);
9359
9360 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
9361 IDWriteFontFace5 *This,
9362 FLOAT emSize,
9363 const UINT16 *glyph_indices,
9364 const FLOAT *glyph_advances,
9365 const DWRITE_GLYPH_OFFSET *glyph_offsets,
9366 UINT32 glyph_count,
9367 WINBOOL is_sideways,
9368 WINBOOL is_rtl,
9369 IDWriteGeometrySink *geometrysink);
9370
9371 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
9372 IDWriteFontFace5 *This,
9373 FLOAT emSize,
9374 FLOAT pixels_per_dip,
9375 DWRITE_MEASURING_MODE mode,
9376 IDWriteRenderingParams *params,
9377 DWRITE_RENDERING_MODE *rendering_mode);
9378
9379 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
9380 IDWriteFontFace5 *This,
9381 FLOAT emSize,
9382 FLOAT pixels_per_dip,
9383 const DWRITE_MATRIX *transform,
9384 DWRITE_FONT_METRICS *metrics);
9385
9386 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
9387 IDWriteFontFace5 *This,
9388 FLOAT emSize,
9389 FLOAT pixels_per_dip,
9390 const DWRITE_MATRIX *transform,
9391 WINBOOL use_gdi_natural,
9392 const UINT16 *glyph_indices,
9393 UINT32 glyph_count,
9394 DWRITE_GLYPH_METRICS *metrics,
9395 WINBOOL is_sideways);
9396
9397 /*** IDWriteFontFace1 methods ***/
9398 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
9399 IDWriteFontFace5 *This,
9400 DWRITE_FONT_METRICS1 *metrics);
9401
9402 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
9403 IDWriteFontFace5 *This,
9404 FLOAT em_size,
9405 FLOAT pixels_per_dip,
9406 const DWRITE_MATRIX *transform,
9407 DWRITE_FONT_METRICS1 *metrics);
9408
9409 void (STDMETHODCALLTYPE *GetCaretMetrics)(
9410 IDWriteFontFace5 *This,
9411 DWRITE_CARET_METRICS *metrics);
9412
9413 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
9414 IDWriteFontFace5 *This,
9415 UINT32 max_count,
9416 DWRITE_UNICODE_RANGE *ranges,
9417 UINT32 *count);
9418
9419 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
9420 IDWriteFontFace5 *This);
9421
9422 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
9423 IDWriteFontFace5 *This,
9424 UINT32 glyph_count,
9425 const UINT16 *indices,
9426 INT32 *advances,
9427 WINBOOL is_sideways);
9428
9429 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
9430 IDWriteFontFace5 *This,
9431 FLOAT em_size,
9432 FLOAT pixels_per_dip,
9433 const DWRITE_MATRIX *transform,
9434 WINBOOL use_gdi_natural,
9435 WINBOOL is_sideways,
9436 UINT32 glyph_count,
9437 const UINT16 *indices,
9438 INT32 *advances);
9439
9440 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
9441 IDWriteFontFace5 *This,
9442 UINT32 glyph_count,
9443 const UINT16 *indices,
9444 INT32 *adjustments);
9445
9446 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
9447 IDWriteFontFace5 *This);
9448
9449 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
9450 IDWriteFontFace5 *This,
9451 FLOAT font_emsize,
9452 FLOAT dpiX,
9453 FLOAT dpiY,
9454 const DWRITE_MATRIX *transform,
9455 WINBOOL is_sideways,
9456 DWRITE_OUTLINE_THRESHOLD threshold,
9457 DWRITE_MEASURING_MODE measuring_mode,
9458 DWRITE_RENDERING_MODE *rendering_mode);
9459
9460 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
9461 IDWriteFontFace5 *This,
9462 UINT32 glyph_count,
9463 const UINT16 *nominal_indices,
9464 UINT16 *vertical_indices);
9465
9466 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
9467 IDWriteFontFace5 *This);
9468
9469 /*** IDWriteFontFace2 methods ***/
9470 WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
9471 IDWriteFontFace5 *This);
9472
9473 UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
9474 IDWriteFontFace5 *This);
9475
9476 UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
9477 IDWriteFontFace5 *This);
9478
9479 HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
9480 IDWriteFontFace5 *This,
9481 UINT32 palette_index,
9482 UINT32 first_entry_index,
9483 UINT32 entry_count,
9484 DWRITE_COLOR_F *entries);
9485
9486 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
9487 IDWriteFontFace5 *This,
9488 FLOAT fontEmSize,
9489 FLOAT dpiX,
9490 FLOAT dpiY,
9491 const DWRITE_MATRIX *transform,
9492 WINBOOL is_sideways,
9493 DWRITE_OUTLINE_THRESHOLD threshold,
9494 DWRITE_MEASURING_MODE measuringmode,
9495 IDWriteRenderingParams *params,
9496 DWRITE_RENDERING_MODE *renderingmode,
9497 DWRITE_GRID_FIT_MODE *gridfitmode);
9498
9499 /*** IDWriteFontFace3 methods ***/
9500 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
9501 IDWriteFontFace5 *This,
9502 IDWriteFontFaceReference **reference);
9503
9504 void (STDMETHODCALLTYPE *GetPanose)(
9505 IDWriteFontFace5 *This,
9506 DWRITE_PANOSE *panose);
9507
9508 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
9509 IDWriteFontFace5 *This);
9510
9511 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
9512 IDWriteFontFace5 *This);
9513
9514 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
9515 IDWriteFontFace5 *This);
9516
9517 HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
9518 IDWriteFontFace5 *This,
9519 IDWriteLocalizedStrings **names);
9520
9521 HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
9522 IDWriteFontFace5 *This,
9523 IDWriteLocalizedStrings **names);
9524
9525 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
9526 IDWriteFontFace5 *This,
9527 DWRITE_INFORMATIONAL_STRING_ID stringid,
9528 IDWriteLocalizedStrings **strings,
9529 WINBOOL *exists);
9530
9531 WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
9532 IDWriteFontFace5 *This,
9533 UINT32 character);
9534
9535 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
9536 IDWriteFontFace5 *This,
9537 FLOAT emsize,
9538 FLOAT dpi_x,
9539 FLOAT dpi_y,
9540 const DWRITE_MATRIX *transform,
9541 WINBOOL is_sideways,
9542 DWRITE_OUTLINE_THRESHOLD threshold,
9543 DWRITE_MEASURING_MODE measuring_mode,
9544 IDWriteRenderingParams *params,
9545 DWRITE_RENDERING_MODE1 *rendering_mode,
9546 DWRITE_GRID_FIT_MODE *gridfit_mode);
9547
9548 WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
9549 IDWriteFontFace5 *This,
9550 UINT32 character);
9551
9552 WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
9553 IDWriteFontFace5 *This,
9554 UINT16 glyph);
9555
9556 HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
9557 IDWriteFontFace5 *This,
9558 const WCHAR *characters,
9559 UINT32 count,
9560 WINBOOL enqueue_if_not,
9561 WINBOOL *are_local);
9562
9563 HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
9564 IDWriteFontFace5 *This,
9565 const UINT16 *glyphs,
9566 UINT32 count,
9567 WINBOOL enqueue_if_not,
9568 WINBOOL *are_local);
9569
9570 /*** IDWriteFontFace4 methods ***/
9571 HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
9572 IDWriteFontFace5 *This,
9573 UINT16 glyph,
9574 UINT32 ppem_first,
9575 UINT32 ppem_last,
9576 DWRITE_GLYPH_IMAGE_FORMATS *formats);
9577
9578 DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
9579 IDWriteFontFace5 *This);
9580
9581 HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
9582 IDWriteFontFace5 *This,
9583 UINT16 glyph,
9584 UINT32 ppem,
9585 DWRITE_GLYPH_IMAGE_FORMATS format,
9586 DWRITE_GLYPH_IMAGE_DATA *data,
9587 void **context);
9588
9589 void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
9590 IDWriteFontFace5 *This,
9591 void *context);
9592
9593 /*** IDWriteFontFace5 methods ***/
9594 UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
9595 IDWriteFontFace5 *This);
9596
9597 HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
9598 IDWriteFontFace5 *This,
9599 DWRITE_FONT_AXIS_VALUE *values,
9600 UINT32 value_count);
9601
9602 WINBOOL (STDMETHODCALLTYPE *HasVariations)(
9603 IDWriteFontFace5 *This);
9604
9605 HRESULT (STDMETHODCALLTYPE *GetFontResource)(
9606 IDWriteFontFace5 *This,
9607 IDWriteFontResource **resource);
9608
9609 WINBOOL (STDMETHODCALLTYPE *Equals)(
9610 IDWriteFontFace5 *This,
9611 IDWriteFontFace *fontface);
9612
9613 END_INTERFACE
9614} IDWriteFontFace5Vtbl;
9615
9616interface IDWriteFontFace5 {
9617 CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl;
9618};
9619
9620#ifdef COBJMACROS
9621#ifndef WIDL_C_INLINE_WRAPPERS
9622/*** IUnknown methods ***/
9623#define IDWriteFontFace5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9624#define IDWriteFontFace5_AddRef(This) (This)->lpVtbl->AddRef(This)
9625#define IDWriteFontFace5_Release(This) (This)->lpVtbl->Release(This)
9626/*** IDWriteFontFace methods ***/
9627#define IDWriteFontFace5_GetType(This) (This)->lpVtbl->GetType(This)
9628#define IDWriteFontFace5_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
9629#define IDWriteFontFace5_GetIndex(This) (This)->lpVtbl->GetIndex(This)
9630#define IDWriteFontFace5_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
9631#define IDWriteFontFace5_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
9632#define IDWriteFontFace5_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
9633#define IDWriteFontFace5_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
9634#define IDWriteFontFace5_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
9635#define IDWriteFontFace5_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
9636#define IDWriteFontFace5_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
9637#define IDWriteFontFace5_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
9638#define IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
9639/*** IDWriteFontFace1 methods ***/
9640#define IDWriteFontFace5_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
9641#define IDWriteFontFace5_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
9642#define IDWriteFontFace5_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
9643#define IDWriteFontFace5_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
9644#define IDWriteFontFace5_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
9645#define IDWriteFontFace5_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
9646#define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
9647#define IDWriteFontFace5_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
9648#define IDWriteFontFace5_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
9649#define IDWriteFontFace5_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
9650#define IDWriteFontFace5_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
9651/*** IDWriteFontFace2 methods ***/
9652#define IDWriteFontFace5_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
9653#define IDWriteFontFace5_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
9654#define IDWriteFontFace5_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
9655#define IDWriteFontFace5_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
9656/*** IDWriteFontFace3 methods ***/
9657#define IDWriteFontFace5_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
9658#define IDWriteFontFace5_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
9659#define IDWriteFontFace5_GetWeight(This) (This)->lpVtbl->GetWeight(This)
9660#define IDWriteFontFace5_GetStretch(This) (This)->lpVtbl->GetStretch(This)
9661#define IDWriteFontFace5_GetStyle(This) (This)->lpVtbl->GetStyle(This)
9662#define IDWriteFontFace5_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
9663#define IDWriteFontFace5_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
9664#define IDWriteFontFace5_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
9665#define IDWriteFontFace5_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
9666#define IDWriteFontFace5_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
9667#define IDWriteFontFace5_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
9668#define IDWriteFontFace5_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
9669#define IDWriteFontFace5_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
9670#define IDWriteFontFace5_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
9671/*** IDWriteFontFace4 methods ***/
9672#define IDWriteFontFace5_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
9673#define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
9674#define IDWriteFontFace5_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
9675#define IDWriteFontFace5_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
9676/*** IDWriteFontFace5 methods ***/
9677#define IDWriteFontFace5_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
9678#define IDWriteFontFace5_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
9679#define IDWriteFontFace5_HasVariations(This) (This)->lpVtbl->HasVariations(This)
9680#define IDWriteFontFace5_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
9681#define IDWriteFontFace5_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
9682#else
9683/*** IUnknown methods ***/
9684static inline HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This,REFIID riid,void **ppvObject) {
9685 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9686}
9687static inline ULONG IDWriteFontFace5_AddRef(IDWriteFontFace5* This) {
9688 return This->lpVtbl->AddRef(This);
9689}
9690static inline ULONG IDWriteFontFace5_Release(IDWriteFontFace5* This) {
9691 return This->lpVtbl->Release(This);
9692}
9693/*** IDWriteFontFace methods ***/
9694static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace5_GetType(IDWriteFontFace5* This) {
9695 return This->lpVtbl->GetType(This);
9696}
9697static inline HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
9698 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
9699}
9700static inline UINT32 IDWriteFontFace5_GetIndex(IDWriteFontFace5* This) {
9701 return This->lpVtbl->GetIndex(This);
9702}
9703static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace5_GetSimulations(IDWriteFontFace5* This) {
9704 return This->lpVtbl->GetSimulations(This);
9705}
9706static inline WINBOOL IDWriteFontFace5_IsSymbolFont(IDWriteFontFace5* This) {
9707 return This->lpVtbl->IsSymbolFont(This);
9708}
9709static inline UINT16 IDWriteFontFace5_GetGlyphCount(IDWriteFontFace5* This) {
9710 return This->lpVtbl->GetGlyphCount(This);
9711}
9712static inline HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
9713 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
9714}
9715static inline HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
9716 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
9717}
9718static inline HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
9719 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
9720}
9721static inline void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This,void *table_context) {
9722 This->lpVtbl->ReleaseFontTable(This,table_context);
9723}
9724static inline HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
9725 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
9726}
9727static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
9728 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
9729}
9730/*** IDWriteFontFace1 methods ***/
9731static inline void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This,DWRITE_FONT_METRICS1 *metrics) {
9732 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
9733}
9734static inline HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
9735 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
9736}
9737static inline void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This,DWRITE_CARET_METRICS *metrics) {
9738 This->lpVtbl->GetCaretMetrics(This,metrics);
9739}
9740static inline HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
9741 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
9742}
9743static inline WINBOOL IDWriteFontFace5_IsMonospacedFont(IDWriteFontFace5* This) {
9744 return This->lpVtbl->IsMonospacedFont(This);
9745}
9746static inline HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
9747 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
9748}
9749static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
9750 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
9751}
9752static inline HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
9753 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
9754}
9755static inline WINBOOL IDWriteFontFace5_HasKerningPairs(IDWriteFontFace5* This) {
9756 return This->lpVtbl->HasKerningPairs(This);
9757}
9758static inline HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
9759 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
9760}
9761static inline WINBOOL IDWriteFontFace5_HasVerticalGlyphVariants(IDWriteFontFace5* This) {
9762 return This->lpVtbl->HasVerticalGlyphVariants(This);
9763}
9764/*** IDWriteFontFace2 methods ***/
9765static inline WINBOOL IDWriteFontFace5_IsColorFont(IDWriteFontFace5* This) {
9766 return This->lpVtbl->IsColorFont(This);
9767}
9768static inline UINT32 IDWriteFontFace5_GetColorPaletteCount(IDWriteFontFace5* This) {
9769 return This->lpVtbl->GetColorPaletteCount(This);
9770}
9771static inline UINT32 IDWriteFontFace5_GetPaletteEntryCount(IDWriteFontFace5* This) {
9772 return This->lpVtbl->GetPaletteEntryCount(This);
9773}
9774static inline HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
9775 return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
9776}
9777/*** IDWriteFontFace3 methods ***/
9778static inline HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This,IDWriteFontFaceReference **reference) {
9779 return This->lpVtbl->GetFontFaceReference(This,reference);
9780}
9781static inline void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This,DWRITE_PANOSE *panose) {
9782 This->lpVtbl->GetPanose(This,panose);
9783}
9784static inline DWRITE_FONT_WEIGHT IDWriteFontFace5_GetWeight(IDWriteFontFace5* This) {
9785 return This->lpVtbl->GetWeight(This);
9786}
9787static inline DWRITE_FONT_STRETCH IDWriteFontFace5_GetStretch(IDWriteFontFace5* This) {
9788 return This->lpVtbl->GetStretch(This);
9789}
9790static inline DWRITE_FONT_STYLE IDWriteFontFace5_GetStyle(IDWriteFontFace5* This) {
9791 return This->lpVtbl->GetStyle(This);
9792}
9793static inline HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) {
9794 return This->lpVtbl->GetFamilyNames(This,names);
9795}
9796static inline HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) {
9797 return This->lpVtbl->GetFaceNames(This,names);
9798}
9799static inline HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
9800 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
9801}
9802static inline WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This,UINT32 character) {
9803 return This->lpVtbl->HasCharacter(This,character);
9804}
9805static inline HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
9806 return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
9807}
9808static inline WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This,UINT32 character) {
9809 return This->lpVtbl->IsCharacterLocal(This,character);
9810}
9811static inline WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This,UINT16 glyph) {
9812 return This->lpVtbl->IsGlyphLocal(This,glyph);
9813}
9814static inline HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
9815 return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
9816}
9817static inline HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
9818 return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
9819}
9820/*** IDWriteFontFace4 methods ***/
9821static inline HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
9822 return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
9823}
9824static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) {
9825 return This->lpVtbl->GetGlyphImageFormats(This);
9826}
9827static inline HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
9828 return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
9829}
9830static inline void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This,void *context) {
9831 This->lpVtbl->ReleaseGlyphImageData(This,context);
9832}
9833/*** IDWriteFontFace5 methods ***/
9834static inline UINT32 IDWriteFontFace5_GetFontAxisValueCount(IDWriteFontFace5* This) {
9835 return This->lpVtbl->GetFontAxisValueCount(This);
9836}
9837static inline HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
9838 return This->lpVtbl->GetFontAxisValues(This,values,value_count);
9839}
9840static inline WINBOOL IDWriteFontFace5_HasVariations(IDWriteFontFace5* This) {
9841 return This->lpVtbl->HasVariations(This);
9842}
9843static inline HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This,IDWriteFontResource **resource) {
9844 return This->lpVtbl->GetFontResource(This,resource);
9845}
9846static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWriteFontFace *fontface) {
9847 return This->lpVtbl->Equals(This,fontface);
9848}
9849#endif
9850#endif
9851
9852#endif
9853
9854
9855#endif /* __IDWriteFontFace5_INTERFACE_DEFINED__ */
9856
9857/*****************************************************************************
9858 * IDWriteFontFace6 interface
9859 */
9860#ifndef __IDWriteFontFace6_INTERFACE_DEFINED__
9861#define __IDWriteFontFace6_INTERFACE_DEFINED__
9862
9863DEFINE_GUID(IID_IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad);
9864#if defined(__cplusplus) && !defined(CINTERFACE)
9865MIDL_INTERFACE("c4b1fe1b-6e84-47d5-b54c-a597981b06ad")
9866IDWriteFontFace6 : public IDWriteFontFace5
9867{
9868 virtual HRESULT STDMETHODCALLTYPE GetFamilyNames(
9869 DWRITE_FONT_FAMILY_MODEL font_family_model,
9870 IDWriteLocalizedStrings **names) = 0;
9871
9872 virtual HRESULT STDMETHODCALLTYPE GetFaceNames(
9873 DWRITE_FONT_FAMILY_MODEL font_family_model,
9874 IDWriteLocalizedStrings **names) = 0;
9875
9876};
9877#ifdef __CRT_UUID_DECL
9878__CRT_UUID_DECL(IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad)
9879#endif
9880#else
9881typedef struct IDWriteFontFace6Vtbl {
9882 BEGIN_INTERFACE
9883
9884 /*** IUnknown methods ***/
9885 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9886 IDWriteFontFace6 *This,
9887 REFIID riid,
9888 void **ppvObject);
9889
9890 ULONG (STDMETHODCALLTYPE *AddRef)(
9891 IDWriteFontFace6 *This);
9892
9893 ULONG (STDMETHODCALLTYPE *Release)(
9894 IDWriteFontFace6 *This);
9895
9896 /*** IDWriteFontFace methods ***/
9897 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
9898 IDWriteFontFace6 *This);
9899
9900 HRESULT (STDMETHODCALLTYPE *GetFiles)(
9901 IDWriteFontFace6 *This,
9902 UINT32 *number_of_files,
9903 IDWriteFontFile **fontfiles);
9904
9905 UINT32 (STDMETHODCALLTYPE *GetIndex)(
9906 IDWriteFontFace6 *This);
9907
9908 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
9909 IDWriteFontFace6 *This);
9910
9911 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
9912 IDWriteFontFace6 *This);
9913
9914 void (STDMETHODCALLTYPE *GetMetrics)(
9915 IDWriteFontFace6 *This,
9916 DWRITE_FONT_METRICS *metrics);
9917
9918 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
9919 IDWriteFontFace6 *This);
9920
9921 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
9922 IDWriteFontFace6 *This,
9923 const UINT16 *glyph_indices,
9924 UINT32 glyph_count,
9925 DWRITE_GLYPH_METRICS *metrics,
9926 WINBOOL is_sideways);
9927
9928 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
9929 IDWriteFontFace6 *This,
9930 const UINT32 *codepoints,
9931 UINT32 count,
9932 UINT16 *glyph_indices);
9933
9934 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
9935 IDWriteFontFace6 *This,
9936 UINT32 table_tag,
9937 const void **table_data,
9938 UINT32 *table_size,
9939 void **context,
9940 WINBOOL *exists);
9941
9942 void (STDMETHODCALLTYPE *ReleaseFontTable)(
9943 IDWriteFontFace6 *This,
9944 void *table_context);
9945
9946 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
9947 IDWriteFontFace6 *This,
9948 FLOAT emSize,
9949 const UINT16 *glyph_indices,
9950 const FLOAT *glyph_advances,
9951 const DWRITE_GLYPH_OFFSET *glyph_offsets,
9952 UINT32 glyph_count,
9953 WINBOOL is_sideways,
9954 WINBOOL is_rtl,
9955 IDWriteGeometrySink *geometrysink);
9956
9957 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
9958 IDWriteFontFace6 *This,
9959 FLOAT emSize,
9960 FLOAT pixels_per_dip,
9961 DWRITE_MEASURING_MODE mode,
9962 IDWriteRenderingParams *params,
9963 DWRITE_RENDERING_MODE *rendering_mode);
9964
9965 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
9966 IDWriteFontFace6 *This,
9967 FLOAT emSize,
9968 FLOAT pixels_per_dip,
9969 const DWRITE_MATRIX *transform,
9970 DWRITE_FONT_METRICS *metrics);
9971
9972 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
9973 IDWriteFontFace6 *This,
9974 FLOAT emSize,
9975 FLOAT pixels_per_dip,
9976 const DWRITE_MATRIX *transform,
9977 WINBOOL use_gdi_natural,
9978 const UINT16 *glyph_indices,
9979 UINT32 glyph_count,
9980 DWRITE_GLYPH_METRICS *metrics,
9981 WINBOOL is_sideways);
9982
9983 /*** IDWriteFontFace1 methods ***/
9984 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
9985 IDWriteFontFace6 *This,
9986 DWRITE_FONT_METRICS1 *metrics);
9987
9988 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
9989 IDWriteFontFace6 *This,
9990 FLOAT em_size,
9991 FLOAT pixels_per_dip,
9992 const DWRITE_MATRIX *transform,
9993 DWRITE_FONT_METRICS1 *metrics);
9994
9995 void (STDMETHODCALLTYPE *GetCaretMetrics)(
9996 IDWriteFontFace6 *This,
9997 DWRITE_CARET_METRICS *metrics);
9998
9999 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
10000 IDWriteFontFace6 *This,
10001 UINT32 max_count,
10002 DWRITE_UNICODE_RANGE *ranges,
10003 UINT32 *count);
10004
10005 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
10006 IDWriteFontFace6 *This);
10007
10008 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
10009 IDWriteFontFace6 *This,
10010 UINT32 glyph_count,
10011 const UINT16 *indices,
10012 INT32 *advances,
10013 WINBOOL is_sideways);
10014
10015 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
10016 IDWriteFontFace6 *This,
10017 FLOAT em_size,
10018 FLOAT pixels_per_dip,
10019 const DWRITE_MATRIX *transform,
10020 WINBOOL use_gdi_natural,
10021 WINBOOL is_sideways,
10022 UINT32 glyph_count,
10023 const UINT16 *indices,
10024 INT32 *advances);
10025
10026 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
10027 IDWriteFontFace6 *This,
10028 UINT32 glyph_count,
10029 const UINT16 *indices,
10030 INT32 *adjustments);
10031
10032 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
10033 IDWriteFontFace6 *This);
10034
10035 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
10036 IDWriteFontFace6 *This,
10037 FLOAT font_emsize,
10038 FLOAT dpiX,
10039 FLOAT dpiY,
10040 const DWRITE_MATRIX *transform,
10041 WINBOOL is_sideways,
10042 DWRITE_OUTLINE_THRESHOLD threshold,
10043 DWRITE_MEASURING_MODE measuring_mode,
10044 DWRITE_RENDERING_MODE *rendering_mode);
10045
10046 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
10047 IDWriteFontFace6 *This,
10048 UINT32 glyph_count,
10049 const UINT16 *nominal_indices,
10050 UINT16 *vertical_indices);
10051
10052 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
10053 IDWriteFontFace6 *This);
10054
10055 /*** IDWriteFontFace2 methods ***/
10056 WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
10057 IDWriteFontFace6 *This);
10058
10059 UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
10060 IDWriteFontFace6 *This);
10061
10062 UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
10063 IDWriteFontFace6 *This);
10064
10065 HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
10066 IDWriteFontFace6 *This,
10067 UINT32 palette_index,
10068 UINT32 first_entry_index,
10069 UINT32 entry_count,
10070 DWRITE_COLOR_F *entries);
10071
10072 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
10073 IDWriteFontFace6 *This,
10074 FLOAT fontEmSize,
10075 FLOAT dpiX,
10076 FLOAT dpiY,
10077 const DWRITE_MATRIX *transform,
10078 WINBOOL is_sideways,
10079 DWRITE_OUTLINE_THRESHOLD threshold,
10080 DWRITE_MEASURING_MODE measuringmode,
10081 IDWriteRenderingParams *params,
10082 DWRITE_RENDERING_MODE *renderingmode,
10083 DWRITE_GRID_FIT_MODE *gridfitmode);
10084
10085 /*** IDWriteFontFace3 methods ***/
10086 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
10087 IDWriteFontFace6 *This,
10088 IDWriteFontFaceReference **reference);
10089
10090 void (STDMETHODCALLTYPE *GetPanose)(
10091 IDWriteFontFace6 *This,
10092 DWRITE_PANOSE *panose);
10093
10094 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
10095 IDWriteFontFace6 *This);
10096
10097 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
10098 IDWriteFontFace6 *This);
10099
10100 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
10101 IDWriteFontFace6 *This);
10102
10103 HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
10104 IDWriteFontFace6 *This,
10105 IDWriteLocalizedStrings **names);
10106
10107 HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
10108 IDWriteFontFace6 *This,
10109 IDWriteLocalizedStrings **names);
10110
10111 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
10112 IDWriteFontFace6 *This,
10113 DWRITE_INFORMATIONAL_STRING_ID stringid,
10114 IDWriteLocalizedStrings **strings,
10115 WINBOOL *exists);
10116
10117 WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
10118 IDWriteFontFace6 *This,
10119 UINT32 character);
10120
10121 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
10122 IDWriteFontFace6 *This,
10123 FLOAT emsize,
10124 FLOAT dpi_x,
10125 FLOAT dpi_y,
10126 const DWRITE_MATRIX *transform,
10127 WINBOOL is_sideways,
10128 DWRITE_OUTLINE_THRESHOLD threshold,
10129 DWRITE_MEASURING_MODE measuring_mode,
10130 IDWriteRenderingParams *params,
10131 DWRITE_RENDERING_MODE1 *rendering_mode,
10132 DWRITE_GRID_FIT_MODE *gridfit_mode);
10133
10134 WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
10135 IDWriteFontFace6 *This,
10136 UINT32 character);
10137
10138 WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
10139 IDWriteFontFace6 *This,
10140 UINT16 glyph);
10141
10142 HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
10143 IDWriteFontFace6 *This,
10144 const WCHAR *characters,
10145 UINT32 count,
10146 WINBOOL enqueue_if_not,
10147 WINBOOL *are_local);
10148
10149 HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
10150 IDWriteFontFace6 *This,
10151 const UINT16 *glyphs,
10152 UINT32 count,
10153 WINBOOL enqueue_if_not,
10154 WINBOOL *are_local);
10155
10156 /*** IDWriteFontFace4 methods ***/
10157 HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
10158 IDWriteFontFace6 *This,
10159 UINT16 glyph,
10160 UINT32 ppem_first,
10161 UINT32 ppem_last,
10162 DWRITE_GLYPH_IMAGE_FORMATS *formats);
10163
10164 DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
10165 IDWriteFontFace6 *This);
10166
10167 HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
10168 IDWriteFontFace6 *This,
10169 UINT16 glyph,
10170 UINT32 ppem,
10171 DWRITE_GLYPH_IMAGE_FORMATS format,
10172 DWRITE_GLYPH_IMAGE_DATA *data,
10173 void **context);
10174
10175 void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
10176 IDWriteFontFace6 *This,
10177 void *context);
10178
10179 /*** IDWriteFontFace5 methods ***/
10180 UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
10181 IDWriteFontFace6 *This);
10182
10183 HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
10184 IDWriteFontFace6 *This,
10185 DWRITE_FONT_AXIS_VALUE *values,
10186 UINT32 value_count);
10187
10188 WINBOOL (STDMETHODCALLTYPE *HasVariations)(
10189 IDWriteFontFace6 *This);
10190
10191 HRESULT (STDMETHODCALLTYPE *GetFontResource)(
10192 IDWriteFontFace6 *This,
10193 IDWriteFontResource **resource);
10194
10195 WINBOOL (STDMETHODCALLTYPE *Equals)(
10196 IDWriteFontFace6 *This,
10197 IDWriteFontFace *fontface);
10198
10199 /*** IDWriteFontFace6 methods ***/
10200 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)(
10201 IDWriteFontFace6 *This,
10202 DWRITE_FONT_FAMILY_MODEL font_family_model,
10203 IDWriteLocalizedStrings **names);
10204
10205 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)(
10206 IDWriteFontFace6 *This,
10207 DWRITE_FONT_FAMILY_MODEL font_family_model,
10208 IDWriteLocalizedStrings **names);
10209
10210 END_INTERFACE
10211} IDWriteFontFace6Vtbl;
10212
10213interface IDWriteFontFace6 {
10214 CONST_VTBL IDWriteFontFace6Vtbl* lpVtbl;
10215};
10216
10217#ifdef COBJMACROS
10218#ifndef WIDL_C_INLINE_WRAPPERS
10219/*** IUnknown methods ***/
10220#define IDWriteFontFace6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10221#define IDWriteFontFace6_AddRef(This) (This)->lpVtbl->AddRef(This)
10222#define IDWriteFontFace6_Release(This) (This)->lpVtbl->Release(This)
10223/*** IDWriteFontFace methods ***/
10224#define IDWriteFontFace6_GetType(This) (This)->lpVtbl->GetType(This)
10225#define IDWriteFontFace6_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
10226#define IDWriteFontFace6_GetIndex(This) (This)->lpVtbl->GetIndex(This)
10227#define IDWriteFontFace6_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
10228#define IDWriteFontFace6_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
10229#define IDWriteFontFace6_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
10230#define IDWriteFontFace6_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
10231#define IDWriteFontFace6_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
10232#define IDWriteFontFace6_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
10233#define IDWriteFontFace6_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
10234#define IDWriteFontFace6_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
10235#define IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
10236/*** IDWriteFontFace1 methods ***/
10237#define IDWriteFontFace6_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
10238#define IDWriteFontFace6_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
10239#define IDWriteFontFace6_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
10240#define IDWriteFontFace6_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
10241#define IDWriteFontFace6_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
10242#define IDWriteFontFace6_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
10243#define IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
10244#define IDWriteFontFace6_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
10245#define IDWriteFontFace6_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
10246#define IDWriteFontFace6_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
10247#define IDWriteFontFace6_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
10248/*** IDWriteFontFace2 methods ***/
10249#define IDWriteFontFace6_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
10250#define IDWriteFontFace6_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
10251#define IDWriteFontFace6_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
10252#define IDWriteFontFace6_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
10253/*** IDWriteFontFace3 methods ***/
10254#define IDWriteFontFace6_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
10255#define IDWriteFontFace6_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
10256#define IDWriteFontFace6_GetWeight(This) (This)->lpVtbl->GetWeight(This)
10257#define IDWriteFontFace6_GetStretch(This) (This)->lpVtbl->GetStretch(This)
10258#define IDWriteFontFace6_GetStyle(This) (This)->lpVtbl->GetStyle(This)
10259#define IDWriteFontFace6_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
10260#define IDWriteFontFace6_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
10261#define IDWriteFontFace6_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
10262#define IDWriteFontFace6_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
10263#define IDWriteFontFace6_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
10264#define IDWriteFontFace6_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
10265#define IDWriteFontFace6_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
10266/*** IDWriteFontFace4 methods ***/
10267#define IDWriteFontFace6_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
10268#define IDWriteFontFace6_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
10269#define IDWriteFontFace6_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
10270#define IDWriteFontFace6_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
10271/*** IDWriteFontFace5 methods ***/
10272#define IDWriteFontFace6_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
10273#define IDWriteFontFace6_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
10274#define IDWriteFontFace6_HasVariations(This) (This)->lpVtbl->HasVariations(This)
10275#define IDWriteFontFace6_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
10276#define IDWriteFontFace6_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
10277/*** IDWriteFontFace6 methods ***/
10278#define IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names)
10279#define IDWriteFontFace6_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names)
10280#else
10281/*** IUnknown methods ***/
10282static inline HRESULT IDWriteFontFace6_QueryInterface(IDWriteFontFace6* This,REFIID riid,void **ppvObject) {
10283 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10284}
10285static inline ULONG IDWriteFontFace6_AddRef(IDWriteFontFace6* This) {
10286 return This->lpVtbl->AddRef(This);
10287}
10288static inline ULONG IDWriteFontFace6_Release(IDWriteFontFace6* This) {
10289 return This->lpVtbl->Release(This);
10290}
10291/*** IDWriteFontFace methods ***/
10292static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace6_GetType(IDWriteFontFace6* This) {
10293 return This->lpVtbl->GetType(This);
10294}
10295static inline HRESULT IDWriteFontFace6_GetFiles(IDWriteFontFace6* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
10296 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
10297}
10298static inline UINT32 IDWriteFontFace6_GetIndex(IDWriteFontFace6* This) {
10299 return This->lpVtbl->GetIndex(This);
10300}
10301static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace6_GetSimulations(IDWriteFontFace6* This) {
10302 return This->lpVtbl->GetSimulations(This);
10303}
10304static inline WINBOOL IDWriteFontFace6_IsSymbolFont(IDWriteFontFace6* This) {
10305 return This->lpVtbl->IsSymbolFont(This);
10306}
10307static inline UINT16 IDWriteFontFace6_GetGlyphCount(IDWriteFontFace6* This) {
10308 return This->lpVtbl->GetGlyphCount(This);
10309}
10310static inline HRESULT IDWriteFontFace6_GetDesignGlyphMetrics(IDWriteFontFace6* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
10311 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
10312}
10313static inline HRESULT IDWriteFontFace6_GetGlyphIndices(IDWriteFontFace6* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
10314 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
10315}
10316static inline HRESULT IDWriteFontFace6_TryGetFontTable(IDWriteFontFace6* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
10317 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
10318}
10319static inline void IDWriteFontFace6_ReleaseFontTable(IDWriteFontFace6* This,void *table_context) {
10320 This->lpVtbl->ReleaseFontTable(This,table_context);
10321}
10322static inline HRESULT IDWriteFontFace6_GetGlyphRunOutline(IDWriteFontFace6* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
10323 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
10324}
10325static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(IDWriteFontFace6* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
10326 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
10327}
10328/*** IDWriteFontFace1 methods ***/
10329static inline void IDWriteFontFace6_GetMetrics(IDWriteFontFace6* This,DWRITE_FONT_METRICS1 *metrics) {
10330 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
10331}
10332static inline HRESULT IDWriteFontFace6_GetGdiCompatibleMetrics(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
10333 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
10334}
10335static inline void IDWriteFontFace6_GetCaretMetrics(IDWriteFontFace6* This,DWRITE_CARET_METRICS *metrics) {
10336 This->lpVtbl->GetCaretMetrics(This,metrics);
10337}
10338static inline HRESULT IDWriteFontFace6_GetUnicodeRanges(IDWriteFontFace6* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
10339 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
10340}
10341static inline WINBOOL IDWriteFontFace6_IsMonospacedFont(IDWriteFontFace6* This) {
10342 return This->lpVtbl->IsMonospacedFont(This);
10343}
10344static inline HRESULT IDWriteFontFace6_GetDesignGlyphAdvances(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
10345 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
10346}
10347static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
10348 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
10349}
10350static inline HRESULT IDWriteFontFace6_GetKerningPairAdjustments(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
10351 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
10352}
10353static inline WINBOOL IDWriteFontFace6_HasKerningPairs(IDWriteFontFace6* This) {
10354 return This->lpVtbl->HasKerningPairs(This);
10355}
10356static inline HRESULT IDWriteFontFace6_GetVerticalGlyphVariants(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
10357 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
10358}
10359static inline WINBOOL IDWriteFontFace6_HasVerticalGlyphVariants(IDWriteFontFace6* This) {
10360 return This->lpVtbl->HasVerticalGlyphVariants(This);
10361}
10362/*** IDWriteFontFace2 methods ***/
10363static inline WINBOOL IDWriteFontFace6_IsColorFont(IDWriteFontFace6* This) {
10364 return This->lpVtbl->IsColorFont(This);
10365}
10366static inline UINT32 IDWriteFontFace6_GetColorPaletteCount(IDWriteFontFace6* This) {
10367 return This->lpVtbl->GetColorPaletteCount(This);
10368}
10369static inline UINT32 IDWriteFontFace6_GetPaletteEntryCount(IDWriteFontFace6* This) {
10370 return This->lpVtbl->GetPaletteEntryCount(This);
10371}
10372static inline HRESULT IDWriteFontFace6_GetPaletteEntries(IDWriteFontFace6* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
10373 return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
10374}
10375/*** IDWriteFontFace3 methods ***/
10376static inline HRESULT IDWriteFontFace6_GetFontFaceReference(IDWriteFontFace6* This,IDWriteFontFaceReference **reference) {
10377 return This->lpVtbl->GetFontFaceReference(This,reference);
10378}
10379static inline void IDWriteFontFace6_GetPanose(IDWriteFontFace6* This,DWRITE_PANOSE *panose) {
10380 This->lpVtbl->GetPanose(This,panose);
10381}
10382static inline DWRITE_FONT_WEIGHT IDWriteFontFace6_GetWeight(IDWriteFontFace6* This) {
10383 return This->lpVtbl->GetWeight(This);
10384}
10385static inline DWRITE_FONT_STRETCH IDWriteFontFace6_GetStretch(IDWriteFontFace6* This) {
10386 return This->lpVtbl->GetStretch(This);
10387}
10388static inline DWRITE_FONT_STYLE IDWriteFontFace6_GetStyle(IDWriteFontFace6* This) {
10389 return This->lpVtbl->GetStyle(This);
10390}
10391static inline HRESULT IDWriteFontFace6_GetInformationalStrings(IDWriteFontFace6* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
10392 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
10393}
10394static inline WINBOOL IDWriteFontFace6_HasCharacter(IDWriteFontFace6* This,UINT32 character) {
10395 return This->lpVtbl->HasCharacter(This,character);
10396}
10397static inline HRESULT IDWriteFontFace6_GetRecommendedRenderingMode(IDWriteFontFace6* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
10398 return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
10399}
10400static inline WINBOOL IDWriteFontFace6_IsCharacterLocal(IDWriteFontFace6* This,UINT32 character) {
10401 return This->lpVtbl->IsCharacterLocal(This,character);
10402}
10403static inline WINBOOL IDWriteFontFace6_IsGlyphLocal(IDWriteFontFace6* This,UINT16 glyph) {
10404 return This->lpVtbl->IsGlyphLocal(This,glyph);
10405}
10406static inline HRESULT IDWriteFontFace6_AreCharactersLocal(IDWriteFontFace6* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
10407 return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
10408}
10409static inline HRESULT IDWriteFontFace6_AreGlyphsLocal(IDWriteFontFace6* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
10410 return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
10411}
10412/*** IDWriteFontFace4 methods ***/
10413static inline HRESULT IDWriteFontFace6_GetGlyphImageFormats_(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
10414 return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
10415}
10416static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace6_GetGlyphImageFormats(IDWriteFontFace6* This) {
10417 return This->lpVtbl->GetGlyphImageFormats(This);
10418}
10419static inline HRESULT IDWriteFontFace6_GetGlyphImageData(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
10420 return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
10421}
10422static inline void IDWriteFontFace6_ReleaseGlyphImageData(IDWriteFontFace6* This,void *context) {
10423 This->lpVtbl->ReleaseGlyphImageData(This,context);
10424}
10425/*** IDWriteFontFace5 methods ***/
10426static inline UINT32 IDWriteFontFace6_GetFontAxisValueCount(IDWriteFontFace6* This) {
10427 return This->lpVtbl->GetFontAxisValueCount(This);
10428}
10429static inline HRESULT IDWriteFontFace6_GetFontAxisValues(IDWriteFontFace6* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
10430 return This->lpVtbl->GetFontAxisValues(This,values,value_count);
10431}
10432static inline WINBOOL IDWriteFontFace6_HasVariations(IDWriteFontFace6* This) {
10433 return This->lpVtbl->HasVariations(This);
10434}
10435static inline HRESULT IDWriteFontFace6_GetFontResource(IDWriteFontFace6* This,IDWriteFontResource **resource) {
10436 return This->lpVtbl->GetFontResource(This,resource);
10437}
10438static inline WINBOOL IDWriteFontFace6_Equals(IDWriteFontFace6* This,IDWriteFontFace *fontface) {
10439 return This->lpVtbl->Equals(This,fontface);
10440}
10441/*** IDWriteFontFace6 methods ***/
10442static inline HRESULT IDWriteFontFace6_GetFamilyNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
10443 return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names);
10444}
10445static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
10446 return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names);
10447}
10448#endif
10449#endif
10450
10451#endif
10452
10453
10454#endif /* __IDWriteFontFace6_INTERFACE_DEFINED__ */
10455
10456/*****************************************************************************
10457 * IDWritePaintReader interface
10458 */
10459#ifndef __IDWritePaintReader_INTERFACE_DEFINED__
10460#define __IDWritePaintReader_INTERFACE_DEFINED__
10461
10462DEFINE_GUID(IID_IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54);
10463#if defined(__cplusplus) && !defined(CINTERFACE)
10464MIDL_INTERFACE("8128e912-3b97-42a5-ab6c-24aad3a86e54")
10465IDWritePaintReader : public IUnknown
10466{
10467 virtual HRESULT STDMETHODCALLTYPE SetCurrentGlyph(
10468 UINT32 glyph_index,
10469 DWRITE_PAINT_ELEMENT *paint_element,
10470 UINT32 struct_size,
10471 D2D_RECT_F *clip_box,
10472 DWRITE_PAINT_ATTRIBUTES *glyph_attributes = 0) = 0;
10473
10474 virtual HRESULT STDMETHODCALLTYPE SetTextColor(
10475 const DWRITE_COLOR_F *text_color) = 0;
10476
10477 virtual HRESULT STDMETHODCALLTYPE SetColorPaletteIndex(
10478 UINT32 color_palette_index) = 0;
10479
10480 virtual HRESULT STDMETHODCALLTYPE SetCustomColorPalette(
10481 const DWRITE_COLOR_F *palette_entries,
10482 UINT32 palette_entry_count) = 0;
10483
10484 virtual HRESULT STDMETHODCALLTYPE MoveToFirstChild(
10485 DWRITE_PAINT_ELEMENT *paint_element,
10486 UINT32 struct_size) = 0;
10487
10488 virtual HRESULT STDMETHODCALLTYPE MoveToNextSibling(
10489 DWRITE_PAINT_ELEMENT *paint_element,
10490 UINT32 struct_size) = 0;
10491
10492 virtual HRESULT STDMETHODCALLTYPE MoveToParent(
10493 ) = 0;
10494
10495 virtual HRESULT STDMETHODCALLTYPE GetGradientStops(
10496 UINT32 first_gradient_stop_index,
10497 UINT32 gradient_stop_count,
10498 D2D1_GRADIENT_STOP *gradient_stops) = 0;
10499
10500 virtual HRESULT STDMETHODCALLTYPE GetGradientStopColors(
10501 UINT32 first_gradient_stop_index,
10502 UINT32 gradient_stop_count,
10503 DWRITE_PAINT_COLOR *gradient_stop_colors) = 0;
10504
10505};
10506#ifdef __CRT_UUID_DECL
10507__CRT_UUID_DECL(IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54)
10508#endif
10509#else
10510typedef struct IDWritePaintReaderVtbl {
10511 BEGIN_INTERFACE
10512
10513 /*** IUnknown methods ***/
10514 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10515 IDWritePaintReader *This,
10516 REFIID riid,
10517 void **ppvObject);
10518
10519 ULONG (STDMETHODCALLTYPE *AddRef)(
10520 IDWritePaintReader *This);
10521
10522 ULONG (STDMETHODCALLTYPE *Release)(
10523 IDWritePaintReader *This);
10524
10525 /*** IDWritePaintReader methods ***/
10526 HRESULT (STDMETHODCALLTYPE *SetCurrentGlyph)(
10527 IDWritePaintReader *This,
10528 UINT32 glyph_index,
10529 DWRITE_PAINT_ELEMENT *paint_element,
10530 UINT32 struct_size,
10531 D2D_RECT_F *clip_box,
10532 DWRITE_PAINT_ATTRIBUTES *glyph_attributes);
10533
10534 HRESULT (STDMETHODCALLTYPE *SetTextColor)(
10535 IDWritePaintReader *This,
10536 const DWRITE_COLOR_F *text_color);
10537
10538 HRESULT (STDMETHODCALLTYPE *SetColorPaletteIndex)(
10539 IDWritePaintReader *This,
10540 UINT32 color_palette_index);
10541
10542 HRESULT (STDMETHODCALLTYPE *SetCustomColorPalette)(
10543 IDWritePaintReader *This,
10544 const DWRITE_COLOR_F *palette_entries,
10545 UINT32 palette_entry_count);
10546
10547 HRESULT (STDMETHODCALLTYPE *MoveToFirstChild)(
10548 IDWritePaintReader *This,
10549 DWRITE_PAINT_ELEMENT *paint_element,
10550 UINT32 struct_size);
10551
10552 HRESULT (STDMETHODCALLTYPE *MoveToNextSibling)(
10553 IDWritePaintReader *This,
10554 DWRITE_PAINT_ELEMENT *paint_element,
10555 UINT32 struct_size);
10556
10557 HRESULT (STDMETHODCALLTYPE *MoveToParent)(
10558 IDWritePaintReader *This);
10559
10560 HRESULT (STDMETHODCALLTYPE *GetGradientStops)(
10561 IDWritePaintReader *This,
10562 UINT32 first_gradient_stop_index,
10563 UINT32 gradient_stop_count,
10564 D2D1_GRADIENT_STOP *gradient_stops);
10565
10566 HRESULT (STDMETHODCALLTYPE *GetGradientStopColors)(
10567 IDWritePaintReader *This,
10568 UINT32 first_gradient_stop_index,
10569 UINT32 gradient_stop_count,
10570 DWRITE_PAINT_COLOR *gradient_stop_colors);
10571
10572 END_INTERFACE
10573} IDWritePaintReaderVtbl;
10574
10575interface IDWritePaintReader {
10576 CONST_VTBL IDWritePaintReaderVtbl* lpVtbl;
10577};
10578
10579#ifdef COBJMACROS
10580#ifndef WIDL_C_INLINE_WRAPPERS
10581/*** IUnknown methods ***/
10582#define IDWritePaintReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10583#define IDWritePaintReader_AddRef(This) (This)->lpVtbl->AddRef(This)
10584#define IDWritePaintReader_Release(This) (This)->lpVtbl->Release(This)
10585/*** IDWritePaintReader methods ***/
10586#define IDWritePaintReader_SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) (This)->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes)
10587#define IDWritePaintReader_SetTextColor(This,text_color) (This)->lpVtbl->SetTextColor(This,text_color)
10588#define IDWritePaintReader_SetColorPaletteIndex(This,color_palette_index) (This)->lpVtbl->SetColorPaletteIndex(This,color_palette_index)
10589#define IDWritePaintReader_SetCustomColorPalette(This,palette_entries,palette_entry_count) (This)->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count)
10590#define IDWritePaintReader_MoveToFirstChild(This,paint_element,struct_size) (This)->lpVtbl->MoveToFirstChild(This,paint_element,struct_size)
10591#define IDWritePaintReader_MoveToNextSibling(This,paint_element,struct_size) (This)->lpVtbl->MoveToNextSibling(This,paint_element,struct_size)
10592#define IDWritePaintReader_MoveToParent(This) (This)->lpVtbl->MoveToParent(This)
10593#define IDWritePaintReader_GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) (This)->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops)
10594#define IDWritePaintReader_GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) (This)->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors)
10595#else
10596/*** IUnknown methods ***/
10597static inline HRESULT IDWritePaintReader_QueryInterface(IDWritePaintReader* This,REFIID riid,void **ppvObject) {
10598 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10599}
10600static inline ULONG IDWritePaintReader_AddRef(IDWritePaintReader* This) {
10601 return This->lpVtbl->AddRef(This);
10602}
10603static inline ULONG IDWritePaintReader_Release(IDWritePaintReader* This) {
10604 return This->lpVtbl->Release(This);
10605}
10606/*** IDWritePaintReader methods ***/
10607static inline HRESULT IDWritePaintReader_SetCurrentGlyph(IDWritePaintReader* This,UINT32 glyph_index,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size,D2D_RECT_F *clip_box,DWRITE_PAINT_ATTRIBUTES *glyph_attributes) {
10608 return This->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes);
10609}
10610static inline HRESULT IDWritePaintReader_SetTextColor(IDWritePaintReader* This,const DWRITE_COLOR_F *text_color) {
10611 return This->lpVtbl->SetTextColor(This,text_color);
10612}
10613static inline HRESULT IDWritePaintReader_SetColorPaletteIndex(IDWritePaintReader* This,UINT32 color_palette_index) {
10614 return This->lpVtbl->SetColorPaletteIndex(This,color_palette_index);
10615}
10616static inline HRESULT IDWritePaintReader_SetCustomColorPalette(IDWritePaintReader* This,const DWRITE_COLOR_F *palette_entries,UINT32 palette_entry_count) {
10617 return This->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count);
10618}
10619static inline HRESULT IDWritePaintReader_MoveToFirstChild(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) {
10620 return This->lpVtbl->MoveToFirstChild(This,paint_element,struct_size);
10621}
10622static inline HRESULT IDWritePaintReader_MoveToNextSibling(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) {
10623 return This->lpVtbl->MoveToNextSibling(This,paint_element,struct_size);
10624}
10625static inline HRESULT IDWritePaintReader_MoveToParent(IDWritePaintReader* This) {
10626 return This->lpVtbl->MoveToParent(This);
10627}
10628static inline HRESULT IDWritePaintReader_GetGradientStops(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,D2D1_GRADIENT_STOP *gradient_stops) {
10629 return This->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops);
10630}
10631static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,DWRITE_PAINT_COLOR *gradient_stop_colors) {
10632 return This->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors);
10633}
10634#endif
10635#endif
10636
10637#endif
10638
10639
10640#endif /* __IDWritePaintReader_INTERFACE_DEFINED__ */
10641
10642/*****************************************************************************
10643 * IDWriteFontFace7 interface
10644 */
10645#ifndef __IDWriteFontFace7_INTERFACE_DEFINED__
10646#define __IDWriteFontFace7_INTERFACE_DEFINED__
10647
10648DEFINE_GUID(IID_IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b);
10649#if defined(__cplusplus) && !defined(CINTERFACE)
10650MIDL_INTERFACE("3945b85b-bc95-40f7-b72c-8b73bfc7e13b")
10651IDWriteFontFace7 : public IDWriteFontFace6
10652{
10653 virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel(
10654 DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) = 0;
10655
10656 virtual HRESULT STDMETHODCALLTYPE CreatePaintReader(
10657 DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,
10658 DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,
10659 IDWritePaintReader **paint_reader) = 0;
10660
10661};
10662#ifdef __CRT_UUID_DECL
10663__CRT_UUID_DECL(IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b)
10664#endif
10665#else
10666typedef struct IDWriteFontFace7Vtbl {
10667 BEGIN_INTERFACE
10668
10669 /*** IUnknown methods ***/
10670 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10671 IDWriteFontFace7 *This,
10672 REFIID riid,
10673 void **ppvObject);
10674
10675 ULONG (STDMETHODCALLTYPE *AddRef)(
10676 IDWriteFontFace7 *This);
10677
10678 ULONG (STDMETHODCALLTYPE *Release)(
10679 IDWriteFontFace7 *This);
10680
10681 /*** IDWriteFontFace methods ***/
10682 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
10683 IDWriteFontFace7 *This);
10684
10685 HRESULT (STDMETHODCALLTYPE *GetFiles)(
10686 IDWriteFontFace7 *This,
10687 UINT32 *number_of_files,
10688 IDWriteFontFile **fontfiles);
10689
10690 UINT32 (STDMETHODCALLTYPE *GetIndex)(
10691 IDWriteFontFace7 *This);
10692
10693 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
10694 IDWriteFontFace7 *This);
10695
10696 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
10697 IDWriteFontFace7 *This);
10698
10699 void (STDMETHODCALLTYPE *GetMetrics)(
10700 IDWriteFontFace7 *This,
10701 DWRITE_FONT_METRICS *metrics);
10702
10703 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
10704 IDWriteFontFace7 *This);
10705
10706 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
10707 IDWriteFontFace7 *This,
10708 const UINT16 *glyph_indices,
10709 UINT32 glyph_count,
10710 DWRITE_GLYPH_METRICS *metrics,
10711 WINBOOL is_sideways);
10712
10713 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
10714 IDWriteFontFace7 *This,
10715 const UINT32 *codepoints,
10716 UINT32 count,
10717 UINT16 *glyph_indices);
10718
10719 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
10720 IDWriteFontFace7 *This,
10721 UINT32 table_tag,
10722 const void **table_data,
10723 UINT32 *table_size,
10724 void **context,
10725 WINBOOL *exists);
10726
10727 void (STDMETHODCALLTYPE *ReleaseFontTable)(
10728 IDWriteFontFace7 *This,
10729 void *table_context);
10730
10731 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
10732 IDWriteFontFace7 *This,
10733 FLOAT emSize,
10734 const UINT16 *glyph_indices,
10735 const FLOAT *glyph_advances,
10736 const DWRITE_GLYPH_OFFSET *glyph_offsets,
10737 UINT32 glyph_count,
10738 WINBOOL is_sideways,
10739 WINBOOL is_rtl,
10740 IDWriteGeometrySink *geometrysink);
10741
10742 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
10743 IDWriteFontFace7 *This,
10744 FLOAT emSize,
10745 FLOAT pixels_per_dip,
10746 DWRITE_MEASURING_MODE mode,
10747 IDWriteRenderingParams *params,
10748 DWRITE_RENDERING_MODE *rendering_mode);
10749
10750 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
10751 IDWriteFontFace7 *This,
10752 FLOAT emSize,
10753 FLOAT pixels_per_dip,
10754 const DWRITE_MATRIX *transform,
10755 DWRITE_FONT_METRICS *metrics);
10756
10757 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
10758 IDWriteFontFace7 *This,
10759 FLOAT emSize,
10760 FLOAT pixels_per_dip,
10761 const DWRITE_MATRIX *transform,
10762 WINBOOL use_gdi_natural,
10763 const UINT16 *glyph_indices,
10764 UINT32 glyph_count,
10765 DWRITE_GLYPH_METRICS *metrics,
10766 WINBOOL is_sideways);
10767
10768 /*** IDWriteFontFace1 methods ***/
10769 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
10770 IDWriteFontFace7 *This,
10771 DWRITE_FONT_METRICS1 *metrics);
10772
10773 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
10774 IDWriteFontFace7 *This,
10775 FLOAT em_size,
10776 FLOAT pixels_per_dip,
10777 const DWRITE_MATRIX *transform,
10778 DWRITE_FONT_METRICS1 *metrics);
10779
10780 void (STDMETHODCALLTYPE *GetCaretMetrics)(
10781 IDWriteFontFace7 *This,
10782 DWRITE_CARET_METRICS *metrics);
10783
10784 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
10785 IDWriteFontFace7 *This,
10786 UINT32 max_count,
10787 DWRITE_UNICODE_RANGE *ranges,
10788 UINT32 *count);
10789
10790 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
10791 IDWriteFontFace7 *This);
10792
10793 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
10794 IDWriteFontFace7 *This,
10795 UINT32 glyph_count,
10796 const UINT16 *indices,
10797 INT32 *advances,
10798 WINBOOL is_sideways);
10799
10800 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
10801 IDWriteFontFace7 *This,
10802 FLOAT em_size,
10803 FLOAT pixels_per_dip,
10804 const DWRITE_MATRIX *transform,
10805 WINBOOL use_gdi_natural,
10806 WINBOOL is_sideways,
10807 UINT32 glyph_count,
10808 const UINT16 *indices,
10809 INT32 *advances);
10810
10811 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
10812 IDWriteFontFace7 *This,
10813 UINT32 glyph_count,
10814 const UINT16 *indices,
10815 INT32 *adjustments);
10816
10817 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
10818 IDWriteFontFace7 *This);
10819
10820 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
10821 IDWriteFontFace7 *This,
10822 FLOAT font_emsize,
10823 FLOAT dpiX,
10824 FLOAT dpiY,
10825 const DWRITE_MATRIX *transform,
10826 WINBOOL is_sideways,
10827 DWRITE_OUTLINE_THRESHOLD threshold,
10828 DWRITE_MEASURING_MODE measuring_mode,
10829 DWRITE_RENDERING_MODE *rendering_mode);
10830
10831 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
10832 IDWriteFontFace7 *This,
10833 UINT32 glyph_count,
10834 const UINT16 *nominal_indices,
10835 UINT16 *vertical_indices);
10836
10837 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
10838 IDWriteFontFace7 *This);
10839
10840 /*** IDWriteFontFace2 methods ***/
10841 WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
10842 IDWriteFontFace7 *This);
10843
10844 UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
10845 IDWriteFontFace7 *This);
10846
10847 UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
10848 IDWriteFontFace7 *This);
10849
10850 HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
10851 IDWriteFontFace7 *This,
10852 UINT32 palette_index,
10853 UINT32 first_entry_index,
10854 UINT32 entry_count,
10855 DWRITE_COLOR_F *entries);
10856
10857 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
10858 IDWriteFontFace7 *This,
10859 FLOAT fontEmSize,
10860 FLOAT dpiX,
10861 FLOAT dpiY,
10862 const DWRITE_MATRIX *transform,
10863 WINBOOL is_sideways,
10864 DWRITE_OUTLINE_THRESHOLD threshold,
10865 DWRITE_MEASURING_MODE measuringmode,
10866 IDWriteRenderingParams *params,
10867 DWRITE_RENDERING_MODE *renderingmode,
10868 DWRITE_GRID_FIT_MODE *gridfitmode);
10869
10870 /*** IDWriteFontFace3 methods ***/
10871 HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
10872 IDWriteFontFace7 *This,
10873 IDWriteFontFaceReference **reference);
10874
10875 void (STDMETHODCALLTYPE *GetPanose)(
10876 IDWriteFontFace7 *This,
10877 DWRITE_PANOSE *panose);
10878
10879 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
10880 IDWriteFontFace7 *This);
10881
10882 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
10883 IDWriteFontFace7 *This);
10884
10885 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
10886 IDWriteFontFace7 *This);
10887
10888 HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
10889 IDWriteFontFace7 *This,
10890 IDWriteLocalizedStrings **names);
10891
10892 HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
10893 IDWriteFontFace7 *This,
10894 IDWriteLocalizedStrings **names);
10895
10896 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
10897 IDWriteFontFace7 *This,
10898 DWRITE_INFORMATIONAL_STRING_ID stringid,
10899 IDWriteLocalizedStrings **strings,
10900 WINBOOL *exists);
10901
10902 WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
10903 IDWriteFontFace7 *This,
10904 UINT32 character);
10905
10906 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
10907 IDWriteFontFace7 *This,
10908 FLOAT emsize,
10909 FLOAT dpi_x,
10910 FLOAT dpi_y,
10911 const DWRITE_MATRIX *transform,
10912 WINBOOL is_sideways,
10913 DWRITE_OUTLINE_THRESHOLD threshold,
10914 DWRITE_MEASURING_MODE measuring_mode,
10915 IDWriteRenderingParams *params,
10916 DWRITE_RENDERING_MODE1 *rendering_mode,
10917 DWRITE_GRID_FIT_MODE *gridfit_mode);
10918
10919 WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
10920 IDWriteFontFace7 *This,
10921 UINT32 character);
10922
10923 WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
10924 IDWriteFontFace7 *This,
10925 UINT16 glyph);
10926
10927 HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
10928 IDWriteFontFace7 *This,
10929 const WCHAR *characters,
10930 UINT32 count,
10931 WINBOOL enqueue_if_not,
10932 WINBOOL *are_local);
10933
10934 HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
10935 IDWriteFontFace7 *This,
10936 const UINT16 *glyphs,
10937 UINT32 count,
10938 WINBOOL enqueue_if_not,
10939 WINBOOL *are_local);
10940
10941 /*** IDWriteFontFace4 methods ***/
10942 HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
10943 IDWriteFontFace7 *This,
10944 UINT16 glyph,
10945 UINT32 ppem_first,
10946 UINT32 ppem_last,
10947 DWRITE_GLYPH_IMAGE_FORMATS *formats);
10948
10949 DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
10950 IDWriteFontFace7 *This);
10951
10952 HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
10953 IDWriteFontFace7 *This,
10954 UINT16 glyph,
10955 UINT32 ppem,
10956 DWRITE_GLYPH_IMAGE_FORMATS format,
10957 DWRITE_GLYPH_IMAGE_DATA *data,
10958 void **context);
10959
10960 void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
10961 IDWriteFontFace7 *This,
10962 void *context);
10963
10964 /*** IDWriteFontFace5 methods ***/
10965 UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
10966 IDWriteFontFace7 *This);
10967
10968 HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
10969 IDWriteFontFace7 *This,
10970 DWRITE_FONT_AXIS_VALUE *values,
10971 UINT32 value_count);
10972
10973 WINBOOL (STDMETHODCALLTYPE *HasVariations)(
10974 IDWriteFontFace7 *This);
10975
10976 HRESULT (STDMETHODCALLTYPE *GetFontResource)(
10977 IDWriteFontFace7 *This,
10978 IDWriteFontResource **resource);
10979
10980 WINBOOL (STDMETHODCALLTYPE *Equals)(
10981 IDWriteFontFace7 *This,
10982 IDWriteFontFace *fontface);
10983
10984 /*** IDWriteFontFace6 methods ***/
10985 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)(
10986 IDWriteFontFace7 *This,
10987 DWRITE_FONT_FAMILY_MODEL font_family_model,
10988 IDWriteLocalizedStrings **names);
10989
10990 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)(
10991 IDWriteFontFace7 *This,
10992 DWRITE_FONT_FAMILY_MODEL font_family_model,
10993 IDWriteLocalizedStrings **names);
10994
10995 /*** IDWriteFontFace7 methods ***/
10996 DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)(
10997 IDWriteFontFace7 *This,
10998 DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format);
10999
11000 HRESULT (STDMETHODCALLTYPE *CreatePaintReader)(
11001 IDWriteFontFace7 *This,
11002 DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,
11003 DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,
11004 IDWritePaintReader **paint_reader);
11005
11006 END_INTERFACE
11007} IDWriteFontFace7Vtbl;
11008
11009interface IDWriteFontFace7 {
11010 CONST_VTBL IDWriteFontFace7Vtbl* lpVtbl;
11011};
11012
11013#ifdef COBJMACROS
11014#ifndef WIDL_C_INLINE_WRAPPERS
11015/*** IUnknown methods ***/
11016#define IDWriteFontFace7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11017#define IDWriteFontFace7_AddRef(This) (This)->lpVtbl->AddRef(This)
11018#define IDWriteFontFace7_Release(This) (This)->lpVtbl->Release(This)
11019/*** IDWriteFontFace methods ***/
11020#define IDWriteFontFace7_GetType(This) (This)->lpVtbl->GetType(This)
11021#define IDWriteFontFace7_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
11022#define IDWriteFontFace7_GetIndex(This) (This)->lpVtbl->GetIndex(This)
11023#define IDWriteFontFace7_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
11024#define IDWriteFontFace7_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
11025#define IDWriteFontFace7_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
11026#define IDWriteFontFace7_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
11027#define IDWriteFontFace7_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
11028#define IDWriteFontFace7_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
11029#define IDWriteFontFace7_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
11030#define IDWriteFontFace7_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
11031#define IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
11032/*** IDWriteFontFace1 methods ***/
11033#define IDWriteFontFace7_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
11034#define IDWriteFontFace7_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
11035#define IDWriteFontFace7_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
11036#define IDWriteFontFace7_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
11037#define IDWriteFontFace7_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
11038#define IDWriteFontFace7_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
11039#define IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
11040#define IDWriteFontFace7_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
11041#define IDWriteFontFace7_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
11042#define IDWriteFontFace7_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
11043#define IDWriteFontFace7_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
11044/*** IDWriteFontFace2 methods ***/
11045#define IDWriteFontFace7_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
11046#define IDWriteFontFace7_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
11047#define IDWriteFontFace7_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
11048#define IDWriteFontFace7_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
11049/*** IDWriteFontFace3 methods ***/
11050#define IDWriteFontFace7_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
11051#define IDWriteFontFace7_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
11052#define IDWriteFontFace7_GetWeight(This) (This)->lpVtbl->GetWeight(This)
11053#define IDWriteFontFace7_GetStretch(This) (This)->lpVtbl->GetStretch(This)
11054#define IDWriteFontFace7_GetStyle(This) (This)->lpVtbl->GetStyle(This)
11055#define IDWriteFontFace7_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
11056#define IDWriteFontFace7_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
11057#define IDWriteFontFace7_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
11058#define IDWriteFontFace7_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
11059#define IDWriteFontFace7_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
11060#define IDWriteFontFace7_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
11061#define IDWriteFontFace7_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
11062/*** IDWriteFontFace4 methods ***/
11063#define IDWriteFontFace7_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
11064#define IDWriteFontFace7_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
11065#define IDWriteFontFace7_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
11066#define IDWriteFontFace7_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
11067/*** IDWriteFontFace5 methods ***/
11068#define IDWriteFontFace7_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
11069#define IDWriteFontFace7_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
11070#define IDWriteFontFace7_HasVariations(This) (This)->lpVtbl->HasVariations(This)
11071#define IDWriteFontFace7_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
11072#define IDWriteFontFace7_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
11073/*** IDWriteFontFace6 methods ***/
11074#define IDWriteFontFace7_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names)
11075#define IDWriteFontFace7_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names)
11076/*** IDWriteFontFace7 methods ***/
11077#define IDWriteFontFace7_GetPaintFeatureLevel(This,glyph_image_format) (This)->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format)
11078#define IDWriteFontFace7_CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) (This)->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader)
11079#else
11080/*** IUnknown methods ***/
11081static inline HRESULT IDWriteFontFace7_QueryInterface(IDWriteFontFace7* This,REFIID riid,void **ppvObject) {
11082 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11083}
11084static inline ULONG IDWriteFontFace7_AddRef(IDWriteFontFace7* This) {
11085 return This->lpVtbl->AddRef(This);
11086}
11087static inline ULONG IDWriteFontFace7_Release(IDWriteFontFace7* This) {
11088 return This->lpVtbl->Release(This);
11089}
11090/*** IDWriteFontFace methods ***/
11091static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace7_GetType(IDWriteFontFace7* This) {
11092 return This->lpVtbl->GetType(This);
11093}
11094static inline HRESULT IDWriteFontFace7_GetFiles(IDWriteFontFace7* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
11095 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
11096}
11097static inline UINT32 IDWriteFontFace7_GetIndex(IDWriteFontFace7* This) {
11098 return This->lpVtbl->GetIndex(This);
11099}
11100static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace7_GetSimulations(IDWriteFontFace7* This) {
11101 return This->lpVtbl->GetSimulations(This);
11102}
11103static inline WINBOOL IDWriteFontFace7_IsSymbolFont(IDWriteFontFace7* This) {
11104 return This->lpVtbl->IsSymbolFont(This);
11105}
11106static inline UINT16 IDWriteFontFace7_GetGlyphCount(IDWriteFontFace7* This) {
11107 return This->lpVtbl->GetGlyphCount(This);
11108}
11109static inline HRESULT IDWriteFontFace7_GetDesignGlyphMetrics(IDWriteFontFace7* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
11110 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
11111}
11112static inline HRESULT IDWriteFontFace7_GetGlyphIndices(IDWriteFontFace7* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
11113 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
11114}
11115static inline HRESULT IDWriteFontFace7_TryGetFontTable(IDWriteFontFace7* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
11116 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
11117}
11118static inline void IDWriteFontFace7_ReleaseFontTable(IDWriteFontFace7* This,void *table_context) {
11119 This->lpVtbl->ReleaseFontTable(This,table_context);
11120}
11121static inline HRESULT IDWriteFontFace7_GetGlyphRunOutline(IDWriteFontFace7* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
11122 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
11123}
11124static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(IDWriteFontFace7* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
11125 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
11126}
11127/*** IDWriteFontFace1 methods ***/
11128static inline void IDWriteFontFace7_GetMetrics(IDWriteFontFace7* This,DWRITE_FONT_METRICS1 *metrics) {
11129 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
11130}
11131static inline HRESULT IDWriteFontFace7_GetGdiCompatibleMetrics(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
11132 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
11133}
11134static inline void IDWriteFontFace7_GetCaretMetrics(IDWriteFontFace7* This,DWRITE_CARET_METRICS *metrics) {
11135 This->lpVtbl->GetCaretMetrics(This,metrics);
11136}
11137static inline HRESULT IDWriteFontFace7_GetUnicodeRanges(IDWriteFontFace7* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
11138 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
11139}
11140static inline WINBOOL IDWriteFontFace7_IsMonospacedFont(IDWriteFontFace7* This) {
11141 return This->lpVtbl->IsMonospacedFont(This);
11142}
11143static inline HRESULT IDWriteFontFace7_GetDesignGlyphAdvances(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
11144 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
11145}
11146static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
11147 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
11148}
11149static inline HRESULT IDWriteFontFace7_GetKerningPairAdjustments(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
11150 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
11151}
11152static inline WINBOOL IDWriteFontFace7_HasKerningPairs(IDWriteFontFace7* This) {
11153 return This->lpVtbl->HasKerningPairs(This);
11154}
11155static inline HRESULT IDWriteFontFace7_GetVerticalGlyphVariants(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
11156 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
11157}
11158static inline WINBOOL IDWriteFontFace7_HasVerticalGlyphVariants(IDWriteFontFace7* This) {
11159 return This->lpVtbl->HasVerticalGlyphVariants(This);
11160}
11161/*** IDWriteFontFace2 methods ***/
11162static inline WINBOOL IDWriteFontFace7_IsColorFont(IDWriteFontFace7* This) {
11163 return This->lpVtbl->IsColorFont(This);
11164}
11165static inline UINT32 IDWriteFontFace7_GetColorPaletteCount(IDWriteFontFace7* This) {
11166 return This->lpVtbl->GetColorPaletteCount(This);
11167}
11168static inline UINT32 IDWriteFontFace7_GetPaletteEntryCount(IDWriteFontFace7* This) {
11169 return This->lpVtbl->GetPaletteEntryCount(This);
11170}
11171static inline HRESULT IDWriteFontFace7_GetPaletteEntries(IDWriteFontFace7* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
11172 return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
11173}
11174/*** IDWriteFontFace3 methods ***/
11175static inline HRESULT IDWriteFontFace7_GetFontFaceReference(IDWriteFontFace7* This,IDWriteFontFaceReference **reference) {
11176 return This->lpVtbl->GetFontFaceReference(This,reference);
11177}
11178static inline void IDWriteFontFace7_GetPanose(IDWriteFontFace7* This,DWRITE_PANOSE *panose) {
11179 This->lpVtbl->GetPanose(This,panose);
11180}
11181static inline DWRITE_FONT_WEIGHT IDWriteFontFace7_GetWeight(IDWriteFontFace7* This) {
11182 return This->lpVtbl->GetWeight(This);
11183}
11184static inline DWRITE_FONT_STRETCH IDWriteFontFace7_GetStretch(IDWriteFontFace7* This) {
11185 return This->lpVtbl->GetStretch(This);
11186}
11187static inline DWRITE_FONT_STYLE IDWriteFontFace7_GetStyle(IDWriteFontFace7* This) {
11188 return This->lpVtbl->GetStyle(This);
11189}
11190static inline HRESULT IDWriteFontFace7_GetInformationalStrings(IDWriteFontFace7* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
11191 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
11192}
11193static inline WINBOOL IDWriteFontFace7_HasCharacter(IDWriteFontFace7* This,UINT32 character) {
11194 return This->lpVtbl->HasCharacter(This,character);
11195}
11196static inline HRESULT IDWriteFontFace7_GetRecommendedRenderingMode(IDWriteFontFace7* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
11197 return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
11198}
11199static inline WINBOOL IDWriteFontFace7_IsCharacterLocal(IDWriteFontFace7* This,UINT32 character) {
11200 return This->lpVtbl->IsCharacterLocal(This,character);
11201}
11202static inline WINBOOL IDWriteFontFace7_IsGlyphLocal(IDWriteFontFace7* This,UINT16 glyph) {
11203 return This->lpVtbl->IsGlyphLocal(This,glyph);
11204}
11205static inline HRESULT IDWriteFontFace7_AreCharactersLocal(IDWriteFontFace7* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
11206 return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
11207}
11208static inline HRESULT IDWriteFontFace7_AreGlyphsLocal(IDWriteFontFace7* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
11209 return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
11210}
11211/*** IDWriteFontFace4 methods ***/
11212static inline HRESULT IDWriteFontFace7_GetGlyphImageFormats_(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
11213 return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
11214}
11215static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace7_GetGlyphImageFormats(IDWriteFontFace7* This) {
11216 return This->lpVtbl->GetGlyphImageFormats(This);
11217}
11218static inline HRESULT IDWriteFontFace7_GetGlyphImageData(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
11219 return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
11220}
11221static inline void IDWriteFontFace7_ReleaseGlyphImageData(IDWriteFontFace7* This,void *context) {
11222 This->lpVtbl->ReleaseGlyphImageData(This,context);
11223}
11224/*** IDWriteFontFace5 methods ***/
11225static inline UINT32 IDWriteFontFace7_GetFontAxisValueCount(IDWriteFontFace7* This) {
11226 return This->lpVtbl->GetFontAxisValueCount(This);
11227}
11228static inline HRESULT IDWriteFontFace7_GetFontAxisValues(IDWriteFontFace7* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
11229 return This->lpVtbl->GetFontAxisValues(This,values,value_count);
11230}
11231static inline WINBOOL IDWriteFontFace7_HasVariations(IDWriteFontFace7* This) {
11232 return This->lpVtbl->HasVariations(This);
11233}
11234static inline HRESULT IDWriteFontFace7_GetFontResource(IDWriteFontFace7* This,IDWriteFontResource **resource) {
11235 return This->lpVtbl->GetFontResource(This,resource);
11236}
11237static inline WINBOOL IDWriteFontFace7_Equals(IDWriteFontFace7* This,IDWriteFontFace *fontface) {
11238 return This->lpVtbl->Equals(This,fontface);
11239}
11240/*** IDWriteFontFace6 methods ***/
11241static inline HRESULT IDWriteFontFace7_GetFamilyNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
11242 return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names);
11243}
11244static inline HRESULT IDWriteFontFace7_GetFaceNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
11245 return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names);
11246}
11247/*** IDWriteFontFace7 methods ***/
11248static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteFontFace7_GetPaintFeatureLevel(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) {
11249 return This->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format);
11250}
11251static inline HRESULT IDWriteFontFace7_CreatePaintReader(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,IDWritePaintReader **paint_reader) {
11252 return This->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader);
11253}
11254#endif
11255#endif
11256
11257#endif
11258
11259
11260#endif /* __IDWriteFontFace7_INTERFACE_DEFINED__ */
11261
11262typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1;
11263struct DWRITE_COLOR_GLYPH_RUN1
11264{
11265 DWRITE_GLYPH_RUN glyphRun;
11266 DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;
11267 FLOAT baselineOriginX;
11268 FLOAT baselineOriginY;
11269 DWRITE_COLOR_F runColor;
11270 UINT16 paletteIndex;
11271#ifdef _WIN64
11272 UINT32 _pad;
11273#endif
11274 DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat;
11275 DWRITE_MEASURING_MODE measuringMode;
11276};
11277/*****************************************************************************
11278 * IDWriteColorGlyphRunEnumerator1 interface
11279 */
11280#ifndef __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__
11281#define __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__
11282
11283DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35);
11284#if defined(__cplusplus) && !defined(CINTERFACE)
11285MIDL_INTERFACE("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35")
11286IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator
11287{
11288 virtual HRESULT STDMETHODCALLTYPE GetCurrentRun(
11289 const DWRITE_COLOR_GLYPH_RUN1 **run) = 0;
11290
11291};
11292#ifdef __CRT_UUID_DECL
11293__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35)
11294#endif
11295#else
11296typedef struct IDWriteColorGlyphRunEnumerator1Vtbl {
11297 BEGIN_INTERFACE
11298
11299 /*** IUnknown methods ***/
11300 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11301 IDWriteColorGlyphRunEnumerator1 *This,
11302 REFIID riid,
11303 void **ppvObject);
11304
11305 ULONG (STDMETHODCALLTYPE *AddRef)(
11306 IDWriteColorGlyphRunEnumerator1 *This);
11307
11308 ULONG (STDMETHODCALLTYPE *Release)(
11309 IDWriteColorGlyphRunEnumerator1 *This);
11310
11311 /*** IDWriteColorGlyphRunEnumerator methods ***/
11312 HRESULT (STDMETHODCALLTYPE *MoveNext)(
11313 IDWriteColorGlyphRunEnumerator1 *This,
11314 WINBOOL *hasRun);
11315
11316 HRESULT (STDMETHODCALLTYPE *GetCurrentRun)(
11317 IDWriteColorGlyphRunEnumerator1 *This,
11318 const DWRITE_COLOR_GLYPH_RUN **run);
11319
11320 /*** IDWriteColorGlyphRunEnumerator1 methods ***/
11321 HRESULT (STDMETHODCALLTYPE *IDWriteColorGlyphRunEnumerator1_GetCurrentRun)(
11322 IDWriteColorGlyphRunEnumerator1 *This,
11323 const DWRITE_COLOR_GLYPH_RUN1 **run);
11324
11325 END_INTERFACE
11326} IDWriteColorGlyphRunEnumerator1Vtbl;
11327
11328interface IDWriteColorGlyphRunEnumerator1 {
11329 CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl;
11330};
11331
11332#ifdef COBJMACROS
11333#ifndef WIDL_C_INLINE_WRAPPERS
11334/*** IUnknown methods ***/
11335#define IDWriteColorGlyphRunEnumerator1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11336#define IDWriteColorGlyphRunEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This)
11337#define IDWriteColorGlyphRunEnumerator1_Release(This) (This)->lpVtbl->Release(This)
11338/*** IDWriteColorGlyphRunEnumerator methods ***/
11339#define IDWriteColorGlyphRunEnumerator1_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun)
11340/*** IDWriteColorGlyphRunEnumerator1 methods ***/
11341#define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run)
11342#else
11343/*** IUnknown methods ***/
11344static inline HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This,REFIID riid,void **ppvObject) {
11345 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11346}
11347static inline ULONG IDWriteColorGlyphRunEnumerator1_AddRef(IDWriteColorGlyphRunEnumerator1* This) {
11348 return This->lpVtbl->AddRef(This);
11349}
11350static inline ULONG IDWriteColorGlyphRunEnumerator1_Release(IDWriteColorGlyphRunEnumerator1* This) {
11351 return This->lpVtbl->Release(This);
11352}
11353/*** IDWriteColorGlyphRunEnumerator methods ***/
11354static inline HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This,WINBOOL *hasRun) {
11355 return This->lpVtbl->MoveNext(This,hasRun);
11356}
11357/*** IDWriteColorGlyphRunEnumerator1 methods ***/
11358static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This,const DWRITE_COLOR_GLYPH_RUN1 **run) {
11359 return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run);
11360}
11361#endif
11362#endif
11363
11364#endif
11365
11366
11367#endif /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */
11368
11369/*****************************************************************************
11370 * IDWriteFactory4 interface
11371 */
11372#ifndef __IDWriteFactory4_INTERFACE_DEFINED__
11373#define __IDWriteFactory4_INTERFACE_DEFINED__
11374
11375DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56);
11376#if defined(__cplusplus) && !defined(CINTERFACE)
11377MIDL_INTERFACE("4b0b5bd3-0797-4549-8ac5-fe915cc53856")
11378IDWriteFactory4 : public IDWriteFactory3
11379{
11380 virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
11381 D2D1_POINT_2F baseline_origin,
11382 const DWRITE_GLYPH_RUN *run,
11383 const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
11384 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
11385 DWRITE_MEASURING_MODE measuring_mode,
11386 const DWRITE_MATRIX *transform,
11387 UINT32 palette,
11388 IDWriteColorGlyphRunEnumerator1 **layers) = 0;
11389
11390 virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_(
11391 const DWRITE_GLYPH_RUN *run,
11392 D2D1_POINT_2F baseline_origin,
11393 D2D1_POINT_2F *origins) = 0;
11394
11395 virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins(
11396 const DWRITE_GLYPH_RUN *run,
11397 DWRITE_MEASURING_MODE measuring_mode,
11398 D2D1_POINT_2F baseline_origin,
11399 const DWRITE_MATRIX *transform,
11400 D2D1_POINT_2F *origins) = 0;
11401
11402};
11403#ifdef __CRT_UUID_DECL
11404__CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56)
11405#endif
11406#else
11407typedef struct IDWriteFactory4Vtbl {
11408 BEGIN_INTERFACE
11409
11410 /*** IUnknown methods ***/
11411 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11412 IDWriteFactory4 *This,
11413 REFIID riid,
11414 void **ppvObject);
11415
11416 ULONG (STDMETHODCALLTYPE *AddRef)(
11417 IDWriteFactory4 *This);
11418
11419 ULONG (STDMETHODCALLTYPE *Release)(
11420 IDWriteFactory4 *This);
11421
11422 /*** IDWriteFactory methods ***/
11423 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
11424 IDWriteFactory4 *This,
11425 IDWriteFontCollection **collection,
11426 WINBOOL check_for_updates);
11427
11428 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
11429 IDWriteFactory4 *This,
11430 IDWriteFontCollectionLoader *loader,
11431 const void *key,
11432 UINT32 key_size,
11433 IDWriteFontCollection **collection);
11434
11435 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
11436 IDWriteFactory4 *This,
11437 IDWriteFontCollectionLoader *loader);
11438
11439 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
11440 IDWriteFactory4 *This,
11441 IDWriteFontCollectionLoader *loader);
11442
11443 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
11444 IDWriteFactory4 *This,
11445 const WCHAR *path,
11446 const FILETIME *writetime,
11447 IDWriteFontFile **font_file);
11448
11449 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
11450 IDWriteFactory4 *This,
11451 const void *reference_key,
11452 UINT32 key_size,
11453 IDWriteFontFileLoader *loader,
11454 IDWriteFontFile **font_file);
11455
11456 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
11457 IDWriteFactory4 *This,
11458 DWRITE_FONT_FACE_TYPE facetype,
11459 UINT32 files_number,
11460 IDWriteFontFile *const *font_files,
11461 UINT32 index,
11462 DWRITE_FONT_SIMULATIONS sim_flags,
11463 IDWriteFontFace **font_face);
11464
11465 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
11466 IDWriteFactory4 *This,
11467 IDWriteRenderingParams **params);
11468
11469 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
11470 IDWriteFactory4 *This,
11471 HMONITOR monitor,
11472 IDWriteRenderingParams **params);
11473
11474 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
11475 IDWriteFactory4 *This,
11476 FLOAT gamma,
11477 FLOAT enhancedContrast,
11478 FLOAT cleartype_level,
11479 DWRITE_PIXEL_GEOMETRY geometry,
11480 DWRITE_RENDERING_MODE mode,
11481 IDWriteRenderingParams **params);
11482
11483 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
11484 IDWriteFactory4 *This,
11485 IDWriteFontFileLoader *loader);
11486
11487 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
11488 IDWriteFactory4 *This,
11489 IDWriteFontFileLoader *loader);
11490
11491 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
11492 IDWriteFactory4 *This,
11493 const WCHAR *family_name,
11494 IDWriteFontCollection *collection,
11495 DWRITE_FONT_WEIGHT weight,
11496 DWRITE_FONT_STYLE style,
11497 DWRITE_FONT_STRETCH stretch,
11498 FLOAT size,
11499 const WCHAR *locale,
11500 IDWriteTextFormat **format);
11501
11502 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
11503 IDWriteFactory4 *This,
11504 IDWriteTypography **typography);
11505
11506 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
11507 IDWriteFactory4 *This,
11508 IDWriteGdiInterop **gdi_interop);
11509
11510 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
11511 IDWriteFactory4 *This,
11512 const WCHAR *string,
11513 UINT32 len,
11514 IDWriteTextFormat *format,
11515 FLOAT max_width,
11516 FLOAT max_height,
11517 IDWriteTextLayout **layout);
11518
11519 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
11520 IDWriteFactory4 *This,
11521 const WCHAR *string,
11522 UINT32 len,
11523 IDWriteTextFormat *format,
11524 FLOAT layout_width,
11525 FLOAT layout_height,
11526 FLOAT pixels_per_dip,
11527 const DWRITE_MATRIX *transform,
11528 WINBOOL use_gdi_natural,
11529 IDWriteTextLayout **layout);
11530
11531 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
11532 IDWriteFactory4 *This,
11533 IDWriteTextFormat *format,
11534 IDWriteInlineObject **trimming_sign);
11535
11536 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
11537 IDWriteFactory4 *This,
11538 IDWriteTextAnalyzer **analyzer);
11539
11540 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
11541 IDWriteFactory4 *This,
11542 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
11543 const WCHAR *locale,
11544 WINBOOL ignore_user_override,
11545 IDWriteNumberSubstitution **substitution);
11546
11547 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
11548 IDWriteFactory4 *This,
11549 const DWRITE_GLYPH_RUN *glyph_run,
11550 FLOAT pixels_per_dip,
11551 const DWRITE_MATRIX *transform,
11552 DWRITE_RENDERING_MODE rendering_mode,
11553 DWRITE_MEASURING_MODE measuring_mode,
11554 FLOAT baseline_x,
11555 FLOAT baseline_y,
11556 IDWriteGlyphRunAnalysis **analysis);
11557
11558 /*** IDWriteFactory1 methods ***/
11559 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
11560 IDWriteFactory4 *This,
11561 IDWriteFontCollection **collection,
11562 WINBOOL check_for_updates);
11563
11564 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
11565 IDWriteFactory4 *This,
11566 FLOAT gamma,
11567 FLOAT enhcontrast,
11568 FLOAT enhcontrast_grayscale,
11569 FLOAT cleartype_level,
11570 DWRITE_PIXEL_GEOMETRY geometry,
11571 DWRITE_RENDERING_MODE mode,
11572 IDWriteRenderingParams1 **params);
11573
11574 /*** IDWriteFactory2 methods ***/
11575 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
11576 IDWriteFactory4 *This,
11577 IDWriteFontFallback **fallback);
11578
11579 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
11580 IDWriteFactory4 *This,
11581 IDWriteFontFallbackBuilder **fallbackbuilder);
11582
11583 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
11584 IDWriteFactory4 *This,
11585 FLOAT originX,
11586 FLOAT originY,
11587 const DWRITE_GLYPH_RUN *run,
11588 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
11589 DWRITE_MEASURING_MODE mode,
11590 const DWRITE_MATRIX *transform,
11591 UINT32 palette_index,
11592 IDWriteColorGlyphRunEnumerator **colorlayers);
11593
11594 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
11595 IDWriteFactory4 *This,
11596 FLOAT gamma,
11597 FLOAT contrast,
11598 FLOAT grayscalecontrast,
11599 FLOAT cleartypeLevel,
11600 DWRITE_PIXEL_GEOMETRY pixelGeometry,
11601 DWRITE_RENDERING_MODE renderingMode,
11602 DWRITE_GRID_FIT_MODE gridFitMode,
11603 IDWriteRenderingParams2 **params);
11604
11605 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
11606 IDWriteFactory4 *This,
11607 const DWRITE_GLYPH_RUN *run,
11608 const DWRITE_MATRIX *transform,
11609 DWRITE_RENDERING_MODE renderingMode,
11610 DWRITE_MEASURING_MODE measuringMode,
11611 DWRITE_GRID_FIT_MODE gridFitMode,
11612 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
11613 FLOAT originX,
11614 FLOAT originY,
11615 IDWriteGlyphRunAnalysis **analysis);
11616
11617 /*** IDWriteFactory3 methods ***/
11618 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
11619 IDWriteFactory4 *This,
11620 const DWRITE_GLYPH_RUN *run,
11621 const DWRITE_MATRIX *transform,
11622 DWRITE_RENDERING_MODE1 rendering_mode,
11623 DWRITE_MEASURING_MODE measuring_mode,
11624 DWRITE_GRID_FIT_MODE gridfit_mode,
11625 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
11626 FLOAT origin_x,
11627 FLOAT origin_y,
11628 IDWriteGlyphRunAnalysis **analysis);
11629
11630 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
11631 IDWriteFactory4 *This,
11632 FLOAT gamma,
11633 FLOAT enhanced_contrast,
11634 FLOAT grayscale_enhanced_contrast,
11635 FLOAT cleartype_level,
11636 DWRITE_PIXEL_GEOMETRY pixel_geometry,
11637 DWRITE_RENDERING_MODE1 rendering_mode,
11638 DWRITE_GRID_FIT_MODE gridfit_mode,
11639 IDWriteRenderingParams3 **params);
11640
11641 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
11642 IDWriteFactory4 *This,
11643 IDWriteFontFile *file,
11644 UINT32 index,
11645 DWRITE_FONT_SIMULATIONS simulations,
11646 IDWriteFontFaceReference **reference);
11647
11648 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
11649 IDWriteFactory4 *This,
11650 const WCHAR *path,
11651 const FILETIME *writetime,
11652 UINT32 index,
11653 DWRITE_FONT_SIMULATIONS simulations,
11654 IDWriteFontFaceReference **reference);
11655
11656 HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
11657 IDWriteFactory4 *This,
11658 IDWriteFontSet **fontset);
11659
11660 HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
11661 IDWriteFactory4 *This,
11662 IDWriteFontSetBuilder **builder);
11663
11664 HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
11665 IDWriteFactory4 *This,
11666 IDWriteFontSet *fontset,
11667 IDWriteFontCollection1 **collection);
11668
11669 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
11670 IDWriteFactory4 *This,
11671 WINBOOL include_downloadable,
11672 IDWriteFontCollection1 **collection,
11673 WINBOOL check_for_updates);
11674
11675 HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
11676 IDWriteFactory4 *This,
11677 IDWriteFontDownloadQueue **queue);
11678
11679 /*** IDWriteFactory4 methods ***/
11680 HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
11681 IDWriteFactory4 *This,
11682 D2D1_POINT_2F baseline_origin,
11683 const DWRITE_GLYPH_RUN *run,
11684 const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
11685 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
11686 DWRITE_MEASURING_MODE measuring_mode,
11687 const DWRITE_MATRIX *transform,
11688 UINT32 palette,
11689 IDWriteColorGlyphRunEnumerator1 **layers);
11690
11691 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
11692 IDWriteFactory4 *This,
11693 const DWRITE_GLYPH_RUN *run,
11694 D2D1_POINT_2F baseline_origin,
11695 D2D1_POINT_2F *origins);
11696
11697 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
11698 IDWriteFactory4 *This,
11699 const DWRITE_GLYPH_RUN *run,
11700 DWRITE_MEASURING_MODE measuring_mode,
11701 D2D1_POINT_2F baseline_origin,
11702 const DWRITE_MATRIX *transform,
11703 D2D1_POINT_2F *origins);
11704
11705 END_INTERFACE
11706} IDWriteFactory4Vtbl;
11707
11708interface IDWriteFactory4 {
11709 CONST_VTBL IDWriteFactory4Vtbl* lpVtbl;
11710};
11711
11712#ifdef COBJMACROS
11713#ifndef WIDL_C_INLINE_WRAPPERS
11714/*** IUnknown methods ***/
11715#define IDWriteFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11716#define IDWriteFactory4_AddRef(This) (This)->lpVtbl->AddRef(This)
11717#define IDWriteFactory4_Release(This) (This)->lpVtbl->Release(This)
11718/*** IDWriteFactory methods ***/
11719#define IDWriteFactory4_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
11720#define IDWriteFactory4_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
11721#define IDWriteFactory4_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
11722#define IDWriteFactory4_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
11723#define IDWriteFactory4_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
11724#define IDWriteFactory4_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
11725#define IDWriteFactory4_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
11726#define IDWriteFactory4_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
11727#define IDWriteFactory4_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
11728#define IDWriteFactory4_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
11729#define IDWriteFactory4_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
11730#define IDWriteFactory4_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
11731#define IDWriteFactory4_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
11732#define IDWriteFactory4_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
11733#define IDWriteFactory4_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
11734#define IDWriteFactory4_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
11735#define IDWriteFactory4_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
11736#define IDWriteFactory4_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
11737/*** IDWriteFactory1 methods ***/
11738#define IDWriteFactory4_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
11739/*** IDWriteFactory2 methods ***/
11740#define IDWriteFactory4_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
11741#define IDWriteFactory4_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
11742/*** IDWriteFactory3 methods ***/
11743#define IDWriteFactory4_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
11744#define IDWriteFactory4_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
11745#define IDWriteFactory4_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
11746#define IDWriteFactory4_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
11747#define IDWriteFactory4_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
11748#define IDWriteFactory4_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder)
11749#define IDWriteFactory4_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
11750#define IDWriteFactory4_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
11751#define IDWriteFactory4_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
11752/*** IDWriteFactory4 methods ***/
11753#define IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
11754#define IDWriteFactory4_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
11755#define IDWriteFactory4_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
11756#else
11757/*** IUnknown methods ***/
11758static inline HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This,REFIID riid,void **ppvObject) {
11759 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11760}
11761static inline ULONG IDWriteFactory4_AddRef(IDWriteFactory4* This) {
11762 return This->lpVtbl->AddRef(This);
11763}
11764static inline ULONG IDWriteFactory4_Release(IDWriteFactory4* This) {
11765 return This->lpVtbl->Release(This);
11766}
11767/*** IDWriteFactory methods ***/
11768static inline HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
11769 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
11770}
11771static inline HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) {
11772 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
11773}
11774static inline HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) {
11775 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
11776}
11777static inline HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
11778 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
11779}
11780static inline HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
11781 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
11782}
11783static inline HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
11784 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
11785}
11786static inline HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This,IDWriteRenderingParams **params) {
11787 return This->lpVtbl->CreateRenderingParams(This,params);
11788}
11789static inline HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This,HMONITOR monitor,IDWriteRenderingParams **params) {
11790 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
11791}
11792static inline HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) {
11793 return This->lpVtbl->RegisterFontFileLoader(This,loader);
11794}
11795static inline HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) {
11796 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
11797}
11798static inline HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
11799 return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
11800}
11801static inline HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This,IDWriteTypography **typography) {
11802 return This->lpVtbl->CreateTypography(This,typography);
11803}
11804static inline HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This,IDWriteGdiInterop **gdi_interop) {
11805 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
11806}
11807static inline HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
11808 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
11809}
11810static inline HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
11811 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
11812}
11813static inline HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
11814 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
11815}
11816static inline HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This,IDWriteTextAnalyzer **analyzer) {
11817 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
11818}
11819static inline HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
11820 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
11821}
11822/*** IDWriteFactory1 methods ***/
11823static inline HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
11824 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
11825}
11826/*** IDWriteFactory2 methods ***/
11827static inline HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This,IDWriteFontFallback **fallback) {
11828 return This->lpVtbl->GetSystemFontFallback(This,fallback);
11829}
11830static inline HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
11831 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
11832}
11833/*** IDWriteFactory3 methods ***/
11834static inline HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
11835 return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
11836}
11837static inline HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
11838 return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
11839}
11840static inline HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
11841 return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
11842}
11843static inline HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
11844 return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
11845}
11846static inline HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This,IDWriteFontSet **fontset) {
11847 return This->lpVtbl->GetSystemFontSet(This,fontset);
11848}
11849static inline HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This,IDWriteFontSetBuilder **builder) {
11850 return This->lpVtbl->CreateFontSetBuilder(This,builder);
11851}
11852static inline HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
11853 return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
11854}
11855static inline HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
11856 return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
11857}
11858static inline HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This,IDWriteFontDownloadQueue **queue) {
11859 return This->lpVtbl->GetFontDownloadQueue(This,queue);
11860}
11861/*** IDWriteFactory4 methods ***/
11862static inline HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
11863 return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
11864}
11865static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
11866 return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
11867}
11868static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
11869 return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
11870}
11871#endif
11872#endif
11873
11874#endif
11875
11876
11877#endif /* __IDWriteFactory4_INTERFACE_DEFINED__ */
11878
11879/*****************************************************************************
11880 * IDWriteAsyncResult interface
11881 */
11882#ifndef __IDWriteAsyncResult_INTERFACE_DEFINED__
11883#define __IDWriteAsyncResult_INTERFACE_DEFINED__
11884
11885DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2);
11886#if defined(__cplusplus) && !defined(CINTERFACE)
11887MIDL_INTERFACE("ce25f8fd-863b-4d13-9651-c1f88dc73fe2")
11888IDWriteAsyncResult : public IUnknown
11889{
11890 virtual HANDLE STDMETHODCALLTYPE GetWaitHandle(
11891 ) = 0;
11892
11893 virtual HRESULT STDMETHODCALLTYPE GetResult(
11894 ) = 0;
11895
11896};
11897#ifdef __CRT_UUID_DECL
11898__CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2)
11899#endif
11900#else
11901typedef struct IDWriteAsyncResultVtbl {
11902 BEGIN_INTERFACE
11903
11904 /*** IUnknown methods ***/
11905 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11906 IDWriteAsyncResult *This,
11907 REFIID riid,
11908 void **ppvObject);
11909
11910 ULONG (STDMETHODCALLTYPE *AddRef)(
11911 IDWriteAsyncResult *This);
11912
11913 ULONG (STDMETHODCALLTYPE *Release)(
11914 IDWriteAsyncResult *This);
11915
11916 /*** IDWriteAsyncResult methods ***/
11917 HANDLE (STDMETHODCALLTYPE *GetWaitHandle)(
11918 IDWriteAsyncResult *This);
11919
11920 HRESULT (STDMETHODCALLTYPE *GetResult)(
11921 IDWriteAsyncResult *This);
11922
11923 END_INTERFACE
11924} IDWriteAsyncResultVtbl;
11925
11926interface IDWriteAsyncResult {
11927 CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl;
11928};
11929
11930#ifdef COBJMACROS
11931#ifndef WIDL_C_INLINE_WRAPPERS
11932/*** IUnknown methods ***/
11933#define IDWriteAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11934#define IDWriteAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This)
11935#define IDWriteAsyncResult_Release(This) (This)->lpVtbl->Release(This)
11936/*** IDWriteAsyncResult methods ***/
11937#define IDWriteAsyncResult_GetWaitHandle(This) (This)->lpVtbl->GetWaitHandle(This)
11938#define IDWriteAsyncResult_GetResult(This) (This)->lpVtbl->GetResult(This)
11939#else
11940/*** IUnknown methods ***/
11941static inline HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This,REFIID riid,void **ppvObject) {
11942 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11943}
11944static inline ULONG IDWriteAsyncResult_AddRef(IDWriteAsyncResult* This) {
11945 return This->lpVtbl->AddRef(This);
11946}
11947static inline ULONG IDWriteAsyncResult_Release(IDWriteAsyncResult* This) {
11948 return This->lpVtbl->Release(This);
11949}
11950/*** IDWriteAsyncResult methods ***/
11951static inline HANDLE IDWriteAsyncResult_GetWaitHandle(IDWriteAsyncResult* This) {
11952 return This->lpVtbl->GetWaitHandle(This);
11953}
11954static inline HRESULT IDWriteAsyncResult_GetResult(IDWriteAsyncResult* This) {
11955 return This->lpVtbl->GetResult(This);
11956}
11957#endif
11958#endif
11959
11960#endif
11961
11962
11963#endif /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */
11964
11965typedef struct DWRITE_FILE_FRAGMENT {
11966 UINT64 fileOffset;
11967 UINT64 fragmentSize;
11968} DWRITE_FILE_FRAGMENT;
11969/*****************************************************************************
11970 * IDWriteRemoteFontFileStream interface
11971 */
11972#ifndef __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__
11973#define __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__
11974
11975DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c);
11976#if defined(__cplusplus) && !defined(CINTERFACE)
11977MIDL_INTERFACE("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c")
11978IDWriteRemoteFontFileStream : public IDWriteFontFileStream
11979{
11980 virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize(
11981 UINT64 *size) = 0;
11982
11983 virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality(
11984 UINT64 offset,
11985 UINT64 size,
11986 WINBOOL *is_local,
11987 UINT64 *partial_size) = 0;
11988
11989 virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
11990 ) = 0;
11991
11992 virtual HRESULT STDMETHODCALLTYPE BeginDownload(
11993 const GUID *operation_id,
11994 const DWRITE_FILE_FRAGMENT *fragments,
11995 UINT32 fragment_count,
11996 IDWriteAsyncResult **async_result) = 0;
11997
11998};
11999#ifdef __CRT_UUID_DECL
12000__CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c)
12001#endif
12002#else
12003typedef struct IDWriteRemoteFontFileStreamVtbl {
12004 BEGIN_INTERFACE
12005
12006 /*** IUnknown methods ***/
12007 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12008 IDWriteRemoteFontFileStream *This,
12009 REFIID riid,
12010 void **ppvObject);
12011
12012 ULONG (STDMETHODCALLTYPE *AddRef)(
12013 IDWriteRemoteFontFileStream *This);
12014
12015 ULONG (STDMETHODCALLTYPE *Release)(
12016 IDWriteRemoteFontFileStream *This);
12017
12018 /*** IDWriteFontFileStream methods ***/
12019 HRESULT (STDMETHODCALLTYPE *ReadFileFragment)(
12020 IDWriteRemoteFontFileStream *This,
12021 const void **fragment_start,
12022 UINT64 offset,
12023 UINT64 fragment_size,
12024 void **fragment_context);
12025
12026 void (STDMETHODCALLTYPE *ReleaseFileFragment)(
12027 IDWriteRemoteFontFileStream *This,
12028 void *fragment_context);
12029
12030 HRESULT (STDMETHODCALLTYPE *GetFileSize)(
12031 IDWriteRemoteFontFileStream *This,
12032 UINT64 *size);
12033
12034 HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)(
12035 IDWriteRemoteFontFileStream *This,
12036 UINT64 *last_writetime);
12037
12038 /*** IDWriteRemoteFontFileStream methods ***/
12039 HRESULT (STDMETHODCALLTYPE *GetLocalFileSize)(
12040 IDWriteRemoteFontFileStream *This,
12041 UINT64 *size);
12042
12043 HRESULT (STDMETHODCALLTYPE *GetFileFragmentLocality)(
12044 IDWriteRemoteFontFileStream *This,
12045 UINT64 offset,
12046 UINT64 size,
12047 WINBOOL *is_local,
12048 UINT64 *partial_size);
12049
12050 DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
12051 IDWriteRemoteFontFileStream *This);
12052
12053 HRESULT (STDMETHODCALLTYPE *BeginDownload)(
12054 IDWriteRemoteFontFileStream *This,
12055 const GUID *operation_id,
12056 const DWRITE_FILE_FRAGMENT *fragments,
12057 UINT32 fragment_count,
12058 IDWriteAsyncResult **async_result);
12059
12060 END_INTERFACE
12061} IDWriteRemoteFontFileStreamVtbl;
12062
12063interface IDWriteRemoteFontFileStream {
12064 CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl;
12065};
12066
12067#ifdef COBJMACROS
12068#ifndef WIDL_C_INLINE_WRAPPERS
12069/*** IUnknown methods ***/
12070#define IDWriteRemoteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12071#define IDWriteRemoteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12072#define IDWriteRemoteFontFileStream_Release(This) (This)->lpVtbl->Release(This)
12073/*** IDWriteFontFileStream methods ***/
12074#define IDWriteRemoteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context)
12075#define IDWriteRemoteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context)
12076#define IDWriteRemoteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size)
12077#define IDWriteRemoteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime)
12078/*** IDWriteRemoteFontFileStream methods ***/
12079#define IDWriteRemoteFontFileStream_GetLocalFileSize(This,size) (This)->lpVtbl->GetLocalFileSize(This,size)
12080#define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This,offset,size,is_local,partial_size) (This)->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size)
12081#define IDWriteRemoteFontFileStream_GetLocality(This) (This)->lpVtbl->GetLocality(This)
12082#define IDWriteRemoteFontFileStream_BeginDownload(This,operation_id,fragments,fragment_count,async_result) (This)->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result)
12083#else
12084/*** IUnknown methods ***/
12085static inline HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This,REFIID riid,void **ppvObject) {
12086 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12087}
12088static inline ULONG IDWriteRemoteFontFileStream_AddRef(IDWriteRemoteFontFileStream* This) {
12089 return This->lpVtbl->AddRef(This);
12090}
12091static inline ULONG IDWriteRemoteFontFileStream_Release(IDWriteRemoteFontFileStream* This) {
12092 return This->lpVtbl->Release(This);
12093}
12094/*** IDWriteFontFileStream methods ***/
12095static inline HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) {
12096 return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context);
12097}
12098static inline void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This,void *fragment_context) {
12099 This->lpVtbl->ReleaseFileFragment(This,fragment_context);
12100}
12101static inline HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) {
12102 return This->lpVtbl->GetFileSize(This,size);
12103}
12104static inline HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This,UINT64 *last_writetime) {
12105 return This->lpVtbl->GetLastWriteTime(This,last_writetime);
12106}
12107/*** IDWriteRemoteFontFileStream methods ***/
12108static inline HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) {
12109 return This->lpVtbl->GetLocalFileSize(This,size);
12110}
12111static inline HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This,UINT64 offset,UINT64 size,WINBOOL *is_local,UINT64 *partial_size) {
12112 return This->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size);
12113}
12114static inline DWRITE_LOCALITY IDWriteRemoteFontFileStream_GetLocality(IDWriteRemoteFontFileStream* This) {
12115 return This->lpVtbl->GetLocality(This);
12116}
12117static inline HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This,const GUID *operation_id,const DWRITE_FILE_FRAGMENT *fragments,UINT32 fragment_count,IDWriteAsyncResult **async_result) {
12118 return This->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result);
12119}
12120#endif
12121#endif
12122
12123#endif
12124
12125
12126#endif /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */
12127
12128typedef enum DWRITE_CONTAINER_TYPE {
12129 DWRITE_CONTAINER_TYPE_UNKNOWN = 0,
12130 DWRITE_CONTAINER_TYPE_WOFF = 1,
12131 DWRITE_CONTAINER_TYPE_WOFF2 = 2
12132} DWRITE_CONTAINER_TYPE;
12133/*****************************************************************************
12134 * IDWriteRemoteFontFileLoader interface
12135 */
12136#ifndef __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__
12137#define __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__
12138
12139DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde);
12140#if defined(__cplusplus) && !defined(CINTERFACE)
12141MIDL_INTERFACE("68648c83-6ede-46c0-ab46-20083a887fde")
12142IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader
12143{
12144 virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey(
12145 const void *key,
12146 UINT32 key_size,
12147 IDWriteRemoteFontFileStream **stream) = 0;
12148
12149 virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey(
12150 const void *key,
12151 UINT32 key_size,
12152 DWRITE_LOCALITY *locality) = 0;
12153
12154 virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl(
12155 IDWriteFactory *factory,
12156 const WCHAR *base_url,
12157 const WCHAR *file_url,
12158 IDWriteFontFile **fontfile) = 0;
12159
12160};
12161#ifdef __CRT_UUID_DECL
12162__CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde)
12163#endif
12164#else
12165typedef struct IDWriteRemoteFontFileLoaderVtbl {
12166 BEGIN_INTERFACE
12167
12168 /*** IUnknown methods ***/
12169 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12170 IDWriteRemoteFontFileLoader *This,
12171 REFIID riid,
12172 void **ppvObject);
12173
12174 ULONG (STDMETHODCALLTYPE *AddRef)(
12175 IDWriteRemoteFontFileLoader *This);
12176
12177 ULONG (STDMETHODCALLTYPE *Release)(
12178 IDWriteRemoteFontFileLoader *This);
12179
12180 /*** IDWriteFontFileLoader methods ***/
12181 HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
12182 IDWriteRemoteFontFileLoader *This,
12183 const void *key,
12184 UINT32 key_size,
12185 IDWriteFontFileStream **stream);
12186
12187 /*** IDWriteRemoteFontFileLoader methods ***/
12188 HRESULT (STDMETHODCALLTYPE *CreateRemoteStreamFromKey)(
12189 IDWriteRemoteFontFileLoader *This,
12190 const void *key,
12191 UINT32 key_size,
12192 IDWriteRemoteFontFileStream **stream);
12193
12194 HRESULT (STDMETHODCALLTYPE *GetLocalityFromKey)(
12195 IDWriteRemoteFontFileLoader *This,
12196 const void *key,
12197 UINT32 key_size,
12198 DWRITE_LOCALITY *locality);
12199
12200 HRESULT (STDMETHODCALLTYPE *CreateFontFileReferenceFromUrl)(
12201 IDWriteRemoteFontFileLoader *This,
12202 IDWriteFactory *factory,
12203 const WCHAR *base_url,
12204 const WCHAR *file_url,
12205 IDWriteFontFile **fontfile);
12206
12207 END_INTERFACE
12208} IDWriteRemoteFontFileLoaderVtbl;
12209
12210interface IDWriteRemoteFontFileLoader {
12211 CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl;
12212};
12213
12214#ifdef COBJMACROS
12215#ifndef WIDL_C_INLINE_WRAPPERS
12216/*** IUnknown methods ***/
12217#define IDWriteRemoteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12218#define IDWriteRemoteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
12219#define IDWriteRemoteFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
12220/*** IDWriteFontFileLoader methods ***/
12221#define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
12222/*** IDWriteRemoteFontFileLoader methods ***/
12223#define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream)
12224#define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This,key,key_size,locality) (This)->lpVtbl->GetLocalityFromKey(This,key,key_size,locality)
12225#define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile)
12226#else
12227/*** IUnknown methods ***/
12228static inline HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This,REFIID riid,void **ppvObject) {
12229 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12230}
12231static inline ULONG IDWriteRemoteFontFileLoader_AddRef(IDWriteRemoteFontFileLoader* This) {
12232 return This->lpVtbl->AddRef(This);
12233}
12234static inline ULONG IDWriteRemoteFontFileLoader_Release(IDWriteRemoteFontFileLoader* This) {
12235 return This->lpVtbl->Release(This);
12236}
12237/*** IDWriteFontFileLoader methods ***/
12238static inline HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
12239 return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
12240}
12241/*** IDWriteRemoteFontFileLoader methods ***/
12242static inline HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteRemoteFontFileStream **stream) {
12243 return This->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream);
12244}
12245static inline HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,DWRITE_LOCALITY *locality) {
12246 return This->lpVtbl->GetLocalityFromKey(This,key,key_size,locality);
12247}
12248static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This,IDWriteFactory *factory,const WCHAR *base_url,const WCHAR *file_url,IDWriteFontFile **fontfile) {
12249 return This->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile);
12250}
12251#endif
12252#endif
12253
12254#endif
12255
12256
12257#endif /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */
12258
12259/*****************************************************************************
12260 * IDWriteInMemoryFontFileLoader interface
12261 */
12262#ifndef __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__
12263#define __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__
12264
12265DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f);
12266#if defined(__cplusplus) && !defined(CINTERFACE)
12267MIDL_INTERFACE("dc102f47-a12d-4b1c-822d-9e117e33043f")
12268IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader
12269{
12270 virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference(
12271 IDWriteFactory *factory,
12272 const void *data,
12273 UINT32 data_size,
12274 IUnknown *owner,
12275 IDWriteFontFile **fontfile) = 0;
12276
12277 virtual UINT32 STDMETHODCALLTYPE GetFileCount(
12278 ) = 0;
12279
12280};
12281#ifdef __CRT_UUID_DECL
12282__CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f)
12283#endif
12284#else
12285typedef struct IDWriteInMemoryFontFileLoaderVtbl {
12286 BEGIN_INTERFACE
12287
12288 /*** IUnknown methods ***/
12289 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12290 IDWriteInMemoryFontFileLoader *This,
12291 REFIID riid,
12292 void **ppvObject);
12293
12294 ULONG (STDMETHODCALLTYPE *AddRef)(
12295 IDWriteInMemoryFontFileLoader *This);
12296
12297 ULONG (STDMETHODCALLTYPE *Release)(
12298 IDWriteInMemoryFontFileLoader *This);
12299
12300 /*** IDWriteFontFileLoader methods ***/
12301 HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
12302 IDWriteInMemoryFontFileLoader *This,
12303 const void *key,
12304 UINT32 key_size,
12305 IDWriteFontFileStream **stream);
12306
12307 /*** IDWriteInMemoryFontFileLoader methods ***/
12308 HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileReference)(
12309 IDWriteInMemoryFontFileLoader *This,
12310 IDWriteFactory *factory,
12311 const void *data,
12312 UINT32 data_size,
12313 IUnknown *owner,
12314 IDWriteFontFile **fontfile);
12315
12316 UINT32 (STDMETHODCALLTYPE *GetFileCount)(
12317 IDWriteInMemoryFontFileLoader *This);
12318
12319 END_INTERFACE
12320} IDWriteInMemoryFontFileLoaderVtbl;
12321
12322interface IDWriteInMemoryFontFileLoader {
12323 CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl;
12324};
12325
12326#ifdef COBJMACROS
12327#ifndef WIDL_C_INLINE_WRAPPERS
12328/*** IUnknown methods ***/
12329#define IDWriteInMemoryFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12330#define IDWriteInMemoryFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
12331#define IDWriteInMemoryFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
12332/*** IDWriteFontFileLoader methods ***/
12333#define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
12334/*** IDWriteInMemoryFontFileLoader methods ***/
12335#define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile)
12336#define IDWriteInMemoryFontFileLoader_GetFileCount(This) (This)->lpVtbl->GetFileCount(This)
12337#else
12338/*** IUnknown methods ***/
12339static inline HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This,REFIID riid,void **ppvObject) {
12340 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12341}
12342static inline ULONG IDWriteInMemoryFontFileLoader_AddRef(IDWriteInMemoryFontFileLoader* This) {
12343 return This->lpVtbl->AddRef(This);
12344}
12345static inline ULONG IDWriteInMemoryFontFileLoader_Release(IDWriteInMemoryFontFileLoader* This) {
12346 return This->lpVtbl->Release(This);
12347}
12348/*** IDWriteFontFileLoader methods ***/
12349static inline HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
12350 return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
12351}
12352/*** IDWriteInMemoryFontFileLoader methods ***/
12353static inline HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This,IDWriteFactory *factory,const void *data,UINT32 data_size,IUnknown *owner,IDWriteFontFile **fontfile) {
12354 return This->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile);
12355}
12356static inline UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryFontFileLoader* This) {
12357 return This->lpVtbl->GetFileCount(This);
12358}
12359#endif
12360#endif
12361
12362#endif
12363
12364
12365#endif /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */
12366
12367/*****************************************************************************
12368 * IDWriteFactory5 interface
12369 */
12370#ifndef __IDWriteFactory5_INTERFACE_DEFINED__
12371#define __IDWriteFactory5_INTERFACE_DEFINED__
12372
12373DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3);
12374#if defined(__cplusplus) && !defined(CINTERFACE)
12375MIDL_INTERFACE("958db99a-be2a-4f09-af7d-65189803d1d3")
12376IDWriteFactory5 : public IDWriteFactory4
12377{
12378 virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
12379 IDWriteFontSetBuilder1 **fontset_builder) = 0;
12380
12381 virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader(
12382 IDWriteInMemoryFontFileLoader **loader) = 0;
12383
12384 virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader(
12385 const WCHAR *referrer_url,
12386 const WCHAR *extra_headers,
12387 IDWriteRemoteFontFileLoader **loader) = 0;
12388
12389 virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType(
12390 const void *data,
12391 UINT32 data_size) = 0;
12392
12393 virtual HRESULT STDMETHODCALLTYPE UnpackFontFile(
12394 DWRITE_CONTAINER_TYPE container_type,
12395 const void *data,
12396 UINT32 data_size,
12397 IDWriteFontFileStream **stream) = 0;
12398
12399};
12400#ifdef __CRT_UUID_DECL
12401__CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3)
12402#endif
12403#else
12404typedef struct IDWriteFactory5Vtbl {
12405 BEGIN_INTERFACE
12406
12407 /*** IUnknown methods ***/
12408 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12409 IDWriteFactory5 *This,
12410 REFIID riid,
12411 void **ppvObject);
12412
12413 ULONG (STDMETHODCALLTYPE *AddRef)(
12414 IDWriteFactory5 *This);
12415
12416 ULONG (STDMETHODCALLTYPE *Release)(
12417 IDWriteFactory5 *This);
12418
12419 /*** IDWriteFactory methods ***/
12420 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
12421 IDWriteFactory5 *This,
12422 IDWriteFontCollection **collection,
12423 WINBOOL check_for_updates);
12424
12425 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
12426 IDWriteFactory5 *This,
12427 IDWriteFontCollectionLoader *loader,
12428 const void *key,
12429 UINT32 key_size,
12430 IDWriteFontCollection **collection);
12431
12432 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
12433 IDWriteFactory5 *This,
12434 IDWriteFontCollectionLoader *loader);
12435
12436 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
12437 IDWriteFactory5 *This,
12438 IDWriteFontCollectionLoader *loader);
12439
12440 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
12441 IDWriteFactory5 *This,
12442 const WCHAR *path,
12443 const FILETIME *writetime,
12444 IDWriteFontFile **font_file);
12445
12446 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
12447 IDWriteFactory5 *This,
12448 const void *reference_key,
12449 UINT32 key_size,
12450 IDWriteFontFileLoader *loader,
12451 IDWriteFontFile **font_file);
12452
12453 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
12454 IDWriteFactory5 *This,
12455 DWRITE_FONT_FACE_TYPE facetype,
12456 UINT32 files_number,
12457 IDWriteFontFile *const *font_files,
12458 UINT32 index,
12459 DWRITE_FONT_SIMULATIONS sim_flags,
12460 IDWriteFontFace **font_face);
12461
12462 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
12463 IDWriteFactory5 *This,
12464 IDWriteRenderingParams **params);
12465
12466 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
12467 IDWriteFactory5 *This,
12468 HMONITOR monitor,
12469 IDWriteRenderingParams **params);
12470
12471 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
12472 IDWriteFactory5 *This,
12473 FLOAT gamma,
12474 FLOAT enhancedContrast,
12475 FLOAT cleartype_level,
12476 DWRITE_PIXEL_GEOMETRY geometry,
12477 DWRITE_RENDERING_MODE mode,
12478 IDWriteRenderingParams **params);
12479
12480 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
12481 IDWriteFactory5 *This,
12482 IDWriteFontFileLoader *loader);
12483
12484 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
12485 IDWriteFactory5 *This,
12486 IDWriteFontFileLoader *loader);
12487
12488 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
12489 IDWriteFactory5 *This,
12490 const WCHAR *family_name,
12491 IDWriteFontCollection *collection,
12492 DWRITE_FONT_WEIGHT weight,
12493 DWRITE_FONT_STYLE style,
12494 DWRITE_FONT_STRETCH stretch,
12495 FLOAT size,
12496 const WCHAR *locale,
12497 IDWriteTextFormat **format);
12498
12499 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
12500 IDWriteFactory5 *This,
12501 IDWriteTypography **typography);
12502
12503 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
12504 IDWriteFactory5 *This,
12505 IDWriteGdiInterop **gdi_interop);
12506
12507 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
12508 IDWriteFactory5 *This,
12509 const WCHAR *string,
12510 UINT32 len,
12511 IDWriteTextFormat *format,
12512 FLOAT max_width,
12513 FLOAT max_height,
12514 IDWriteTextLayout **layout);
12515
12516 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
12517 IDWriteFactory5 *This,
12518 const WCHAR *string,
12519 UINT32 len,
12520 IDWriteTextFormat *format,
12521 FLOAT layout_width,
12522 FLOAT layout_height,
12523 FLOAT pixels_per_dip,
12524 const DWRITE_MATRIX *transform,
12525 WINBOOL use_gdi_natural,
12526 IDWriteTextLayout **layout);
12527
12528 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
12529 IDWriteFactory5 *This,
12530 IDWriteTextFormat *format,
12531 IDWriteInlineObject **trimming_sign);
12532
12533 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
12534 IDWriteFactory5 *This,
12535 IDWriteTextAnalyzer **analyzer);
12536
12537 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
12538 IDWriteFactory5 *This,
12539 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
12540 const WCHAR *locale,
12541 WINBOOL ignore_user_override,
12542 IDWriteNumberSubstitution **substitution);
12543
12544 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
12545 IDWriteFactory5 *This,
12546 const DWRITE_GLYPH_RUN *glyph_run,
12547 FLOAT pixels_per_dip,
12548 const DWRITE_MATRIX *transform,
12549 DWRITE_RENDERING_MODE rendering_mode,
12550 DWRITE_MEASURING_MODE measuring_mode,
12551 FLOAT baseline_x,
12552 FLOAT baseline_y,
12553 IDWriteGlyphRunAnalysis **analysis);
12554
12555 /*** IDWriteFactory1 methods ***/
12556 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
12557 IDWriteFactory5 *This,
12558 IDWriteFontCollection **collection,
12559 WINBOOL check_for_updates);
12560
12561 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
12562 IDWriteFactory5 *This,
12563 FLOAT gamma,
12564 FLOAT enhcontrast,
12565 FLOAT enhcontrast_grayscale,
12566 FLOAT cleartype_level,
12567 DWRITE_PIXEL_GEOMETRY geometry,
12568 DWRITE_RENDERING_MODE mode,
12569 IDWriteRenderingParams1 **params);
12570
12571 /*** IDWriteFactory2 methods ***/
12572 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
12573 IDWriteFactory5 *This,
12574 IDWriteFontFallback **fallback);
12575
12576 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
12577 IDWriteFactory5 *This,
12578 IDWriteFontFallbackBuilder **fallbackbuilder);
12579
12580 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
12581 IDWriteFactory5 *This,
12582 FLOAT originX,
12583 FLOAT originY,
12584 const DWRITE_GLYPH_RUN *run,
12585 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
12586 DWRITE_MEASURING_MODE mode,
12587 const DWRITE_MATRIX *transform,
12588 UINT32 palette_index,
12589 IDWriteColorGlyphRunEnumerator **colorlayers);
12590
12591 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
12592 IDWriteFactory5 *This,
12593 FLOAT gamma,
12594 FLOAT contrast,
12595 FLOAT grayscalecontrast,
12596 FLOAT cleartypeLevel,
12597 DWRITE_PIXEL_GEOMETRY pixelGeometry,
12598 DWRITE_RENDERING_MODE renderingMode,
12599 DWRITE_GRID_FIT_MODE gridFitMode,
12600 IDWriteRenderingParams2 **params);
12601
12602 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
12603 IDWriteFactory5 *This,
12604 const DWRITE_GLYPH_RUN *run,
12605 const DWRITE_MATRIX *transform,
12606 DWRITE_RENDERING_MODE renderingMode,
12607 DWRITE_MEASURING_MODE measuringMode,
12608 DWRITE_GRID_FIT_MODE gridFitMode,
12609 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
12610 FLOAT originX,
12611 FLOAT originY,
12612 IDWriteGlyphRunAnalysis **analysis);
12613
12614 /*** IDWriteFactory3 methods ***/
12615 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
12616 IDWriteFactory5 *This,
12617 const DWRITE_GLYPH_RUN *run,
12618 const DWRITE_MATRIX *transform,
12619 DWRITE_RENDERING_MODE1 rendering_mode,
12620 DWRITE_MEASURING_MODE measuring_mode,
12621 DWRITE_GRID_FIT_MODE gridfit_mode,
12622 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
12623 FLOAT origin_x,
12624 FLOAT origin_y,
12625 IDWriteGlyphRunAnalysis **analysis);
12626
12627 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
12628 IDWriteFactory5 *This,
12629 FLOAT gamma,
12630 FLOAT enhanced_contrast,
12631 FLOAT grayscale_enhanced_contrast,
12632 FLOAT cleartype_level,
12633 DWRITE_PIXEL_GEOMETRY pixel_geometry,
12634 DWRITE_RENDERING_MODE1 rendering_mode,
12635 DWRITE_GRID_FIT_MODE gridfit_mode,
12636 IDWriteRenderingParams3 **params);
12637
12638 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
12639 IDWriteFactory5 *This,
12640 IDWriteFontFile *file,
12641 UINT32 index,
12642 DWRITE_FONT_SIMULATIONS simulations,
12643 IDWriteFontFaceReference **reference);
12644
12645 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
12646 IDWriteFactory5 *This,
12647 const WCHAR *path,
12648 const FILETIME *writetime,
12649 UINT32 index,
12650 DWRITE_FONT_SIMULATIONS simulations,
12651 IDWriteFontFaceReference **reference);
12652
12653 HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
12654 IDWriteFactory5 *This,
12655 IDWriteFontSet **fontset);
12656
12657 HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
12658 IDWriteFactory5 *This,
12659 IDWriteFontSetBuilder **builder);
12660
12661 HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
12662 IDWriteFactory5 *This,
12663 IDWriteFontSet *fontset,
12664 IDWriteFontCollection1 **collection);
12665
12666 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
12667 IDWriteFactory5 *This,
12668 WINBOOL include_downloadable,
12669 IDWriteFontCollection1 **collection,
12670 WINBOOL check_for_updates);
12671
12672 HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
12673 IDWriteFactory5 *This,
12674 IDWriteFontDownloadQueue **queue);
12675
12676 /*** IDWriteFactory4 methods ***/
12677 HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
12678 IDWriteFactory5 *This,
12679 D2D1_POINT_2F baseline_origin,
12680 const DWRITE_GLYPH_RUN *run,
12681 const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
12682 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
12683 DWRITE_MEASURING_MODE measuring_mode,
12684 const DWRITE_MATRIX *transform,
12685 UINT32 palette,
12686 IDWriteColorGlyphRunEnumerator1 **layers);
12687
12688 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
12689 IDWriteFactory5 *This,
12690 const DWRITE_GLYPH_RUN *run,
12691 D2D1_POINT_2F baseline_origin,
12692 D2D1_POINT_2F *origins);
12693
12694 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
12695 IDWriteFactory5 *This,
12696 const DWRITE_GLYPH_RUN *run,
12697 DWRITE_MEASURING_MODE measuring_mode,
12698 D2D1_POINT_2F baseline_origin,
12699 const DWRITE_MATRIX *transform,
12700 D2D1_POINT_2F *origins);
12701
12702 /*** IDWriteFactory5 methods ***/
12703 HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
12704 IDWriteFactory5 *This,
12705 IDWriteFontSetBuilder1 **fontset_builder);
12706
12707 HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
12708 IDWriteFactory5 *This,
12709 IDWriteInMemoryFontFileLoader **loader);
12710
12711 HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
12712 IDWriteFactory5 *This,
12713 const WCHAR *referrer_url,
12714 const WCHAR *extra_headers,
12715 IDWriteRemoteFontFileLoader **loader);
12716
12717 DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
12718 IDWriteFactory5 *This,
12719 const void *data,
12720 UINT32 data_size);
12721
12722 HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
12723 IDWriteFactory5 *This,
12724 DWRITE_CONTAINER_TYPE container_type,
12725 const void *data,
12726 UINT32 data_size,
12727 IDWriteFontFileStream **stream);
12728
12729 END_INTERFACE
12730} IDWriteFactory5Vtbl;
12731
12732interface IDWriteFactory5 {
12733 CONST_VTBL IDWriteFactory5Vtbl* lpVtbl;
12734};
12735
12736#ifdef COBJMACROS
12737#ifndef WIDL_C_INLINE_WRAPPERS
12738/*** IUnknown methods ***/
12739#define IDWriteFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12740#define IDWriteFactory5_AddRef(This) (This)->lpVtbl->AddRef(This)
12741#define IDWriteFactory5_Release(This) (This)->lpVtbl->Release(This)
12742/*** IDWriteFactory methods ***/
12743#define IDWriteFactory5_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
12744#define IDWriteFactory5_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
12745#define IDWriteFactory5_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
12746#define IDWriteFactory5_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
12747#define IDWriteFactory5_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
12748#define IDWriteFactory5_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
12749#define IDWriteFactory5_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
12750#define IDWriteFactory5_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
12751#define IDWriteFactory5_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
12752#define IDWriteFactory5_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
12753#define IDWriteFactory5_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
12754#define IDWriteFactory5_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
12755#define IDWriteFactory5_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
12756#define IDWriteFactory5_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
12757#define IDWriteFactory5_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
12758#define IDWriteFactory5_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
12759#define IDWriteFactory5_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
12760#define IDWriteFactory5_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
12761/*** IDWriteFactory1 methods ***/
12762#define IDWriteFactory5_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
12763/*** IDWriteFactory2 methods ***/
12764#define IDWriteFactory5_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
12765#define IDWriteFactory5_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
12766/*** IDWriteFactory3 methods ***/
12767#define IDWriteFactory5_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
12768#define IDWriteFactory5_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
12769#define IDWriteFactory5_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
12770#define IDWriteFactory5_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
12771#define IDWriteFactory5_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
12772#define IDWriteFactory5_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
12773#define IDWriteFactory5_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
12774#define IDWriteFactory5_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
12775/*** IDWriteFactory4 methods ***/
12776#define IDWriteFactory5_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
12777#define IDWriteFactory5_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
12778#define IDWriteFactory5_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
12779/*** IDWriteFactory5 methods ***/
12780#define IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder)
12781#define IDWriteFactory5_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
12782#define IDWriteFactory5_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
12783#define IDWriteFactory5_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
12784#define IDWriteFactory5_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
12785#else
12786/*** IUnknown methods ***/
12787static inline HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This,REFIID riid,void **ppvObject) {
12788 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12789}
12790static inline ULONG IDWriteFactory5_AddRef(IDWriteFactory5* This) {
12791 return This->lpVtbl->AddRef(This);
12792}
12793static inline ULONG IDWriteFactory5_Release(IDWriteFactory5* This) {
12794 return This->lpVtbl->Release(This);
12795}
12796/*** IDWriteFactory methods ***/
12797static inline HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
12798 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
12799}
12800static inline HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) {
12801 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
12802}
12803static inline HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) {
12804 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
12805}
12806static inline HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
12807 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
12808}
12809static inline HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
12810 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
12811}
12812static inline HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
12813 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
12814}
12815static inline HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This,IDWriteRenderingParams **params) {
12816 return This->lpVtbl->CreateRenderingParams(This,params);
12817}
12818static inline HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This,HMONITOR monitor,IDWriteRenderingParams **params) {
12819 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
12820}
12821static inline HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) {
12822 return This->lpVtbl->RegisterFontFileLoader(This,loader);
12823}
12824static inline HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) {
12825 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
12826}
12827static inline HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
12828 return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
12829}
12830static inline HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This,IDWriteTypography **typography) {
12831 return This->lpVtbl->CreateTypography(This,typography);
12832}
12833static inline HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This,IDWriteGdiInterop **gdi_interop) {
12834 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
12835}
12836static inline HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
12837 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
12838}
12839static inline HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
12840 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
12841}
12842static inline HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
12843 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
12844}
12845static inline HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This,IDWriteTextAnalyzer **analyzer) {
12846 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
12847}
12848static inline HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
12849 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
12850}
12851/*** IDWriteFactory1 methods ***/
12852static inline HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
12853 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
12854}
12855/*** IDWriteFactory2 methods ***/
12856static inline HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This,IDWriteFontFallback **fallback) {
12857 return This->lpVtbl->GetSystemFontFallback(This,fallback);
12858}
12859static inline HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
12860 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
12861}
12862/*** IDWriteFactory3 methods ***/
12863static inline HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
12864 return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
12865}
12866static inline HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
12867 return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
12868}
12869static inline HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
12870 return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
12871}
12872static inline HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
12873 return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
12874}
12875static inline HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This,IDWriteFontSet **fontset) {
12876 return This->lpVtbl->GetSystemFontSet(This,fontset);
12877}
12878static inline HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
12879 return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
12880}
12881static inline HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
12882 return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
12883}
12884static inline HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This,IDWriteFontDownloadQueue **queue) {
12885 return This->lpVtbl->GetFontDownloadQueue(This,queue);
12886}
12887/*** IDWriteFactory4 methods ***/
12888static inline HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
12889 return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
12890}
12891static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
12892 return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
12893}
12894static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
12895 return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
12896}
12897/*** IDWriteFactory5 methods ***/
12898static inline HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This,IDWriteFontSetBuilder1 **fontset_builder) {
12899 return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder);
12900}
12901static inline HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This,IDWriteInMemoryFontFileLoader **loader) {
12902 return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
12903}
12904static inline HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
12905 return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
12906}
12907static inline DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This,const void *data,UINT32 data_size) {
12908 return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
12909}
12910static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
12911 return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
12912}
12913#endif
12914#endif
12915
12916#endif
12917
12918
12919#endif /* __IDWriteFactory5_INTERFACE_DEFINED__ */
12920
12921/*****************************************************************************
12922 * IDWriteFactory6 interface
12923 */
12924#ifndef __IDWriteFactory6_INTERFACE_DEFINED__
12925#define __IDWriteFactory6_INTERFACE_DEFINED__
12926
12927DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23);
12928#if defined(__cplusplus) && !defined(CINTERFACE)
12929MIDL_INTERFACE("f3744d80-21f7-42eb-b35d-995bc72fc223")
12930IDWriteFactory6 : public IDWriteFactory5
12931{
12932 virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
12933 IDWriteFontFile *file,
12934 UINT32 face_index,
12935 DWRITE_FONT_SIMULATIONS simulations,
12936 const DWRITE_FONT_AXIS_VALUE *axis_values,
12937 UINT32 num_axis,
12938 IDWriteFontFaceReference1 **face_ref) = 0;
12939
12940 virtual HRESULT STDMETHODCALLTYPE CreateFontResource(
12941 IDWriteFontFile *file,
12942 UINT32 face_index,
12943 IDWriteFontResource **resource) = 0;
12944
12945 virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
12946 WINBOOL include_downloadable,
12947 IDWriteFontSet1 **fontset) = 0;
12948
12949 virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
12950 WINBOOL include_downloadable,
12951 DWRITE_FONT_FAMILY_MODEL family_model,
12952 IDWriteFontCollection2 **collection) = 0;
12953
12954 virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet(
12955 IDWriteFontSet *fontset,
12956 DWRITE_FONT_FAMILY_MODEL family_model,
12957 IDWriteFontCollection2 **collection) = 0;
12958
12959 virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
12960 IDWriteFontSetBuilder2 **builder) = 0;
12961
12962 virtual HRESULT STDMETHODCALLTYPE CreateTextFormat(
12963 const WCHAR *familyname,
12964 IDWriteFontCollection *collection,
12965 const DWRITE_FONT_AXIS_VALUE *axis_values,
12966 UINT32 num_axis,
12967 FLOAT fontsize,
12968 const WCHAR *localename,
12969 IDWriteTextFormat3 **format) = 0;
12970
12971};
12972#ifdef __CRT_UUID_DECL
12973__CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23)
12974#endif
12975#else
12976typedef struct IDWriteFactory6Vtbl {
12977 BEGIN_INTERFACE
12978
12979 /*** IUnknown methods ***/
12980 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12981 IDWriteFactory6 *This,
12982 REFIID riid,
12983 void **ppvObject);
12984
12985 ULONG (STDMETHODCALLTYPE *AddRef)(
12986 IDWriteFactory6 *This);
12987
12988 ULONG (STDMETHODCALLTYPE *Release)(
12989 IDWriteFactory6 *This);
12990
12991 /*** IDWriteFactory methods ***/
12992 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
12993 IDWriteFactory6 *This,
12994 IDWriteFontCollection **collection,
12995 WINBOOL check_for_updates);
12996
12997 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
12998 IDWriteFactory6 *This,
12999 IDWriteFontCollectionLoader *loader,
13000 const void *key,
13001 UINT32 key_size,
13002 IDWriteFontCollection **collection);
13003
13004 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
13005 IDWriteFactory6 *This,
13006 IDWriteFontCollectionLoader *loader);
13007
13008 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
13009 IDWriteFactory6 *This,
13010 IDWriteFontCollectionLoader *loader);
13011
13012 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
13013 IDWriteFactory6 *This,
13014 const WCHAR *path,
13015 const FILETIME *writetime,
13016 IDWriteFontFile **font_file);
13017
13018 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
13019 IDWriteFactory6 *This,
13020 const void *reference_key,
13021 UINT32 key_size,
13022 IDWriteFontFileLoader *loader,
13023 IDWriteFontFile **font_file);
13024
13025 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
13026 IDWriteFactory6 *This,
13027 DWRITE_FONT_FACE_TYPE facetype,
13028 UINT32 files_number,
13029 IDWriteFontFile *const *font_files,
13030 UINT32 index,
13031 DWRITE_FONT_SIMULATIONS sim_flags,
13032 IDWriteFontFace **font_face);
13033
13034 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
13035 IDWriteFactory6 *This,
13036 IDWriteRenderingParams **params);
13037
13038 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
13039 IDWriteFactory6 *This,
13040 HMONITOR monitor,
13041 IDWriteRenderingParams **params);
13042
13043 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
13044 IDWriteFactory6 *This,
13045 FLOAT gamma,
13046 FLOAT enhancedContrast,
13047 FLOAT cleartype_level,
13048 DWRITE_PIXEL_GEOMETRY geometry,
13049 DWRITE_RENDERING_MODE mode,
13050 IDWriteRenderingParams **params);
13051
13052 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
13053 IDWriteFactory6 *This,
13054 IDWriteFontFileLoader *loader);
13055
13056 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
13057 IDWriteFactory6 *This,
13058 IDWriteFontFileLoader *loader);
13059
13060 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
13061 IDWriteFactory6 *This,
13062 const WCHAR *family_name,
13063 IDWriteFontCollection *collection,
13064 DWRITE_FONT_WEIGHT weight,
13065 DWRITE_FONT_STYLE style,
13066 DWRITE_FONT_STRETCH stretch,
13067 FLOAT size,
13068 const WCHAR *locale,
13069 IDWriteTextFormat **format);
13070
13071 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
13072 IDWriteFactory6 *This,
13073 IDWriteTypography **typography);
13074
13075 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
13076 IDWriteFactory6 *This,
13077 IDWriteGdiInterop **gdi_interop);
13078
13079 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
13080 IDWriteFactory6 *This,
13081 const WCHAR *string,
13082 UINT32 len,
13083 IDWriteTextFormat *format,
13084 FLOAT max_width,
13085 FLOAT max_height,
13086 IDWriteTextLayout **layout);
13087
13088 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
13089 IDWriteFactory6 *This,
13090 const WCHAR *string,
13091 UINT32 len,
13092 IDWriteTextFormat *format,
13093 FLOAT layout_width,
13094 FLOAT layout_height,
13095 FLOAT pixels_per_dip,
13096 const DWRITE_MATRIX *transform,
13097 WINBOOL use_gdi_natural,
13098 IDWriteTextLayout **layout);
13099
13100 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
13101 IDWriteFactory6 *This,
13102 IDWriteTextFormat *format,
13103 IDWriteInlineObject **trimming_sign);
13104
13105 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
13106 IDWriteFactory6 *This,
13107 IDWriteTextAnalyzer **analyzer);
13108
13109 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
13110 IDWriteFactory6 *This,
13111 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
13112 const WCHAR *locale,
13113 WINBOOL ignore_user_override,
13114 IDWriteNumberSubstitution **substitution);
13115
13116 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
13117 IDWriteFactory6 *This,
13118 const DWRITE_GLYPH_RUN *glyph_run,
13119 FLOAT pixels_per_dip,
13120 const DWRITE_MATRIX *transform,
13121 DWRITE_RENDERING_MODE rendering_mode,
13122 DWRITE_MEASURING_MODE measuring_mode,
13123 FLOAT baseline_x,
13124 FLOAT baseline_y,
13125 IDWriteGlyphRunAnalysis **analysis);
13126
13127 /*** IDWriteFactory1 methods ***/
13128 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
13129 IDWriteFactory6 *This,
13130 IDWriteFontCollection **collection,
13131 WINBOOL check_for_updates);
13132
13133 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
13134 IDWriteFactory6 *This,
13135 FLOAT gamma,
13136 FLOAT enhcontrast,
13137 FLOAT enhcontrast_grayscale,
13138 FLOAT cleartype_level,
13139 DWRITE_PIXEL_GEOMETRY geometry,
13140 DWRITE_RENDERING_MODE mode,
13141 IDWriteRenderingParams1 **params);
13142
13143 /*** IDWriteFactory2 methods ***/
13144 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
13145 IDWriteFactory6 *This,
13146 IDWriteFontFallback **fallback);
13147
13148 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
13149 IDWriteFactory6 *This,
13150 IDWriteFontFallbackBuilder **fallbackbuilder);
13151
13152 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
13153 IDWriteFactory6 *This,
13154 FLOAT originX,
13155 FLOAT originY,
13156 const DWRITE_GLYPH_RUN *run,
13157 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
13158 DWRITE_MEASURING_MODE mode,
13159 const DWRITE_MATRIX *transform,
13160 UINT32 palette_index,
13161 IDWriteColorGlyphRunEnumerator **colorlayers);
13162
13163 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
13164 IDWriteFactory6 *This,
13165 FLOAT gamma,
13166 FLOAT contrast,
13167 FLOAT grayscalecontrast,
13168 FLOAT cleartypeLevel,
13169 DWRITE_PIXEL_GEOMETRY pixelGeometry,
13170 DWRITE_RENDERING_MODE renderingMode,
13171 DWRITE_GRID_FIT_MODE gridFitMode,
13172 IDWriteRenderingParams2 **params);
13173
13174 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
13175 IDWriteFactory6 *This,
13176 const DWRITE_GLYPH_RUN *run,
13177 const DWRITE_MATRIX *transform,
13178 DWRITE_RENDERING_MODE renderingMode,
13179 DWRITE_MEASURING_MODE measuringMode,
13180 DWRITE_GRID_FIT_MODE gridFitMode,
13181 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
13182 FLOAT originX,
13183 FLOAT originY,
13184 IDWriteGlyphRunAnalysis **analysis);
13185
13186 /*** IDWriteFactory3 methods ***/
13187 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
13188 IDWriteFactory6 *This,
13189 const DWRITE_GLYPH_RUN *run,
13190 const DWRITE_MATRIX *transform,
13191 DWRITE_RENDERING_MODE1 rendering_mode,
13192 DWRITE_MEASURING_MODE measuring_mode,
13193 DWRITE_GRID_FIT_MODE gridfit_mode,
13194 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
13195 FLOAT origin_x,
13196 FLOAT origin_y,
13197 IDWriteGlyphRunAnalysis **analysis);
13198
13199 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
13200 IDWriteFactory6 *This,
13201 FLOAT gamma,
13202 FLOAT enhanced_contrast,
13203 FLOAT grayscale_enhanced_contrast,
13204 FLOAT cleartype_level,
13205 DWRITE_PIXEL_GEOMETRY pixel_geometry,
13206 DWRITE_RENDERING_MODE1 rendering_mode,
13207 DWRITE_GRID_FIT_MODE gridfit_mode,
13208 IDWriteRenderingParams3 **params);
13209
13210 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
13211 IDWriteFactory6 *This,
13212 IDWriteFontFile *file,
13213 UINT32 index,
13214 DWRITE_FONT_SIMULATIONS simulations,
13215 IDWriteFontFaceReference **reference);
13216
13217 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
13218 IDWriteFactory6 *This,
13219 const WCHAR *path,
13220 const FILETIME *writetime,
13221 UINT32 index,
13222 DWRITE_FONT_SIMULATIONS simulations,
13223 IDWriteFontFaceReference **reference);
13224
13225 HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
13226 IDWriteFactory6 *This,
13227 IDWriteFontSet **fontset);
13228
13229 HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
13230 IDWriteFactory6 *This,
13231 IDWriteFontSetBuilder **builder);
13232
13233 HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
13234 IDWriteFactory6 *This,
13235 IDWriteFontSet *fontset,
13236 IDWriteFontCollection1 **collection);
13237
13238 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
13239 IDWriteFactory6 *This,
13240 WINBOOL include_downloadable,
13241 IDWriteFontCollection1 **collection,
13242 WINBOOL check_for_updates);
13243
13244 HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
13245 IDWriteFactory6 *This,
13246 IDWriteFontDownloadQueue **queue);
13247
13248 /*** IDWriteFactory4 methods ***/
13249 HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
13250 IDWriteFactory6 *This,
13251 D2D1_POINT_2F baseline_origin,
13252 const DWRITE_GLYPH_RUN *run,
13253 const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
13254 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
13255 DWRITE_MEASURING_MODE measuring_mode,
13256 const DWRITE_MATRIX *transform,
13257 UINT32 palette,
13258 IDWriteColorGlyphRunEnumerator1 **layers);
13259
13260 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
13261 IDWriteFactory6 *This,
13262 const DWRITE_GLYPH_RUN *run,
13263 D2D1_POINT_2F baseline_origin,
13264 D2D1_POINT_2F *origins);
13265
13266 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
13267 IDWriteFactory6 *This,
13268 const DWRITE_GLYPH_RUN *run,
13269 DWRITE_MEASURING_MODE measuring_mode,
13270 D2D1_POINT_2F baseline_origin,
13271 const DWRITE_MATRIX *transform,
13272 D2D1_POINT_2F *origins);
13273
13274 /*** IDWriteFactory5 methods ***/
13275 HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
13276 IDWriteFactory6 *This,
13277 IDWriteFontSetBuilder1 **fontset_builder);
13278
13279 HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
13280 IDWriteFactory6 *This,
13281 IDWriteInMemoryFontFileLoader **loader);
13282
13283 HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
13284 IDWriteFactory6 *This,
13285 const WCHAR *referrer_url,
13286 const WCHAR *extra_headers,
13287 IDWriteRemoteFontFileLoader **loader);
13288
13289 DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
13290 IDWriteFactory6 *This,
13291 const void *data,
13292 UINT32 data_size);
13293
13294 HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
13295 IDWriteFactory6 *This,
13296 DWRITE_CONTAINER_TYPE container_type,
13297 const void *data,
13298 UINT32 data_size,
13299 IDWriteFontFileStream **stream);
13300
13301 /*** IDWriteFactory6 methods ***/
13302 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
13303 IDWriteFactory6 *This,
13304 IDWriteFontFile *file,
13305 UINT32 face_index,
13306 DWRITE_FONT_SIMULATIONS simulations,
13307 const DWRITE_FONT_AXIS_VALUE *axis_values,
13308 UINT32 num_axis,
13309 IDWriteFontFaceReference1 **face_ref);
13310
13311 HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
13312 IDWriteFactory6 *This,
13313 IDWriteFontFile *file,
13314 UINT32 face_index,
13315 IDWriteFontResource **resource);
13316
13317 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
13318 IDWriteFactory6 *This,
13319 WINBOOL include_downloadable,
13320 IDWriteFontSet1 **fontset);
13321
13322 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
13323 IDWriteFactory6 *This,
13324 WINBOOL include_downloadable,
13325 DWRITE_FONT_FAMILY_MODEL family_model,
13326 IDWriteFontCollection2 **collection);
13327
13328 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
13329 IDWriteFactory6 *This,
13330 IDWriteFontSet *fontset,
13331 DWRITE_FONT_FAMILY_MODEL family_model,
13332 IDWriteFontCollection2 **collection);
13333
13334 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
13335 IDWriteFactory6 *This,
13336 IDWriteFontSetBuilder2 **builder);
13337
13338 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
13339 IDWriteFactory6 *This,
13340 const WCHAR *familyname,
13341 IDWriteFontCollection *collection,
13342 const DWRITE_FONT_AXIS_VALUE *axis_values,
13343 UINT32 num_axis,
13344 FLOAT fontsize,
13345 const WCHAR *localename,
13346 IDWriteTextFormat3 **format);
13347
13348 END_INTERFACE
13349} IDWriteFactory6Vtbl;
13350
13351interface IDWriteFactory6 {
13352 CONST_VTBL IDWriteFactory6Vtbl* lpVtbl;
13353};
13354
13355#ifdef COBJMACROS
13356#ifndef WIDL_C_INLINE_WRAPPERS
13357/*** IUnknown methods ***/
13358#define IDWriteFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13359#define IDWriteFactory6_AddRef(This) (This)->lpVtbl->AddRef(This)
13360#define IDWriteFactory6_Release(This) (This)->lpVtbl->Release(This)
13361/*** IDWriteFactory methods ***/
13362#define IDWriteFactory6_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
13363#define IDWriteFactory6_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
13364#define IDWriteFactory6_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
13365#define IDWriteFactory6_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
13366#define IDWriteFactory6_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
13367#define IDWriteFactory6_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
13368#define IDWriteFactory6_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
13369#define IDWriteFactory6_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
13370#define IDWriteFactory6_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
13371#define IDWriteFactory6_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
13372#define IDWriteFactory6_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
13373#define IDWriteFactory6_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
13374#define IDWriteFactory6_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
13375#define IDWriteFactory6_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
13376#define IDWriteFactory6_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
13377#define IDWriteFactory6_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
13378#define IDWriteFactory6_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
13379/*** IDWriteFactory1 methods ***/
13380#define IDWriteFactory6_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
13381/*** IDWriteFactory2 methods ***/
13382#define IDWriteFactory6_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
13383#define IDWriteFactory6_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
13384/*** IDWriteFactory3 methods ***/
13385#define IDWriteFactory6_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
13386#define IDWriteFactory6_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
13387#define IDWriteFactory6_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
13388#define IDWriteFactory6_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
13389/*** IDWriteFactory4 methods ***/
13390#define IDWriteFactory6_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
13391#define IDWriteFactory6_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
13392#define IDWriteFactory6_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
13393/*** IDWriteFactory5 methods ***/
13394#define IDWriteFactory6_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
13395#define IDWriteFactory6_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
13396#define IDWriteFactory6_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
13397#define IDWriteFactory6_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
13398/*** IDWriteFactory6 methods ***/
13399#define IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
13400#define IDWriteFactory6_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
13401#define IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset)
13402#define IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection)
13403#define IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
13404#define IDWriteFactory6_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
13405#define IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
13406#else
13407/*** IUnknown methods ***/
13408static inline HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This,REFIID riid,void **ppvObject) {
13409 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13410}
13411static inline ULONG IDWriteFactory6_AddRef(IDWriteFactory6* This) {
13412 return This->lpVtbl->AddRef(This);
13413}
13414static inline ULONG IDWriteFactory6_Release(IDWriteFactory6* This) {
13415 return This->lpVtbl->Release(This);
13416}
13417/*** IDWriteFactory methods ***/
13418static inline HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
13419 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
13420}
13421static inline HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) {
13422 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
13423}
13424static inline HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) {
13425 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
13426}
13427static inline HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
13428 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
13429}
13430static inline HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
13431 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
13432}
13433static inline HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
13434 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
13435}
13436static inline HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This,IDWriteRenderingParams **params) {
13437 return This->lpVtbl->CreateRenderingParams(This,params);
13438}
13439static inline HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This,HMONITOR monitor,IDWriteRenderingParams **params) {
13440 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
13441}
13442static inline HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) {
13443 return This->lpVtbl->RegisterFontFileLoader(This,loader);
13444}
13445static inline HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) {
13446 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
13447}
13448static inline HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This,IDWriteTypography **typography) {
13449 return This->lpVtbl->CreateTypography(This,typography);
13450}
13451static inline HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This,IDWriteGdiInterop **gdi_interop) {
13452 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
13453}
13454static inline HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
13455 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
13456}
13457static inline HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
13458 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
13459}
13460static inline HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
13461 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
13462}
13463static inline HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This,IDWriteTextAnalyzer **analyzer) {
13464 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
13465}
13466static inline HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
13467 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
13468}
13469/*** IDWriteFactory1 methods ***/
13470static inline HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
13471 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
13472}
13473/*** IDWriteFactory2 methods ***/
13474static inline HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This,IDWriteFontFallback **fallback) {
13475 return This->lpVtbl->GetSystemFontFallback(This,fallback);
13476}
13477static inline HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
13478 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
13479}
13480/*** IDWriteFactory3 methods ***/
13481static inline HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
13482 return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
13483}
13484static inline HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
13485 return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
13486}
13487static inline HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
13488 return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
13489}
13490static inline HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This,IDWriteFontDownloadQueue **queue) {
13491 return This->lpVtbl->GetFontDownloadQueue(This,queue);
13492}
13493/*** IDWriteFactory4 methods ***/
13494static inline HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
13495 return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
13496}
13497static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
13498 return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
13499}
13500static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
13501 return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
13502}
13503/*** IDWriteFactory5 methods ***/
13504static inline HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This,IDWriteInMemoryFontFileLoader **loader) {
13505 return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
13506}
13507static inline HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
13508 return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
13509}
13510static inline DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This,const void *data,UINT32 data_size) {
13511 return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
13512}
13513static inline HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
13514 return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
13515}
13516/*** IDWriteFactory6 methods ***/
13517static inline HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
13518 return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
13519}
13520static inline HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
13521 return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
13522}
13523static inline HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This,WINBOOL include_downloadable,IDWriteFontSet1 **fontset) {
13524 return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset);
13525}
13526static inline HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
13527 return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection);
13528}
13529static inline HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
13530 return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
13531}
13532static inline HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This,IDWriteFontSetBuilder2 **builder) {
13533 return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
13534}
13535static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
13536 return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
13537}
13538#endif
13539#endif
13540
13541#endif
13542
13543
13544#endif /* __IDWriteFactory6_INTERFACE_DEFINED__ */
13545
13546/*****************************************************************************
13547 * IDWriteFactory7 interface
13548 */
13549#ifndef __IDWriteFactory7_INTERFACE_DEFINED__
13550#define __IDWriteFactory7_INTERFACE_DEFINED__
13551
13552DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4);
13553#if defined(__cplusplus) && !defined(CINTERFACE)
13554MIDL_INTERFACE("35d0e0b3-9076-4d2e-a016-a91b568a06b4")
13555IDWriteFactory7 : public IDWriteFactory6
13556{
13557 virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
13558 WINBOOL include_downloadable,
13559 IDWriteFontSet2 **fontset) = 0;
13560
13561 virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
13562 WINBOOL include_downloadable,
13563 DWRITE_FONT_FAMILY_MODEL family_model,
13564 IDWriteFontCollection3 **collection) = 0;
13565
13566};
13567#ifdef __CRT_UUID_DECL
13568__CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4)
13569#endif
13570#else
13571typedef struct IDWriteFactory7Vtbl {
13572 BEGIN_INTERFACE
13573
13574 /*** IUnknown methods ***/
13575 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13576 IDWriteFactory7 *This,
13577 REFIID riid,
13578 void **ppvObject);
13579
13580 ULONG (STDMETHODCALLTYPE *AddRef)(
13581 IDWriteFactory7 *This);
13582
13583 ULONG (STDMETHODCALLTYPE *Release)(
13584 IDWriteFactory7 *This);
13585
13586 /*** IDWriteFactory methods ***/
13587 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
13588 IDWriteFactory7 *This,
13589 IDWriteFontCollection **collection,
13590 WINBOOL check_for_updates);
13591
13592 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
13593 IDWriteFactory7 *This,
13594 IDWriteFontCollectionLoader *loader,
13595 const void *key,
13596 UINT32 key_size,
13597 IDWriteFontCollection **collection);
13598
13599 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
13600 IDWriteFactory7 *This,
13601 IDWriteFontCollectionLoader *loader);
13602
13603 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
13604 IDWriteFactory7 *This,
13605 IDWriteFontCollectionLoader *loader);
13606
13607 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
13608 IDWriteFactory7 *This,
13609 const WCHAR *path,
13610 const FILETIME *writetime,
13611 IDWriteFontFile **font_file);
13612
13613 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
13614 IDWriteFactory7 *This,
13615 const void *reference_key,
13616 UINT32 key_size,
13617 IDWriteFontFileLoader *loader,
13618 IDWriteFontFile **font_file);
13619
13620 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
13621 IDWriteFactory7 *This,
13622 DWRITE_FONT_FACE_TYPE facetype,
13623 UINT32 files_number,
13624 IDWriteFontFile *const *font_files,
13625 UINT32 index,
13626 DWRITE_FONT_SIMULATIONS sim_flags,
13627 IDWriteFontFace **font_face);
13628
13629 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
13630 IDWriteFactory7 *This,
13631 IDWriteRenderingParams **params);
13632
13633 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
13634 IDWriteFactory7 *This,
13635 HMONITOR monitor,
13636 IDWriteRenderingParams **params);
13637
13638 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
13639 IDWriteFactory7 *This,
13640 FLOAT gamma,
13641 FLOAT enhancedContrast,
13642 FLOAT cleartype_level,
13643 DWRITE_PIXEL_GEOMETRY geometry,
13644 DWRITE_RENDERING_MODE mode,
13645 IDWriteRenderingParams **params);
13646
13647 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
13648 IDWriteFactory7 *This,
13649 IDWriteFontFileLoader *loader);
13650
13651 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
13652 IDWriteFactory7 *This,
13653 IDWriteFontFileLoader *loader);
13654
13655 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
13656 IDWriteFactory7 *This,
13657 const WCHAR *family_name,
13658 IDWriteFontCollection *collection,
13659 DWRITE_FONT_WEIGHT weight,
13660 DWRITE_FONT_STYLE style,
13661 DWRITE_FONT_STRETCH stretch,
13662 FLOAT size,
13663 const WCHAR *locale,
13664 IDWriteTextFormat **format);
13665
13666 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
13667 IDWriteFactory7 *This,
13668 IDWriteTypography **typography);
13669
13670 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
13671 IDWriteFactory7 *This,
13672 IDWriteGdiInterop **gdi_interop);
13673
13674 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
13675 IDWriteFactory7 *This,
13676 const WCHAR *string,
13677 UINT32 len,
13678 IDWriteTextFormat *format,
13679 FLOAT max_width,
13680 FLOAT max_height,
13681 IDWriteTextLayout **layout);
13682
13683 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
13684 IDWriteFactory7 *This,
13685 const WCHAR *string,
13686 UINT32 len,
13687 IDWriteTextFormat *format,
13688 FLOAT layout_width,
13689 FLOAT layout_height,
13690 FLOAT pixels_per_dip,
13691 const DWRITE_MATRIX *transform,
13692 WINBOOL use_gdi_natural,
13693 IDWriteTextLayout **layout);
13694
13695 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
13696 IDWriteFactory7 *This,
13697 IDWriteTextFormat *format,
13698 IDWriteInlineObject **trimming_sign);
13699
13700 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
13701 IDWriteFactory7 *This,
13702 IDWriteTextAnalyzer **analyzer);
13703
13704 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
13705 IDWriteFactory7 *This,
13706 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
13707 const WCHAR *locale,
13708 WINBOOL ignore_user_override,
13709 IDWriteNumberSubstitution **substitution);
13710
13711 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
13712 IDWriteFactory7 *This,
13713 const DWRITE_GLYPH_RUN *glyph_run,
13714 FLOAT pixels_per_dip,
13715 const DWRITE_MATRIX *transform,
13716 DWRITE_RENDERING_MODE rendering_mode,
13717 DWRITE_MEASURING_MODE measuring_mode,
13718 FLOAT baseline_x,
13719 FLOAT baseline_y,
13720 IDWriteGlyphRunAnalysis **analysis);
13721
13722 /*** IDWriteFactory1 methods ***/
13723 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
13724 IDWriteFactory7 *This,
13725 IDWriteFontCollection **collection,
13726 WINBOOL check_for_updates);
13727
13728 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
13729 IDWriteFactory7 *This,
13730 FLOAT gamma,
13731 FLOAT enhcontrast,
13732 FLOAT enhcontrast_grayscale,
13733 FLOAT cleartype_level,
13734 DWRITE_PIXEL_GEOMETRY geometry,
13735 DWRITE_RENDERING_MODE mode,
13736 IDWriteRenderingParams1 **params);
13737
13738 /*** IDWriteFactory2 methods ***/
13739 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
13740 IDWriteFactory7 *This,
13741 IDWriteFontFallback **fallback);
13742
13743 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
13744 IDWriteFactory7 *This,
13745 IDWriteFontFallbackBuilder **fallbackbuilder);
13746
13747 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
13748 IDWriteFactory7 *This,
13749 FLOAT originX,
13750 FLOAT originY,
13751 const DWRITE_GLYPH_RUN *run,
13752 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
13753 DWRITE_MEASURING_MODE mode,
13754 const DWRITE_MATRIX *transform,
13755 UINT32 palette_index,
13756 IDWriteColorGlyphRunEnumerator **colorlayers);
13757
13758 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
13759 IDWriteFactory7 *This,
13760 FLOAT gamma,
13761 FLOAT contrast,
13762 FLOAT grayscalecontrast,
13763 FLOAT cleartypeLevel,
13764 DWRITE_PIXEL_GEOMETRY pixelGeometry,
13765 DWRITE_RENDERING_MODE renderingMode,
13766 DWRITE_GRID_FIT_MODE gridFitMode,
13767 IDWriteRenderingParams2 **params);
13768
13769 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
13770 IDWriteFactory7 *This,
13771 const DWRITE_GLYPH_RUN *run,
13772 const DWRITE_MATRIX *transform,
13773 DWRITE_RENDERING_MODE renderingMode,
13774 DWRITE_MEASURING_MODE measuringMode,
13775 DWRITE_GRID_FIT_MODE gridFitMode,
13776 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
13777 FLOAT originX,
13778 FLOAT originY,
13779 IDWriteGlyphRunAnalysis **analysis);
13780
13781 /*** IDWriteFactory3 methods ***/
13782 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
13783 IDWriteFactory7 *This,
13784 const DWRITE_GLYPH_RUN *run,
13785 const DWRITE_MATRIX *transform,
13786 DWRITE_RENDERING_MODE1 rendering_mode,
13787 DWRITE_MEASURING_MODE measuring_mode,
13788 DWRITE_GRID_FIT_MODE gridfit_mode,
13789 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
13790 FLOAT origin_x,
13791 FLOAT origin_y,
13792 IDWriteGlyphRunAnalysis **analysis);
13793
13794 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
13795 IDWriteFactory7 *This,
13796 FLOAT gamma,
13797 FLOAT enhanced_contrast,
13798 FLOAT grayscale_enhanced_contrast,
13799 FLOAT cleartype_level,
13800 DWRITE_PIXEL_GEOMETRY pixel_geometry,
13801 DWRITE_RENDERING_MODE1 rendering_mode,
13802 DWRITE_GRID_FIT_MODE gridfit_mode,
13803 IDWriteRenderingParams3 **params);
13804
13805 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
13806 IDWriteFactory7 *This,
13807 IDWriteFontFile *file,
13808 UINT32 index,
13809 DWRITE_FONT_SIMULATIONS simulations,
13810 IDWriteFontFaceReference **reference);
13811
13812 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
13813 IDWriteFactory7 *This,
13814 const WCHAR *path,
13815 const FILETIME *writetime,
13816 UINT32 index,
13817 DWRITE_FONT_SIMULATIONS simulations,
13818 IDWriteFontFaceReference **reference);
13819
13820 HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
13821 IDWriteFactory7 *This,
13822 IDWriteFontSet **fontset);
13823
13824 HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
13825 IDWriteFactory7 *This,
13826 IDWriteFontSetBuilder **builder);
13827
13828 HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
13829 IDWriteFactory7 *This,
13830 IDWriteFontSet *fontset,
13831 IDWriteFontCollection1 **collection);
13832
13833 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
13834 IDWriteFactory7 *This,
13835 WINBOOL include_downloadable,
13836 IDWriteFontCollection1 **collection,
13837 WINBOOL check_for_updates);
13838
13839 HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
13840 IDWriteFactory7 *This,
13841 IDWriteFontDownloadQueue **queue);
13842
13843 /*** IDWriteFactory4 methods ***/
13844 HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
13845 IDWriteFactory7 *This,
13846 D2D1_POINT_2F baseline_origin,
13847 const DWRITE_GLYPH_RUN *run,
13848 const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
13849 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
13850 DWRITE_MEASURING_MODE measuring_mode,
13851 const DWRITE_MATRIX *transform,
13852 UINT32 palette,
13853 IDWriteColorGlyphRunEnumerator1 **layers);
13854
13855 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
13856 IDWriteFactory7 *This,
13857 const DWRITE_GLYPH_RUN *run,
13858 D2D1_POINT_2F baseline_origin,
13859 D2D1_POINT_2F *origins);
13860
13861 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
13862 IDWriteFactory7 *This,
13863 const DWRITE_GLYPH_RUN *run,
13864 DWRITE_MEASURING_MODE measuring_mode,
13865 D2D1_POINT_2F baseline_origin,
13866 const DWRITE_MATRIX *transform,
13867 D2D1_POINT_2F *origins);
13868
13869 /*** IDWriteFactory5 methods ***/
13870 HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
13871 IDWriteFactory7 *This,
13872 IDWriteFontSetBuilder1 **fontset_builder);
13873
13874 HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
13875 IDWriteFactory7 *This,
13876 IDWriteInMemoryFontFileLoader **loader);
13877
13878 HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
13879 IDWriteFactory7 *This,
13880 const WCHAR *referrer_url,
13881 const WCHAR *extra_headers,
13882 IDWriteRemoteFontFileLoader **loader);
13883
13884 DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
13885 IDWriteFactory7 *This,
13886 const void *data,
13887 UINT32 data_size);
13888
13889 HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
13890 IDWriteFactory7 *This,
13891 DWRITE_CONTAINER_TYPE container_type,
13892 const void *data,
13893 UINT32 data_size,
13894 IDWriteFontFileStream **stream);
13895
13896 /*** IDWriteFactory6 methods ***/
13897 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
13898 IDWriteFactory7 *This,
13899 IDWriteFontFile *file,
13900 UINT32 face_index,
13901 DWRITE_FONT_SIMULATIONS simulations,
13902 const DWRITE_FONT_AXIS_VALUE *axis_values,
13903 UINT32 num_axis,
13904 IDWriteFontFaceReference1 **face_ref);
13905
13906 HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
13907 IDWriteFactory7 *This,
13908 IDWriteFontFile *file,
13909 UINT32 face_index,
13910 IDWriteFontResource **resource);
13911
13912 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
13913 IDWriteFactory7 *This,
13914 WINBOOL include_downloadable,
13915 IDWriteFontSet1 **fontset);
13916
13917 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
13918 IDWriteFactory7 *This,
13919 WINBOOL include_downloadable,
13920 DWRITE_FONT_FAMILY_MODEL family_model,
13921 IDWriteFontCollection2 **collection);
13922
13923 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
13924 IDWriteFactory7 *This,
13925 IDWriteFontSet *fontset,
13926 DWRITE_FONT_FAMILY_MODEL family_model,
13927 IDWriteFontCollection2 **collection);
13928
13929 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
13930 IDWriteFactory7 *This,
13931 IDWriteFontSetBuilder2 **builder);
13932
13933 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
13934 IDWriteFactory7 *This,
13935 const WCHAR *familyname,
13936 IDWriteFontCollection *collection,
13937 const DWRITE_FONT_AXIS_VALUE *axis_values,
13938 UINT32 num_axis,
13939 FLOAT fontsize,
13940 const WCHAR *localename,
13941 IDWriteTextFormat3 **format);
13942
13943 /*** IDWriteFactory7 methods ***/
13944 HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
13945 IDWriteFactory7 *This,
13946 WINBOOL include_downloadable,
13947 IDWriteFontSet2 **fontset);
13948
13949 HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
13950 IDWriteFactory7 *This,
13951 WINBOOL include_downloadable,
13952 DWRITE_FONT_FAMILY_MODEL family_model,
13953 IDWriteFontCollection3 **collection);
13954
13955 END_INTERFACE
13956} IDWriteFactory7Vtbl;
13957
13958interface IDWriteFactory7 {
13959 CONST_VTBL IDWriteFactory7Vtbl* lpVtbl;
13960};
13961
13962#ifdef COBJMACROS
13963#ifndef WIDL_C_INLINE_WRAPPERS
13964/*** IUnknown methods ***/
13965#define IDWriteFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13966#define IDWriteFactory7_AddRef(This) (This)->lpVtbl->AddRef(This)
13967#define IDWriteFactory7_Release(This) (This)->lpVtbl->Release(This)
13968/*** IDWriteFactory methods ***/
13969#define IDWriteFactory7_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
13970#define IDWriteFactory7_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
13971#define IDWriteFactory7_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
13972#define IDWriteFactory7_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
13973#define IDWriteFactory7_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
13974#define IDWriteFactory7_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
13975#define IDWriteFactory7_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
13976#define IDWriteFactory7_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
13977#define IDWriteFactory7_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
13978#define IDWriteFactory7_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
13979#define IDWriteFactory7_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
13980#define IDWriteFactory7_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
13981#define IDWriteFactory7_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
13982#define IDWriteFactory7_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
13983#define IDWriteFactory7_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
13984#define IDWriteFactory7_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
13985#define IDWriteFactory7_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
13986/*** IDWriteFactory1 methods ***/
13987#define IDWriteFactory7_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
13988/*** IDWriteFactory2 methods ***/
13989#define IDWriteFactory7_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
13990#define IDWriteFactory7_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
13991/*** IDWriteFactory3 methods ***/
13992#define IDWriteFactory7_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
13993#define IDWriteFactory7_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
13994#define IDWriteFactory7_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
13995#define IDWriteFactory7_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
13996/*** IDWriteFactory4 methods ***/
13997#define IDWriteFactory7_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
13998#define IDWriteFactory7_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
13999#define IDWriteFactory7_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
14000/*** IDWriteFactory5 methods ***/
14001#define IDWriteFactory7_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
14002#define IDWriteFactory7_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
14003#define IDWriteFactory7_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
14004#define IDWriteFactory7_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
14005/*** IDWriteFactory6 methods ***/
14006#define IDWriteFactory7_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
14007#define IDWriteFactory7_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
14008#define IDWriteFactory7_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
14009#define IDWriteFactory7_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
14010#define IDWriteFactory7_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
14011/*** IDWriteFactory7 methods ***/
14012#define IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
14013#define IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
14014#else
14015/*** IUnknown methods ***/
14016static inline HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This,REFIID riid,void **ppvObject) {
14017 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14018}
14019static inline ULONG IDWriteFactory7_AddRef(IDWriteFactory7* This) {
14020 return This->lpVtbl->AddRef(This);
14021}
14022static inline ULONG IDWriteFactory7_Release(IDWriteFactory7* This) {
14023 return This->lpVtbl->Release(This);
14024}
14025/*** IDWriteFactory methods ***/
14026static inline HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
14027 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
14028}
14029static inline HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) {
14030 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
14031}
14032static inline HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) {
14033 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
14034}
14035static inline HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
14036 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
14037}
14038static inline HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
14039 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
14040}
14041static inline HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
14042 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
14043}
14044static inline HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This,IDWriteRenderingParams **params) {
14045 return This->lpVtbl->CreateRenderingParams(This,params);
14046}
14047static inline HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This,HMONITOR monitor,IDWriteRenderingParams **params) {
14048 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
14049}
14050static inline HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) {
14051 return This->lpVtbl->RegisterFontFileLoader(This,loader);
14052}
14053static inline HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) {
14054 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
14055}
14056static inline HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This,IDWriteTypography **typography) {
14057 return This->lpVtbl->CreateTypography(This,typography);
14058}
14059static inline HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This,IDWriteGdiInterop **gdi_interop) {
14060 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
14061}
14062static inline HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
14063 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
14064}
14065static inline HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
14066 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
14067}
14068static inline HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
14069 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
14070}
14071static inline HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This,IDWriteTextAnalyzer **analyzer) {
14072 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
14073}
14074static inline HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
14075 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
14076}
14077/*** IDWriteFactory1 methods ***/
14078static inline HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
14079 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
14080}
14081/*** IDWriteFactory2 methods ***/
14082static inline HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This,IDWriteFontFallback **fallback) {
14083 return This->lpVtbl->GetSystemFontFallback(This,fallback);
14084}
14085static inline HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
14086 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
14087}
14088/*** IDWriteFactory3 methods ***/
14089static inline HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
14090 return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
14091}
14092static inline HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
14093 return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
14094}
14095static inline HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
14096 return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
14097}
14098static inline HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This,IDWriteFontDownloadQueue **queue) {
14099 return This->lpVtbl->GetFontDownloadQueue(This,queue);
14100}
14101/*** IDWriteFactory4 methods ***/
14102static inline HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
14103 return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
14104}
14105static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
14106 return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
14107}
14108static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
14109 return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
14110}
14111/*** IDWriteFactory5 methods ***/
14112static inline HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This,IDWriteInMemoryFontFileLoader **loader) {
14113 return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
14114}
14115static inline HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
14116 return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
14117}
14118static inline DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This,const void *data,UINT32 data_size) {
14119 return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
14120}
14121static inline HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
14122 return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
14123}
14124/*** IDWriteFactory6 methods ***/
14125static inline HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
14126 return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
14127}
14128static inline HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
14129 return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
14130}
14131static inline HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
14132 return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
14133}
14134static inline HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This,IDWriteFontSetBuilder2 **builder) {
14135 return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
14136}
14137static inline HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
14138 return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
14139}
14140/*** IDWriteFactory7 methods ***/
14141static inline HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
14142 return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
14143}
14144static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
14145 return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
14146}
14147#endif
14148#endif
14149
14150#endif
14151
14152
14153#endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */
14154
14155/*****************************************************************************
14156 * IDWriteFactory8 interface
14157 */
14158#ifndef __IDWriteFactory8_INTERFACE_DEFINED__
14159#define __IDWriteFactory8_INTERFACE_DEFINED__
14160
14161DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98);
14162#if defined(__cplusplus) && !defined(CINTERFACE)
14163MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398")
14164IDWriteFactory8 : public IDWriteFactory7
14165{
14166 virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
14167 D2D1_POINT_2F origin,
14168 const DWRITE_GLYPH_RUN *glyph_run,
14169 const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
14170 DWRITE_GLYPH_IMAGE_FORMATS image_formats,
14171 DWRITE_PAINT_FEATURE_LEVEL feature_level,
14172 DWRITE_MEASURING_MODE measuring_mode,
14173 const DWRITE_MATRIX *world_and_dpi_transform,
14174 UINT32 palette_index,
14175 IDWriteColorGlyphRunEnumerator1 **enumerator) = 0;
14176
14177};
14178#ifdef __CRT_UUID_DECL
14179__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98)
14180#endif
14181#else
14182typedef struct IDWriteFactory8Vtbl {
14183 BEGIN_INTERFACE
14184
14185 /*** IUnknown methods ***/
14186 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14187 IDWriteFactory8 *This,
14188 REFIID riid,
14189 void **ppvObject);
14190
14191 ULONG (STDMETHODCALLTYPE *AddRef)(
14192 IDWriteFactory8 *This);
14193
14194 ULONG (STDMETHODCALLTYPE *Release)(
14195 IDWriteFactory8 *This);
14196
14197 /*** IDWriteFactory methods ***/
14198 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
14199 IDWriteFactory8 *This,
14200 IDWriteFontCollection **collection,
14201 WINBOOL check_for_updates);
14202
14203 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
14204 IDWriteFactory8 *This,
14205 IDWriteFontCollectionLoader *loader,
14206 const void *key,
14207 UINT32 key_size,
14208 IDWriteFontCollection **collection);
14209
14210 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
14211 IDWriteFactory8 *This,
14212 IDWriteFontCollectionLoader *loader);
14213
14214 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
14215 IDWriteFactory8 *This,
14216 IDWriteFontCollectionLoader *loader);
14217
14218 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
14219 IDWriteFactory8 *This,
14220 const WCHAR *path,
14221 const FILETIME *writetime,
14222 IDWriteFontFile **font_file);
14223
14224 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
14225 IDWriteFactory8 *This,
14226 const void *reference_key,
14227 UINT32 key_size,
14228 IDWriteFontFileLoader *loader,
14229 IDWriteFontFile **font_file);
14230
14231 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
14232 IDWriteFactory8 *This,
14233 DWRITE_FONT_FACE_TYPE facetype,
14234 UINT32 files_number,
14235 IDWriteFontFile *const *font_files,
14236 UINT32 index,
14237 DWRITE_FONT_SIMULATIONS sim_flags,
14238 IDWriteFontFace **font_face);
14239
14240 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
14241 IDWriteFactory8 *This,
14242 IDWriteRenderingParams **params);
14243
14244 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
14245 IDWriteFactory8 *This,
14246 HMONITOR monitor,
14247 IDWriteRenderingParams **params);
14248
14249 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
14250 IDWriteFactory8 *This,
14251 FLOAT gamma,
14252 FLOAT enhancedContrast,
14253 FLOAT cleartype_level,
14254 DWRITE_PIXEL_GEOMETRY geometry,
14255 DWRITE_RENDERING_MODE mode,
14256 IDWriteRenderingParams **params);
14257
14258 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
14259 IDWriteFactory8 *This,
14260 IDWriteFontFileLoader *loader);
14261
14262 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
14263 IDWriteFactory8 *This,
14264 IDWriteFontFileLoader *loader);
14265
14266 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
14267 IDWriteFactory8 *This,
14268 const WCHAR *family_name,
14269 IDWriteFontCollection *collection,
14270 DWRITE_FONT_WEIGHT weight,
14271 DWRITE_FONT_STYLE style,
14272 DWRITE_FONT_STRETCH stretch,
14273 FLOAT size,
14274 const WCHAR *locale,
14275 IDWriteTextFormat **format);
14276
14277 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
14278 IDWriteFactory8 *This,
14279 IDWriteTypography **typography);
14280
14281 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
14282 IDWriteFactory8 *This,
14283 IDWriteGdiInterop **gdi_interop);
14284
14285 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
14286 IDWriteFactory8 *This,
14287 const WCHAR *string,
14288 UINT32 len,
14289 IDWriteTextFormat *format,
14290 FLOAT max_width,
14291 FLOAT max_height,
14292 IDWriteTextLayout **layout);
14293
14294 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
14295 IDWriteFactory8 *This,
14296 const WCHAR *string,
14297 UINT32 len,
14298 IDWriteTextFormat *format,
14299 FLOAT layout_width,
14300 FLOAT layout_height,
14301 FLOAT pixels_per_dip,
14302 const DWRITE_MATRIX *transform,
14303 WINBOOL use_gdi_natural,
14304 IDWriteTextLayout **layout);
14305
14306 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
14307 IDWriteFactory8 *This,
14308 IDWriteTextFormat *format,
14309 IDWriteInlineObject **trimming_sign);
14310
14311 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
14312 IDWriteFactory8 *This,
14313 IDWriteTextAnalyzer **analyzer);
14314
14315 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
14316 IDWriteFactory8 *This,
14317 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
14318 const WCHAR *locale,
14319 WINBOOL ignore_user_override,
14320 IDWriteNumberSubstitution **substitution);
14321
14322 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
14323 IDWriteFactory8 *This,
14324 const DWRITE_GLYPH_RUN *glyph_run,
14325 FLOAT pixels_per_dip,
14326 const DWRITE_MATRIX *transform,
14327 DWRITE_RENDERING_MODE rendering_mode,
14328 DWRITE_MEASURING_MODE measuring_mode,
14329 FLOAT baseline_x,
14330 FLOAT baseline_y,
14331 IDWriteGlyphRunAnalysis **analysis);
14332
14333 /*** IDWriteFactory1 methods ***/
14334 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
14335 IDWriteFactory8 *This,
14336 IDWriteFontCollection **collection,
14337 WINBOOL check_for_updates);
14338
14339 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
14340 IDWriteFactory8 *This,
14341 FLOAT gamma,
14342 FLOAT enhcontrast,
14343 FLOAT enhcontrast_grayscale,
14344 FLOAT cleartype_level,
14345 DWRITE_PIXEL_GEOMETRY geometry,
14346 DWRITE_RENDERING_MODE mode,
14347 IDWriteRenderingParams1 **params);
14348
14349 /*** IDWriteFactory2 methods ***/
14350 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
14351 IDWriteFactory8 *This,
14352 IDWriteFontFallback **fallback);
14353
14354 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
14355 IDWriteFactory8 *This,
14356 IDWriteFontFallbackBuilder **fallbackbuilder);
14357
14358 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
14359 IDWriteFactory8 *This,
14360 FLOAT originX,
14361 FLOAT originY,
14362 const DWRITE_GLYPH_RUN *run,
14363 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
14364 DWRITE_MEASURING_MODE mode,
14365 const DWRITE_MATRIX *transform,
14366 UINT32 palette_index,
14367 IDWriteColorGlyphRunEnumerator **colorlayers);
14368
14369 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
14370 IDWriteFactory8 *This,
14371 FLOAT gamma,
14372 FLOAT contrast,
14373 FLOAT grayscalecontrast,
14374 FLOAT cleartypeLevel,
14375 DWRITE_PIXEL_GEOMETRY pixelGeometry,
14376 DWRITE_RENDERING_MODE renderingMode,
14377 DWRITE_GRID_FIT_MODE gridFitMode,
14378 IDWriteRenderingParams2 **params);
14379
14380 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
14381 IDWriteFactory8 *This,
14382 const DWRITE_GLYPH_RUN *run,
14383 const DWRITE_MATRIX *transform,
14384 DWRITE_RENDERING_MODE renderingMode,
14385 DWRITE_MEASURING_MODE measuringMode,
14386 DWRITE_GRID_FIT_MODE gridFitMode,
14387 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
14388 FLOAT originX,
14389 FLOAT originY,
14390 IDWriteGlyphRunAnalysis **analysis);
14391
14392 /*** IDWriteFactory3 methods ***/
14393 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
14394 IDWriteFactory8 *This,
14395 const DWRITE_GLYPH_RUN *run,
14396 const DWRITE_MATRIX *transform,
14397 DWRITE_RENDERING_MODE1 rendering_mode,
14398 DWRITE_MEASURING_MODE measuring_mode,
14399 DWRITE_GRID_FIT_MODE gridfit_mode,
14400 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
14401 FLOAT origin_x,
14402 FLOAT origin_y,
14403 IDWriteGlyphRunAnalysis **analysis);
14404
14405 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
14406 IDWriteFactory8 *This,
14407 FLOAT gamma,
14408 FLOAT enhanced_contrast,
14409 FLOAT grayscale_enhanced_contrast,
14410 FLOAT cleartype_level,
14411 DWRITE_PIXEL_GEOMETRY pixel_geometry,
14412 DWRITE_RENDERING_MODE1 rendering_mode,
14413 DWRITE_GRID_FIT_MODE gridfit_mode,
14414 IDWriteRenderingParams3 **params);
14415
14416 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
14417 IDWriteFactory8 *This,
14418 IDWriteFontFile *file,
14419 UINT32 index,
14420 DWRITE_FONT_SIMULATIONS simulations,
14421 IDWriteFontFaceReference **reference);
14422
14423 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
14424 IDWriteFactory8 *This,
14425 const WCHAR *path,
14426 const FILETIME *writetime,
14427 UINT32 index,
14428 DWRITE_FONT_SIMULATIONS simulations,
14429 IDWriteFontFaceReference **reference);
14430
14431 HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
14432 IDWriteFactory8 *This,
14433 IDWriteFontSet **fontset);
14434
14435 HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
14436 IDWriteFactory8 *This,
14437 IDWriteFontSetBuilder **builder);
14438
14439 HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
14440 IDWriteFactory8 *This,
14441 IDWriteFontSet *fontset,
14442 IDWriteFontCollection1 **collection);
14443
14444 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
14445 IDWriteFactory8 *This,
14446 WINBOOL include_downloadable,
14447 IDWriteFontCollection1 **collection,
14448 WINBOOL check_for_updates);
14449
14450 HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
14451 IDWriteFactory8 *This,
14452 IDWriteFontDownloadQueue **queue);
14453
14454 /*** IDWriteFactory4 methods ***/
14455 HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
14456 IDWriteFactory8 *This,
14457 D2D1_POINT_2F baseline_origin,
14458 const DWRITE_GLYPH_RUN *run,
14459 const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
14460 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
14461 DWRITE_MEASURING_MODE measuring_mode,
14462 const DWRITE_MATRIX *transform,
14463 UINT32 palette,
14464 IDWriteColorGlyphRunEnumerator1 **layers);
14465
14466 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
14467 IDWriteFactory8 *This,
14468 const DWRITE_GLYPH_RUN *run,
14469 D2D1_POINT_2F baseline_origin,
14470 D2D1_POINT_2F *origins);
14471
14472 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
14473 IDWriteFactory8 *This,
14474 const DWRITE_GLYPH_RUN *run,
14475 DWRITE_MEASURING_MODE measuring_mode,
14476 D2D1_POINT_2F baseline_origin,
14477 const DWRITE_MATRIX *transform,
14478 D2D1_POINT_2F *origins);
14479
14480 /*** IDWriteFactory5 methods ***/
14481 HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
14482 IDWriteFactory8 *This,
14483 IDWriteFontSetBuilder1 **fontset_builder);
14484
14485 HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
14486 IDWriteFactory8 *This,
14487 IDWriteInMemoryFontFileLoader **loader);
14488
14489 HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
14490 IDWriteFactory8 *This,
14491 const WCHAR *referrer_url,
14492 const WCHAR *extra_headers,
14493 IDWriteRemoteFontFileLoader **loader);
14494
14495 DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
14496 IDWriteFactory8 *This,
14497 const void *data,
14498 UINT32 data_size);
14499
14500 HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
14501 IDWriteFactory8 *This,
14502 DWRITE_CONTAINER_TYPE container_type,
14503 const void *data,
14504 UINT32 data_size,
14505 IDWriteFontFileStream **stream);
14506
14507 /*** IDWriteFactory6 methods ***/
14508 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
14509 IDWriteFactory8 *This,
14510 IDWriteFontFile *file,
14511 UINT32 face_index,
14512 DWRITE_FONT_SIMULATIONS simulations,
14513 const DWRITE_FONT_AXIS_VALUE *axis_values,
14514 UINT32 num_axis,
14515 IDWriteFontFaceReference1 **face_ref);
14516
14517 HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
14518 IDWriteFactory8 *This,
14519 IDWriteFontFile *file,
14520 UINT32 face_index,
14521 IDWriteFontResource **resource);
14522
14523 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
14524 IDWriteFactory8 *This,
14525 WINBOOL include_downloadable,
14526 IDWriteFontSet1 **fontset);
14527
14528 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
14529 IDWriteFactory8 *This,
14530 WINBOOL include_downloadable,
14531 DWRITE_FONT_FAMILY_MODEL family_model,
14532 IDWriteFontCollection2 **collection);
14533
14534 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
14535 IDWriteFactory8 *This,
14536 IDWriteFontSet *fontset,
14537 DWRITE_FONT_FAMILY_MODEL family_model,
14538 IDWriteFontCollection2 **collection);
14539
14540 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
14541 IDWriteFactory8 *This,
14542 IDWriteFontSetBuilder2 **builder);
14543
14544 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
14545 IDWriteFactory8 *This,
14546 const WCHAR *familyname,
14547 IDWriteFontCollection *collection,
14548 const DWRITE_FONT_AXIS_VALUE *axis_values,
14549 UINT32 num_axis,
14550 FLOAT fontsize,
14551 const WCHAR *localename,
14552 IDWriteTextFormat3 **format);
14553
14554 /*** IDWriteFactory7 methods ***/
14555 HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
14556 IDWriteFactory8 *This,
14557 WINBOOL include_downloadable,
14558 IDWriteFontSet2 **fontset);
14559
14560 HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
14561 IDWriteFactory8 *This,
14562 WINBOOL include_downloadable,
14563 DWRITE_FONT_FAMILY_MODEL family_model,
14564 IDWriteFontCollection3 **collection);
14565
14566 /*** IDWriteFactory8 methods ***/
14567 HRESULT (STDMETHODCALLTYPE *IDWriteFactory8_TranslateColorGlyphRun)(
14568 IDWriteFactory8 *This,
14569 D2D1_POINT_2F origin,
14570 const DWRITE_GLYPH_RUN *glyph_run,
14571 const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
14572 DWRITE_GLYPH_IMAGE_FORMATS image_formats,
14573 DWRITE_PAINT_FEATURE_LEVEL feature_level,
14574 DWRITE_MEASURING_MODE measuring_mode,
14575 const DWRITE_MATRIX *world_and_dpi_transform,
14576 UINT32 palette_index,
14577 IDWriteColorGlyphRunEnumerator1 **enumerator);
14578
14579 END_INTERFACE
14580} IDWriteFactory8Vtbl;
14581
14582interface IDWriteFactory8 {
14583 CONST_VTBL IDWriteFactory8Vtbl* lpVtbl;
14584};
14585
14586#ifdef COBJMACROS
14587#ifndef WIDL_C_INLINE_WRAPPERS
14588/*** IUnknown methods ***/
14589#define IDWriteFactory8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14590#define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This)
14591#define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This)
14592/*** IDWriteFactory methods ***/
14593#define IDWriteFactory8_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
14594#define IDWriteFactory8_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
14595#define IDWriteFactory8_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
14596#define IDWriteFactory8_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
14597#define IDWriteFactory8_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
14598#define IDWriteFactory8_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
14599#define IDWriteFactory8_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
14600#define IDWriteFactory8_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
14601#define IDWriteFactory8_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
14602#define IDWriteFactory8_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
14603#define IDWriteFactory8_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
14604#define IDWriteFactory8_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
14605#define IDWriteFactory8_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
14606#define IDWriteFactory8_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
14607#define IDWriteFactory8_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
14608#define IDWriteFactory8_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
14609#define IDWriteFactory8_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
14610/*** IDWriteFactory1 methods ***/
14611#define IDWriteFactory8_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
14612/*** IDWriteFactory2 methods ***/
14613#define IDWriteFactory8_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
14614#define IDWriteFactory8_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
14615/*** IDWriteFactory3 methods ***/
14616#define IDWriteFactory8_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
14617#define IDWriteFactory8_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
14618#define IDWriteFactory8_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
14619#define IDWriteFactory8_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
14620/*** IDWriteFactory4 methods ***/
14621#define IDWriteFactory8_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
14622#define IDWriteFactory8_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
14623/*** IDWriteFactory5 methods ***/
14624#define IDWriteFactory8_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
14625#define IDWriteFactory8_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
14626#define IDWriteFactory8_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
14627#define IDWriteFactory8_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
14628/*** IDWriteFactory6 methods ***/
14629#define IDWriteFactory8_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
14630#define IDWriteFactory8_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
14631#define IDWriteFactory8_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
14632#define IDWriteFactory8_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
14633#define IDWriteFactory8_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
14634/*** IDWriteFactory7 methods ***/
14635#define IDWriteFactory8_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
14636#define IDWriteFactory8_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
14637/*** IDWriteFactory8 methods ***/
14638#define IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator)
14639#else
14640/*** IUnknown methods ***/
14641static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) {
14642 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14643}
14644static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) {
14645 return This->lpVtbl->AddRef(This);
14646}
14647static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) {
14648 return This->lpVtbl->Release(This);
14649}
14650/*** IDWriteFactory methods ***/
14651static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
14652 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
14653}
14654static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
14655 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
14656}
14657static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
14658 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
14659}
14660static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
14661 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
14662}
14663static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
14664 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
14665}
14666static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
14667 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
14668}
14669static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) {
14670 return This->lpVtbl->CreateRenderingParams(This,params);
14671}
14672static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) {
14673 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
14674}
14675static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
14676 return This->lpVtbl->RegisterFontFileLoader(This,loader);
14677}
14678static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
14679 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
14680}
14681static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) {
14682 return This->lpVtbl->CreateTypography(This,typography);
14683}
14684static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) {
14685 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
14686}
14687static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
14688 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
14689}
14690static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
14691 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
14692}
14693static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
14694 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
14695}
14696static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) {
14697 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
14698}
14699static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
14700 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
14701}
14702/*** IDWriteFactory1 methods ***/
14703static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
14704 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
14705}
14706/*** IDWriteFactory2 methods ***/
14707static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) {
14708 return This->lpVtbl->GetSystemFontFallback(This,fallback);
14709}
14710static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
14711 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
14712}
14713/*** IDWriteFactory3 methods ***/
14714static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
14715 return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
14716}
14717static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
14718 return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
14719}
14720static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
14721 return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
14722}
14723static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) {
14724 return This->lpVtbl->GetFontDownloadQueue(This,queue);
14725}
14726/*** IDWriteFactory4 methods ***/
14727static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
14728 return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
14729}
14730static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
14731 return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
14732}
14733/*** IDWriteFactory5 methods ***/
14734static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) {
14735 return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
14736}
14737static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
14738 return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
14739}
14740static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) {
14741 return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
14742}
14743static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
14744 return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
14745}
14746/*** IDWriteFactory6 methods ***/
14747static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
14748 return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
14749}
14750static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
14751 return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
14752}
14753static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
14754 return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
14755}
14756static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) {
14757 return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
14758}
14759static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
14760 return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
14761}
14762/*** IDWriteFactory7 methods ***/
14763static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
14764 return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
14765}
14766static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
14767 return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
14768}
14769/*** IDWriteFactory8 methods ***/
14770static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This,D2D1_POINT_2F origin,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,DWRITE_GLYPH_IMAGE_FORMATS image_formats,DWRITE_PAINT_FEATURE_LEVEL feature_level,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *world_and_dpi_transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator1 **enumerator) {
14771 return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator);
14772}
14773#endif
14774#endif
14775
14776#endif
14777
14778
14779#endif /* __IDWriteFactory8_INTERFACE_DEFINED__ */
14780
14781typedef struct DWRITE_BITMAP_DATA_BGRA32 {
14782 UINT32 width;
14783 UINT32 height;
14784 UINT32 *pixels;
14785} DWRITE_BITMAP_DATA_BGRA32;
14786/*****************************************************************************
14787 * IDWriteBitmapRenderTarget2 interface
14788 */
14789#ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
14790#define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
14791
14792DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95);
14793#if defined(__cplusplus) && !defined(CINTERFACE)
14794MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995")
14795IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1
14796{
14797 virtual HRESULT STDMETHODCALLTYPE GetBitmapData(
14798 DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) = 0;
14799
14800};
14801#ifdef __CRT_UUID_DECL
14802__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95)
14803#endif
14804#else
14805typedef struct IDWriteBitmapRenderTarget2Vtbl {
14806 BEGIN_INTERFACE
14807
14808 /*** IUnknown methods ***/
14809 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14810 IDWriteBitmapRenderTarget2 *This,
14811 REFIID riid,
14812 void **ppvObject);
14813
14814 ULONG (STDMETHODCALLTYPE *AddRef)(
14815 IDWriteBitmapRenderTarget2 *This);
14816
14817 ULONG (STDMETHODCALLTYPE *Release)(
14818 IDWriteBitmapRenderTarget2 *This);
14819
14820 /*** IDWriteBitmapRenderTarget methods ***/
14821 HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
14822 IDWriteBitmapRenderTarget2 *This,
14823 FLOAT baselineOriginX,
14824 FLOAT baselineOriginY,
14825 DWRITE_MEASURING_MODE measuring_mode,
14826 const DWRITE_GLYPH_RUN *glyph_run,
14827 IDWriteRenderingParams *params,
14828 COLORREF textColor,
14829 RECT *blackbox_rect);
14830
14831 HDC (STDMETHODCALLTYPE *GetMemoryDC)(
14832 IDWriteBitmapRenderTarget2 *This);
14833
14834 FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
14835 IDWriteBitmapRenderTarget2 *This);
14836
14837 HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
14838 IDWriteBitmapRenderTarget2 *This,
14839 FLOAT pixels_per_dip);
14840
14841 HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
14842 IDWriteBitmapRenderTarget2 *This,
14843 DWRITE_MATRIX *transform);
14844
14845 HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
14846 IDWriteBitmapRenderTarget2 *This,
14847 const DWRITE_MATRIX *transform);
14848
14849 HRESULT (STDMETHODCALLTYPE *GetSize)(
14850 IDWriteBitmapRenderTarget2 *This,
14851 SIZE *size);
14852
14853 HRESULT (STDMETHODCALLTYPE *Resize)(
14854 IDWriteBitmapRenderTarget2 *This,
14855 UINT32 width,
14856 UINT32 height);
14857
14858 /*** IDWriteBitmapRenderTarget1 methods ***/
14859 DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
14860 IDWriteBitmapRenderTarget2 *This);
14861
14862 HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
14863 IDWriteBitmapRenderTarget2 *This,
14864 DWRITE_TEXT_ANTIALIAS_MODE mode);
14865
14866 /*** IDWriteBitmapRenderTarget2 methods ***/
14867 HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
14868 IDWriteBitmapRenderTarget2 *This,
14869 DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
14870
14871 END_INTERFACE
14872} IDWriteBitmapRenderTarget2Vtbl;
14873
14874interface IDWriteBitmapRenderTarget2 {
14875 CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl;
14876};
14877
14878#ifdef COBJMACROS
14879#ifndef WIDL_C_INLINE_WRAPPERS
14880/*** IUnknown methods ***/
14881#define IDWriteBitmapRenderTarget2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14882#define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This)
14883#define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This)
14884/*** IDWriteBitmapRenderTarget methods ***/
14885#define IDWriteBitmapRenderTarget2_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
14886#define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
14887#define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
14888#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
14889#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
14890#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
14891#define IDWriteBitmapRenderTarget2_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
14892#define IDWriteBitmapRenderTarget2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
14893/*** IDWriteBitmapRenderTarget1 methods ***/
14894#define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
14895#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
14896/*** IDWriteBitmapRenderTarget2 methods ***/
14897#define IDWriteBitmapRenderTarget2_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
14898#else
14899/*** IUnknown methods ***/
14900static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) {
14901 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14902}
14903static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) {
14904 return This->lpVtbl->AddRef(This);
14905}
14906static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) {
14907 return This->lpVtbl->Release(This);
14908}
14909/*** IDWriteBitmapRenderTarget methods ***/
14910static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
14911 return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
14912}
14913static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) {
14914 return This->lpVtbl->GetMemoryDC(This);
14915}
14916static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) {
14917 return This->lpVtbl->GetPixelsPerDip(This);
14918}
14919static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) {
14920 return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
14921}
14922static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) {
14923 return This->lpVtbl->GetCurrentTransform(This,transform);
14924}
14925static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) {
14926 return This->lpVtbl->SetCurrentTransform(This,transform);
14927}
14928static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) {
14929 return This->lpVtbl->GetSize(This,size);
14930}
14931static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) {
14932 return This->lpVtbl->Resize(This,width,height);
14933}
14934/*** IDWriteBitmapRenderTarget1 methods ***/
14935static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) {
14936 return This->lpVtbl->GetTextAntialiasMode(This);
14937}
14938static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
14939 return This->lpVtbl->SetTextAntialiasMode(This,mode);
14940}
14941/*** IDWriteBitmapRenderTarget2 methods ***/
14942static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
14943 return This->lpVtbl->GetBitmapData(This,bitmap_data);
14944}
14945#endif
14946#endif
14947
14948#endif
14949
14950
14951#endif /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */
14952
14953/*****************************************************************************
14954 * IDWriteBitmapRenderTarget3 interface
14955 */
14956#ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
14957#define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
14958
14959DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38);
14960#if defined(__cplusplus) && !defined(CINTERFACE)
14961MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238")
14962IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2
14963{
14964 virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel(
14965 ) = 0;
14966
14967 virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun(
14968 FLOAT origin_x,
14969 FLOAT origin_y,
14970 DWRITE_MEASURING_MODE measuring_mode,
14971 const DWRITE_GLYPH_RUN *run,
14972 DWRITE_GLYPH_IMAGE_FORMATS image_format,
14973 COLORREF text_color,
14974 UINT32 palette_index,
14975 RECT *black_box) = 0;
14976
14977 virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport(
14978 FLOAT origin_x,
14979 FLOAT origin_y,
14980 DWRITE_MEASURING_MODE measuring_mode,
14981 const DWRITE_GLYPH_RUN *run,
14982 IDWriteRenderingParams *params,
14983 COLORREF text_color,
14984 UINT32 palette_index,
14985 RECT *black_box) = 0;
14986
14987};
14988#ifdef __CRT_UUID_DECL
14989__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38)
14990#endif
14991#else
14992typedef struct IDWriteBitmapRenderTarget3Vtbl {
14993 BEGIN_INTERFACE
14994
14995 /*** IUnknown methods ***/
14996 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14997 IDWriteBitmapRenderTarget3 *This,
14998 REFIID riid,
14999 void **ppvObject);
15000
15001 ULONG (STDMETHODCALLTYPE *AddRef)(
15002 IDWriteBitmapRenderTarget3 *This);
15003
15004 ULONG (STDMETHODCALLTYPE *Release)(
15005 IDWriteBitmapRenderTarget3 *This);
15006
15007 /*** IDWriteBitmapRenderTarget methods ***/
15008 HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
15009 IDWriteBitmapRenderTarget3 *This,
15010 FLOAT baselineOriginX,
15011 FLOAT baselineOriginY,
15012 DWRITE_MEASURING_MODE measuring_mode,
15013 const DWRITE_GLYPH_RUN *glyph_run,
15014 IDWriteRenderingParams *params,
15015 COLORREF textColor,
15016 RECT *blackbox_rect);
15017
15018 HDC (STDMETHODCALLTYPE *GetMemoryDC)(
15019 IDWriteBitmapRenderTarget3 *This);
15020
15021 FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
15022 IDWriteBitmapRenderTarget3 *This);
15023
15024 HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
15025 IDWriteBitmapRenderTarget3 *This,
15026 FLOAT pixels_per_dip);
15027
15028 HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
15029 IDWriteBitmapRenderTarget3 *This,
15030 DWRITE_MATRIX *transform);
15031
15032 HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
15033 IDWriteBitmapRenderTarget3 *This,
15034 const DWRITE_MATRIX *transform);
15035
15036 HRESULT (STDMETHODCALLTYPE *GetSize)(
15037 IDWriteBitmapRenderTarget3 *This,
15038 SIZE *size);
15039
15040 HRESULT (STDMETHODCALLTYPE *Resize)(
15041 IDWriteBitmapRenderTarget3 *This,
15042 UINT32 width,
15043 UINT32 height);
15044
15045 /*** IDWriteBitmapRenderTarget1 methods ***/
15046 DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
15047 IDWriteBitmapRenderTarget3 *This);
15048
15049 HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
15050 IDWriteBitmapRenderTarget3 *This,
15051 DWRITE_TEXT_ANTIALIAS_MODE mode);
15052
15053 /*** IDWriteBitmapRenderTarget2 methods ***/
15054 HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
15055 IDWriteBitmapRenderTarget3 *This,
15056 DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
15057
15058 /*** IDWriteBitmapRenderTarget3 methods ***/
15059 DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)(
15060 IDWriteBitmapRenderTarget3 *This);
15061
15062 HRESULT (STDMETHODCALLTYPE *DrawPaintGlyphRun)(
15063 IDWriteBitmapRenderTarget3 *This,
15064 FLOAT origin_x,
15065 FLOAT origin_y,
15066 DWRITE_MEASURING_MODE measuring_mode,
15067 const DWRITE_GLYPH_RUN *run,
15068 DWRITE_GLYPH_IMAGE_FORMATS image_format,
15069 COLORREF text_color,
15070 UINT32 palette_index,
15071 RECT *black_box);
15072
15073 HRESULT (STDMETHODCALLTYPE *DrawGlyphRunWithColorSupport)(
15074 IDWriteBitmapRenderTarget3 *This,
15075 FLOAT origin_x,
15076 FLOAT origin_y,
15077 DWRITE_MEASURING_MODE measuring_mode,
15078 const DWRITE_GLYPH_RUN *run,
15079 IDWriteRenderingParams *params,
15080 COLORREF text_color,
15081 UINT32 palette_index,
15082 RECT *black_box);
15083
15084 END_INTERFACE
15085} IDWriteBitmapRenderTarget3Vtbl;
15086
15087interface IDWriteBitmapRenderTarget3 {
15088 CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl;
15089};
15090
15091#ifdef COBJMACROS
15092#ifndef WIDL_C_INLINE_WRAPPERS
15093/*** IUnknown methods ***/
15094#define IDWriteBitmapRenderTarget3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15095#define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This)
15096#define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This)
15097/*** IDWriteBitmapRenderTarget methods ***/
15098#define IDWriteBitmapRenderTarget3_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
15099#define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
15100#define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
15101#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
15102#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
15103#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
15104#define IDWriteBitmapRenderTarget3_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
15105#define IDWriteBitmapRenderTarget3_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
15106/*** IDWriteBitmapRenderTarget1 methods ***/
15107#define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
15108#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
15109/*** IDWriteBitmapRenderTarget2 methods ***/
15110#define IDWriteBitmapRenderTarget3_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
15111/*** IDWriteBitmapRenderTarget3 methods ***/
15112#define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This)
15113#define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) (This)->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box)
15114#define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box)
15115#else
15116/*** IUnknown methods ***/
15117static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) {
15118 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15119}
15120static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) {
15121 return This->lpVtbl->AddRef(This);
15122}
15123static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) {
15124 return This->lpVtbl->Release(This);
15125}
15126/*** IDWriteBitmapRenderTarget methods ***/
15127static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
15128 return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
15129}
15130static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) {
15131 return This->lpVtbl->GetMemoryDC(This);
15132}
15133static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) {
15134 return This->lpVtbl->GetPixelsPerDip(This);
15135}
15136static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) {
15137 return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
15138}
15139static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) {
15140 return This->lpVtbl->GetCurrentTransform(This,transform);
15141}
15142static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) {
15143 return This->lpVtbl->SetCurrentTransform(This,transform);
15144}
15145static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) {
15146 return This->lpVtbl->GetSize(This,size);
15147}
15148static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) {
15149 return This->lpVtbl->Resize(This,width,height);
15150}
15151/*** IDWriteBitmapRenderTarget1 methods ***/
15152static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) {
15153 return This->lpVtbl->GetTextAntialiasMode(This);
15154}
15155static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
15156 return This->lpVtbl->SetTextAntialiasMode(This,mode);
15157}
15158/*** IDWriteBitmapRenderTarget2 methods ***/
15159static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
15160 return This->lpVtbl->GetBitmapData(This,bitmap_data);
15161}
15162/*** IDWriteBitmapRenderTarget3 methods ***/
15163static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) {
15164 return This->lpVtbl->GetPaintFeatureLevel(This);
15165}
15166static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,DWRITE_GLYPH_IMAGE_FORMATS image_format,COLORREF text_color,UINT32 palette_index,RECT *black_box) {
15167 return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box);
15168}
15169static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,IDWriteRenderingParams *params,COLORREF text_color,UINT32 palette_index,RECT *black_box) {
15170 return This->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box);
15171}
15172#endif
15173#endif
15174
15175#endif
15176
15177
15178#endif /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */
15179
15180/* Begin additional prototypes for all interfaces */
15181
15182
15183/* End additional prototypes */
15184
15185#ifdef __cplusplus
15186}
15187#endif
15188
15189#endif /* __dwrite_3_h__ */