source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dwrite_2.h@ 1180

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

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

File size: 154.2 KB
Line 
1/*** Autogenerated by WIDL 6.4 from include/dwrite_2.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_2_h__
17#define __dwrite_2_h__
18
19/* Forward declarations */
20
21#ifndef __IDWriteTextRenderer1_FWD_DEFINED__
22#define __IDWriteTextRenderer1_FWD_DEFINED__
23typedef interface IDWriteTextRenderer1 IDWriteTextRenderer1;
24#ifdef __cplusplus
25interface IDWriteTextRenderer1;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDWriteFontFallback_FWD_DEFINED__
30#define __IDWriteFontFallback_FWD_DEFINED__
31typedef interface IDWriteFontFallback IDWriteFontFallback;
32#ifdef __cplusplus
33interface IDWriteFontFallback;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IDWriteTextFormat1_FWD_DEFINED__
38#define __IDWriteTextFormat1_FWD_DEFINED__
39typedef interface IDWriteTextFormat1 IDWriteTextFormat1;
40#ifdef __cplusplus
41interface IDWriteTextFormat1;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IDWriteTextLayout2_FWD_DEFINED__
46#define __IDWriteTextLayout2_FWD_DEFINED__
47typedef interface IDWriteTextLayout2 IDWriteTextLayout2;
48#ifdef __cplusplus
49interface IDWriteTextLayout2;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IDWriteTextAnalyzer2_FWD_DEFINED__
54#define __IDWriteTextAnalyzer2_FWD_DEFINED__
55typedef interface IDWriteTextAnalyzer2 IDWriteTextAnalyzer2;
56#ifdef __cplusplus
57interface IDWriteTextAnalyzer2;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IDWriteFontFallbackBuilder_FWD_DEFINED__
62#define __IDWriteFontFallbackBuilder_FWD_DEFINED__
63typedef interface IDWriteFontFallbackBuilder IDWriteFontFallbackBuilder;
64#ifdef __cplusplus
65interface IDWriteFontFallbackBuilder;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IDWriteFont2_FWD_DEFINED__
70#define __IDWriteFont2_FWD_DEFINED__
71typedef interface IDWriteFont2 IDWriteFont2;
72#ifdef __cplusplus
73interface IDWriteFont2;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IDWriteFontFace2_FWD_DEFINED__
78#define __IDWriteFontFace2_FWD_DEFINED__
79typedef interface IDWriteFontFace2 IDWriteFontFace2;
80#ifdef __cplusplus
81interface IDWriteFontFace2;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__
86#define __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__
87typedef interface IDWriteColorGlyphRunEnumerator IDWriteColorGlyphRunEnumerator;
88#ifdef __cplusplus
89interface IDWriteColorGlyphRunEnumerator;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IDWriteRenderingParams2_FWD_DEFINED__
94#define __IDWriteRenderingParams2_FWD_DEFINED__
95typedef interface IDWriteRenderingParams2 IDWriteRenderingParams2;
96#ifdef __cplusplus
97interface IDWriteRenderingParams2;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __IDWriteFactory2_FWD_DEFINED__
102#define __IDWriteFactory2_FWD_DEFINED__
103typedef interface IDWriteFactory2 IDWriteFactory2;
104#ifdef __cplusplus
105interface IDWriteFactory2;
106#endif /* __cplusplus */
107#endif
108
109/* Headers for imported files */
110
111#include <dwrite_1.h>
112
113#ifdef __cplusplus
114extern "C" {
115#endif
116
117typedef enum DWRITE_OPTICAL_ALIGNMENT {
118 DWRITE_OPTICAL_ALIGNMENT_NONE = 0,
119 DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS = 1
120} DWRITE_OPTICAL_ALIGNMENT;
121typedef enum DWRITE_GRID_FIT_MODE {
122 DWRITE_GRID_FIT_MODE_DEFAULT = 0,
123 DWRITE_GRID_FIT_MODE_DISABLED = 1,
124 DWRITE_GRID_FIT_MODE_ENABLED = 2
125} DWRITE_GRID_FIT_MODE;
126typedef struct DWRITE_TEXT_METRICS1 {
127 FLOAT left;
128 FLOAT top;
129 FLOAT width;
130 FLOAT widthIncludingTrailingWhitespace;
131 FLOAT height;
132 FLOAT layoutWidth;
133 FLOAT layoutHeight;
134 UINT32 maxBidiReorderingDepth;
135 UINT32 lineCount;
136 FLOAT heightIncludingTrailingWhitespace;
137} DWRITE_TEXT_METRICS1;
138#ifndef D3DCOLORVALUE_DEFINED
139typedef struct _D3DCOLORVALUE {
140 __C89_NAMELESS union {
141 FLOAT r;
142 FLOAT dvR;
143 } __C89_NAMELESSUNIONNAME1;
144 __C89_NAMELESS union {
145 FLOAT g;
146 FLOAT dvG;
147 } __C89_NAMELESSUNIONNAME2;
148 __C89_NAMELESS union {
149 FLOAT b;
150 FLOAT dvB;
151 } __C89_NAMELESSUNIONNAME3;
152 __C89_NAMELESS union {
153 FLOAT a;
154 FLOAT dvA;
155 } __C89_NAMELESSUNIONNAME4;
156} D3DCOLORVALUE;
157#define D3DCOLORVALUE_DEFINED
158#endif
159typedef D3DCOLORVALUE DWRITE_COLOR_F;
160typedef struct DWRITE_COLOR_GLYPH_RUN {
161 DWRITE_GLYPH_RUN glyphRun;
162 DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;
163 FLOAT baselineOriginX;
164 FLOAT baselineOriginY;
165 DWRITE_COLOR_F runColor;
166 UINT16 paletteIndex;
167} DWRITE_COLOR_GLYPH_RUN;
168/*****************************************************************************
169 * IDWriteTextRenderer1 interface
170 */
171#ifndef __IDWriteTextRenderer1_INTERFACE_DEFINED__
172#define __IDWriteTextRenderer1_INTERFACE_DEFINED__
173
174DEFINE_GUID(IID_IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1);
175#if defined(__cplusplus) && !defined(CINTERFACE)
176MIDL_INTERFACE("d3e0e934-22a0-427e-aae4-7d9574b59db1")
177IDWriteTextRenderer1 : public IDWriteTextRenderer
178{
179 virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun(
180 void *context,
181 FLOAT originX,
182 FLOAT originY,
183 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
184 DWRITE_MEASURING_MODE mode,
185 const DWRITE_GLYPH_RUN *run,
186 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
187 IUnknown *effect) = 0;
188
189 virtual HRESULT STDMETHODCALLTYPE DrawUnderline(
190 void *context,
191 FLOAT originX,
192 FLOAT originY,
193 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
194 const DWRITE_UNDERLINE *underline,
195 IUnknown *effect) = 0;
196
197 virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough(
198 void *context,
199 FLOAT originX,
200 FLOAT originY,
201 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
202 const DWRITE_STRIKETHROUGH *strikethrough,
203 IUnknown *effect) = 0;
204
205 virtual HRESULT STDMETHODCALLTYPE DrawInlineObject(
206 void *context,
207 FLOAT originX,
208 FLOAT originY,
209 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
210 IDWriteInlineObject *inlineObject,
211 WINBOOL is_sideways,
212 WINBOOL is_rtl,
213 IUnknown *effect) = 0;
214
215};
216#ifdef __CRT_UUID_DECL
217__CRT_UUID_DECL(IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1)
218#endif
219#else
220typedef struct IDWriteTextRenderer1Vtbl {
221 BEGIN_INTERFACE
222
223 /*** IUnknown methods ***/
224 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
225 IDWriteTextRenderer1 *This,
226 REFIID riid,
227 void **ppvObject);
228
229 ULONG (STDMETHODCALLTYPE *AddRef)(
230 IDWriteTextRenderer1 *This);
231
232 ULONG (STDMETHODCALLTYPE *Release)(
233 IDWriteTextRenderer1 *This);
234
235 /*** IDWritePixelSnapping methods ***/
236 HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)(
237 IDWriteTextRenderer1 *This,
238 void *client_drawingcontext,
239 WINBOOL *disabled);
240
241 HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
242 IDWriteTextRenderer1 *This,
243 void *client_drawingcontext,
244 DWRITE_MATRIX *transform);
245
246 HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)(
247 IDWriteTextRenderer1 *This,
248 void *client_drawingcontext,
249 FLOAT *pixels_per_dip);
250
251 /*** IDWriteTextRenderer methods ***/
252 HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
253 IDWriteTextRenderer1 *This,
254 void *client_drawingcontext,
255 FLOAT baselineOriginX,
256 FLOAT baselineOriginY,
257 DWRITE_MEASURING_MODE mode,
258 const DWRITE_GLYPH_RUN *glyph_run,
259 const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr,
260 IUnknown *drawing_effect);
261
262 HRESULT (STDMETHODCALLTYPE *DrawUnderline)(
263 IDWriteTextRenderer1 *This,
264 void *client_drawingcontext,
265 FLOAT baselineOriginX,
266 FLOAT baselineOriginY,
267 const DWRITE_UNDERLINE *underline,
268 IUnknown *drawing_effect);
269
270 HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)(
271 IDWriteTextRenderer1 *This,
272 void *client_drawingcontext,
273 FLOAT baselineOriginX,
274 FLOAT baselineOriginY,
275 const DWRITE_STRIKETHROUGH *strikethrough,
276 IUnknown *drawing_effect);
277
278 HRESULT (STDMETHODCALLTYPE *DrawInlineObject)(
279 IDWriteTextRenderer1 *This,
280 void *client_drawingcontext,
281 FLOAT originX,
282 FLOAT originY,
283 IDWriteInlineObject *object,
284 WINBOOL is_sideways,
285 WINBOOL is_rtl,
286 IUnknown *drawing_effect);
287
288 /*** IDWriteTextRenderer1 methods ***/
289 HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawGlyphRun)(
290 IDWriteTextRenderer1 *This,
291 void *context,
292 FLOAT originX,
293 FLOAT originY,
294 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
295 DWRITE_MEASURING_MODE mode,
296 const DWRITE_GLYPH_RUN *run,
297 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
298 IUnknown *effect);
299
300 HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawUnderline)(
301 IDWriteTextRenderer1 *This,
302 void *context,
303 FLOAT originX,
304 FLOAT originY,
305 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
306 const DWRITE_UNDERLINE *underline,
307 IUnknown *effect);
308
309 HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawStrikethrough)(
310 IDWriteTextRenderer1 *This,
311 void *context,
312 FLOAT originX,
313 FLOAT originY,
314 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
315 const DWRITE_STRIKETHROUGH *strikethrough,
316 IUnknown *effect);
317
318 HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawInlineObject)(
319 IDWriteTextRenderer1 *This,
320 void *context,
321 FLOAT originX,
322 FLOAT originY,
323 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
324 IDWriteInlineObject *inlineObject,
325 WINBOOL is_sideways,
326 WINBOOL is_rtl,
327 IUnknown *effect);
328
329 END_INTERFACE
330} IDWriteTextRenderer1Vtbl;
331
332interface IDWriteTextRenderer1 {
333 CONST_VTBL IDWriteTextRenderer1Vtbl* lpVtbl;
334};
335
336#ifdef COBJMACROS
337#ifndef WIDL_C_INLINE_WRAPPERS
338/*** IUnknown methods ***/
339#define IDWriteTextRenderer1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
340#define IDWriteTextRenderer1_AddRef(This) (This)->lpVtbl->AddRef(This)
341#define IDWriteTextRenderer1_Release(This) (This)->lpVtbl->Release(This)
342/*** IDWritePixelSnapping methods ***/
343#define IDWriteTextRenderer1_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled)
344#define IDWriteTextRenderer1_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform)
345#define IDWriteTextRenderer1_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip)
346/*** IDWriteTextRenderer methods ***/
347/*** IDWriteTextRenderer1 methods ***/
348#define IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect)
349#define IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect)
350#define IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect)
351#define IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect)
352#else
353/*** IUnknown methods ***/
354static FORCEINLINE HRESULT IDWriteTextRenderer1_QueryInterface(IDWriteTextRenderer1* This,REFIID riid,void **ppvObject) {
355 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
356}
357static FORCEINLINE ULONG IDWriteTextRenderer1_AddRef(IDWriteTextRenderer1* This) {
358 return This->lpVtbl->AddRef(This);
359}
360static FORCEINLINE ULONG IDWriteTextRenderer1_Release(IDWriteTextRenderer1* This) {
361 return This->lpVtbl->Release(This);
362}
363/*** IDWritePixelSnapping methods ***/
364static FORCEINLINE HRESULT IDWriteTextRenderer1_IsPixelSnappingDisabled(IDWriteTextRenderer1* This,void *client_drawingcontext,WINBOOL *disabled) {
365 return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled);
366}
367static FORCEINLINE HRESULT IDWriteTextRenderer1_GetCurrentTransform(IDWriteTextRenderer1* This,void *client_drawingcontext,DWRITE_MATRIX *transform) {
368 return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform);
369}
370static FORCEINLINE HRESULT IDWriteTextRenderer1_GetPixelsPerDip(IDWriteTextRenderer1* This,void *client_drawingcontext,FLOAT *pixels_per_dip) {
371 return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip);
372}
373/*** IDWriteTextRenderer methods ***/
374/*** IDWriteTextRenderer1 methods ***/
375static FORCEINLINE HRESULT IDWriteTextRenderer1_DrawGlyphRun(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,IUnknown *effect) {
376 return This->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect);
377}
378static FORCEINLINE HRESULT IDWriteTextRenderer1_DrawUnderline(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_UNDERLINE *underline,IUnknown *effect) {
379 return This->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect);
380}
381static FORCEINLINE HRESULT IDWriteTextRenderer1_DrawStrikethrough(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *effect) {
382 return This->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect);
383}
384static FORCEINLINE HRESULT IDWriteTextRenderer1_DrawInlineObject(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,IDWriteInlineObject *inlineObject,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *effect) {
385 return This->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect);
386}
387#endif
388#endif
389
390#endif
391
392
393#endif /* __IDWriteTextRenderer1_INTERFACE_DEFINED__ */
394
395/*****************************************************************************
396 * IDWriteFontFallback interface
397 */
398#ifndef __IDWriteFontFallback_INTERFACE_DEFINED__
399#define __IDWriteFontFallback_INTERFACE_DEFINED__
400
401DEFINE_GUID(IID_IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff);
402#if defined(__cplusplus) && !defined(CINTERFACE)
403MIDL_INTERFACE("efa008f9-f7a1-48bf-b05c-f224713cc0ff")
404IDWriteFontFallback : public IUnknown
405{
406 virtual HRESULT STDMETHODCALLTYPE MapCharacters(
407 IDWriteTextAnalysisSource *source,
408 UINT32 position,
409 UINT32 length,
410 IDWriteFontCollection *basecollection,
411 const WCHAR *baseFamilyName,
412 DWRITE_FONT_WEIGHT baseWeight,
413 DWRITE_FONT_STYLE baseStyle,
414 DWRITE_FONT_STRETCH baseStretch,
415 UINT32 *mappedLength,
416 IDWriteFont **mappedFont,
417 FLOAT *scale) = 0;
418
419};
420#ifdef __CRT_UUID_DECL
421__CRT_UUID_DECL(IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff)
422#endif
423#else
424typedef struct IDWriteFontFallbackVtbl {
425 BEGIN_INTERFACE
426
427 /*** IUnknown methods ***/
428 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
429 IDWriteFontFallback *This,
430 REFIID riid,
431 void **ppvObject);
432
433 ULONG (STDMETHODCALLTYPE *AddRef)(
434 IDWriteFontFallback *This);
435
436 ULONG (STDMETHODCALLTYPE *Release)(
437 IDWriteFontFallback *This);
438
439 /*** IDWriteFontFallback methods ***/
440 HRESULT (STDMETHODCALLTYPE *MapCharacters)(
441 IDWriteFontFallback *This,
442 IDWriteTextAnalysisSource *source,
443 UINT32 position,
444 UINT32 length,
445 IDWriteFontCollection *basecollection,
446 const WCHAR *baseFamilyName,
447 DWRITE_FONT_WEIGHT baseWeight,
448 DWRITE_FONT_STYLE baseStyle,
449 DWRITE_FONT_STRETCH baseStretch,
450 UINT32 *mappedLength,
451 IDWriteFont **mappedFont,
452 FLOAT *scale);
453
454 END_INTERFACE
455} IDWriteFontFallbackVtbl;
456
457interface IDWriteFontFallback {
458 CONST_VTBL IDWriteFontFallbackVtbl* lpVtbl;
459};
460
461#ifdef COBJMACROS
462#ifndef WIDL_C_INLINE_WRAPPERS
463/*** IUnknown methods ***/
464#define IDWriteFontFallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
465#define IDWriteFontFallback_AddRef(This) (This)->lpVtbl->AddRef(This)
466#define IDWriteFontFallback_Release(This) (This)->lpVtbl->Release(This)
467/*** IDWriteFontFallback methods ***/
468#define IDWriteFontFallback_MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) (This)->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale)
469#else
470/*** IUnknown methods ***/
471static FORCEINLINE HRESULT IDWriteFontFallback_QueryInterface(IDWriteFontFallback* This,REFIID riid,void **ppvObject) {
472 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
473}
474static FORCEINLINE ULONG IDWriteFontFallback_AddRef(IDWriteFontFallback* This) {
475 return This->lpVtbl->AddRef(This);
476}
477static FORCEINLINE ULONG IDWriteFontFallback_Release(IDWriteFontFallback* This) {
478 return This->lpVtbl->Release(This);
479}
480/*** IDWriteFontFallback methods ***/
481static FORCEINLINE HRESULT IDWriteFontFallback_MapCharacters(IDWriteFontFallback* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteFontCollection *basecollection,const WCHAR *baseFamilyName,DWRITE_FONT_WEIGHT baseWeight,DWRITE_FONT_STYLE baseStyle,DWRITE_FONT_STRETCH baseStretch,UINT32 *mappedLength,IDWriteFont **mappedFont,FLOAT *scale) {
482 return This->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale);
483}
484#endif
485#endif
486
487#endif
488
489
490#endif /* __IDWriteFontFallback_INTERFACE_DEFINED__ */
491
492/*****************************************************************************
493 * IDWriteTextFormat1 interface
494 */
495#ifndef __IDWriteTextFormat1_INTERFACE_DEFINED__
496#define __IDWriteTextFormat1_INTERFACE_DEFINED__
497
498DEFINE_GUID(IID_IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67);
499#if defined(__cplusplus) && !defined(CINTERFACE)
500MIDL_INTERFACE("5f174b49-0d8b-4cfb-8bca-f1cce9d06c67")
501IDWriteTextFormat1 : public IDWriteTextFormat
502{
503 virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation(
504 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0;
505
506 virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation(
507 ) = 0;
508
509 virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping(
510 WINBOOL lastline_wrapping_enabled) = 0;
511
512 virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping(
513 ) = 0;
514
515 virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment(
516 DWRITE_OPTICAL_ALIGNMENT alignment) = 0;
517
518 virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment(
519 ) = 0;
520
521 virtual HRESULT STDMETHODCALLTYPE SetFontFallback(
522 IDWriteFontFallback *fallback) = 0;
523
524 virtual HRESULT STDMETHODCALLTYPE GetFontFallback(
525 IDWriteFontFallback **fallback) = 0;
526
527};
528#ifdef __CRT_UUID_DECL
529__CRT_UUID_DECL(IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67)
530#endif
531#else
532typedef struct IDWriteTextFormat1Vtbl {
533 BEGIN_INTERFACE
534
535 /*** IUnknown methods ***/
536 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
537 IDWriteTextFormat1 *This,
538 REFIID riid,
539 void **ppvObject);
540
541 ULONG (STDMETHODCALLTYPE *AddRef)(
542 IDWriteTextFormat1 *This);
543
544 ULONG (STDMETHODCALLTYPE *Release)(
545 IDWriteTextFormat1 *This);
546
547 /*** IDWriteTextFormat methods ***/
548 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
549 IDWriteTextFormat1 *This,
550 DWRITE_TEXT_ALIGNMENT alignment);
551
552 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
553 IDWriteTextFormat1 *This,
554 DWRITE_PARAGRAPH_ALIGNMENT alignment);
555
556 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
557 IDWriteTextFormat1 *This,
558 DWRITE_WORD_WRAPPING wrapping);
559
560 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
561 IDWriteTextFormat1 *This,
562 DWRITE_READING_DIRECTION direction);
563
564 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
565 IDWriteTextFormat1 *This,
566 DWRITE_FLOW_DIRECTION direction);
567
568 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
569 IDWriteTextFormat1 *This,
570 FLOAT tabstop);
571
572 HRESULT (STDMETHODCALLTYPE *SetTrimming)(
573 IDWriteTextFormat1 *This,
574 const DWRITE_TRIMMING *trimming,
575 IDWriteInlineObject *trimming_sign);
576
577 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
578 IDWriteTextFormat1 *This,
579 DWRITE_LINE_SPACING_METHOD spacing,
580 FLOAT line_spacing,
581 FLOAT baseline);
582
583 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
584 IDWriteTextFormat1 *This);
585
586 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
587 IDWriteTextFormat1 *This);
588
589 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
590 IDWriteTextFormat1 *This);
591
592 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
593 IDWriteTextFormat1 *This);
594
595 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
596 IDWriteTextFormat1 *This);
597
598 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
599 IDWriteTextFormat1 *This);
600
601 HRESULT (STDMETHODCALLTYPE *GetTrimming)(
602 IDWriteTextFormat1 *This,
603 DWRITE_TRIMMING *options,
604 IDWriteInlineObject **trimming_sign);
605
606 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
607 IDWriteTextFormat1 *This,
608 DWRITE_LINE_SPACING_METHOD *method,
609 FLOAT *spacing,
610 FLOAT *baseline);
611
612 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
613 IDWriteTextFormat1 *This,
614 IDWriteFontCollection **collection);
615
616 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
617 IDWriteTextFormat1 *This);
618
619 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
620 IDWriteTextFormat1 *This,
621 WCHAR *name,
622 UINT32 size);
623
624 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
625 IDWriteTextFormat1 *This);
626
627 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
628 IDWriteTextFormat1 *This);
629
630 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
631 IDWriteTextFormat1 *This);
632
633 FLOAT (STDMETHODCALLTYPE *GetFontSize)(
634 IDWriteTextFormat1 *This);
635
636 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
637 IDWriteTextFormat1 *This);
638
639 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
640 IDWriteTextFormat1 *This,
641 WCHAR *name,
642 UINT32 size);
643
644 /*** IDWriteTextFormat1 methods ***/
645 HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
646 IDWriteTextFormat1 *This,
647 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
648
649 DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
650 IDWriteTextFormat1 *This);
651
652 HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
653 IDWriteTextFormat1 *This,
654 WINBOOL lastline_wrapping_enabled);
655
656 WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
657 IDWriteTextFormat1 *This);
658
659 HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
660 IDWriteTextFormat1 *This,
661 DWRITE_OPTICAL_ALIGNMENT alignment);
662
663 DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
664 IDWriteTextFormat1 *This);
665
666 HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
667 IDWriteTextFormat1 *This,
668 IDWriteFontFallback *fallback);
669
670 HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
671 IDWriteTextFormat1 *This,
672 IDWriteFontFallback **fallback);
673
674 END_INTERFACE
675} IDWriteTextFormat1Vtbl;
676
677interface IDWriteTextFormat1 {
678 CONST_VTBL IDWriteTextFormat1Vtbl* lpVtbl;
679};
680
681#ifdef COBJMACROS
682#ifndef WIDL_C_INLINE_WRAPPERS
683/*** IUnknown methods ***/
684#define IDWriteTextFormat1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
685#define IDWriteTextFormat1_AddRef(This) (This)->lpVtbl->AddRef(This)
686#define IDWriteTextFormat1_Release(This) (This)->lpVtbl->Release(This)
687/*** IDWriteTextFormat methods ***/
688#define IDWriteTextFormat1_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
689#define IDWriteTextFormat1_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
690#define IDWriteTextFormat1_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
691#define IDWriteTextFormat1_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
692#define IDWriteTextFormat1_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
693#define IDWriteTextFormat1_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
694#define IDWriteTextFormat1_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
695#define IDWriteTextFormat1_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline)
696#define IDWriteTextFormat1_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
697#define IDWriteTextFormat1_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
698#define IDWriteTextFormat1_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
699#define IDWriteTextFormat1_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
700#define IDWriteTextFormat1_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
701#define IDWriteTextFormat1_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
702#define IDWriteTextFormat1_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
703#define IDWriteTextFormat1_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline)
704#define IDWriteTextFormat1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
705#define IDWriteTextFormat1_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
706#define IDWriteTextFormat1_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
707#define IDWriteTextFormat1_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
708#define IDWriteTextFormat1_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
709#define IDWriteTextFormat1_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
710#define IDWriteTextFormat1_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
711#define IDWriteTextFormat1_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
712#define IDWriteTextFormat1_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
713/*** IDWriteTextFormat1 methods ***/
714#define IDWriteTextFormat1_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
715#define IDWriteTextFormat1_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
716#define IDWriteTextFormat1_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
717#define IDWriteTextFormat1_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
718#define IDWriteTextFormat1_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
719#define IDWriteTextFormat1_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
720#define IDWriteTextFormat1_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
721#define IDWriteTextFormat1_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
722#else
723/*** IUnknown methods ***/
724static FORCEINLINE HRESULT IDWriteTextFormat1_QueryInterface(IDWriteTextFormat1* This,REFIID riid,void **ppvObject) {
725 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
726}
727static FORCEINLINE ULONG IDWriteTextFormat1_AddRef(IDWriteTextFormat1* This) {
728 return This->lpVtbl->AddRef(This);
729}
730static FORCEINLINE ULONG IDWriteTextFormat1_Release(IDWriteTextFormat1* This) {
731 return This->lpVtbl->Release(This);
732}
733/*** IDWriteTextFormat methods ***/
734static FORCEINLINE HRESULT IDWriteTextFormat1_SetTextAlignment(IDWriteTextFormat1* This,DWRITE_TEXT_ALIGNMENT alignment) {
735 return This->lpVtbl->SetTextAlignment(This,alignment);
736}
737static FORCEINLINE HRESULT IDWriteTextFormat1_SetParagraphAlignment(IDWriteTextFormat1* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
738 return This->lpVtbl->SetParagraphAlignment(This,alignment);
739}
740static FORCEINLINE HRESULT IDWriteTextFormat1_SetWordWrapping(IDWriteTextFormat1* This,DWRITE_WORD_WRAPPING wrapping) {
741 return This->lpVtbl->SetWordWrapping(This,wrapping);
742}
743static FORCEINLINE HRESULT IDWriteTextFormat1_SetReadingDirection(IDWriteTextFormat1* This,DWRITE_READING_DIRECTION direction) {
744 return This->lpVtbl->SetReadingDirection(This,direction);
745}
746static FORCEINLINE HRESULT IDWriteTextFormat1_SetFlowDirection(IDWriteTextFormat1* This,DWRITE_FLOW_DIRECTION direction) {
747 return This->lpVtbl->SetFlowDirection(This,direction);
748}
749static FORCEINLINE HRESULT IDWriteTextFormat1_SetIncrementalTabStop(IDWriteTextFormat1* This,FLOAT tabstop) {
750 return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
751}
752static FORCEINLINE HRESULT IDWriteTextFormat1_SetTrimming(IDWriteTextFormat1* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
753 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
754}
755static FORCEINLINE HRESULT IDWriteTextFormat1_SetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) {
756 return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline);
757}
758static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextFormat1_GetTextAlignment(IDWriteTextFormat1* This) {
759 return This->lpVtbl->GetTextAlignment(This);
760}
761static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat1_GetParagraphAlignment(IDWriteTextFormat1* This) {
762 return This->lpVtbl->GetParagraphAlignment(This);
763}
764static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextFormat1_GetWordWrapping(IDWriteTextFormat1* This) {
765 return This->lpVtbl->GetWordWrapping(This);
766}
767static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextFormat1_GetReadingDirection(IDWriteTextFormat1* This) {
768 return This->lpVtbl->GetReadingDirection(This);
769}
770static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextFormat1_GetFlowDirection(IDWriteTextFormat1* This) {
771 return This->lpVtbl->GetFlowDirection(This);
772}
773static FORCEINLINE FLOAT IDWriteTextFormat1_GetIncrementalTabStop(IDWriteTextFormat1* This) {
774 return This->lpVtbl->GetIncrementalTabStop(This);
775}
776static FORCEINLINE HRESULT IDWriteTextFormat1_GetTrimming(IDWriteTextFormat1* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
777 return This->lpVtbl->GetTrimming(This,options,trimming_sign);
778}
779static FORCEINLINE HRESULT IDWriteTextFormat1_GetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) {
780 return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline);
781}
782static FORCEINLINE HRESULT IDWriteTextFormat1_GetFontCollection(IDWriteTextFormat1* This,IDWriteFontCollection **collection) {
783 return This->lpVtbl->GetFontCollection(This,collection);
784}
785static FORCEINLINE UINT32 IDWriteTextFormat1_GetFontFamilyNameLength(IDWriteTextFormat1* This) {
786 return This->lpVtbl->GetFontFamilyNameLength(This);
787}
788static FORCEINLINE HRESULT IDWriteTextFormat1_GetFontFamilyName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) {
789 return This->lpVtbl->GetFontFamilyName(This,name,size);
790}
791static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteTextFormat1_GetFontWeight(IDWriteTextFormat1* This) {
792 return This->lpVtbl->GetFontWeight(This);
793}
794static FORCEINLINE DWRITE_FONT_STYLE IDWriteTextFormat1_GetFontStyle(IDWriteTextFormat1* This) {
795 return This->lpVtbl->GetFontStyle(This);
796}
797static FORCEINLINE DWRITE_FONT_STRETCH IDWriteTextFormat1_GetFontStretch(IDWriteTextFormat1* This) {
798 return This->lpVtbl->GetFontStretch(This);
799}
800static FORCEINLINE FLOAT IDWriteTextFormat1_GetFontSize(IDWriteTextFormat1* This) {
801 return This->lpVtbl->GetFontSize(This);
802}
803static FORCEINLINE UINT32 IDWriteTextFormat1_GetLocaleNameLength(IDWriteTextFormat1* This) {
804 return This->lpVtbl->GetLocaleNameLength(This);
805}
806static FORCEINLINE HRESULT IDWriteTextFormat1_GetLocaleName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) {
807 return This->lpVtbl->GetLocaleName(This,name,size);
808}
809/*** IDWriteTextFormat1 methods ***/
810static FORCEINLINE HRESULT IDWriteTextFormat1_SetVerticalGlyphOrientation(IDWriteTextFormat1* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
811 return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
812}
813static FORCEINLINE DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat1_GetVerticalGlyphOrientation(IDWriteTextFormat1* This) {
814 return This->lpVtbl->GetVerticalGlyphOrientation(This);
815}
816static FORCEINLINE HRESULT IDWriteTextFormat1_SetLastLineWrapping(IDWriteTextFormat1* This,WINBOOL lastline_wrapping_enabled) {
817 return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
818}
819static FORCEINLINE WINBOOL IDWriteTextFormat1_GetLastLineWrapping(IDWriteTextFormat1* This) {
820 return This->lpVtbl->GetLastLineWrapping(This);
821}
822static FORCEINLINE HRESULT IDWriteTextFormat1_SetOpticalAlignment(IDWriteTextFormat1* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
823 return This->lpVtbl->SetOpticalAlignment(This,alignment);
824}
825static FORCEINLINE DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat1_GetOpticalAlignment(IDWriteTextFormat1* This) {
826 return This->lpVtbl->GetOpticalAlignment(This);
827}
828static FORCEINLINE HRESULT IDWriteTextFormat1_SetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback *fallback) {
829 return This->lpVtbl->SetFontFallback(This,fallback);
830}
831static FORCEINLINE HRESULT IDWriteTextFormat1_GetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback **fallback) {
832 return This->lpVtbl->GetFontFallback(This,fallback);
833}
834#endif
835#endif
836
837#endif
838
839
840#endif /* __IDWriteTextFormat1_INTERFACE_DEFINED__ */
841
842/*****************************************************************************
843 * IDWriteTextLayout2 interface
844 */
845#ifndef __IDWriteTextLayout2_INTERFACE_DEFINED__
846#define __IDWriteTextLayout2_INTERFACE_DEFINED__
847
848DEFINE_GUID(IID_IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e);
849#if defined(__cplusplus) && !defined(CINTERFACE)
850MIDL_INTERFACE("1093c18f-8d5e-43f0-b064-0917311b525e")
851IDWriteTextLayout2 : public IDWriteTextLayout1
852{
853 virtual HRESULT STDMETHODCALLTYPE GetMetrics(
854 DWRITE_TEXT_METRICS1 *metrics) = 0;
855
856 virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation(
857 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0;
858
859 virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation(
860 ) = 0;
861
862 virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping(
863 WINBOOL lastline_wrapping_enabled) = 0;
864
865 virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping(
866 ) = 0;
867
868 virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment(
869 DWRITE_OPTICAL_ALIGNMENT alignment) = 0;
870
871 virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment(
872 ) = 0;
873
874 virtual HRESULT STDMETHODCALLTYPE SetFontFallback(
875 IDWriteFontFallback *fallback) = 0;
876
877 virtual HRESULT STDMETHODCALLTYPE GetFontFallback(
878 IDWriteFontFallback **fallback) = 0;
879
880};
881#ifdef __CRT_UUID_DECL
882__CRT_UUID_DECL(IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e)
883#endif
884#else
885typedef struct IDWriteTextLayout2Vtbl {
886 BEGIN_INTERFACE
887
888 /*** IUnknown methods ***/
889 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
890 IDWriteTextLayout2 *This,
891 REFIID riid,
892 void **ppvObject);
893
894 ULONG (STDMETHODCALLTYPE *AddRef)(
895 IDWriteTextLayout2 *This);
896
897 ULONG (STDMETHODCALLTYPE *Release)(
898 IDWriteTextLayout2 *This);
899
900 /*** IDWriteTextFormat methods ***/
901 HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
902 IDWriteTextLayout2 *This,
903 DWRITE_TEXT_ALIGNMENT alignment);
904
905 HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
906 IDWriteTextLayout2 *This,
907 DWRITE_PARAGRAPH_ALIGNMENT alignment);
908
909 HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
910 IDWriteTextLayout2 *This,
911 DWRITE_WORD_WRAPPING wrapping);
912
913 HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
914 IDWriteTextLayout2 *This,
915 DWRITE_READING_DIRECTION direction);
916
917 HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
918 IDWriteTextLayout2 *This,
919 DWRITE_FLOW_DIRECTION direction);
920
921 HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
922 IDWriteTextLayout2 *This,
923 FLOAT tabstop);
924
925 HRESULT (STDMETHODCALLTYPE *SetTrimming)(
926 IDWriteTextLayout2 *This,
927 const DWRITE_TRIMMING *trimming,
928 IDWriteInlineObject *trimming_sign);
929
930 HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
931 IDWriteTextLayout2 *This,
932 DWRITE_LINE_SPACING_METHOD spacing,
933 FLOAT line_spacing,
934 FLOAT baseline);
935
936 DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
937 IDWriteTextLayout2 *This);
938
939 DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
940 IDWriteTextLayout2 *This);
941
942 DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
943 IDWriteTextLayout2 *This);
944
945 DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
946 IDWriteTextLayout2 *This);
947
948 DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
949 IDWriteTextLayout2 *This);
950
951 FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
952 IDWriteTextLayout2 *This);
953
954 HRESULT (STDMETHODCALLTYPE *GetTrimming)(
955 IDWriteTextLayout2 *This,
956 DWRITE_TRIMMING *options,
957 IDWriteInlineObject **trimming_sign);
958
959 HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
960 IDWriteTextLayout2 *This,
961 DWRITE_LINE_SPACING_METHOD *method,
962 FLOAT *spacing,
963 FLOAT *baseline);
964
965 HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
966 IDWriteTextLayout2 *This,
967 IDWriteFontCollection **collection);
968
969 UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
970 IDWriteTextLayout2 *This);
971
972 HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
973 IDWriteTextLayout2 *This,
974 WCHAR *name,
975 UINT32 size);
976
977 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
978 IDWriteTextLayout2 *This);
979
980 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
981 IDWriteTextLayout2 *This);
982
983 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
984 IDWriteTextLayout2 *This);
985
986 FLOAT (STDMETHODCALLTYPE *GetFontSize)(
987 IDWriteTextLayout2 *This);
988
989 UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
990 IDWriteTextLayout2 *This);
991
992 HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
993 IDWriteTextLayout2 *This,
994 WCHAR *name,
995 UINT32 size);
996
997 /*** IDWriteTextLayout methods ***/
998 HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
999 IDWriteTextLayout2 *This,
1000 FLOAT maxWidth);
1001
1002 HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
1003 IDWriteTextLayout2 *This,
1004 FLOAT maxHeight);
1005
1006 HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
1007 IDWriteTextLayout2 *This,
1008 IDWriteFontCollection *collection,
1009 DWRITE_TEXT_RANGE range);
1010
1011 HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
1012 IDWriteTextLayout2 *This,
1013 const WCHAR *name,
1014 DWRITE_TEXT_RANGE range);
1015
1016 HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
1017 IDWriteTextLayout2 *This,
1018 DWRITE_FONT_WEIGHT weight,
1019 DWRITE_TEXT_RANGE range);
1020
1021 HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
1022 IDWriteTextLayout2 *This,
1023 DWRITE_FONT_STYLE style,
1024 DWRITE_TEXT_RANGE range);
1025
1026 HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
1027 IDWriteTextLayout2 *This,
1028 DWRITE_FONT_STRETCH stretch,
1029 DWRITE_TEXT_RANGE range);
1030
1031 HRESULT (STDMETHODCALLTYPE *SetFontSize)(
1032 IDWriteTextLayout2 *This,
1033 FLOAT size,
1034 DWRITE_TEXT_RANGE range);
1035
1036 HRESULT (STDMETHODCALLTYPE *SetUnderline)(
1037 IDWriteTextLayout2 *This,
1038 WINBOOL underline,
1039 DWRITE_TEXT_RANGE range);
1040
1041 HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
1042 IDWriteTextLayout2 *This,
1043 WINBOOL strikethrough,
1044 DWRITE_TEXT_RANGE range);
1045
1046 HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
1047 IDWriteTextLayout2 *This,
1048 IUnknown *effect,
1049 DWRITE_TEXT_RANGE range);
1050
1051 HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
1052 IDWriteTextLayout2 *This,
1053 IDWriteInlineObject *object,
1054 DWRITE_TEXT_RANGE range);
1055
1056 HRESULT (STDMETHODCALLTYPE *SetTypography)(
1057 IDWriteTextLayout2 *This,
1058 IDWriteTypography *typography,
1059 DWRITE_TEXT_RANGE range);
1060
1061 HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
1062 IDWriteTextLayout2 *This,
1063 const WCHAR *locale,
1064 DWRITE_TEXT_RANGE range);
1065
1066 FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
1067 IDWriteTextLayout2 *This);
1068
1069 FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
1070 IDWriteTextLayout2 *This);
1071
1072 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
1073 IDWriteTextLayout2 *This,
1074 UINT32 pos,
1075 IDWriteFontCollection **collection,
1076 DWRITE_TEXT_RANGE *range);
1077
1078 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
1079 IDWriteTextLayout2 *This,
1080 UINT32 pos,
1081 UINT32 *len,
1082 DWRITE_TEXT_RANGE *range);
1083
1084 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
1085 IDWriteTextLayout2 *This,
1086 UINT32 position,
1087 WCHAR *name,
1088 UINT32 name_size,
1089 DWRITE_TEXT_RANGE *range);
1090
1091 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
1092 IDWriteTextLayout2 *This,
1093 UINT32 position,
1094 DWRITE_FONT_WEIGHT *weight,
1095 DWRITE_TEXT_RANGE *range);
1096
1097 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
1098 IDWriteTextLayout2 *This,
1099 UINT32 currentPosition,
1100 DWRITE_FONT_STYLE *style,
1101 DWRITE_TEXT_RANGE *range);
1102
1103 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
1104 IDWriteTextLayout2 *This,
1105 UINT32 position,
1106 DWRITE_FONT_STRETCH *stretch,
1107 DWRITE_TEXT_RANGE *range);
1108
1109 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
1110 IDWriteTextLayout2 *This,
1111 UINT32 position,
1112 FLOAT *size,
1113 DWRITE_TEXT_RANGE *range);
1114
1115 HRESULT (STDMETHODCALLTYPE *GetUnderline)(
1116 IDWriteTextLayout2 *This,
1117 UINT32 position,
1118 WINBOOL *has_underline,
1119 DWRITE_TEXT_RANGE *range);
1120
1121 HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
1122 IDWriteTextLayout2 *This,
1123 UINT32 position,
1124 WINBOOL *has_strikethrough,
1125 DWRITE_TEXT_RANGE *range);
1126
1127 HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
1128 IDWriteTextLayout2 *This,
1129 UINT32 position,
1130 IUnknown **effect,
1131 DWRITE_TEXT_RANGE *range);
1132
1133 HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
1134 IDWriteTextLayout2 *This,
1135 UINT32 position,
1136 IDWriteInlineObject **object,
1137 DWRITE_TEXT_RANGE *range);
1138
1139 HRESULT (STDMETHODCALLTYPE *GetTypography)(
1140 IDWriteTextLayout2 *This,
1141 UINT32 position,
1142 IDWriteTypography **typography,
1143 DWRITE_TEXT_RANGE *range);
1144
1145 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
1146 IDWriteTextLayout2 *This,
1147 UINT32 position,
1148 UINT32 *length,
1149 DWRITE_TEXT_RANGE *range);
1150
1151 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
1152 IDWriteTextLayout2 *This,
1153 UINT32 position,
1154 WCHAR *name,
1155 UINT32 name_size,
1156 DWRITE_TEXT_RANGE *range);
1157
1158 HRESULT (STDMETHODCALLTYPE *Draw)(
1159 IDWriteTextLayout2 *This,
1160 void *context,
1161 IDWriteTextRenderer *renderer,
1162 FLOAT originX,
1163 FLOAT originY);
1164
1165 HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
1166 IDWriteTextLayout2 *This,
1167 DWRITE_LINE_METRICS *metrics,
1168 UINT32 max_count,
1169 UINT32 *actual_count);
1170
1171 HRESULT (STDMETHODCALLTYPE *GetMetrics)(
1172 IDWriteTextLayout2 *This,
1173 DWRITE_TEXT_METRICS *metrics);
1174
1175 HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
1176 IDWriteTextLayout2 *This,
1177 DWRITE_OVERHANG_METRICS *overhangs);
1178
1179 HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
1180 IDWriteTextLayout2 *This,
1181 DWRITE_CLUSTER_METRICS *metrics,
1182 UINT32 max_count,
1183 UINT32 *act_count);
1184
1185 HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
1186 IDWriteTextLayout2 *This,
1187 FLOAT *min_width);
1188
1189 HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
1190 IDWriteTextLayout2 *This,
1191 FLOAT pointX,
1192 FLOAT pointY,
1193 WINBOOL *is_trailinghit,
1194 WINBOOL *is_inside,
1195 DWRITE_HIT_TEST_METRICS *metrics);
1196
1197 HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
1198 IDWriteTextLayout2 *This,
1199 UINT32 textPosition,
1200 WINBOOL is_trailinghit,
1201 FLOAT *pointX,
1202 FLOAT *pointY,
1203 DWRITE_HIT_TEST_METRICS *metrics);
1204
1205 HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
1206 IDWriteTextLayout2 *This,
1207 UINT32 textPosition,
1208 UINT32 textLength,
1209 FLOAT originX,
1210 FLOAT originY,
1211 DWRITE_HIT_TEST_METRICS *metrics,
1212 UINT32 max_metricscount,
1213 UINT32 *actual_metricscount);
1214
1215 /*** IDWriteTextLayout1 methods ***/
1216 HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
1217 IDWriteTextLayout2 *This,
1218 WINBOOL is_pairkerning_enabled,
1219 DWRITE_TEXT_RANGE range);
1220
1221 HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
1222 IDWriteTextLayout2 *This,
1223 UINT32 position,
1224 WINBOOL *is_pairkerning_enabled,
1225 DWRITE_TEXT_RANGE *range);
1226
1227 HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
1228 IDWriteTextLayout2 *This,
1229 FLOAT leading_spacing,
1230 FLOAT trailing_spacing,
1231 FLOAT minimum_advance_width,
1232 DWRITE_TEXT_RANGE range);
1233
1234 HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
1235 IDWriteTextLayout2 *This,
1236 UINT32 position,
1237 FLOAT *leading_spacing,
1238 FLOAT *trailing_spacing,
1239 FLOAT *minimum_advance_width,
1240 DWRITE_TEXT_RANGE *range);
1241
1242 /*** IDWriteTextLayout2 methods ***/
1243 HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
1244 IDWriteTextLayout2 *This,
1245 DWRITE_TEXT_METRICS1 *metrics);
1246
1247 HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
1248 IDWriteTextLayout2 *This,
1249 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
1250
1251 DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
1252 IDWriteTextLayout2 *This);
1253
1254 HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
1255 IDWriteTextLayout2 *This,
1256 WINBOOL lastline_wrapping_enabled);
1257
1258 WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
1259 IDWriteTextLayout2 *This);
1260
1261 HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
1262 IDWriteTextLayout2 *This,
1263 DWRITE_OPTICAL_ALIGNMENT alignment);
1264
1265 DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
1266 IDWriteTextLayout2 *This);
1267
1268 HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
1269 IDWriteTextLayout2 *This,
1270 IDWriteFontFallback *fallback);
1271
1272 HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
1273 IDWriteTextLayout2 *This,
1274 IDWriteFontFallback **fallback);
1275
1276 END_INTERFACE
1277} IDWriteTextLayout2Vtbl;
1278
1279interface IDWriteTextLayout2 {
1280 CONST_VTBL IDWriteTextLayout2Vtbl* lpVtbl;
1281};
1282
1283#ifdef COBJMACROS
1284#ifndef WIDL_C_INLINE_WRAPPERS
1285/*** IUnknown methods ***/
1286#define IDWriteTextLayout2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1287#define IDWriteTextLayout2_AddRef(This) (This)->lpVtbl->AddRef(This)
1288#define IDWriteTextLayout2_Release(This) (This)->lpVtbl->Release(This)
1289/*** IDWriteTextFormat methods ***/
1290#define IDWriteTextLayout2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
1291#define IDWriteTextLayout2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
1292#define IDWriteTextLayout2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
1293#define IDWriteTextLayout2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
1294#define IDWriteTextLayout2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
1295#define IDWriteTextLayout2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
1296#define IDWriteTextLayout2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
1297#define IDWriteTextLayout2_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline)
1298#define IDWriteTextLayout2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
1299#define IDWriteTextLayout2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
1300#define IDWriteTextLayout2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
1301#define IDWriteTextLayout2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
1302#define IDWriteTextLayout2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
1303#define IDWriteTextLayout2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
1304#define IDWriteTextLayout2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
1305#define IDWriteTextLayout2_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline)
1306/*** IDWriteTextLayout methods ***/
1307#define IDWriteTextLayout2_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
1308#define IDWriteTextLayout2_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
1309#define IDWriteTextLayout2_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
1310#define IDWriteTextLayout2_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
1311#define IDWriteTextLayout2_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
1312#define IDWriteTextLayout2_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
1313#define IDWriteTextLayout2_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
1314#define IDWriteTextLayout2_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
1315#define IDWriteTextLayout2_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
1316#define IDWriteTextLayout2_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
1317#define IDWriteTextLayout2_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
1318#define IDWriteTextLayout2_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
1319#define IDWriteTextLayout2_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
1320#define IDWriteTextLayout2_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
1321#define IDWriteTextLayout2_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
1322#define IDWriteTextLayout2_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
1323#define IDWriteTextLayout2_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
1324#define IDWriteTextLayout2_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
1325#define IDWriteTextLayout2_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
1326#define IDWriteTextLayout2_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
1327#define IDWriteTextLayout2_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
1328#define IDWriteTextLayout2_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
1329#define IDWriteTextLayout2_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
1330#define IDWriteTextLayout2_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
1331#define IDWriteTextLayout2_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
1332#define IDWriteTextLayout2_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
1333#define IDWriteTextLayout2_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
1334#define IDWriteTextLayout2_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
1335#define IDWriteTextLayout2_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
1336#define IDWriteTextLayout2_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
1337#define IDWriteTextLayout2_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
1338#define IDWriteTextLayout2_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count)
1339#define IDWriteTextLayout2_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
1340#define IDWriteTextLayout2_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
1341#define IDWriteTextLayout2_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
1342#define IDWriteTextLayout2_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
1343#define IDWriteTextLayout2_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
1344#define IDWriteTextLayout2_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
1345/*** IDWriteTextLayout1 methods ***/
1346#define IDWriteTextLayout2_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
1347#define IDWriteTextLayout2_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
1348#define IDWriteTextLayout2_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
1349#define IDWriteTextLayout2_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
1350/*** IDWriteTextLayout2 methods ***/
1351#define IDWriteTextLayout2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
1352#define IDWriteTextLayout2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
1353#define IDWriteTextLayout2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
1354#define IDWriteTextLayout2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
1355#define IDWriteTextLayout2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
1356#define IDWriteTextLayout2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
1357#define IDWriteTextLayout2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
1358#define IDWriteTextLayout2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
1359#define IDWriteTextLayout2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
1360#else
1361/*** IUnknown methods ***/
1362static FORCEINLINE HRESULT IDWriteTextLayout2_QueryInterface(IDWriteTextLayout2* This,REFIID riid,void **ppvObject) {
1363 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1364}
1365static FORCEINLINE ULONG IDWriteTextLayout2_AddRef(IDWriteTextLayout2* This) {
1366 return This->lpVtbl->AddRef(This);
1367}
1368static FORCEINLINE ULONG IDWriteTextLayout2_Release(IDWriteTextLayout2* This) {
1369 return This->lpVtbl->Release(This);
1370}
1371/*** IDWriteTextFormat methods ***/
1372static FORCEINLINE HRESULT IDWriteTextLayout2_SetTextAlignment(IDWriteTextLayout2* This,DWRITE_TEXT_ALIGNMENT alignment) {
1373 return This->lpVtbl->SetTextAlignment(This,alignment);
1374}
1375static FORCEINLINE HRESULT IDWriteTextLayout2_SetParagraphAlignment(IDWriteTextLayout2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
1376 return This->lpVtbl->SetParagraphAlignment(This,alignment);
1377}
1378static FORCEINLINE HRESULT IDWriteTextLayout2_SetWordWrapping(IDWriteTextLayout2* This,DWRITE_WORD_WRAPPING wrapping) {
1379 return This->lpVtbl->SetWordWrapping(This,wrapping);
1380}
1381static FORCEINLINE HRESULT IDWriteTextLayout2_SetReadingDirection(IDWriteTextLayout2* This,DWRITE_READING_DIRECTION direction) {
1382 return This->lpVtbl->SetReadingDirection(This,direction);
1383}
1384static FORCEINLINE HRESULT IDWriteTextLayout2_SetFlowDirection(IDWriteTextLayout2* This,DWRITE_FLOW_DIRECTION direction) {
1385 return This->lpVtbl->SetFlowDirection(This,direction);
1386}
1387static FORCEINLINE HRESULT IDWriteTextLayout2_SetIncrementalTabStop(IDWriteTextLayout2* This,FLOAT tabstop) {
1388 return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
1389}
1390static FORCEINLINE HRESULT IDWriteTextLayout2_SetTrimming(IDWriteTextLayout2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
1391 return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
1392}
1393static FORCEINLINE HRESULT IDWriteTextLayout2_SetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) {
1394 return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline);
1395}
1396static FORCEINLINE DWRITE_TEXT_ALIGNMENT IDWriteTextLayout2_GetTextAlignment(IDWriteTextLayout2* This) {
1397 return This->lpVtbl->GetTextAlignment(This);
1398}
1399static FORCEINLINE DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout2_GetParagraphAlignment(IDWriteTextLayout2* This) {
1400 return This->lpVtbl->GetParagraphAlignment(This);
1401}
1402static FORCEINLINE DWRITE_WORD_WRAPPING IDWriteTextLayout2_GetWordWrapping(IDWriteTextLayout2* This) {
1403 return This->lpVtbl->GetWordWrapping(This);
1404}
1405static FORCEINLINE DWRITE_READING_DIRECTION IDWriteTextLayout2_GetReadingDirection(IDWriteTextLayout2* This) {
1406 return This->lpVtbl->GetReadingDirection(This);
1407}
1408static FORCEINLINE DWRITE_FLOW_DIRECTION IDWriteTextLayout2_GetFlowDirection(IDWriteTextLayout2* This) {
1409 return This->lpVtbl->GetFlowDirection(This);
1410}
1411static FORCEINLINE FLOAT IDWriteTextLayout2_GetIncrementalTabStop(IDWriteTextLayout2* This) {
1412 return This->lpVtbl->GetIncrementalTabStop(This);
1413}
1414static FORCEINLINE HRESULT IDWriteTextLayout2_GetTrimming(IDWriteTextLayout2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
1415 return This->lpVtbl->GetTrimming(This,options,trimming_sign);
1416}
1417static FORCEINLINE HRESULT IDWriteTextLayout2_GetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) {
1418 return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline);
1419}
1420/*** IDWriteTextLayout methods ***/
1421static FORCEINLINE HRESULT IDWriteTextLayout2_SetMaxWidth(IDWriteTextLayout2* This,FLOAT maxWidth) {
1422 return This->lpVtbl->SetMaxWidth(This,maxWidth);
1423}
1424static FORCEINLINE HRESULT IDWriteTextLayout2_SetMaxHeight(IDWriteTextLayout2* This,FLOAT maxHeight) {
1425 return This->lpVtbl->SetMaxHeight(This,maxHeight);
1426}
1427static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontCollection(IDWriteTextLayout2* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
1428 return This->lpVtbl->SetFontCollection(This,collection,range);
1429}
1430static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontFamilyName(IDWriteTextLayout2* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
1431 return This->lpVtbl->SetFontFamilyName(This,name,range);
1432}
1433static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontWeight(IDWriteTextLayout2* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
1434 return This->lpVtbl->SetFontWeight(This,weight,range);
1435}
1436static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontStyle(IDWriteTextLayout2* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
1437 return This->lpVtbl->SetFontStyle(This,style,range);
1438}
1439static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontStretch(IDWriteTextLayout2* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
1440 return This->lpVtbl->SetFontStretch(This,stretch,range);
1441}
1442static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontSize(IDWriteTextLayout2* This,FLOAT size,DWRITE_TEXT_RANGE range) {
1443 return This->lpVtbl->SetFontSize(This,size,range);
1444}
1445static FORCEINLINE HRESULT IDWriteTextLayout2_SetUnderline(IDWriteTextLayout2* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
1446 return This->lpVtbl->SetUnderline(This,underline,range);
1447}
1448static FORCEINLINE HRESULT IDWriteTextLayout2_SetStrikethrough(IDWriteTextLayout2* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
1449 return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
1450}
1451static FORCEINLINE HRESULT IDWriteTextLayout2_SetDrawingEffect(IDWriteTextLayout2* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
1452 return This->lpVtbl->SetDrawingEffect(This,effect,range);
1453}
1454static FORCEINLINE HRESULT IDWriteTextLayout2_SetInlineObject(IDWriteTextLayout2* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
1455 return This->lpVtbl->SetInlineObject(This,object,range);
1456}
1457static FORCEINLINE HRESULT IDWriteTextLayout2_SetTypography(IDWriteTextLayout2* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
1458 return This->lpVtbl->SetTypography(This,typography,range);
1459}
1460static FORCEINLINE HRESULT IDWriteTextLayout2_SetLocaleName(IDWriteTextLayout2* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
1461 return This->lpVtbl->SetLocaleName(This,locale,range);
1462}
1463static FORCEINLINE FLOAT IDWriteTextLayout2_GetMaxWidth(IDWriteTextLayout2* This) {
1464 return This->lpVtbl->GetMaxWidth(This);
1465}
1466static FORCEINLINE FLOAT IDWriteTextLayout2_GetMaxHeight(IDWriteTextLayout2* This) {
1467 return This->lpVtbl->GetMaxHeight(This);
1468}
1469static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontCollection(IDWriteTextLayout2* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
1470 return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
1471}
1472static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontFamilyNameLength(IDWriteTextLayout2* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
1473 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
1474}
1475static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontFamilyName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
1476 return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
1477}
1478static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontWeight(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
1479 return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
1480}
1481static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontStyle(IDWriteTextLayout2* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
1482 return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
1483}
1484static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontStretch(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
1485 return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
1486}
1487static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontSize(IDWriteTextLayout2* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
1488 return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
1489}
1490static FORCEINLINE HRESULT IDWriteTextLayout2_GetUnderline(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
1491 return This->lpVtbl->GetUnderline(This,position,has_underline,range);
1492}
1493static FORCEINLINE HRESULT IDWriteTextLayout2_GetStrikethrough(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
1494 return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
1495}
1496static FORCEINLINE HRESULT IDWriteTextLayout2_GetDrawingEffect(IDWriteTextLayout2* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
1497 return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
1498}
1499static FORCEINLINE HRESULT IDWriteTextLayout2_GetInlineObject(IDWriteTextLayout2* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
1500 return This->lpVtbl->GetInlineObject(This,position,object,range);
1501}
1502static FORCEINLINE HRESULT IDWriteTextLayout2_GetTypography(IDWriteTextLayout2* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
1503 return This->lpVtbl->GetTypography(This,position,typography,range);
1504}
1505static FORCEINLINE HRESULT IDWriteTextLayout2_GetLocaleNameLength(IDWriteTextLayout2* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
1506 return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
1507}
1508static FORCEINLINE HRESULT IDWriteTextLayout2_GetLocaleName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
1509 return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
1510}
1511static FORCEINLINE HRESULT IDWriteTextLayout2_Draw(IDWriteTextLayout2* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
1512 return This->lpVtbl->Draw(This,context,renderer,originX,originY);
1513}
1514static FORCEINLINE HRESULT IDWriteTextLayout2_GetLineMetrics(IDWriteTextLayout2* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) {
1515 return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count);
1516}
1517static FORCEINLINE HRESULT IDWriteTextLayout2_GetOverhangMetrics(IDWriteTextLayout2* This,DWRITE_OVERHANG_METRICS *overhangs) {
1518 return This->lpVtbl->GetOverhangMetrics(This,overhangs);
1519}
1520static FORCEINLINE HRESULT IDWriteTextLayout2_GetClusterMetrics(IDWriteTextLayout2* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
1521 return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
1522}
1523static FORCEINLINE HRESULT IDWriteTextLayout2_DetermineMinWidth(IDWriteTextLayout2* This,FLOAT *min_width) {
1524 return This->lpVtbl->DetermineMinWidth(This,min_width);
1525}
1526static FORCEINLINE HRESULT IDWriteTextLayout2_HitTestPoint(IDWriteTextLayout2* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
1527 return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
1528}
1529static FORCEINLINE HRESULT IDWriteTextLayout2_HitTestTextPosition(IDWriteTextLayout2* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
1530 return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
1531}
1532static FORCEINLINE HRESULT IDWriteTextLayout2_HitTestTextRange(IDWriteTextLayout2* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
1533 return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
1534}
1535/*** IDWriteTextLayout1 methods ***/
1536static FORCEINLINE HRESULT IDWriteTextLayout2_SetPairKerning(IDWriteTextLayout2* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
1537 return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
1538}
1539static FORCEINLINE HRESULT IDWriteTextLayout2_GetPairKerning(IDWriteTextLayout2* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
1540 return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
1541}
1542static FORCEINLINE HRESULT IDWriteTextLayout2_SetCharacterSpacing(IDWriteTextLayout2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
1543 return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
1544}
1545static FORCEINLINE HRESULT IDWriteTextLayout2_GetCharacterSpacing(IDWriteTextLayout2* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
1546 return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
1547}
1548/*** IDWriteTextLayout2 methods ***/
1549static FORCEINLINE HRESULT IDWriteTextLayout2_GetMetrics(IDWriteTextLayout2* This,DWRITE_TEXT_METRICS1 *metrics) {
1550 return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
1551}
1552static FORCEINLINE HRESULT IDWriteTextLayout2_SetVerticalGlyphOrientation(IDWriteTextLayout2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
1553 return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
1554}
1555static FORCEINLINE DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout2_GetVerticalGlyphOrientation(IDWriteTextLayout2* This) {
1556 return This->lpVtbl->GetVerticalGlyphOrientation(This);
1557}
1558static FORCEINLINE HRESULT IDWriteTextLayout2_SetLastLineWrapping(IDWriteTextLayout2* This,WINBOOL lastline_wrapping_enabled) {
1559 return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
1560}
1561static FORCEINLINE WINBOOL IDWriteTextLayout2_GetLastLineWrapping(IDWriteTextLayout2* This) {
1562 return This->lpVtbl->GetLastLineWrapping(This);
1563}
1564static FORCEINLINE HRESULT IDWriteTextLayout2_SetOpticalAlignment(IDWriteTextLayout2* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
1565 return This->lpVtbl->SetOpticalAlignment(This,alignment);
1566}
1567static FORCEINLINE DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout2_GetOpticalAlignment(IDWriteTextLayout2* This) {
1568 return This->lpVtbl->GetOpticalAlignment(This);
1569}
1570static FORCEINLINE HRESULT IDWriteTextLayout2_SetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback *fallback) {
1571 return This->lpVtbl->SetFontFallback(This,fallback);
1572}
1573static FORCEINLINE HRESULT IDWriteTextLayout2_GetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback **fallback) {
1574 return This->lpVtbl->GetFontFallback(This,fallback);
1575}
1576#endif
1577#endif
1578
1579#endif
1580
1581
1582#endif /* __IDWriteTextLayout2_INTERFACE_DEFINED__ */
1583
1584/*****************************************************************************
1585 * IDWriteTextAnalyzer2 interface
1586 */
1587#ifndef __IDWriteTextAnalyzer2_INTERFACE_DEFINED__
1588#define __IDWriteTextAnalyzer2_INTERFACE_DEFINED__
1589
1590DEFINE_GUID(IID_IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9);
1591#if defined(__cplusplus) && !defined(CINTERFACE)
1592MIDL_INTERFACE("553a9ff3-5693-4df7-b52b-74806f7f2eb9")
1593IDWriteTextAnalyzer2 : public IDWriteTextAnalyzer1
1594{
1595 virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform(
1596 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
1597 WINBOOL is_sideways,
1598 FLOAT originX,
1599 FLOAT originY,
1600 DWRITE_MATRIX *transform) = 0;
1601
1602 virtual HRESULT STDMETHODCALLTYPE GetTypographicFeatures(
1603 IDWriteFontFace *fontface,
1604 DWRITE_SCRIPT_ANALYSIS analysis,
1605 const WCHAR *localeName,
1606 UINT32 max_tagcount,
1607 UINT32 *actual_tagcount,
1608 DWRITE_FONT_FEATURE_TAG *tags) = 0;
1609
1610 virtual HRESULT STDMETHODCALLTYPE CheckTypographicFeature(
1611 IDWriteFontFace *fontface,
1612 DWRITE_SCRIPT_ANALYSIS analysis,
1613 const WCHAR *localeName,
1614 DWRITE_FONT_FEATURE_TAG feature,
1615 UINT32 glyph_count,
1616 const UINT16 *indices,
1617 UINT8 *feature_applies) = 0;
1618
1619};
1620#ifdef __CRT_UUID_DECL
1621__CRT_UUID_DECL(IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9)
1622#endif
1623#else
1624typedef struct IDWriteTextAnalyzer2Vtbl {
1625 BEGIN_INTERFACE
1626
1627 /*** IUnknown methods ***/
1628 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1629 IDWriteTextAnalyzer2 *This,
1630 REFIID riid,
1631 void **ppvObject);
1632
1633 ULONG (STDMETHODCALLTYPE *AddRef)(
1634 IDWriteTextAnalyzer2 *This);
1635
1636 ULONG (STDMETHODCALLTYPE *Release)(
1637 IDWriteTextAnalyzer2 *This);
1638
1639 /*** IDWriteTextAnalyzer methods ***/
1640 HRESULT (STDMETHODCALLTYPE *AnalyzeScript)(
1641 IDWriteTextAnalyzer2 *This,
1642 IDWriteTextAnalysisSource *source,
1643 UINT32 position,
1644 UINT32 length,
1645 IDWriteTextAnalysisSink *sink);
1646
1647 HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)(
1648 IDWriteTextAnalyzer2 *This,
1649 IDWriteTextAnalysisSource *source,
1650 UINT32 position,
1651 UINT32 length,
1652 IDWriteTextAnalysisSink *sink);
1653
1654 HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)(
1655 IDWriteTextAnalyzer2 *This,
1656 IDWriteTextAnalysisSource *source,
1657 UINT32 position,
1658 UINT32 length,
1659 IDWriteTextAnalysisSink *sink);
1660
1661 HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)(
1662 IDWriteTextAnalyzer2 *This,
1663 IDWriteTextAnalysisSource *source,
1664 UINT32 position,
1665 UINT32 length,
1666 IDWriteTextAnalysisSink *sink);
1667
1668 HRESULT (STDMETHODCALLTYPE *GetGlyphs)(
1669 IDWriteTextAnalyzer2 *This,
1670 const WCHAR *text,
1671 UINT32 length,
1672 IDWriteFontFace *font_face,
1673 WINBOOL is_sideways,
1674 WINBOOL is_rtl,
1675 const DWRITE_SCRIPT_ANALYSIS *analysis,
1676 const WCHAR *locale,
1677 IDWriteNumberSubstitution *substitution,
1678 const DWRITE_TYPOGRAPHIC_FEATURES **features,
1679 const UINT32 *feature_range_len,
1680 UINT32 feature_ranges,
1681 UINT32 max_glyph_count,
1682 UINT16 *clustermap,
1683 DWRITE_SHAPING_TEXT_PROPERTIES *text_props,
1684 UINT16 *glyph_indices,
1685 DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
1686 UINT32 *actual_glyph_count);
1687
1688 HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)(
1689 IDWriteTextAnalyzer2 *This,
1690 const WCHAR *text,
1691 const UINT16 *clustermap,
1692 DWRITE_SHAPING_TEXT_PROPERTIES *props,
1693 UINT32 text_len,
1694 const UINT16 *glyph_indices,
1695 const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
1696 UINT32 glyph_count,
1697 IDWriteFontFace *font_face,
1698 FLOAT fontEmSize,
1699 WINBOOL is_sideways,
1700 WINBOOL is_rtl,
1701 const DWRITE_SCRIPT_ANALYSIS *analysis,
1702 const WCHAR *locale,
1703 const DWRITE_TYPOGRAPHIC_FEATURES **features,
1704 const UINT32 *feature_range_len,
1705 UINT32 feature_ranges,
1706 FLOAT *glyph_advances,
1707 DWRITE_GLYPH_OFFSET *glyph_offsets);
1708
1709 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)(
1710 IDWriteTextAnalyzer2 *This,
1711 const WCHAR *text,
1712 const UINT16 *clustermap,
1713 DWRITE_SHAPING_TEXT_PROPERTIES *props,
1714 UINT32 text_len,
1715 const UINT16 *glyph_indices,
1716 const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,
1717 UINT32 glyph_count,
1718 IDWriteFontFace *font_face,
1719 FLOAT fontEmSize,
1720 FLOAT pixels_per_dip,
1721 const DWRITE_MATRIX *transform,
1722 WINBOOL use_gdi_natural,
1723 WINBOOL is_sideways,
1724 WINBOOL is_rtl,
1725 const DWRITE_SCRIPT_ANALYSIS *analysis,
1726 const WCHAR *locale,
1727 const DWRITE_TYPOGRAPHIC_FEATURES **features,
1728 const UINT32 *feature_range_lengths,
1729 UINT32 feature_ranges,
1730 FLOAT *glyph_advances,
1731 DWRITE_GLYPH_OFFSET *glyph_offsets);
1732
1733 /*** IDWriteTextAnalyzer1 methods ***/
1734 HRESULT (STDMETHODCALLTYPE *ApplyCharacterSpacing)(
1735 IDWriteTextAnalyzer2 *This,
1736 FLOAT leading_spacing,
1737 FLOAT trailing_spacing,
1738 FLOAT min_advance_width,
1739 UINT32 len,
1740 UINT32 glyph_count,
1741 const UINT16 *clustermap,
1742 const FLOAT *advances,
1743 const DWRITE_GLYPH_OFFSET *offsets,
1744 const DWRITE_SHAPING_GLYPH_PROPERTIES *props,
1745 FLOAT *modified_advances,
1746 DWRITE_GLYPH_OFFSET *modified_offsets);
1747
1748 HRESULT (STDMETHODCALLTYPE *GetBaseline)(
1749 IDWriteTextAnalyzer2 *This,
1750 IDWriteFontFace *face,
1751 DWRITE_BASELINE baseline,
1752 WINBOOL vertical,
1753 WINBOOL is_simulation_allowed,
1754 DWRITE_SCRIPT_ANALYSIS sa,
1755 const WCHAR *localeName,
1756 INT32 *baseline_coord,
1757 WINBOOL *exists);
1758
1759 HRESULT (STDMETHODCALLTYPE *AnalyzeVerticalGlyphOrientation)(
1760 IDWriteTextAnalyzer2 *This,
1761 IDWriteTextAnalysisSource1 *source,
1762 UINT32 text_pos,
1763 UINT32 len,
1764 IDWriteTextAnalysisSink1 *sink);
1765
1766 HRESULT (STDMETHODCALLTYPE *GetGlyphOrientationTransform)(
1767 IDWriteTextAnalyzer2 *This,
1768 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
1769 WINBOOL is_sideways,
1770 DWRITE_MATRIX *transform);
1771
1772 HRESULT (STDMETHODCALLTYPE *GetScriptProperties)(
1773 IDWriteTextAnalyzer2 *This,
1774 DWRITE_SCRIPT_ANALYSIS sa,
1775 DWRITE_SCRIPT_PROPERTIES *props);
1776
1777 HRESULT (STDMETHODCALLTYPE *GetTextComplexity)(
1778 IDWriteTextAnalyzer2 *This,
1779 const WCHAR *text,
1780 UINT32 len,
1781 IDWriteFontFace *face,
1782 WINBOOL *is_simple,
1783 UINT32 *len_read,
1784 UINT16 *indices);
1785
1786 HRESULT (STDMETHODCALLTYPE *GetJustificationOpportunities)(
1787 IDWriteTextAnalyzer2 *This,
1788 IDWriteFontFace *face,
1789 FLOAT font_em_size,
1790 DWRITE_SCRIPT_ANALYSIS sa,
1791 UINT32 length,
1792 UINT32 glyph_count,
1793 const WCHAR *text,
1794 const UINT16 *clustermap,
1795 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
1796 DWRITE_JUSTIFICATION_OPPORTUNITY *jo);
1797
1798 HRESULT (STDMETHODCALLTYPE *JustifyGlyphAdvances)(
1799 IDWriteTextAnalyzer2 *This,
1800 FLOAT width,
1801 UINT32 glyph_count,
1802 const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,
1803 const FLOAT *advances,
1804 const DWRITE_GLYPH_OFFSET *offsets,
1805 FLOAT *justifiedadvances,
1806 DWRITE_GLYPH_OFFSET *justifiedoffsets);
1807
1808 HRESULT (STDMETHODCALLTYPE *GetJustifiedGlyphs)(
1809 IDWriteTextAnalyzer2 *This,
1810 IDWriteFontFace *face,
1811 FLOAT font_em_size,
1812 DWRITE_SCRIPT_ANALYSIS sa,
1813 UINT32 length,
1814 UINT32 glyph_count,
1815 UINT32 max_glyphcount,
1816 const UINT16 *clustermap,
1817 const UINT16 *indices,
1818 const FLOAT *advances,
1819 const FLOAT *justifiedadvances,
1820 const DWRITE_GLYPH_OFFSET *justifiedoffsets,
1821 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
1822 UINT32 *actual_count,
1823 UINT16 *modified_clustermap,
1824 UINT16 *modified_indices,
1825 FLOAT *modified_advances,
1826 DWRITE_GLYPH_OFFSET *modified_offsets);
1827
1828 /*** IDWriteTextAnalyzer2 methods ***/
1829 HRESULT (STDMETHODCALLTYPE *IDWriteTextAnalyzer2_GetGlyphOrientationTransform)(
1830 IDWriteTextAnalyzer2 *This,
1831 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
1832 WINBOOL is_sideways,
1833 FLOAT originX,
1834 FLOAT originY,
1835 DWRITE_MATRIX *transform);
1836
1837 HRESULT (STDMETHODCALLTYPE *GetTypographicFeatures)(
1838 IDWriteTextAnalyzer2 *This,
1839 IDWriteFontFace *fontface,
1840 DWRITE_SCRIPT_ANALYSIS analysis,
1841 const WCHAR *localeName,
1842 UINT32 max_tagcount,
1843 UINT32 *actual_tagcount,
1844 DWRITE_FONT_FEATURE_TAG *tags);
1845
1846 HRESULT (STDMETHODCALLTYPE *CheckTypographicFeature)(
1847 IDWriteTextAnalyzer2 *This,
1848 IDWriteFontFace *fontface,
1849 DWRITE_SCRIPT_ANALYSIS analysis,
1850 const WCHAR *localeName,
1851 DWRITE_FONT_FEATURE_TAG feature,
1852 UINT32 glyph_count,
1853 const UINT16 *indices,
1854 UINT8 *feature_applies);
1855
1856 END_INTERFACE
1857} IDWriteTextAnalyzer2Vtbl;
1858
1859interface IDWriteTextAnalyzer2 {
1860 CONST_VTBL IDWriteTextAnalyzer2Vtbl* lpVtbl;
1861};
1862
1863#ifdef COBJMACROS
1864#ifndef WIDL_C_INLINE_WRAPPERS
1865/*** IUnknown methods ***/
1866#define IDWriteTextAnalyzer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1867#define IDWriteTextAnalyzer2_AddRef(This) (This)->lpVtbl->AddRef(This)
1868#define IDWriteTextAnalyzer2_Release(This) (This)->lpVtbl->Release(This)
1869/*** IDWriteTextAnalyzer methods ***/
1870#define IDWriteTextAnalyzer2_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink)
1871#define IDWriteTextAnalyzer2_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink)
1872#define IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink)
1873#define IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink)
1874#define IDWriteTextAnalyzer2_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count)
1875#define IDWriteTextAnalyzer2_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets)
1876#define IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets)
1877/*** IDWriteTextAnalyzer1 methods ***/
1878#define IDWriteTextAnalyzer2_ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) (This)->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets)
1879#define IDWriteTextAnalyzer2_GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) (This)->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists)
1880#define IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink)
1881#define IDWriteTextAnalyzer2_GetScriptProperties(This,sa,props) (This)->lpVtbl->GetScriptProperties(This,sa,props)
1882#define IDWriteTextAnalyzer2_GetTextComplexity(This,text,len,face,is_simple,len_read,indices) (This)->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices)
1883#define IDWriteTextAnalyzer2_GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) (This)->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo)
1884#define IDWriteTextAnalyzer2_JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets)
1885#define IDWriteTextAnalyzer2_GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) (This)->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets)
1886/*** IDWriteTextAnalyzer2 methods ***/
1887#define IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) (This)->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform)
1888#define IDWriteTextAnalyzer2_GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) (This)->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags)
1889#define IDWriteTextAnalyzer2_CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) (This)->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies)
1890#else
1891/*** IUnknown methods ***/
1892static FORCEINLINE HRESULT IDWriteTextAnalyzer2_QueryInterface(IDWriteTextAnalyzer2* This,REFIID riid,void **ppvObject) {
1893 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1894}
1895static FORCEINLINE ULONG IDWriteTextAnalyzer2_AddRef(IDWriteTextAnalyzer2* This) {
1896 return This->lpVtbl->AddRef(This);
1897}
1898static FORCEINLINE ULONG IDWriteTextAnalyzer2_Release(IDWriteTextAnalyzer2* This) {
1899 return This->lpVtbl->Release(This);
1900}
1901/*** IDWriteTextAnalyzer methods ***/
1902static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeScript(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
1903 return This->lpVtbl->AnalyzeScript(This,source,position,length,sink);
1904}
1905static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeBidi(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
1906 return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink);
1907}
1908static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
1909 return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink);
1910}
1911static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) {
1912 return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink);
1913}
1914static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetGlyphs(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) {
1915 return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count);
1916}
1917static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetGlyphPlacements(IDWriteTextAnalyzer2* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) {
1918 return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets);
1919}
1920static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer2* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) {
1921 return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets);
1922}
1923/*** IDWriteTextAnalyzer1 methods ***/
1924static FORCEINLINE HRESULT IDWriteTextAnalyzer2_ApplyCharacterSpacing(IDWriteTextAnalyzer2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT min_advance_width,UINT32 len,UINT32 glyph_count,const UINT16 *clustermap,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *props,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) {
1925 return This->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets);
1926}
1927static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetBaseline(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,DWRITE_BASELINE baseline,WINBOOL vertical,WINBOOL is_simulation_allowed,DWRITE_SCRIPT_ANALYSIS sa,const WCHAR *localeName,INT32 *baseline_coord,WINBOOL *exists) {
1928 return This->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists);
1929}
1930static FORCEINLINE HRESULT IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource1 *source,UINT32 text_pos,UINT32 len,IDWriteTextAnalysisSink1 *sink) {
1931 return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink);
1932}
1933static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetScriptProperties(IDWriteTextAnalyzer2* This,DWRITE_SCRIPT_ANALYSIS sa,DWRITE_SCRIPT_PROPERTIES *props) {
1934 return This->lpVtbl->GetScriptProperties(This,sa,props);
1935}
1936static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetTextComplexity(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 len,IDWriteFontFace *face,WINBOOL *is_simple,UINT32 *len_read,UINT16 *indices) {
1937 return This->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices);
1938}
1939static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetJustificationOpportunities(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,const WCHAR *text,const UINT16 *clustermap,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,DWRITE_JUSTIFICATION_OPPORTUNITY *jo) {
1940 return This->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo);
1941}
1942static FORCEINLINE HRESULT IDWriteTextAnalyzer2_JustifyGlyphAdvances(IDWriteTextAnalyzer2* This,FLOAT width,UINT32 glyph_count,const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,FLOAT *justifiedadvances,DWRITE_GLYPH_OFFSET *justifiedoffsets) {
1943 return This->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets);
1944}
1945static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetJustifiedGlyphs(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,UINT32 max_glyphcount,const UINT16 *clustermap,const UINT16 *indices,const FLOAT *advances,const FLOAT *justifiedadvances,const DWRITE_GLYPH_OFFSET *justifiedoffsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,UINT32 *actual_count,UINT16 *modified_clustermap,UINT16 *modified_indices,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) {
1946 return This->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets);
1947}
1948/*** IDWriteTextAnalyzer2 methods ***/
1949static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetGlyphOrientationTransform(IDWriteTextAnalyzer2* This,DWRITE_GLYPH_ORIENTATION_ANGLE angle,WINBOOL is_sideways,FLOAT originX,FLOAT originY,DWRITE_MATRIX *transform) {
1950 return This->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform);
1951}
1952static FORCEINLINE HRESULT IDWriteTextAnalyzer2_GetTypographicFeatures(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,UINT32 max_tagcount,UINT32 *actual_tagcount,DWRITE_FONT_FEATURE_TAG *tags) {
1953 return This->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags);
1954}
1955static FORCEINLINE HRESULT IDWriteTextAnalyzer2_CheckTypographicFeature(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,DWRITE_FONT_FEATURE_TAG feature,UINT32 glyph_count,const UINT16 *indices,UINT8 *feature_applies) {
1956 return This->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies);
1957}
1958#endif
1959#endif
1960
1961#endif
1962
1963
1964#endif /* __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ */
1965
1966/*****************************************************************************
1967 * IDWriteFontFallbackBuilder interface
1968 */
1969#ifndef __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__
1970#define __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__
1971
1972DEFINE_GUID(IID_IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde);
1973#if defined(__cplusplus) && !defined(CINTERFACE)
1974MIDL_INTERFACE("fd882d06-8aba-4fb8-b849-8be8b73e14de")
1975IDWriteFontFallbackBuilder : public IUnknown
1976{
1977 virtual HRESULT STDMETHODCALLTYPE AddMapping(
1978 const DWRITE_UNICODE_RANGE *ranges,
1979 UINT32 rangesCount,
1980 const WCHAR **targetFamilyNames,
1981 UINT32 targetFamilyNamesCount,
1982 IDWriteFontCollection *collection = 0,
1983 const WCHAR *localeName = 0,
1984 const WCHAR *baseFamilyName = 0,
1985 FLOAT scale = 1) = 0;
1986
1987 virtual HRESULT STDMETHODCALLTYPE AddMappings(
1988 IDWriteFontFallback *fallback) = 0;
1989
1990 virtual HRESULT STDMETHODCALLTYPE CreateFontFallback(
1991 IDWriteFontFallback **fallback) = 0;
1992
1993};
1994#ifdef __CRT_UUID_DECL
1995__CRT_UUID_DECL(IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde)
1996#endif
1997#else
1998typedef struct IDWriteFontFallbackBuilderVtbl {
1999 BEGIN_INTERFACE
2000
2001 /*** IUnknown methods ***/
2002 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2003 IDWriteFontFallbackBuilder *This,
2004 REFIID riid,
2005 void **ppvObject);
2006
2007 ULONG (STDMETHODCALLTYPE *AddRef)(
2008 IDWriteFontFallbackBuilder *This);
2009
2010 ULONG (STDMETHODCALLTYPE *Release)(
2011 IDWriteFontFallbackBuilder *This);
2012
2013 /*** IDWriteFontFallbackBuilder methods ***/
2014 HRESULT (STDMETHODCALLTYPE *AddMapping)(
2015 IDWriteFontFallbackBuilder *This,
2016 const DWRITE_UNICODE_RANGE *ranges,
2017 UINT32 rangesCount,
2018 const WCHAR **targetFamilyNames,
2019 UINT32 targetFamilyNamesCount,
2020 IDWriteFontCollection *collection,
2021 const WCHAR *localeName,
2022 const WCHAR *baseFamilyName,
2023 FLOAT scale);
2024
2025 HRESULT (STDMETHODCALLTYPE *AddMappings)(
2026 IDWriteFontFallbackBuilder *This,
2027 IDWriteFontFallback *fallback);
2028
2029 HRESULT (STDMETHODCALLTYPE *CreateFontFallback)(
2030 IDWriteFontFallbackBuilder *This,
2031 IDWriteFontFallback **fallback);
2032
2033 END_INTERFACE
2034} IDWriteFontFallbackBuilderVtbl;
2035
2036interface IDWriteFontFallbackBuilder {
2037 CONST_VTBL IDWriteFontFallbackBuilderVtbl* lpVtbl;
2038};
2039
2040#ifdef COBJMACROS
2041#ifndef WIDL_C_INLINE_WRAPPERS
2042/*** IUnknown methods ***/
2043#define IDWriteFontFallbackBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2044#define IDWriteFontFallbackBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
2045#define IDWriteFontFallbackBuilder_Release(This) (This)->lpVtbl->Release(This)
2046/*** IDWriteFontFallbackBuilder methods ***/
2047#define IDWriteFontFallbackBuilder_AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) (This)->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale)
2048#define IDWriteFontFallbackBuilder_AddMappings(This,fallback) (This)->lpVtbl->AddMappings(This,fallback)
2049#define IDWriteFontFallbackBuilder_CreateFontFallback(This,fallback) (This)->lpVtbl->CreateFontFallback(This,fallback)
2050#else
2051/*** IUnknown methods ***/
2052static FORCEINLINE HRESULT IDWriteFontFallbackBuilder_QueryInterface(IDWriteFontFallbackBuilder* This,REFIID riid,void **ppvObject) {
2053 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2054}
2055static FORCEINLINE ULONG IDWriteFontFallbackBuilder_AddRef(IDWriteFontFallbackBuilder* This) {
2056 return This->lpVtbl->AddRef(This);
2057}
2058static FORCEINLINE ULONG IDWriteFontFallbackBuilder_Release(IDWriteFontFallbackBuilder* This) {
2059 return This->lpVtbl->Release(This);
2060}
2061/*** IDWriteFontFallbackBuilder methods ***/
2062static FORCEINLINE HRESULT IDWriteFontFallbackBuilder_AddMapping(IDWriteFontFallbackBuilder* This,const DWRITE_UNICODE_RANGE *ranges,UINT32 rangesCount,const WCHAR **targetFamilyNames,UINT32 targetFamilyNamesCount,IDWriteFontCollection *collection,const WCHAR *localeName,const WCHAR *baseFamilyName,FLOAT scale) {
2063 return This->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale);
2064}
2065static FORCEINLINE HRESULT IDWriteFontFallbackBuilder_AddMappings(IDWriteFontFallbackBuilder* This,IDWriteFontFallback *fallback) {
2066 return This->lpVtbl->AddMappings(This,fallback);
2067}
2068static FORCEINLINE HRESULT IDWriteFontFallbackBuilder_CreateFontFallback(IDWriteFontFallbackBuilder* This,IDWriteFontFallback **fallback) {
2069 return This->lpVtbl->CreateFontFallback(This,fallback);
2070}
2071#endif
2072#endif
2073
2074#endif
2075
2076
2077#endif /* __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ */
2078
2079/*****************************************************************************
2080 * IDWriteFont2 interface
2081 */
2082#ifndef __IDWriteFont2_INTERFACE_DEFINED__
2083#define __IDWriteFont2_INTERFACE_DEFINED__
2084
2085DEFINE_GUID(IID_IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44);
2086#if defined(__cplusplus) && !defined(CINTERFACE)
2087MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944")
2088IDWriteFont2 : public IDWriteFont1
2089{
2090 virtual WINBOOL STDMETHODCALLTYPE IsColorFont(
2091 ) = 0;
2092
2093};
2094#ifdef __CRT_UUID_DECL
2095__CRT_UUID_DECL(IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44)
2096#endif
2097#else
2098typedef struct IDWriteFont2Vtbl {
2099 BEGIN_INTERFACE
2100
2101 /*** IUnknown methods ***/
2102 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2103 IDWriteFont2 *This,
2104 REFIID riid,
2105 void **ppvObject);
2106
2107 ULONG (STDMETHODCALLTYPE *AddRef)(
2108 IDWriteFont2 *This);
2109
2110 ULONG (STDMETHODCALLTYPE *Release)(
2111 IDWriteFont2 *This);
2112
2113 /*** IDWriteFont methods ***/
2114 HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
2115 IDWriteFont2 *This,
2116 IDWriteFontFamily **family);
2117
2118 DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
2119 IDWriteFont2 *This);
2120
2121 DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
2122 IDWriteFont2 *This);
2123
2124 DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
2125 IDWriteFont2 *This);
2126
2127 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
2128 IDWriteFont2 *This);
2129
2130 HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
2131 IDWriteFont2 *This,
2132 IDWriteLocalizedStrings **names);
2133
2134 HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
2135 IDWriteFont2 *This,
2136 DWRITE_INFORMATIONAL_STRING_ID stringid,
2137 IDWriteLocalizedStrings **strings,
2138 WINBOOL *exists);
2139
2140 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
2141 IDWriteFont2 *This);
2142
2143 void (STDMETHODCALLTYPE *GetMetrics)(
2144 IDWriteFont2 *This,
2145 DWRITE_FONT_METRICS *metrics);
2146
2147 HRESULT (STDMETHODCALLTYPE *HasCharacter)(
2148 IDWriteFont2 *This,
2149 UINT32 value,
2150 WINBOOL *exists);
2151
2152 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
2153 IDWriteFont2 *This,
2154 IDWriteFontFace **face);
2155
2156 /*** IDWriteFont1 methods ***/
2157 void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)(
2158 IDWriteFont2 *This,
2159 DWRITE_FONT_METRICS1 *metrics);
2160
2161 void (STDMETHODCALLTYPE *GetPanose)(
2162 IDWriteFont2 *This,
2163 DWRITE_PANOSE *panose);
2164
2165 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
2166 IDWriteFont2 *This,
2167 UINT32 max_count,
2168 DWRITE_UNICODE_RANGE *ranges,
2169 UINT32 *count);
2170
2171 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
2172 IDWriteFont2 *This);
2173
2174 /*** IDWriteFont2 methods ***/
2175 WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
2176 IDWriteFont2 *This);
2177
2178 END_INTERFACE
2179} IDWriteFont2Vtbl;
2180
2181interface IDWriteFont2 {
2182 CONST_VTBL IDWriteFont2Vtbl* lpVtbl;
2183};
2184
2185#ifdef COBJMACROS
2186#ifndef WIDL_C_INLINE_WRAPPERS
2187/*** IUnknown methods ***/
2188#define IDWriteFont2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2189#define IDWriteFont2_AddRef(This) (This)->lpVtbl->AddRef(This)
2190#define IDWriteFont2_Release(This) (This)->lpVtbl->Release(This)
2191/*** IDWriteFont methods ***/
2192#define IDWriteFont2_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family)
2193#define IDWriteFont2_GetWeight(This) (This)->lpVtbl->GetWeight(This)
2194#define IDWriteFont2_GetStretch(This) (This)->lpVtbl->GetStretch(This)
2195#define IDWriteFont2_GetStyle(This) (This)->lpVtbl->GetStyle(This)
2196#define IDWriteFont2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
2197#define IDWriteFont2_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
2198#define IDWriteFont2_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
2199#define IDWriteFont2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
2200#define IDWriteFont2_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists)
2201#define IDWriteFont2_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face)
2202/*** IDWriteFont1 methods ***/
2203#define IDWriteFont2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics)
2204#define IDWriteFont2_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
2205#define IDWriteFont2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
2206#define IDWriteFont2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
2207/*** IDWriteFont2 methods ***/
2208#define IDWriteFont2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
2209#else
2210/*** IUnknown methods ***/
2211static FORCEINLINE HRESULT IDWriteFont2_QueryInterface(IDWriteFont2* This,REFIID riid,void **ppvObject) {
2212 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2213}
2214static FORCEINLINE ULONG IDWriteFont2_AddRef(IDWriteFont2* This) {
2215 return This->lpVtbl->AddRef(This);
2216}
2217static FORCEINLINE ULONG IDWriteFont2_Release(IDWriteFont2* This) {
2218 return This->lpVtbl->Release(This);
2219}
2220/*** IDWriteFont methods ***/
2221static FORCEINLINE HRESULT IDWriteFont2_GetFontFamily(IDWriteFont2* This,IDWriteFontFamily **family) {
2222 return This->lpVtbl->GetFontFamily(This,family);
2223}
2224static FORCEINLINE DWRITE_FONT_WEIGHT IDWriteFont2_GetWeight(IDWriteFont2* This) {
2225 return This->lpVtbl->GetWeight(This);
2226}
2227static FORCEINLINE DWRITE_FONT_STRETCH IDWriteFont2_GetStretch(IDWriteFont2* This) {
2228 return This->lpVtbl->GetStretch(This);
2229}
2230static FORCEINLINE DWRITE_FONT_STYLE IDWriteFont2_GetStyle(IDWriteFont2* This) {
2231 return This->lpVtbl->GetStyle(This);
2232}
2233static FORCEINLINE WINBOOL IDWriteFont2_IsSymbolFont(IDWriteFont2* This) {
2234 return This->lpVtbl->IsSymbolFont(This);
2235}
2236static FORCEINLINE HRESULT IDWriteFont2_GetFaceNames(IDWriteFont2* This,IDWriteLocalizedStrings **names) {
2237 return This->lpVtbl->GetFaceNames(This,names);
2238}
2239static FORCEINLINE HRESULT IDWriteFont2_GetInformationalStrings(IDWriteFont2* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
2240 return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
2241}
2242static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFont2_GetSimulations(IDWriteFont2* This) {
2243 return This->lpVtbl->GetSimulations(This);
2244}
2245static FORCEINLINE HRESULT IDWriteFont2_HasCharacter(IDWriteFont2* This,UINT32 value,WINBOOL *exists) {
2246 return This->lpVtbl->HasCharacter(This,value,exists);
2247}
2248static FORCEINLINE HRESULT IDWriteFont2_CreateFontFace(IDWriteFont2* This,IDWriteFontFace **face) {
2249 return This->lpVtbl->CreateFontFace(This,face);
2250}
2251/*** IDWriteFont1 methods ***/
2252static FORCEINLINE void IDWriteFont2_GetMetrics(IDWriteFont2* This,DWRITE_FONT_METRICS1 *metrics) {
2253 This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics);
2254}
2255static FORCEINLINE void IDWriteFont2_GetPanose(IDWriteFont2* This,DWRITE_PANOSE *panose) {
2256 This->lpVtbl->GetPanose(This,panose);
2257}
2258static FORCEINLINE HRESULT IDWriteFont2_GetUnicodeRanges(IDWriteFont2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
2259 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
2260}
2261static FORCEINLINE WINBOOL IDWriteFont2_IsMonospacedFont(IDWriteFont2* This) {
2262 return This->lpVtbl->IsMonospacedFont(This);
2263}
2264/*** IDWriteFont2 methods ***/
2265static FORCEINLINE WINBOOL IDWriteFont2_IsColorFont(IDWriteFont2* This) {
2266 return This->lpVtbl->IsColorFont(This);
2267}
2268#endif
2269#endif
2270
2271#endif
2272
2273
2274#endif /* __IDWriteFont2_INTERFACE_DEFINED__ */
2275
2276/*****************************************************************************
2277 * IDWriteFontFace2 interface
2278 */
2279#ifndef __IDWriteFontFace2_INTERFACE_DEFINED__
2280#define __IDWriteFontFace2_INTERFACE_DEFINED__
2281
2282DEFINE_GUID(IID_IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7);
2283#if defined(__cplusplus) && !defined(CINTERFACE)
2284MIDL_INTERFACE("d8b768ff-64bc-4e66-982b-ec8e87f693f7")
2285IDWriteFontFace2 : public IDWriteFontFace1
2286{
2287 virtual WINBOOL STDMETHODCALLTYPE IsColorFont(
2288 ) = 0;
2289
2290 virtual UINT32 STDMETHODCALLTYPE GetColorPaletteCount(
2291 ) = 0;
2292
2293 virtual UINT32 STDMETHODCALLTYPE GetPaletteEntryCount(
2294 ) = 0;
2295
2296 virtual HRESULT STDMETHODCALLTYPE GetPaletteEntries(
2297 UINT32 palette_index,
2298 UINT32 first_entry_index,
2299 UINT32 entry_count,
2300 DWRITE_COLOR_F *entries) = 0;
2301
2302 virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode(
2303 FLOAT fontEmSize,
2304 FLOAT dpiX,
2305 FLOAT dpiY,
2306 const DWRITE_MATRIX *transform,
2307 WINBOOL is_sideways,
2308 DWRITE_OUTLINE_THRESHOLD threshold,
2309 DWRITE_MEASURING_MODE measuringmode,
2310 IDWriteRenderingParams *params,
2311 DWRITE_RENDERING_MODE *renderingmode,
2312 DWRITE_GRID_FIT_MODE *gridfitmode) = 0;
2313
2314};
2315#ifdef __CRT_UUID_DECL
2316__CRT_UUID_DECL(IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7)
2317#endif
2318#else
2319typedef struct IDWriteFontFace2Vtbl {
2320 BEGIN_INTERFACE
2321
2322 /*** IUnknown methods ***/
2323 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2324 IDWriteFontFace2 *This,
2325 REFIID riid,
2326 void **ppvObject);
2327
2328 ULONG (STDMETHODCALLTYPE *AddRef)(
2329 IDWriteFontFace2 *This);
2330
2331 ULONG (STDMETHODCALLTYPE *Release)(
2332 IDWriteFontFace2 *This);
2333
2334 /*** IDWriteFontFace methods ***/
2335 DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
2336 IDWriteFontFace2 *This);
2337
2338 HRESULT (STDMETHODCALLTYPE *GetFiles)(
2339 IDWriteFontFace2 *This,
2340 UINT32 *number_of_files,
2341 IDWriteFontFile **fontfiles);
2342
2343 UINT32 (STDMETHODCALLTYPE *GetIndex)(
2344 IDWriteFontFace2 *This);
2345
2346 DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
2347 IDWriteFontFace2 *This);
2348
2349 WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
2350 IDWriteFontFace2 *This);
2351
2352 void (STDMETHODCALLTYPE *GetMetrics)(
2353 IDWriteFontFace2 *This,
2354 DWRITE_FONT_METRICS *metrics);
2355
2356 UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
2357 IDWriteFontFace2 *This);
2358
2359 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
2360 IDWriteFontFace2 *This,
2361 const UINT16 *glyph_indices,
2362 UINT32 glyph_count,
2363 DWRITE_GLYPH_METRICS *metrics,
2364 WINBOOL is_sideways);
2365
2366 HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
2367 IDWriteFontFace2 *This,
2368 const UINT32 *codepoints,
2369 UINT32 count,
2370 UINT16 *glyph_indices);
2371
2372 HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
2373 IDWriteFontFace2 *This,
2374 UINT32 table_tag,
2375 const void **table_data,
2376 UINT32 *table_size,
2377 void **context,
2378 WINBOOL *exists);
2379
2380 void (STDMETHODCALLTYPE *ReleaseFontTable)(
2381 IDWriteFontFace2 *This,
2382 void *table_context);
2383
2384 HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
2385 IDWriteFontFace2 *This,
2386 FLOAT emSize,
2387 const UINT16 *glyph_indices,
2388 const FLOAT *glyph_advances,
2389 const DWRITE_GLYPH_OFFSET *glyph_offsets,
2390 UINT32 glyph_count,
2391 WINBOOL is_sideways,
2392 WINBOOL is_rtl,
2393 IDWriteGeometrySink *geometrysink);
2394
2395 HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
2396 IDWriteFontFace2 *This,
2397 FLOAT emSize,
2398 FLOAT pixels_per_dip,
2399 DWRITE_MEASURING_MODE mode,
2400 IDWriteRenderingParams *params,
2401 DWRITE_RENDERING_MODE *rendering_mode);
2402
2403 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
2404 IDWriteFontFace2 *This,
2405 FLOAT emSize,
2406 FLOAT pixels_per_dip,
2407 const DWRITE_MATRIX *transform,
2408 DWRITE_FONT_METRICS *metrics);
2409
2410 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
2411 IDWriteFontFace2 *This,
2412 FLOAT emSize,
2413 FLOAT pixels_per_dip,
2414 const DWRITE_MATRIX *transform,
2415 WINBOOL use_gdi_natural,
2416 const UINT16 *glyph_indices,
2417 UINT32 glyph_count,
2418 DWRITE_GLYPH_METRICS *metrics,
2419 WINBOOL is_sideways);
2420
2421 /*** IDWriteFontFace1 methods ***/
2422 void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
2423 IDWriteFontFace2 *This,
2424 DWRITE_FONT_METRICS1 *metrics);
2425
2426 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
2427 IDWriteFontFace2 *This,
2428 FLOAT em_size,
2429 FLOAT pixels_per_dip,
2430 const DWRITE_MATRIX *transform,
2431 DWRITE_FONT_METRICS1 *metrics);
2432
2433 void (STDMETHODCALLTYPE *GetCaretMetrics)(
2434 IDWriteFontFace2 *This,
2435 DWRITE_CARET_METRICS *metrics);
2436
2437 HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
2438 IDWriteFontFace2 *This,
2439 UINT32 max_count,
2440 DWRITE_UNICODE_RANGE *ranges,
2441 UINT32 *count);
2442
2443 WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
2444 IDWriteFontFace2 *This);
2445
2446 HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
2447 IDWriteFontFace2 *This,
2448 UINT32 glyph_count,
2449 const UINT16 *indices,
2450 INT32 *advances,
2451 WINBOOL is_sideways);
2452
2453 HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
2454 IDWriteFontFace2 *This,
2455 FLOAT em_size,
2456 FLOAT pixels_per_dip,
2457 const DWRITE_MATRIX *transform,
2458 WINBOOL use_gdi_natural,
2459 WINBOOL is_sideways,
2460 UINT32 glyph_count,
2461 const UINT16 *indices,
2462 INT32 *advances);
2463
2464 HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
2465 IDWriteFontFace2 *This,
2466 UINT32 glyph_count,
2467 const UINT16 *indices,
2468 INT32 *adjustments);
2469
2470 WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
2471 IDWriteFontFace2 *This);
2472
2473 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
2474 IDWriteFontFace2 *This,
2475 FLOAT font_emsize,
2476 FLOAT dpiX,
2477 FLOAT dpiY,
2478 const DWRITE_MATRIX *transform,
2479 WINBOOL is_sideways,
2480 DWRITE_OUTLINE_THRESHOLD threshold,
2481 DWRITE_MEASURING_MODE measuring_mode,
2482 DWRITE_RENDERING_MODE *rendering_mode);
2483
2484 HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
2485 IDWriteFontFace2 *This,
2486 UINT32 glyph_count,
2487 const UINT16 *nominal_indices,
2488 UINT16 *vertical_indices);
2489
2490 WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
2491 IDWriteFontFace2 *This);
2492
2493 /*** IDWriteFontFace2 methods ***/
2494 WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
2495 IDWriteFontFace2 *This);
2496
2497 UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
2498 IDWriteFontFace2 *This);
2499
2500 UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
2501 IDWriteFontFace2 *This);
2502
2503 HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
2504 IDWriteFontFace2 *This,
2505 UINT32 palette_index,
2506 UINT32 first_entry_index,
2507 UINT32 entry_count,
2508 DWRITE_COLOR_F *entries);
2509
2510 HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
2511 IDWriteFontFace2 *This,
2512 FLOAT fontEmSize,
2513 FLOAT dpiX,
2514 FLOAT dpiY,
2515 const DWRITE_MATRIX *transform,
2516 WINBOOL is_sideways,
2517 DWRITE_OUTLINE_THRESHOLD threshold,
2518 DWRITE_MEASURING_MODE measuringmode,
2519 IDWriteRenderingParams *params,
2520 DWRITE_RENDERING_MODE *renderingmode,
2521 DWRITE_GRID_FIT_MODE *gridfitmode);
2522
2523 END_INTERFACE
2524} IDWriteFontFace2Vtbl;
2525
2526interface IDWriteFontFace2 {
2527 CONST_VTBL IDWriteFontFace2Vtbl* lpVtbl;
2528};
2529
2530#ifdef COBJMACROS
2531#ifndef WIDL_C_INLINE_WRAPPERS
2532/*** IUnknown methods ***/
2533#define IDWriteFontFace2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2534#define IDWriteFontFace2_AddRef(This) (This)->lpVtbl->AddRef(This)
2535#define IDWriteFontFace2_Release(This) (This)->lpVtbl->Release(This)
2536/*** IDWriteFontFace methods ***/
2537#define IDWriteFontFace2_GetType(This) (This)->lpVtbl->GetType(This)
2538#define IDWriteFontFace2_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
2539#define IDWriteFontFace2_GetIndex(This) (This)->lpVtbl->GetIndex(This)
2540#define IDWriteFontFace2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
2541#define IDWriteFontFace2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
2542#define IDWriteFontFace2_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
2543#define IDWriteFontFace2_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
2544#define IDWriteFontFace2_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
2545#define IDWriteFontFace2_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
2546#define IDWriteFontFace2_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
2547#define IDWriteFontFace2_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)
2548#define IDWriteFontFace2_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)
2549/*** IDWriteFontFace1 methods ***/
2550#define IDWriteFontFace2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
2551#define IDWriteFontFace2_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
2552#define IDWriteFontFace2_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
2553#define IDWriteFontFace2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
2554#define IDWriteFontFace2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
2555#define IDWriteFontFace2_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
2556#define IDWriteFontFace2_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)
2557#define IDWriteFontFace2_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
2558#define IDWriteFontFace2_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
2559#define IDWriteFontFace2_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
2560#define IDWriteFontFace2_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
2561/*** IDWriteFontFace2 methods ***/
2562#define IDWriteFontFace2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
2563#define IDWriteFontFace2_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
2564#define IDWriteFontFace2_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
2565#define IDWriteFontFace2_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
2566#define IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) (This)->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode)
2567#else
2568/*** IUnknown methods ***/
2569static FORCEINLINE HRESULT IDWriteFontFace2_QueryInterface(IDWriteFontFace2* This,REFIID riid,void **ppvObject) {
2570 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2571}
2572static FORCEINLINE ULONG IDWriteFontFace2_AddRef(IDWriteFontFace2* This) {
2573 return This->lpVtbl->AddRef(This);
2574}
2575static FORCEINLINE ULONG IDWriteFontFace2_Release(IDWriteFontFace2* This) {
2576 return This->lpVtbl->Release(This);
2577}
2578/*** IDWriteFontFace methods ***/
2579static FORCEINLINE DWRITE_FONT_FACE_TYPE IDWriteFontFace2_GetType(IDWriteFontFace2* This) {
2580 return This->lpVtbl->GetType(This);
2581}
2582static FORCEINLINE HRESULT IDWriteFontFace2_GetFiles(IDWriteFontFace2* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
2583 return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
2584}
2585static FORCEINLINE UINT32 IDWriteFontFace2_GetIndex(IDWriteFontFace2* This) {
2586 return This->lpVtbl->GetIndex(This);
2587}
2588static FORCEINLINE DWRITE_FONT_SIMULATIONS IDWriteFontFace2_GetSimulations(IDWriteFontFace2* This) {
2589 return This->lpVtbl->GetSimulations(This);
2590}
2591static FORCEINLINE WINBOOL IDWriteFontFace2_IsSymbolFont(IDWriteFontFace2* This) {
2592 return This->lpVtbl->IsSymbolFont(This);
2593}
2594static FORCEINLINE UINT16 IDWriteFontFace2_GetGlyphCount(IDWriteFontFace2* This) {
2595 return This->lpVtbl->GetGlyphCount(This);
2596}
2597static FORCEINLINE HRESULT IDWriteFontFace2_GetDesignGlyphMetrics(IDWriteFontFace2* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
2598 return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
2599}
2600static FORCEINLINE HRESULT IDWriteFontFace2_GetGlyphIndices(IDWriteFontFace2* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
2601 return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
2602}
2603static FORCEINLINE HRESULT IDWriteFontFace2_TryGetFontTable(IDWriteFontFace2* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
2604 return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
2605}
2606static FORCEINLINE void IDWriteFontFace2_ReleaseFontTable(IDWriteFontFace2* This,void *table_context) {
2607 This->lpVtbl->ReleaseFontTable(This,table_context);
2608}
2609static FORCEINLINE HRESULT IDWriteFontFace2_GetGlyphRunOutline(IDWriteFontFace2* 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) {
2610 return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
2611}
2612static FORCEINLINE HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(IDWriteFontFace2* 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) {
2613 return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
2614}
2615/*** IDWriteFontFace1 methods ***/
2616static FORCEINLINE void IDWriteFontFace2_GetMetrics(IDWriteFontFace2* This,DWRITE_FONT_METRICS1 *metrics) {
2617 This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
2618}
2619static FORCEINLINE HRESULT IDWriteFontFace2_GetGdiCompatibleMetrics(IDWriteFontFace2* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
2620 return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
2621}
2622static FORCEINLINE void IDWriteFontFace2_GetCaretMetrics(IDWriteFontFace2* This,DWRITE_CARET_METRICS *metrics) {
2623 This->lpVtbl->GetCaretMetrics(This,metrics);
2624}
2625static FORCEINLINE HRESULT IDWriteFontFace2_GetUnicodeRanges(IDWriteFontFace2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
2626 return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
2627}
2628static FORCEINLINE WINBOOL IDWriteFontFace2_IsMonospacedFont(IDWriteFontFace2* This) {
2629 return This->lpVtbl->IsMonospacedFont(This);
2630}
2631static FORCEINLINE HRESULT IDWriteFontFace2_GetDesignGlyphAdvances(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
2632 return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
2633}
2634static FORCEINLINE HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(IDWriteFontFace2* 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) {
2635 return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
2636}
2637static FORCEINLINE HRESULT IDWriteFontFace2_GetKerningPairAdjustments(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
2638 return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
2639}
2640static FORCEINLINE WINBOOL IDWriteFontFace2_HasKerningPairs(IDWriteFontFace2* This) {
2641 return This->lpVtbl->HasKerningPairs(This);
2642}
2643static FORCEINLINE HRESULT IDWriteFontFace2_GetVerticalGlyphVariants(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
2644 return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
2645}
2646static FORCEINLINE WINBOOL IDWriteFontFace2_HasVerticalGlyphVariants(IDWriteFontFace2* This) {
2647 return This->lpVtbl->HasVerticalGlyphVariants(This);
2648}
2649/*** IDWriteFontFace2 methods ***/
2650static FORCEINLINE WINBOOL IDWriteFontFace2_IsColorFont(IDWriteFontFace2* This) {
2651 return This->lpVtbl->IsColorFont(This);
2652}
2653static FORCEINLINE UINT32 IDWriteFontFace2_GetColorPaletteCount(IDWriteFontFace2* This) {
2654 return This->lpVtbl->GetColorPaletteCount(This);
2655}
2656static FORCEINLINE UINT32 IDWriteFontFace2_GetPaletteEntryCount(IDWriteFontFace2* This) {
2657 return This->lpVtbl->GetPaletteEntryCount(This);
2658}
2659static FORCEINLINE HRESULT IDWriteFontFace2_GetPaletteEntries(IDWriteFontFace2* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
2660 return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
2661}
2662static FORCEINLINE HRESULT IDWriteFontFace2_GetRecommendedRenderingMode(IDWriteFontFace2* This,FLOAT fontEmSize,FLOAT dpiX,FLOAT dpiY,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuringmode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *renderingmode,DWRITE_GRID_FIT_MODE *gridfitmode) {
2663 return This->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode);
2664}
2665#endif
2666#endif
2667
2668#endif
2669
2670
2671#endif /* __IDWriteFontFace2_INTERFACE_DEFINED__ */
2672
2673/*****************************************************************************
2674 * IDWriteColorGlyphRunEnumerator interface
2675 */
2676#ifndef __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__
2677#define __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__
2678
2679DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8);
2680#if defined(__cplusplus) && !defined(CINTERFACE)
2681MIDL_INTERFACE("d31fbe17-f157-41a2-8d24-cb779e0560e8")
2682IDWriteColorGlyphRunEnumerator : public IUnknown
2683{
2684 virtual HRESULT STDMETHODCALLTYPE MoveNext(
2685 WINBOOL *hasRun) = 0;
2686
2687 virtual HRESULT STDMETHODCALLTYPE GetCurrentRun(
2688 const DWRITE_COLOR_GLYPH_RUN **run) = 0;
2689
2690};
2691#ifdef __CRT_UUID_DECL
2692__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8)
2693#endif
2694#else
2695typedef struct IDWriteColorGlyphRunEnumeratorVtbl {
2696 BEGIN_INTERFACE
2697
2698 /*** IUnknown methods ***/
2699 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2700 IDWriteColorGlyphRunEnumerator *This,
2701 REFIID riid,
2702 void **ppvObject);
2703
2704 ULONG (STDMETHODCALLTYPE *AddRef)(
2705 IDWriteColorGlyphRunEnumerator *This);
2706
2707 ULONG (STDMETHODCALLTYPE *Release)(
2708 IDWriteColorGlyphRunEnumerator *This);
2709
2710 /*** IDWriteColorGlyphRunEnumerator methods ***/
2711 HRESULT (STDMETHODCALLTYPE *MoveNext)(
2712 IDWriteColorGlyphRunEnumerator *This,
2713 WINBOOL *hasRun);
2714
2715 HRESULT (STDMETHODCALLTYPE *GetCurrentRun)(
2716 IDWriteColorGlyphRunEnumerator *This,
2717 const DWRITE_COLOR_GLYPH_RUN **run);
2718
2719 END_INTERFACE
2720} IDWriteColorGlyphRunEnumeratorVtbl;
2721
2722interface IDWriteColorGlyphRunEnumerator {
2723 CONST_VTBL IDWriteColorGlyphRunEnumeratorVtbl* lpVtbl;
2724};
2725
2726#ifdef COBJMACROS
2727#ifndef WIDL_C_INLINE_WRAPPERS
2728/*** IUnknown methods ***/
2729#define IDWriteColorGlyphRunEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2730#define IDWriteColorGlyphRunEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
2731#define IDWriteColorGlyphRunEnumerator_Release(This) (This)->lpVtbl->Release(This)
2732/*** IDWriteColorGlyphRunEnumerator methods ***/
2733#define IDWriteColorGlyphRunEnumerator_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun)
2734#define IDWriteColorGlyphRunEnumerator_GetCurrentRun(This,run) (This)->lpVtbl->GetCurrentRun(This,run)
2735#else
2736/*** IUnknown methods ***/
2737static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator_QueryInterface(IDWriteColorGlyphRunEnumerator* This,REFIID riid,void **ppvObject) {
2738 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2739}
2740static FORCEINLINE ULONG IDWriteColorGlyphRunEnumerator_AddRef(IDWriteColorGlyphRunEnumerator* This) {
2741 return This->lpVtbl->AddRef(This);
2742}
2743static FORCEINLINE ULONG IDWriteColorGlyphRunEnumerator_Release(IDWriteColorGlyphRunEnumerator* This) {
2744 return This->lpVtbl->Release(This);
2745}
2746/*** IDWriteColorGlyphRunEnumerator methods ***/
2747static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator_MoveNext(IDWriteColorGlyphRunEnumerator* This,WINBOOL *hasRun) {
2748 return This->lpVtbl->MoveNext(This,hasRun);
2749}
2750static FORCEINLINE HRESULT IDWriteColorGlyphRunEnumerator_GetCurrentRun(IDWriteColorGlyphRunEnumerator* This,const DWRITE_COLOR_GLYPH_RUN **run) {
2751 return This->lpVtbl->GetCurrentRun(This,run);
2752}
2753#endif
2754#endif
2755
2756#endif
2757
2758
2759#endif /* __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ */
2760
2761/*****************************************************************************
2762 * IDWriteRenderingParams2 interface
2763 */
2764#ifndef __IDWriteRenderingParams2_INTERFACE_DEFINED__
2765#define __IDWriteRenderingParams2_INTERFACE_DEFINED__
2766
2767DEFINE_GUID(IID_IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48);
2768#if defined(__cplusplus) && !defined(CINTERFACE)
2769MIDL_INTERFACE("f9d711c3-9777-40ae-87e8-3e5af9bf0948")
2770IDWriteRenderingParams2 : public IDWriteRenderingParams1
2771{
2772 virtual DWRITE_GRID_FIT_MODE STDMETHODCALLTYPE GetGridFitMode(
2773 ) = 0;
2774
2775};
2776#ifdef __CRT_UUID_DECL
2777__CRT_UUID_DECL(IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48)
2778#endif
2779#else
2780typedef struct IDWriteRenderingParams2Vtbl {
2781 BEGIN_INTERFACE
2782
2783 /*** IUnknown methods ***/
2784 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2785 IDWriteRenderingParams2 *This,
2786 REFIID riid,
2787 void **ppvObject);
2788
2789 ULONG (STDMETHODCALLTYPE *AddRef)(
2790 IDWriteRenderingParams2 *This);
2791
2792 ULONG (STDMETHODCALLTYPE *Release)(
2793 IDWriteRenderingParams2 *This);
2794
2795 /*** IDWriteRenderingParams methods ***/
2796 FLOAT (STDMETHODCALLTYPE *GetGamma)(
2797 IDWriteRenderingParams2 *This);
2798
2799 FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)(
2800 IDWriteRenderingParams2 *This);
2801
2802 FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)(
2803 IDWriteRenderingParams2 *This);
2804
2805 DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)(
2806 IDWriteRenderingParams2 *This);
2807
2808 DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)(
2809 IDWriteRenderingParams2 *This);
2810
2811 /*** IDWriteRenderingParams1 methods ***/
2812 FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)(
2813 IDWriteRenderingParams2 *This);
2814
2815 /*** IDWriteRenderingParams2 methods ***/
2816 DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)(
2817 IDWriteRenderingParams2 *This);
2818
2819 END_INTERFACE
2820} IDWriteRenderingParams2Vtbl;
2821
2822interface IDWriteRenderingParams2 {
2823 CONST_VTBL IDWriteRenderingParams2Vtbl* lpVtbl;
2824};
2825
2826#ifdef COBJMACROS
2827#ifndef WIDL_C_INLINE_WRAPPERS
2828/*** IUnknown methods ***/
2829#define IDWriteRenderingParams2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2830#define IDWriteRenderingParams2_AddRef(This) (This)->lpVtbl->AddRef(This)
2831#define IDWriteRenderingParams2_Release(This) (This)->lpVtbl->Release(This)
2832/*** IDWriteRenderingParams methods ***/
2833#define IDWriteRenderingParams2_GetGamma(This) (This)->lpVtbl->GetGamma(This)
2834#define IDWriteRenderingParams2_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This)
2835#define IDWriteRenderingParams2_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This)
2836#define IDWriteRenderingParams2_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This)
2837#define IDWriteRenderingParams2_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This)
2838/*** IDWriteRenderingParams1 methods ***/
2839#define IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This)
2840/*** IDWriteRenderingParams2 methods ***/
2841#define IDWriteRenderingParams2_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This)
2842#else
2843/*** IUnknown methods ***/
2844static FORCEINLINE HRESULT IDWriteRenderingParams2_QueryInterface(IDWriteRenderingParams2* This,REFIID riid,void **ppvObject) {
2845 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2846}
2847static FORCEINLINE ULONG IDWriteRenderingParams2_AddRef(IDWriteRenderingParams2* This) {
2848 return This->lpVtbl->AddRef(This);
2849}
2850static FORCEINLINE ULONG IDWriteRenderingParams2_Release(IDWriteRenderingParams2* This) {
2851 return This->lpVtbl->Release(This);
2852}
2853/*** IDWriteRenderingParams methods ***/
2854static FORCEINLINE FLOAT IDWriteRenderingParams2_GetGamma(IDWriteRenderingParams2* This) {
2855 return This->lpVtbl->GetGamma(This);
2856}
2857static FORCEINLINE FLOAT IDWriteRenderingParams2_GetEnhancedContrast(IDWriteRenderingParams2* This) {
2858 return This->lpVtbl->GetEnhancedContrast(This);
2859}
2860static FORCEINLINE FLOAT IDWriteRenderingParams2_GetClearTypeLevel(IDWriteRenderingParams2* This) {
2861 return This->lpVtbl->GetClearTypeLevel(This);
2862}
2863static FORCEINLINE DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams2_GetPixelGeometry(IDWriteRenderingParams2* This) {
2864 return This->lpVtbl->GetPixelGeometry(This);
2865}
2866static FORCEINLINE DWRITE_RENDERING_MODE IDWriteRenderingParams2_GetRenderingMode(IDWriteRenderingParams2* This) {
2867 return This->lpVtbl->GetRenderingMode(This);
2868}
2869/*** IDWriteRenderingParams1 methods ***/
2870static FORCEINLINE FLOAT IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(IDWriteRenderingParams2* This) {
2871 return This->lpVtbl->GetGrayscaleEnhancedContrast(This);
2872}
2873/*** IDWriteRenderingParams2 methods ***/
2874static FORCEINLINE DWRITE_GRID_FIT_MODE IDWriteRenderingParams2_GetGridFitMode(IDWriteRenderingParams2* This) {
2875 return This->lpVtbl->GetGridFitMode(This);
2876}
2877#endif
2878#endif
2879
2880#endif
2881
2882
2883#endif /* __IDWriteRenderingParams2_INTERFACE_DEFINED__ */
2884
2885/*****************************************************************************
2886 * IDWriteFactory2 interface
2887 */
2888#ifndef __IDWriteFactory2_INTERFACE_DEFINED__
2889#define __IDWriteFactory2_INTERFACE_DEFINED__
2890
2891DEFINE_GUID(IID_IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec);
2892#if defined(__cplusplus) && !defined(CINTERFACE)
2893MIDL_INTERFACE("0439fc60-ca44-4994-8dee-3a9af7b732ec")
2894IDWriteFactory2 : public IDWriteFactory1
2895{
2896 virtual HRESULT STDMETHODCALLTYPE GetSystemFontFallback(
2897 IDWriteFontFallback **fallback) = 0;
2898
2899 virtual HRESULT STDMETHODCALLTYPE CreateFontFallbackBuilder(
2900 IDWriteFontFallbackBuilder **fallbackbuilder) = 0;
2901
2902 virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
2903 FLOAT originX,
2904 FLOAT originY,
2905 const DWRITE_GLYPH_RUN *run,
2906 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
2907 DWRITE_MEASURING_MODE mode,
2908 const DWRITE_MATRIX *transform,
2909 UINT32 palette_index,
2910 IDWriteColorGlyphRunEnumerator **colorlayers) = 0;
2911
2912 virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams(
2913 FLOAT gamma,
2914 FLOAT contrast,
2915 FLOAT grayscalecontrast,
2916 FLOAT cleartypeLevel,
2917 DWRITE_PIXEL_GEOMETRY pixelGeometry,
2918 DWRITE_RENDERING_MODE renderingMode,
2919 DWRITE_GRID_FIT_MODE gridFitMode,
2920 IDWriteRenderingParams2 **params) = 0;
2921
2922 virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis(
2923 const DWRITE_GLYPH_RUN *run,
2924 const DWRITE_MATRIX *transform,
2925 DWRITE_RENDERING_MODE renderingMode,
2926 DWRITE_MEASURING_MODE measuringMode,
2927 DWRITE_GRID_FIT_MODE gridFitMode,
2928 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
2929 FLOAT originX,
2930 FLOAT originY,
2931 IDWriteGlyphRunAnalysis **analysis) = 0;
2932
2933};
2934#ifdef __CRT_UUID_DECL
2935__CRT_UUID_DECL(IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec)
2936#endif
2937#else
2938typedef struct IDWriteFactory2Vtbl {
2939 BEGIN_INTERFACE
2940
2941 /*** IUnknown methods ***/
2942 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2943 IDWriteFactory2 *This,
2944 REFIID riid,
2945 void **ppvObject);
2946
2947 ULONG (STDMETHODCALLTYPE *AddRef)(
2948 IDWriteFactory2 *This);
2949
2950 ULONG (STDMETHODCALLTYPE *Release)(
2951 IDWriteFactory2 *This);
2952
2953 /*** IDWriteFactory methods ***/
2954 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
2955 IDWriteFactory2 *This,
2956 IDWriteFontCollection **collection,
2957 WINBOOL check_for_updates);
2958
2959 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
2960 IDWriteFactory2 *This,
2961 IDWriteFontCollectionLoader *loader,
2962 const void *key,
2963 UINT32 key_size,
2964 IDWriteFontCollection **collection);
2965
2966 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
2967 IDWriteFactory2 *This,
2968 IDWriteFontCollectionLoader *loader);
2969
2970 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
2971 IDWriteFactory2 *This,
2972 IDWriteFontCollectionLoader *loader);
2973
2974 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
2975 IDWriteFactory2 *This,
2976 const WCHAR *path,
2977 const FILETIME *writetime,
2978 IDWriteFontFile **font_file);
2979
2980 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
2981 IDWriteFactory2 *This,
2982 const void *reference_key,
2983 UINT32 key_size,
2984 IDWriteFontFileLoader *loader,
2985 IDWriteFontFile **font_file);
2986
2987 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
2988 IDWriteFactory2 *This,
2989 DWRITE_FONT_FACE_TYPE facetype,
2990 UINT32 files_number,
2991 IDWriteFontFile *const *font_files,
2992 UINT32 index,
2993 DWRITE_FONT_SIMULATIONS sim_flags,
2994 IDWriteFontFace **font_face);
2995
2996 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
2997 IDWriteFactory2 *This,
2998 IDWriteRenderingParams **params);
2999
3000 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
3001 IDWriteFactory2 *This,
3002 HMONITOR monitor,
3003 IDWriteRenderingParams **params);
3004
3005 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
3006 IDWriteFactory2 *This,
3007 FLOAT gamma,
3008 FLOAT enhancedContrast,
3009 FLOAT cleartype_level,
3010 DWRITE_PIXEL_GEOMETRY geometry,
3011 DWRITE_RENDERING_MODE mode,
3012 IDWriteRenderingParams **params);
3013
3014 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
3015 IDWriteFactory2 *This,
3016 IDWriteFontFileLoader *loader);
3017
3018 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
3019 IDWriteFactory2 *This,
3020 IDWriteFontFileLoader *loader);
3021
3022 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
3023 IDWriteFactory2 *This,
3024 const WCHAR *family_name,
3025 IDWriteFontCollection *collection,
3026 DWRITE_FONT_WEIGHT weight,
3027 DWRITE_FONT_STYLE style,
3028 DWRITE_FONT_STRETCH stretch,
3029 FLOAT size,
3030 const WCHAR *locale,
3031 IDWriteTextFormat **format);
3032
3033 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
3034 IDWriteFactory2 *This,
3035 IDWriteTypography **typography);
3036
3037 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
3038 IDWriteFactory2 *This,
3039 IDWriteGdiInterop **gdi_interop);
3040
3041 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
3042 IDWriteFactory2 *This,
3043 const WCHAR *string,
3044 UINT32 len,
3045 IDWriteTextFormat *format,
3046 FLOAT max_width,
3047 FLOAT max_height,
3048 IDWriteTextLayout **layout);
3049
3050 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
3051 IDWriteFactory2 *This,
3052 const WCHAR *string,
3053 UINT32 len,
3054 IDWriteTextFormat *format,
3055 FLOAT layout_width,
3056 FLOAT layout_height,
3057 FLOAT pixels_per_dip,
3058 const DWRITE_MATRIX *transform,
3059 WINBOOL use_gdi_natural,
3060 IDWriteTextLayout **layout);
3061
3062 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
3063 IDWriteFactory2 *This,
3064 IDWriteTextFormat *format,
3065 IDWriteInlineObject **trimming_sign);
3066
3067 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
3068 IDWriteFactory2 *This,
3069 IDWriteTextAnalyzer **analyzer);
3070
3071 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
3072 IDWriteFactory2 *This,
3073 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
3074 const WCHAR *locale,
3075 WINBOOL ignore_user_override,
3076 IDWriteNumberSubstitution **substitution);
3077
3078 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
3079 IDWriteFactory2 *This,
3080 const DWRITE_GLYPH_RUN *glyph_run,
3081 FLOAT pixels_per_dip,
3082 const DWRITE_MATRIX *transform,
3083 DWRITE_RENDERING_MODE rendering_mode,
3084 DWRITE_MEASURING_MODE measuring_mode,
3085 FLOAT baseline_x,
3086 FLOAT baseline_y,
3087 IDWriteGlyphRunAnalysis **analysis);
3088
3089 /*** IDWriteFactory1 methods ***/
3090 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
3091 IDWriteFactory2 *This,
3092 IDWriteFontCollection **collection,
3093 WINBOOL check_for_updates);
3094
3095 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
3096 IDWriteFactory2 *This,
3097 FLOAT gamma,
3098 FLOAT enhcontrast,
3099 FLOAT enhcontrast_grayscale,
3100 FLOAT cleartype_level,
3101 DWRITE_PIXEL_GEOMETRY geometry,
3102 DWRITE_RENDERING_MODE mode,
3103 IDWriteRenderingParams1 **params);
3104
3105 /*** IDWriteFactory2 methods ***/
3106 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
3107 IDWriteFactory2 *This,
3108 IDWriteFontFallback **fallback);
3109
3110 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
3111 IDWriteFactory2 *This,
3112 IDWriteFontFallbackBuilder **fallbackbuilder);
3113
3114 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
3115 IDWriteFactory2 *This,
3116 FLOAT originX,
3117 FLOAT originY,
3118 const DWRITE_GLYPH_RUN *run,
3119 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
3120 DWRITE_MEASURING_MODE mode,
3121 const DWRITE_MATRIX *transform,
3122 UINT32 palette_index,
3123 IDWriteColorGlyphRunEnumerator **colorlayers);
3124
3125 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
3126 IDWriteFactory2 *This,
3127 FLOAT gamma,
3128 FLOAT contrast,
3129 FLOAT grayscalecontrast,
3130 FLOAT cleartypeLevel,
3131 DWRITE_PIXEL_GEOMETRY pixelGeometry,
3132 DWRITE_RENDERING_MODE renderingMode,
3133 DWRITE_GRID_FIT_MODE gridFitMode,
3134 IDWriteRenderingParams2 **params);
3135
3136 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
3137 IDWriteFactory2 *This,
3138 const DWRITE_GLYPH_RUN *run,
3139 const DWRITE_MATRIX *transform,
3140 DWRITE_RENDERING_MODE renderingMode,
3141 DWRITE_MEASURING_MODE measuringMode,
3142 DWRITE_GRID_FIT_MODE gridFitMode,
3143 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
3144 FLOAT originX,
3145 FLOAT originY,
3146 IDWriteGlyphRunAnalysis **analysis);
3147
3148 END_INTERFACE
3149} IDWriteFactory2Vtbl;
3150
3151interface IDWriteFactory2 {
3152 CONST_VTBL IDWriteFactory2Vtbl* lpVtbl;
3153};
3154
3155#ifdef COBJMACROS
3156#ifndef WIDL_C_INLINE_WRAPPERS
3157/*** IUnknown methods ***/
3158#define IDWriteFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3159#define IDWriteFactory2_AddRef(This) (This)->lpVtbl->AddRef(This)
3160#define IDWriteFactory2_Release(This) (This)->lpVtbl->Release(This)
3161/*** IDWriteFactory methods ***/
3162#define IDWriteFactory2_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates)
3163#define IDWriteFactory2_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
3164#define IDWriteFactory2_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
3165#define IDWriteFactory2_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
3166#define IDWriteFactory2_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
3167#define IDWriteFactory2_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
3168#define IDWriteFactory2_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)
3169#define IDWriteFactory2_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
3170#define IDWriteFactory2_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
3171#define IDWriteFactory2_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
3172#define IDWriteFactory2_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
3173#define IDWriteFactory2_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
3174#define IDWriteFactory2_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
3175#define IDWriteFactory2_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
3176#define IDWriteFactory2_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
3177#define IDWriteFactory2_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)
3178#define IDWriteFactory2_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
3179#define IDWriteFactory2_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
3180#define IDWriteFactory2_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
3181/*** IDWriteFactory1 methods ***/
3182#define IDWriteFactory2_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
3183/*** IDWriteFactory2 methods ***/
3184#define IDWriteFactory2_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
3185#define IDWriteFactory2_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
3186#define IDWriteFactory2_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers)
3187#define IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) (This)->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params)
3188#define IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) (This)->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis)
3189#else
3190/*** IUnknown methods ***/
3191static FORCEINLINE HRESULT IDWriteFactory2_QueryInterface(IDWriteFactory2* This,REFIID riid,void **ppvObject) {
3192 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3193}
3194static FORCEINLINE ULONG IDWriteFactory2_AddRef(IDWriteFactory2* This) {
3195 return This->lpVtbl->AddRef(This);
3196}
3197static FORCEINLINE ULONG IDWriteFactory2_Release(IDWriteFactory2* This) {
3198 return This->lpVtbl->Release(This);
3199}
3200/*** IDWriteFactory methods ***/
3201static FORCEINLINE HRESULT IDWriteFactory2_GetSystemFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
3202 return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates);
3203}
3204static FORCEINLINE HRESULT IDWriteFactory2_CreateCustomFontCollection(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
3205 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
3206}
3207static FORCEINLINE HRESULT IDWriteFactory2_RegisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) {
3208 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
3209}
3210static FORCEINLINE HRESULT IDWriteFactory2_UnregisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) {
3211 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
3212}
3213static FORCEINLINE HRESULT IDWriteFactory2_CreateFontFileReference(IDWriteFactory2* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
3214 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
3215}
3216static FORCEINLINE HRESULT IDWriteFactory2_CreateCustomFontFileReference(IDWriteFactory2* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
3217 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
3218}
3219static FORCEINLINE HRESULT IDWriteFactory2_CreateFontFace(IDWriteFactory2* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
3220 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
3221}
3222static FORCEINLINE HRESULT IDWriteFactory2_CreateRenderingParams(IDWriteFactory2* This,IDWriteRenderingParams **params) {
3223 return This->lpVtbl->CreateRenderingParams(This,params);
3224}
3225static FORCEINLINE HRESULT IDWriteFactory2_CreateMonitorRenderingParams(IDWriteFactory2* This,HMONITOR monitor,IDWriteRenderingParams **params) {
3226 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
3227}
3228static FORCEINLINE HRESULT IDWriteFactory2_RegisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) {
3229 return This->lpVtbl->RegisterFontFileLoader(This,loader);
3230}
3231static FORCEINLINE HRESULT IDWriteFactory2_UnregisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) {
3232 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
3233}
3234static FORCEINLINE HRESULT IDWriteFactory2_CreateTextFormat(IDWriteFactory2* 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) {
3235 return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
3236}
3237static FORCEINLINE HRESULT IDWriteFactory2_CreateTypography(IDWriteFactory2* This,IDWriteTypography **typography) {
3238 return This->lpVtbl->CreateTypography(This,typography);
3239}
3240static FORCEINLINE HRESULT IDWriteFactory2_GetGdiInterop(IDWriteFactory2* This,IDWriteGdiInterop **gdi_interop) {
3241 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
3242}
3243static FORCEINLINE HRESULT IDWriteFactory2_CreateTextLayout(IDWriteFactory2* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
3244 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
3245}
3246static FORCEINLINE HRESULT IDWriteFactory2_CreateGdiCompatibleTextLayout(IDWriteFactory2* 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) {
3247 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
3248}
3249static FORCEINLINE HRESULT IDWriteFactory2_CreateEllipsisTrimmingSign(IDWriteFactory2* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
3250 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
3251}
3252static FORCEINLINE HRESULT IDWriteFactory2_CreateTextAnalyzer(IDWriteFactory2* This,IDWriteTextAnalyzer **analyzer) {
3253 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
3254}
3255static FORCEINLINE HRESULT IDWriteFactory2_CreateNumberSubstitution(IDWriteFactory2* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
3256 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
3257}
3258/*** IDWriteFactory1 methods ***/
3259static FORCEINLINE HRESULT IDWriteFactory2_GetEudcFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
3260 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
3261}
3262/*** IDWriteFactory2 methods ***/
3263static FORCEINLINE HRESULT IDWriteFactory2_GetSystemFontFallback(IDWriteFactory2* This,IDWriteFontFallback **fallback) {
3264 return This->lpVtbl->GetSystemFontFallback(This,fallback);
3265}
3266static FORCEINLINE HRESULT IDWriteFactory2_CreateFontFallbackBuilder(IDWriteFactory2* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
3267 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
3268}
3269static FORCEINLINE HRESULT IDWriteFactory2_TranslateColorGlyphRun(IDWriteFactory2* 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) {
3270 return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers);
3271}
3272static FORCEINLINE HRESULT IDWriteFactory2_CreateCustomRenderingParams(IDWriteFactory2* This,FLOAT gamma,FLOAT contrast,FLOAT grayscalecontrast,FLOAT cleartypeLevel,DWRITE_PIXEL_GEOMETRY pixelGeometry,DWRITE_RENDERING_MODE renderingMode,DWRITE_GRID_FIT_MODE gridFitMode,IDWriteRenderingParams2 **params) {
3273 return This->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params);
3274}
3275static FORCEINLINE HRESULT IDWriteFactory2_CreateGlyphRunAnalysis(IDWriteFactory2* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE renderingMode,DWRITE_MEASURING_MODE measuringMode,DWRITE_GRID_FIT_MODE gridFitMode,DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,FLOAT originX,FLOAT originY,IDWriteGlyphRunAnalysis **analysis) {
3276 return This->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis);
3277}
3278#endif
3279#endif
3280
3281#endif
3282
3283
3284#endif /* __IDWriteFactory2_INTERFACE_DEFINED__ */
3285
3286/* Begin additional prototypes for all interfaces */
3287
3288
3289/* End additional prototypes */
3290
3291#ifdef __cplusplus
3292}
3293#endif
3294
3295#endif /* __dwrite_2_h__ */
Note: See TracBrowser for help on using the repository browser.