1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 /**
7 * Stripped version. Only definitions needed by libass. Contains fixes to
8 * make it compile with C. Also needed on MSVC.
9 */
10 #ifndef __INC_DWRITE__
11 #define __INC_DWRITE__
12
13 #define DWRITEAPI DECLSPEC_IMPORT
14
15 #include <unknwn.h>
16
17 typedef struct IDWriteFactory IDWriteFactory;
18 typedef struct IDWriteFactory3 IDWriteFactory3;
19 typedef struct IDWriteFont IDWriteFont;
20 typedef struct IDWriteFontCollection IDWriteFontCollection;
21 typedef struct IDWriteFontFace IDWriteFontFace;
22 typedef struct IDWriteFontFace3 IDWriteFontFace3;
23 typedef struct IDWriteFontFaceReference IDWriteFontFaceReference;
24 typedef struct IDWriteFontFamily IDWriteFontFamily;
25 typedef struct IDWriteFontList IDWriteFontList;
26 typedef struct IDWriteFontFile IDWriteFontFile;
27 typedef struct IDWriteFontFileLoader IDWriteFontFileLoader;
28 typedef struct IDWriteFontFileStream IDWriteFontFileStream;
29 typedef struct IDWriteFontSet IDWriteFontSet;
30 typedef struct IDWriteInlineObject IDWriteInlineObject;
31 typedef struct IDWriteLocalizedStrings IDWriteLocalizedStrings;
32 typedef struct IDWritePixelSnapping IDWritePixelSnapping;
33 typedef struct IDWriteTextFormat IDWriteTextFormat;
34 typedef struct IDWriteTextLayout IDWriteTextLayout;
35 typedef struct IDWriteTextRenderer IDWriteTextRenderer;
36 typedef struct IDWriteGdiInterop IDWriteGdiInterop;
37
38 #include <dcommon.h>
39
40 typedef enum DWRITE_INFORMATIONAL_STRING_ID {
41 DWRITE_INFORMATIONAL_STRING_NONE = 0,
42 DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE,
43 DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS,
44 DWRITE_INFORMATIONAL_STRING_TRADEMARK,
45 DWRITE_INFORMATIONAL_STRING_MANUFACTURER,
46 DWRITE_INFORMATIONAL_STRING_DESIGNER,
47 DWRITE_INFORMATIONAL_STRING_DESIGNER_URL,
48 DWRITE_INFORMATIONAL_STRING_DESCRIPTION,
49 DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL,
50 DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION,
51 DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL,
52 DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES,
53 DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES,
54 DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES,
55 DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES,
56 DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT,
57 DWRITE_INFORMATIONAL_STRING_FULL_NAME,
58 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME,
59 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME
60 } DWRITE_INFORMATIONAL_STRING_ID;
61
62 typedef enum DWRITE_FACTORY_TYPE {
63 DWRITE_FACTORY_TYPE_SHARED = 0,
64 DWRITE_FACTORY_TYPE_ISOLATED
65 } DWRITE_FACTORY_TYPE;
66
67 typedef enum DWRITE_FONT_FACE_TYPE {
68 DWRITE_FONT_FACE_TYPE_CFF = 0,
69 DWRITE_FONT_FACE_TYPE_TRUETYPE,
70 DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION,
71 DWRITE_FONT_FACE_TYPE_TYPE1,
72 DWRITE_FONT_FACE_TYPE_VECTOR,
73 DWRITE_FONT_FACE_TYPE_BITMAP,
74 DWRITE_FONT_FACE_TYPE_UNKNOWN,
75 DWRITE_FONT_FACE_TYPE_RAW_CFF
76 } DWRITE_FONT_FACE_TYPE;
77
78 typedef enum DWRITE_FONT_PROPERTY_ID {
79 DWRITE_FONT_PROPERTY_ID_NONE = 0,
80 DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
81 DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME,
82 DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME,
83 DWRITE_FONT_PROPERTY_ID_FULL_NAME,
84 DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME,
85 DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME,
86 DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG,
87 DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG,
88 DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG,
89 DWRITE_FONT_PROPERTY_ID_WEIGHT,
90 DWRITE_FONT_PROPERTY_ID_STRETCH,
91 DWRITE_FONT_PROPERTY_ID_STYLE,
92 DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME,
93 /* rest dropped */
94 } DWRITE_FONT_PROPERTY_ID;
95
96 typedef enum DWRITE_FONT_SIMULATIONS {
97 DWRITE_FONT_SIMULATIONS_NONE = 0x0000,
98 DWRITE_FONT_SIMULATIONS_BOLD = 0x0001,
99 DWRITE_FONT_SIMULATIONS_OBLIQUE = 0x0002
100 } DWRITE_FONT_SIMULATIONS;
101
102 typedef enum DWRITE_FONT_STRETCH {
103 DWRITE_FONT_STRETCH_UNDEFINED = 0,
104 DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1,
105 DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2,
106 DWRITE_FONT_STRETCH_CONDENSED = 3,
107 DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4,
108 DWRITE_FONT_STRETCH_NORMAL = 5,
109 DWRITE_FONT_STRETCH_MEDIUM = 5,
110 DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6,
111 DWRITE_FONT_STRETCH_EXPANDED = 7,
112 DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8,
113 DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9
114 } DWRITE_FONT_STRETCH;
115
116 typedef enum DWRITE_FONT_STYLE {
117 DWRITE_FONT_STYLE_NORMAL = 0,
118 DWRITE_FONT_STYLE_OBLIQUE,
119 DWRITE_FONT_STYLE_ITALIC
120 } DWRITE_FONT_STYLE;
121
122 typedef enum DWRITE_FONT_WEIGHT {
123 DWRITE_FONT_WEIGHT_MEDIUM = 500,
124 /* rest dropped */
125 } DWRITE_FONT_WEIGHT;
126
127 typedef enum DWRITE_LOCALITY {
128 DWRITE_LOCALITY_REMOTE = 0,
129 DWRITE_LOCALITY_PARTIAL,
130 DWRITE_LOCALITY_LOCAL
131 } DWRITE_LOCALITY;
132
133 typedef struct DWRITE_FONT_METRICS {
134 UINT16 designUnitsPerEm;
135 UINT16 ascent;
136 UINT16 descent;
137 INT16 lineGap;
138 UINT16 capHeight;
139 UINT16 xHeight;
140 INT16 underlinePosition;
141 UINT16 underlineThickness;
142 INT16 strikethroughPosition;
143 UINT16 strikethroughThickness;
144 } DWRITE_FONT_METRICS;
145
146 typedef struct DWRITE_FONT_PROPERTY {
147 DWRITE_FONT_PROPERTY_ID propertyId;
148 const WCHAR *propertyValue;
149 const WCHAR *localeName;
150 } DWRITE_FONT_PROPERTY;
151
152 typedef struct DWRITE_GLYPH_OFFSET DWRITE_GLYPH_OFFSET;
153
154 typedef struct DWRITE_GLYPH_RUN {
155 IDWriteFontFace *fontFace;
156 FLOAT fontEmSize;
157 UINT32 glyphCount;
158 const UINT16 *glyphIndices;
159 const FLOAT *glyphAdvances;
160 const DWRITE_GLYPH_OFFSET *glyphOffsets;
161 BOOL isSideways;
162 UINT32 bidiLevel;
163 } DWRITE_GLYPH_RUN;
164
165 typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION;
166 typedef struct DWRITE_HIT_TEST_METRICS DWRITE_HIT_TEST_METRICS;
167 typedef struct DWRITE_LINE_METRICS DWRITE_LINE_METRICS;
168 typedef struct DWRITE_MATRIX DWRITE_MATRIX;
169 typedef struct DWRITE_STRIKETHROUGH DWRITE_STRIKETHROUGH;
170 typedef struct DWRITE_TEXT_METRICS DWRITE_TEXT_METRICS;
171
172 typedef struct DWRITE_TEXT_RANGE {
173 UINT32 startPosition;
174 UINT32 length;
175 } DWRITE_TEXT_RANGE;
176
177 typedef struct DWRITE_TRIMMING DWRITE_TRIMMING;
178 typedef struct DWRITE_UNDERLINE DWRITE_UNDERLINE;
179
180 #ifndef __MINGW_DEF_ARG_VAL
181 #ifdef __cplusplus
182 #define __MINGW_DEF_ARG_VAL(x) = x
183 #else
184 #define __MINGW_DEF_ARG_VAL(x)
185 #endif
186 #endif
187
188 #undef INTERFACE
189 #define INTERFACE IDWriteFactory
DECLARE_INTERFACE_(IDWriteFactory,IUnknown)190 DECLARE_INTERFACE_(IDWriteFactory,IUnknown)
191 {
192 BEGIN_INTERFACE
193
194 #ifndef __cplusplus
195 /* IUnknown methods */
196 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
197 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
198 STDMETHOD_(ULONG, Release)(THIS) PURE;
199 #endif
200
201 /* IDWriteFactory methods */
202 STDMETHOD(GetSystemFontCollection)(THIS_
203 IDWriteFontCollection **fontCollection,
204 BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
205
206 STDMETHOD(dummy1)(THIS);
207 STDMETHOD(dummy2)(THIS);
208 STDMETHOD(dummy3)(THIS);
209 STDMETHOD(dummy4)(THIS);
210 STDMETHOD(dummy5)(THIS);
211 STDMETHOD(dummy6)(THIS);
212 STDMETHOD(dummy7)(THIS);
213 STDMETHOD(dummy8)(THIS);
214 STDMETHOD(dummy9)(THIS);
215 STDMETHOD(dummy10)(THIS);
216 STDMETHOD(dummy11)(THIS);
217
218 STDMETHOD(CreateTextFormat)(THIS_
219 WCHAR const *fontFamilyName,
220 IDWriteFontCollection *fontCollection,
221 DWRITE_FONT_WEIGHT fontWeight,
222 DWRITE_FONT_STYLE fontStyle,
223 DWRITE_FONT_STRETCH fontStretch,
224 FLOAT fontSize,
225 WCHAR const *localeName,
226 IDWriteTextFormat **textFormat) PURE;
227
228 STDMETHOD(dummy12)(THIS);
229
230 STDMETHOD(GetGdiInterop)(THIS_
231 IDWriteGdiInterop **gdiInterop) PURE;
232
233 STDMETHOD(CreateTextLayout)(THIS_
234 WCHAR const *string,
235 UINT32 stringLength,
236 IDWriteTextFormat *textFormat,
237 FLOAT maxWidth,
238 FLOAT maxHeight,
239 IDWriteTextLayout **textLayout) PURE;
240
241 /* remainder dropped */
242 END_INTERFACE
243 };
244 #ifdef COBJMACROS
245 #define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
246 #define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
247 #define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This)
248 #define IDWriteFactory_GetSystemFontCollection(This,fontCollection,checkForUpdates) (This)->lpVtbl->GetSystemFontCollection(This,fontCollection,checkForUpdates)
249 #define IDWriteFactory_CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat) (This)->lpVtbl->CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat)
250 #define IDWriteFactory_CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout) (This)->lpVtbl->CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout)
251 #define IDWriteFactory_GetGdiInterop(This,gdiInterop) (This)->lpVtbl->GetGdiInterop(This,gdiInterop)
252 #endif /*COBJMACROS*/
253
254 #undef INTERFACE
255 #define INTERFACE IDWriteFactory3
DECLARE_INTERFACE_(IDWriteFactory3,IDWriteFactory)256 DECLARE_INTERFACE_(IDWriteFactory3,IDWriteFactory)
257 {
258 BEGIN_INTERFACE
259
260 #ifndef __cplusplus
261 /* IUnknown methods */
262 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
263 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
264 STDMETHOD_(ULONG, Release)(THIS) PURE;
265
266 /* IDWriteFactory methods */
267 STDMETHOD(GetSystemFontCollection)(THIS_
268 IDWriteFontCollection **fontCollection,
269 BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
270
271 STDMETHOD(dummy1)(THIS);
272 STDMETHOD(dummy2)(THIS);
273 STDMETHOD(dummy3)(THIS);
274 STDMETHOD(dummy4)(THIS);
275 STDMETHOD(dummy5)(THIS);
276 STDMETHOD(dummy6)(THIS);
277 STDMETHOD(dummy7)(THIS);
278 STDMETHOD(dummy8)(THIS);
279 STDMETHOD(dummy9)(THIS);
280 STDMETHOD(dummy10)(THIS);
281 STDMETHOD(dummy11)(THIS);
282
283 STDMETHOD(CreateTextFormat)(THIS_
284 WCHAR const *fontFamilyName,
285 IDWriteFontCollection *fontCollection,
286 DWRITE_FONT_WEIGHT fontWeight,
287 DWRITE_FONT_STYLE fontStyle,
288 DWRITE_FONT_STRETCH fontStretch,
289 FLOAT fontSize,
290 WCHAR const *localeName,
291 IDWriteTextFormat **textFormat) PURE;
292
293 STDMETHOD(dummy12)(THIS);
294
295 STDMETHOD(GetGdiInterop)(THIS_
296 IDWriteGdiInterop **gdiInterop) PURE;
297
298 STDMETHOD(CreateTextLayout)(THIS_
299 WCHAR const *string,
300 UINT32 stringLength,
301 IDWriteTextFormat *textFormat,
302 FLOAT maxWidth,
303 FLOAT maxHeight,
304 IDWriteTextLayout **textLayout) PURE;
305 #endif
306
307 STDMETHOD(dummy13)(THIS);
308 STDMETHOD(dummy14)(THIS);
309 STDMETHOD(dummy15)(THIS);
310 STDMETHOD(dummy16)(THIS);
311 STDMETHOD(dummy17)(THIS);
312
313 /* IDWriteFactory1 methods */
314 STDMETHOD(dummy18)(THIS);
315 STDMETHOD(dummy19)(THIS);
316
317 /* IDWriteFactory2 methods */
318 STDMETHOD(dummy20)(THIS);
319 STDMETHOD(dummy21)(THIS);
320 STDMETHOD(dummy22)(THIS);
321 STDMETHOD(dummy23)(THIS);
322 STDMETHOD(dummy24)(THIS);
323
324 /* IDWriteFactory3 methods */
325 STDMETHOD(dummy25)(THIS);
326 STDMETHOD(dummy26)(THIS);
327 STDMETHOD(dummy27)(THIS);
328 STDMETHOD(dummy28)(THIS);
329
330 STDMETHOD(GetSystemFontSet)(THIS_
331 IDWriteFontSet **fontSet) PURE;
332
333 /* rest dropped */
334 END_INTERFACE
335 };
336 #ifdef COBJMACROS
337 #define IDWriteFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
338 #define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This)
339 #define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This)
340 #define IDWriteFactory3_GetSystemFontCollection(This,fontCollection,checkForUpdates) (This)->lpVtbl->GetSystemFontCollection(This,fontCollection,checkForUpdates)
341 #define IDWriteFactory3_CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat) (This)->lpVtbl->CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat)
342 #define IDWriteFactory3_CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout) (This)->lpVtbl->CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout)
343 #define IDWriteFactory3_GetGdiInterop(This,gdiInterop) (This)->lpVtbl->GetGdiInterop(This,gdiInterop)
344 #define IDWriteFactory3_GetSystemFontSet(This,fontSet) (This)->lpVtbl->GetSystemFontSet(This,fontSet)
345 #endif /*COBJMACROS*/
346
347 #undef INTERFACE
348 #define INTERFACE IDWriteFont
DECLARE_INTERFACE_(IDWriteFont,IUnknown)349 DECLARE_INTERFACE_(IDWriteFont,IUnknown)
350 {
351 BEGIN_INTERFACE
352
353 #ifndef __cplusplus
354 /* IUnknown methods */
355 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
356 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
357 STDMETHOD_(ULONG, Release)(THIS) PURE;
358 #endif
359
360 /* IDWriteFont methods */
361 STDMETHOD(GetFontFamily)(THIS_
362 IDWriteFontFamily **fontFamily) PURE;
363
364 STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE;
365 STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE;
366 STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE;
367 STDMETHOD_(BOOL, IsSymbolFont)(THIS) PURE;
368
369 STDMETHOD(GetFaceNames)(THIS_
370 IDWriteLocalizedStrings **names) PURE;
371
372 STDMETHOD(GetInformationalStrings)(THIS_
373 DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
374 IDWriteLocalizedStrings **informationalStrings,
375 BOOL *exists) PURE;
376
377 STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
378
379 STDMETHOD_(void, GetMetrics)(THIS_
380 DWRITE_FONT_METRICS *fontMetrics) PURE;
381
382 STDMETHOD(HasCharacter)(THIS_
383 UINT32 unicodeValue,
384 BOOL *exists) PURE;
385
386 STDMETHOD(CreateFontFace)(THIS_
387 IDWriteFontFace **fontFace) PURE;
388
389 END_INTERFACE
390 };
391 #ifdef COBJMACROS
392 #define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
393 #define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This)
394 #define IDWriteFont_Release(This) (This)->lpVtbl->Release(This)
395 #define IDWriteFont_CreateFontFace(This,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFace)
396 #define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
397 #define IDWriteFont_GetFontFamily(This,fontFamily) (This)->lpVtbl->GetFontFamily(This,fontFamily)
398 #define IDWriteFont_GetInformationalStrings(This,informationalStringID,informationalStrings,exists) (This)->lpVtbl->GetInformationalStrings(This,informationalStringID,informationalStrings,exists)
399 #define IDWriteFont_GetMetrics(This,fontMetrics) (This)->lpVtbl->GetMetrics(This,fontMetrics)
400 #define IDWriteFont_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
401 #define IDWriteFont_GetStretch(This) (This)->lpVtbl->GetStretch(This)
402 #define IDWriteFont_GetStyle(This) (This)->lpVtbl->GetStyle(This)
403 #define IDWriteFont_GetWeight(This) (This)->lpVtbl->GetWeight(This)
404 #define IDWriteFont_HasCharacter(This,unicodeValue,exists) (This)->lpVtbl->HasCharacter(This,unicodeValue,exists)
405 #define IDWriteFont_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
406 #endif /*COBJMACROS*/
407
408 #undef INTERFACE
409 #define INTERFACE IDWriteFontCollection
DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown)410 DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown)
411 {
412 BEGIN_INTERFACE
413
414 #ifndef __cplusplus
415 /* IUnknown methods */
416 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
417 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
418 STDMETHOD_(ULONG, Release)(THIS) PURE;
419 #endif
420
421 /* IDWriteFontCollection methods */
422 STDMETHOD_(UINT32, GetFontFamilyCount)(THIS) PURE;
423
424 STDMETHOD(GetFontFamily)(THIS_
425 UINT32 index,
426 IDWriteFontFamily **fontFamily) PURE;
427
428 STDMETHOD(FindFamilyName)(THIS_
429 WCHAR const *familyName,
430 UINT32 *index,
431 BOOL *exists) PURE;
432
433 STDMETHOD(GetFontFromFontFace)(THIS_
434 IDWriteFontFace* fontFace,
435 IDWriteFont **font) PURE;
436
437 END_INTERFACE
438 };
439 #ifdef COBJMACROS
440 #define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
441 #define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
442 #define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This)
443 #define IDWriteFontCollection_FindFamilyName(This,familyName,index,exists) (This)->lpVtbl->FindFamilyName(This,familyName,index,exists)
444 #define IDWriteFontCollection_GetFontFamily(This,index,fontFamily) (This)->lpVtbl->GetFontFamily(This,index,fontFamily)
445 #define IDWriteFontCollection_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
446 #define IDWriteFontCollection_GetFontFromFontFace(This,fontFace,font) (This)->lpVtbl->GetFontFromFontFace(This,fontFace,font)
447 #endif /*COBJMACROS*/
448
449 #undef INTERFACE
450 #define INTERFACE IDWriteFontFace
DECLARE_INTERFACE_(IDWriteFontFace,IUnknown)451 DECLARE_INTERFACE_(IDWriteFontFace,IUnknown)
452 {
453 BEGIN_INTERFACE
454
455 #ifndef __cplusplus
456 /* IUnknown methods */
457 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
458 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
459 STDMETHOD_(ULONG, Release)(THIS) PURE;
460 #endif
461
462 /* IDWriteFontFace methods */
463 STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
464
465 STDMETHOD(GetFiles)(THIS_
466 UINT32 *numberOfFiles,
467 IDWriteFontFile **fontFiles) PURE;
468
469 STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
470
471 STDMETHOD(dummy1)(THIS);
472 STDMETHOD(dummy2)(THIS);
473 STDMETHOD(dummy3)(THIS);
474 STDMETHOD(dummy4)(THIS);
475 STDMETHOD(dummy5)(THIS);
476
477 STDMETHOD(GetGlyphIndices)(THIS_
478 UINT32 const *codePoints,
479 UINT32 codePointCount,
480 UINT16 *glyphIndices) PURE;
481
482 /* rest dropped */
483 END_INTERFACE
484 };
485 #ifdef COBJMACROS
486 #define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
487 #define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This)
488 #define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This)
489 #define IDWriteFontFace_GetType(This) (This)->lpVtbl->GetType(This)
490 #define IDWriteFontFace_GetFiles(This,numberOfFiles,fontFiles) (This)->lpVtbl->GetFiles(This,numberOfFiles,fontFiles)
491 #define IDWriteFontFace_GetIndex(This) (This)->lpVtbl->GetIndex(This)
492 #define IDWriteFontFace_GetGlyphIndices(This,codePoints,codePointCount,glyphIndices) (This)->lpVtbl->GetGlyphIndices(This,codePoints,codePointCount,glyphIndices)
493 #endif /*COBJMACROS*/
494
495 #undef INTERFACE
496 #define INTERFACE IDWriteFontFace3
DECLARE_INTERFACE_(IDWriteFontFace3,IDWriteFontFace)497 DECLARE_INTERFACE_(IDWriteFontFace3,IDWriteFontFace)
498 {
499 BEGIN_INTERFACE
500
501 #ifndef __cplusplus
502 /* IUnknown methods */
503 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
504 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
505 STDMETHOD_(ULONG, Release)(THIS) PURE;
506
507 /* IDWriteFontFace methods */
508 STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
509
510 STDMETHOD(GetFiles)(THIS_
511 UINT32 *numberOfFiles,
512 IDWriteFontFile **fontFiles) PURE;
513
514 STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
515
516 STDMETHOD(dummy1)(THIS);
517 STDMETHOD(dummy2)(THIS);
518 STDMETHOD(dummy3)(THIS);
519 STDMETHOD(dummy4)(THIS);
520 STDMETHOD(dummy5)(THIS);
521
522 STDMETHOD(GetGlyphIndices)(THIS_
523 UINT32 const *codePoints,
524 UINT32 codePointCount,
525 UINT16 *glyphIndices) PURE;
526
527 STDMETHOD(dummy6)(THIS);
528 STDMETHOD(dummy7)(THIS);
529 STDMETHOD(dummy8)(THIS);
530 STDMETHOD(dummy9)(THIS);
531 STDMETHOD(dummy10)(THIS);
532 STDMETHOD(dummy11)(THIS);
533 #endif
534
535 /* IDWriteFontFace1 methods */
536 STDMETHOD(dummy12)(THIS);
537 STDMETHOD(dummy13)(THIS);
538 STDMETHOD(dummy14)(THIS);
539 STDMETHOD(dummy15)(THIS);
540 STDMETHOD(dummy16)(THIS);
541 STDMETHOD(dummy17)(THIS);
542 STDMETHOD(dummy18)(THIS);
543 STDMETHOD(dummy19)(THIS);
544 STDMETHOD(dummy20)(THIS);
545 STDMETHOD(dummy21)(THIS);
546 STDMETHOD(dummy22)(THIS);
547 STDMETHOD(dummy23)(THIS);
548
549 /* IDWriteFontFace2 methods */
550 STDMETHOD(dummy24)(THIS);
551 STDMETHOD(dummy25)(THIS);
552 STDMETHOD(dummy26)(THIS);
553 STDMETHOD(dummy27)(THIS);
554 STDMETHOD(dummy28)(THIS);
555
556 /* IDWriteFontFace3 methods */
557 STDMETHOD(dummy29)(THIS);
558 STDMETHOD(dummy30)(THIS);
559
560 STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE;
561 STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE;
562 STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE;
563
564 STDMETHOD(GetFamilyNames)(THIS_
565 IDWriteLocalizedStrings **names) PURE;
566
567 STDMETHOD(dummy31)(THIS);
568
569 STDMETHOD(GetInformationalStrings)(THIS_
570 DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
571 IDWriteLocalizedStrings **informationalStrings,
572 BOOL *exists) PURE;
573
574 /* rest dropped */
575 END_INTERFACE
576 };
577 #ifdef COBJMACROS
578 #define IDWriteFontFace3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
579 #define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This)
580 #define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This)
581 #define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This)
582 #define IDWriteFontFace3_GetFiles(This,numberOfFiles,fontFiles) (This)->lpVtbl->GetFiles(This,numberOfFiles,fontFiles)
583 #define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This)
584 #define IDWriteFontFace3_GetGlyphIndices(This,codePoints,codePointCount,glyphIndices) (This)->lpVtbl->GetGlyphIndices(This,codePoints,codePointCount,glyphIndices)
585 #define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
586 #define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
587 #define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
588 #define IDWriteFontFace3_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
589 #define IDWriteFontFace3_GetInformationalStrings(This,informationalStringID,informationalStrings,exists) (This)->lpVtbl->GetInformationalStrings(This,informationalStringID,informationalStrings,exists)
590 #endif /*COBJMACROS*/
591
592 #undef INTERFACE
593 #define INTERFACE IDWriteFontFaceReference
DECLARE_INTERFACE_(IDWriteFontFaceReference,IUnknown)594 DECLARE_INTERFACE_(IDWriteFontFaceReference,IUnknown)
595 {
596 BEGIN_INTERFACE
597
598 #ifndef __cplusplus
599 /* IUnknown methods */
600 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
601 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
602 STDMETHOD_(ULONG, Release)(THIS) PURE;
603 #endif
604
605 STDMETHOD(CreateFontFace)(THIS_
606 IDWriteFontFace3 **fontFace) PURE;
607
608 STDMETHOD(dummy1)(THIS);
609 STDMETHOD(dummy2)(THIS);
610 STDMETHOD(dummy3)(THIS);
611
612 STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
613
614 STDMETHOD(dummy4)(THIS);
615 STDMETHOD(dummy5)(THIS);
616 STDMETHOD(dummy6)(THIS);
617 STDMETHOD(dummy7)(THIS);
618
619 STDMETHOD_(DWRITE_LOCALITY, GetLocality)(THIS) PURE;
620
621 /* rest dropped */
622 END_INTERFACE
623 };
624 #ifdef COBJMACROS
625 #define IDWriteFontFaceReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
626 #define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This)
627 #define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This)
628 #define IDWriteFontFaceReference_CreateFontFace(This,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFace)
629 #define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
630 #define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This)
631 #endif /*COBJMACROS*/
632
633 #undef INTERFACE
634 #define INTERFACE IDWriteFontFamily
DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)635 DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)
636 {
637 BEGIN_INTERFACE
638
639 #ifndef __cplusplus
640 /* IUnknown methods */
641 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
642 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
643 STDMETHOD_(ULONG, Release)(THIS) PURE;
644
645 /* IDWriteFontList methods */
646 STDMETHOD(GetFontCollection)(THIS_
647 IDWriteFontCollection** fontCollection) PURE;
648
649 STDMETHOD_(UINT32, GetFontCount)(THIS) PURE;
650
651 STDMETHOD(GetFont)(THIS_
652 UINT32 index,
653 IDWriteFont **font) PURE;
654 #endif
655
656 /* IDWriteFontFamily methods */
657 STDMETHOD(GetFamilyNames)(THIS_
658 IDWriteLocalizedStrings **names) PURE;
659
660 /* rest dropped */
661 END_INTERFACE
662 };
663 #ifdef COBJMACROS
664 #define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
665 #define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This)
666 #define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This)
667 #define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font)
668 #define IDWriteFontFamily_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
669 #define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
670 #endif /*COBJMACROS*/
671
672 #undef INTERFACE
673 #define INTERFACE IDWriteFontFile
DECLARE_INTERFACE_(IDWriteFontFile,IUnknown)674 DECLARE_INTERFACE_(IDWriteFontFile,IUnknown)
675 {
676 BEGIN_INTERFACE
677
678 #ifndef __cplusplus
679 /* IUnknown methods */
680 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
681 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
682 STDMETHOD_(ULONG, Release)(THIS) PURE;
683 #endif
684
685 /* IDWriteFontFile methods */
686 STDMETHOD(GetReferenceKey)(THIS_
687 void const **fontFileReferenceKey,
688 UINT32 *fontFileReferenceKeySize) PURE;
689
690 STDMETHOD(GetLoader)(THIS_
691 IDWriteFontFileLoader **fontFileLoader) PURE;
692
693 /* rest dropped */
694 END_INTERFACE
695 };
696 #ifdef COBJMACROS
697 #define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This)
698 #define IDWriteFontFile_GetLoader(This,fontFileLoader) (This)->lpVtbl->GetLoader(This,fontFileLoader)
699 #define IDWriteFontFile_GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize) (This)->lpVtbl->GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize)
700 #endif /*COBJMACROS*/
701
702 #undef INTERFACE
703 #define INTERFACE IDWriteFontFileLoader
DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown)704 DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown)
705 {
706 BEGIN_INTERFACE
707
708 #ifndef __cplusplus
709 /* IUnknown methods */
710 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
711 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
712 STDMETHOD_(ULONG, Release)(THIS) PURE;
713 #endif
714
715 /* IDWriteFontFileLoader methods */
716 STDMETHOD(CreateStreamFromKey)(THIS_
717 void const *fontFileReferenceKey,
718 UINT32 fontFileReferenceKeySize,
719 IDWriteFontFileStream **fontFileStream) PURE;
720
721 END_INTERFACE
722 };
723 #ifdef COBJMACROS
724 #define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
725 #define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
726 #define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
727 #define IDWriteFontFileLoader_CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream) (This)->lpVtbl->CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream)
728 #endif /*COBJMACROS*/
729
730 #undef INTERFACE
731 #define INTERFACE IDWriteFontFileStream
DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown)732 DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown)
733 {
734 BEGIN_INTERFACE
735
736 #ifndef __cplusplus
737 /* IUnknown methods */
738 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
739 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
740 STDMETHOD_(ULONG, Release)(THIS) PURE;
741 #endif
742
743 /* IDWriteFontFileStream methods */
744 STDMETHOD(ReadFileFragment)(THIS_
745 void const **fragmentStart,
746 UINT64 fileOffset,
747 UINT64 fragmentSize,
748 void** fragmentContext) PURE;
749
750 STDMETHOD_(void, ReleaseFileFragment)(THIS_
751 void *fragmentContext) PURE;
752
753 STDMETHOD(GetFileSize)(THIS_
754 UINT64 *fileSize) PURE;
755
756 STDMETHOD(GetLastWriteTime)(THIS_
757 UINT64 *lastWriteTime) PURE;
758
759 END_INTERFACE
760 };
761 #ifdef COBJMACROS
762 #define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
763 #define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
764 #define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This)
765 #define IDWriteFontFileStream_GetFileSize(This,fileSize) (This)->lpVtbl->GetFileSize(This,fileSize)
766 #define IDWriteFontFileStream_ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext) (This)->lpVtbl->ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext)
767 #define IDWriteFontFileStream_ReleaseFileFragment(This,fragmentContext) (This)->lpVtbl->ReleaseFileFragment(This,fragmentContext)
768 #endif /*COBJMACROS*/
769
770 #undef INTERFACE
771 #define INTERFACE IDWriteFontSet
DECLARE_INTERFACE_(IDWriteFontSet,IUnknown)772 DECLARE_INTERFACE_(IDWriteFontSet,IUnknown)
773 {
774 BEGIN_INTERFACE
775
776 #ifndef __cplusplus
777 /* IUnknown methods */
778 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
779 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
780 STDMETHOD_(ULONG, Release)(THIS) PURE;
781 #endif
782
783 /* IDWriteFontSet methods */
784 STDMETHOD_(UINT32, GetFontCount)(THIS) PURE;
785
786 STDMETHOD(GetFontFaceReference)(THIS_
787 UINT32 listIndex,
788 IDWriteFontFaceReference **fontFaceReference) PURE;
789
790 STDMETHOD(dummy1)(THIS);
791 STDMETHOD(dummy2)(THIS);
792 STDMETHOD(dummy3)(THIS);
793 STDMETHOD(dummy4)(THIS);
794 STDMETHOD(dummy5)(THIS);
795 STDMETHOD(dummy6)(THIS);
796 STDMETHOD(dummy7)(THIS);
797
798 STDMETHOD(GetMatchingFonts)(THIS_
799 DWRITE_FONT_PROPERTY const *properties,
800 UINT32 propertyCount,
801 IDWriteFontSet **filteredSet) PURE;
802
803 /* rest dropped */
804 END_INTERFACE
805 };
806 #ifdef COBJMACROS
807 #define IDWriteFontSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
808 #define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This)
809 #define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This)
810 #define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
811 #define IDWriteFontSet_GetFontFaceReference(This,listIndex,fontFaceReference) (This)->lpVtbl->GetFontFaceReference(This,listIndex,fontFaceReference)
812 #define IDWriteFontSet_GetMatchingFonts(This,properties,propertyCount,filteredSet) (This)->lpVtbl->GetMatchingFonts(This,properties,propertyCount,filteredSet)
813 #endif /*COBJMACROS*/
814
815 #undef INTERFACE
816 #define INTERFACE IDWriteLocalizedStrings
DECLARE_INTERFACE_(IDWriteLocalizedStrings,IUnknown)817 DECLARE_INTERFACE_(IDWriteLocalizedStrings,IUnknown)
818 {
819 BEGIN_INTERFACE
820
821 #ifndef __cplusplus
822 /* IUnknown methods */
823 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
824 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
825 STDMETHOD_(ULONG, Release)(THIS) PURE;
826 #endif
827
828 /* IDWriteLocalizedStrings methods */
829 STDMETHOD_(UINT32, GetCount)(THIS) PURE;
830
831 STDMETHOD(dummy1)(THIS);
832 STDMETHOD(dummy2)(THIS);
833 STDMETHOD(dummy3)(THIS);
834
835 STDMETHOD(GetStringLength)(THIS_
836 UINT32 index,
837 UINT32 *length) PURE;
838 STDMETHOD(GetString)(THIS_
839 UINT32 index,
840 WCHAR *stringBuffer,
841 UINT32 size) PURE;
842
843 END_INTERFACE
844 };
845 #ifdef COBJMACROS
846 #define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This)
847 #define IDWriteLocalizedStrings_GetCount(This) (This)->lpVtbl->GetCount(This)
848 #define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length)
849 #define IDWriteLocalizedStrings_GetString(This,index,stringBuffer,size) (This)->lpVtbl->GetString(This,index,stringBuffer,size)
850 #endif /*COBJMACROS*/
851
852 #undef INTERFACE
853 #define INTERFACE IDWriteTextFormat
DECLARE_INTERFACE_(IDWriteTextFormat,IUnknown)854 DECLARE_INTERFACE_(IDWriteTextFormat,IUnknown)
855 {
856 BEGIN_INTERFACE
857
858 #ifndef __cplusplus
859 /* IUnknown methods */
860 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
861 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
862 STDMETHOD_(ULONG, Release)(THIS) PURE;
863 #endif
864
865 /* IDWriteTextFormat methods */
866 /* rest dropped */
867 END_INTERFACE
868 };
869 #ifdef COBJMACROS
870 #define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This)
871 #endif /*COBJMACROS*/
872
873 #undef INTERFACE
874 #define INTERFACE IDWriteTextLayout
DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat)875 DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat)
876 {
877 BEGIN_INTERFACE
878
879 #ifndef __cplusplus
880 /* IUnknown methods */
881 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
882 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
883 STDMETHOD_(ULONG, Release)(THIS) PURE;
884
885 /* IDWriteTextFormat methods */
886 STDMETHOD(dummy1)(THIS);
887 STDMETHOD(dummy2)(THIS);
888 STDMETHOD(dummy3)(THIS);
889 STDMETHOD(dummy4)(THIS);
890 STDMETHOD(dummy5)(THIS);
891 STDMETHOD(dummy6)(THIS);
892 STDMETHOD(dummy7)(THIS);
893 STDMETHOD(dummy8)(THIS);
894 STDMETHOD(dummy9)(THIS);
895 STDMETHOD(dummy10)(THIS);
896 STDMETHOD(dummy11)(THIS);
897 STDMETHOD(dummy12)(THIS);
898 STDMETHOD(dummy13)(THIS);
899 STDMETHOD(dummy14)(THIS);
900 STDMETHOD(dummy15)(THIS);
901 STDMETHOD(dummy16)(THIS);
902 STDMETHOD(dummy17)(THIS);
903 STDMETHOD(dummy18)(THIS);
904 STDMETHOD(dummy19)(THIS);
905 STDMETHOD(dummy20)(THIS);
906 STDMETHOD(dummy21)(THIS);
907 STDMETHOD(dummy22)(THIS);
908 STDMETHOD(dummy23)(THIS);
909 STDMETHOD(dummy24)(THIS);
910 STDMETHOD(dummy25)(THIS);
911 #endif
912
913 /* IDWriteTextLayout methods */
914 STDMETHOD(dummy26)(THIS);
915 STDMETHOD(dummy27)(THIS);
916 STDMETHOD(dummy28)(THIS);
917 STDMETHOD(dummy29)(THIS);
918 STDMETHOD(dummy30)(THIS);
919 STDMETHOD(dummy31)(THIS);
920 STDMETHOD(dummy32)(THIS);
921 STDMETHOD(dummy33)(THIS);
922 STDMETHOD(dummy34)(THIS);
923 STDMETHOD(dummy35)(THIS);
924 STDMETHOD(dummy36)(THIS);
925 STDMETHOD(dummy37)(THIS);
926 STDMETHOD(dummy38)(THIS);
927 STDMETHOD(dummy39)(THIS);
928 STDMETHOD(dummy40)(THIS);
929 STDMETHOD(dummy41)(THIS);
930 STDMETHOD(dummy42)(THIS);
931 STDMETHOD(dummy43)(THIS);
932 STDMETHOD(dummy44)(THIS);
933 STDMETHOD(dummy45)(THIS);
934 STDMETHOD(dummy46)(THIS);
935 STDMETHOD(dummy47)(THIS);
936 STDMETHOD(dummy48)(THIS);
937 STDMETHOD(dummy49)(THIS);
938 STDMETHOD(dummy50)(THIS);
939 STDMETHOD(dummy51)(THIS);
940 STDMETHOD(dummy52)(THIS);
941 STDMETHOD(dummy53)(THIS);
942 STDMETHOD(dummy54)(THIS);
943 STDMETHOD(dummy55)(THIS);
944 STDMETHOD(Draw)(THIS_
945 void *clientDrawingContext,
946 IDWriteTextRenderer *renderer,
947 FLOAT originX,
948 FLOAT originY) PURE;
949 /* rest dropped */
950 END_INTERFACE
951 };
952 #ifdef COBJMACROS
953 #define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This)
954 #define IDWriteTextLayout_Draw(This,clientDrawingContext,renderer,originX,originY) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY)
955 #endif /*COBJMACROS*/
956
957 #undef INTERFACE
958 #define INTERFACE IDWriteTextRenderer
DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping)959 DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping)
960 {
961 BEGIN_INTERFACE
962
963 #ifndef __cplusplus
964 /* IUnknown methods */
965 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
966 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
967 STDMETHOD_(ULONG, Release)(THIS) PURE;
968
969 /* IDWritePixelSnapping methods */
970 STDMETHOD(IsPixelSnappingDisabled)(THIS_
971 void *clientDrawingContext,
972 BOOL *isDisabled) PURE;
973 STDMETHOD(GetCurrentTransform)(THIS_
974 void *clientDrawingContext,
975 DWRITE_MATRIX *transform) PURE;
976 STDMETHOD(GetPixelsPerDip)(THIS_
977 void *clientDrawingContext,
978 FLOAT *pixelsPerDip) PURE;
979 #endif
980
981 /* IDWriteTextRenderer methods */
982 STDMETHOD(DrawGlyphRun)(THIS_
983 void *clientDrawingContext,
984 FLOAT baselineOriginX,
985 FLOAT baselineOriginY,
986 DWRITE_MEASURING_MODE measuringMode,
987 DWRITE_GLYPH_RUN const *glyphRun,
988 DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription,
989 IUnknown* clientDrawingEffect) PURE;
990 STDMETHOD(DrawUnderline)(THIS_
991 void *clientDrawingContext,
992 FLOAT baselineOriginX,
993 FLOAT baselineOriginY,
994 DWRITE_UNDERLINE const *underline,
995 IUnknown *clientDrawingEffect) PURE;
996 STDMETHOD(DrawStrikethrough)(THIS_
997 void *clientDrawingContext,
998 FLOAT baselineOriginX,
999 FLOAT baselineOriginY,
1000 DWRITE_STRIKETHROUGH const *strikethrough,
1001 IUnknown* clientDrawingEffect) PURE;
1002 STDMETHOD(DrawInlineObject)(THIS_
1003 void *clientDrawingContext,
1004 FLOAT originX,
1005 FLOAT originY,
1006 IDWriteInlineObject *inlineObject,
1007 BOOL isSideways,
1008 BOOL isRightToLeft,
1009 IUnknown *clientDrawingEffect) PURE;
1010
1011 END_INTERFACE
1012 };
1013
1014 #undef INTERFACE
1015 #define INTERFACE IDWriteGdiInterop
DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown)1016 DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown)
1017 {
1018 BEGIN_INTERFACE
1019
1020 #ifndef __cplusplus
1021 /* IUnknown methods */
1022 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1023 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1024 STDMETHOD_(ULONG, Release)(THIS) PURE;
1025 #endif
1026
1027 STDMETHOD(CreateFontFromLOGFONT)(THIS_
1028 LOGFONTW const *logFont,
1029 IDWriteFont **font) PURE;
1030
1031 STDMETHOD(dummy1)(THIS);
1032 STDMETHOD(dummy2)(THIS);
1033
1034 STDMETHOD(CreateFontFaceFromHdc)(THIS_
1035 HDC hdc,
1036 IDWriteFontFace **fontFace) PURE;
1037 /* rest dropped */
1038 END_INTERFACE
1039 };
1040 #ifdef COBJMACROS
1041 #define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1042 #define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
1043 #define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This)
1044 #define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logFont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logFont,font)
1045 #define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontFace) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontFace)
1046 #endif /*COBJMACROS*/
1047
1048 DEFINE_GUID(IID_IDWriteFactory, 0xb859ee5a,0xd838,0x4b5b,0xa2,0xe8,0x1a,0xdc,0x7d,0x93,0xdb,0x48);
1049 DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3,0xd3bb,0x466a,0x87,0xfc,0xfe,0x67,0x55,0x6a,0x3b,0x65);
1050 DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598,0x09be,0x4222,0xa2,0x36,0x20,0x81,0x34,0x1c,0xc1,0xf2);
1051 DEFINE_GUID(IID_IDWritePixelSnapping, 0xeaf3a2da,0xecf4,0x4d24,0xb6,0x44,0xb3,0x4f,0x68,0x42,0x02,0x4b);
1052 DEFINE_GUID(IID_IDWriteTextRenderer, 0xef8a8135,0x5cc6,0x45fe,0x88,0x25,0xc5,0xa0,0x72,0x4e,0xb8,0x19);
1053
1054 #endif /* __INC_DWRITE__ */
1055