zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

dwrite_3.h (712048B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/dwrite_3.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __dwrite_3_h__
     17 #define __dwrite_3_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IDWriteFontDownloadListener_FWD_DEFINED__
     22 #define __IDWriteFontDownloadListener_FWD_DEFINED__
     23 typedef interface IDWriteFontDownloadListener IDWriteFontDownloadListener;
     24 #ifdef __cplusplus
     25 interface IDWriteFontDownloadListener;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__
     30 #define __IDWriteFontDownloadQueue_FWD_DEFINED__
     31 typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue;
     32 #ifdef __cplusplus
     33 interface IDWriteFontDownloadQueue;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IDWriteRenderingParams3_FWD_DEFINED__
     38 #define __IDWriteRenderingParams3_FWD_DEFINED__
     39 typedef interface IDWriteRenderingParams3 IDWriteRenderingParams3;
     40 #ifdef __cplusplus
     41 interface IDWriteRenderingParams3;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IDWriteStringList_FWD_DEFINED__
     46 #define __IDWriteStringList_FWD_DEFINED__
     47 typedef interface IDWriteStringList IDWriteStringList;
     48 #ifdef __cplusplus
     49 interface IDWriteStringList;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IDWriteFontSet_FWD_DEFINED__
     54 #define __IDWriteFontSet_FWD_DEFINED__
     55 typedef interface IDWriteFontSet IDWriteFontSet;
     56 #ifdef __cplusplus
     57 interface IDWriteFontSet;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IDWriteFontResource_FWD_DEFINED__
     62 #define __IDWriteFontResource_FWD_DEFINED__
     63 typedef interface IDWriteFontResource IDWriteFontResource;
     64 #ifdef __cplusplus
     65 interface IDWriteFontResource;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __IDWriteFontSet1_FWD_DEFINED__
     70 #define __IDWriteFontSet1_FWD_DEFINED__
     71 typedef interface IDWriteFontSet1 IDWriteFontSet1;
     72 #ifdef __cplusplus
     73 interface IDWriteFontSet1;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __IDWriteFont3_FWD_DEFINED__
     78 #define __IDWriteFont3_FWD_DEFINED__
     79 typedef interface IDWriteFont3 IDWriteFont3;
     80 #ifdef __cplusplus
     81 interface IDWriteFont3;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __IDWriteFontFamily1_FWD_DEFINED__
     86 #define __IDWriteFontFamily1_FWD_DEFINED__
     87 typedef interface IDWriteFontFamily1 IDWriteFontFamily1;
     88 #ifdef __cplusplus
     89 interface IDWriteFontFamily1;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __IDWriteFontFamily2_FWD_DEFINED__
     94 #define __IDWriteFontFamily2_FWD_DEFINED__
     95 typedef interface IDWriteFontFamily2 IDWriteFontFamily2;
     96 #ifdef __cplusplus
     97 interface IDWriteFontFamily2;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __IDWriteFontCollection1_FWD_DEFINED__
    102 #define __IDWriteFontCollection1_FWD_DEFINED__
    103 typedef interface IDWriteFontCollection1 IDWriteFontCollection1;
    104 #ifdef __cplusplus
    105 interface IDWriteFontCollection1;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __IDWriteFontCollection2_FWD_DEFINED__
    110 #define __IDWriteFontCollection2_FWD_DEFINED__
    111 typedef interface IDWriteFontCollection2 IDWriteFontCollection2;
    112 #ifdef __cplusplus
    113 interface IDWriteFontCollection2;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __IDWriteFontCollection3_FWD_DEFINED__
    118 #define __IDWriteFontCollection3_FWD_DEFINED__
    119 typedef interface IDWriteFontCollection3 IDWriteFontCollection3;
    120 #ifdef __cplusplus
    121 interface IDWriteFontCollection3;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __IDWriteFontFaceReference_FWD_DEFINED__
    126 #define __IDWriteFontFaceReference_FWD_DEFINED__
    127 typedef interface IDWriteFontFaceReference IDWriteFontFaceReference;
    128 #ifdef __cplusplus
    129 interface IDWriteFontFaceReference;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __IDWriteFontFaceReference1_FWD_DEFINED__
    134 #define __IDWriteFontFaceReference1_FWD_DEFINED__
    135 typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1;
    136 #ifdef __cplusplus
    137 interface IDWriteFontFaceReference1;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __IDWriteFontList1_FWD_DEFINED__
    142 #define __IDWriteFontList1_FWD_DEFINED__
    143 typedef interface IDWriteFontList1 IDWriteFontList1;
    144 #ifdef __cplusplus
    145 interface IDWriteFontList1;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __IDWriteFontList2_FWD_DEFINED__
    150 #define __IDWriteFontList2_FWD_DEFINED__
    151 typedef interface IDWriteFontList2 IDWriteFontList2;
    152 #ifdef __cplusplus
    153 interface IDWriteFontList2;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __IDWriteFontSet2_FWD_DEFINED__
    158 #define __IDWriteFontSet2_FWD_DEFINED__
    159 typedef interface IDWriteFontSet2 IDWriteFontSet2;
    160 #ifdef __cplusplus
    161 interface IDWriteFontSet2;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __IDWriteFontSet3_FWD_DEFINED__
    166 #define __IDWriteFontSet3_FWD_DEFINED__
    167 typedef interface IDWriteFontSet3 IDWriteFontSet3;
    168 #ifdef __cplusplus
    169 interface IDWriteFontSet3;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __IDWriteFontSet4_FWD_DEFINED__
    174 #define __IDWriteFontSet4_FWD_DEFINED__
    175 typedef interface IDWriteFontSet4 IDWriteFontSet4;
    176 #ifdef __cplusplus
    177 interface IDWriteFontSet4;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __IDWriteFontFace3_FWD_DEFINED__
    182 #define __IDWriteFontFace3_FWD_DEFINED__
    183 typedef interface IDWriteFontFace3 IDWriteFontFace3;
    184 #ifdef __cplusplus
    185 interface IDWriteFontFace3;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __IDWriteTextFormat2_FWD_DEFINED__
    190 #define __IDWriteTextFormat2_FWD_DEFINED__
    191 typedef interface IDWriteTextFormat2 IDWriteTextFormat2;
    192 #ifdef __cplusplus
    193 interface IDWriteTextFormat2;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __IDWriteTextFormat3_FWD_DEFINED__
    198 #define __IDWriteTextFormat3_FWD_DEFINED__
    199 typedef interface IDWriteTextFormat3 IDWriteTextFormat3;
    200 #ifdef __cplusplus
    201 interface IDWriteTextFormat3;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __IDWriteTextLayout3_FWD_DEFINED__
    206 #define __IDWriteTextLayout3_FWD_DEFINED__
    207 typedef interface IDWriteTextLayout3 IDWriteTextLayout3;
    208 #ifdef __cplusplus
    209 interface IDWriteTextLayout3;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __IDWriteTextLayout4_FWD_DEFINED__
    214 #define __IDWriteTextLayout4_FWD_DEFINED__
    215 typedef interface IDWriteTextLayout4 IDWriteTextLayout4;
    216 #ifdef __cplusplus
    217 interface IDWriteTextLayout4;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __IDWriteFontFallback1_FWD_DEFINED__
    222 #define __IDWriteFontFallback1_FWD_DEFINED__
    223 typedef interface IDWriteFontFallback1 IDWriteFontFallback1;
    224 #ifdef __cplusplus
    225 interface IDWriteFontFallback1;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __IDWriteGdiInterop1_FWD_DEFINED__
    230 #define __IDWriteGdiInterop1_FWD_DEFINED__
    231 typedef interface IDWriteGdiInterop1 IDWriteGdiInterop1;
    232 #ifdef __cplusplus
    233 interface IDWriteGdiInterop1;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __IDWriteFontSetBuilder_FWD_DEFINED__
    238 #define __IDWriteFontSetBuilder_FWD_DEFINED__
    239 typedef interface IDWriteFontSetBuilder IDWriteFontSetBuilder;
    240 #ifdef __cplusplus
    241 interface IDWriteFontSetBuilder;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __IDWriteFontSetBuilder1_FWD_DEFINED__
    246 #define __IDWriteFontSetBuilder1_FWD_DEFINED__
    247 typedef interface IDWriteFontSetBuilder1 IDWriteFontSetBuilder1;
    248 #ifdef __cplusplus
    249 interface IDWriteFontSetBuilder1;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __IDWriteFontSetBuilder2_FWD_DEFINED__
    254 #define __IDWriteFontSetBuilder2_FWD_DEFINED__
    255 typedef interface IDWriteFontSetBuilder2 IDWriteFontSetBuilder2;
    256 #ifdef __cplusplus
    257 interface IDWriteFontSetBuilder2;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __IDWriteFactory3_FWD_DEFINED__
    262 #define __IDWriteFactory3_FWD_DEFINED__
    263 typedef interface IDWriteFactory3 IDWriteFactory3;
    264 #ifdef __cplusplus
    265 interface IDWriteFactory3;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __IDWriteFontFace4_FWD_DEFINED__
    270 #define __IDWriteFontFace4_FWD_DEFINED__
    271 typedef interface IDWriteFontFace4 IDWriteFontFace4;
    272 #ifdef __cplusplus
    273 interface IDWriteFontFace4;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __IDWriteFontFace5_FWD_DEFINED__
    278 #define __IDWriteFontFace5_FWD_DEFINED__
    279 typedef interface IDWriteFontFace5 IDWriteFontFace5;
    280 #ifdef __cplusplus
    281 interface IDWriteFontFace5;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __IDWriteFontFace6_FWD_DEFINED__
    286 #define __IDWriteFontFace6_FWD_DEFINED__
    287 typedef interface IDWriteFontFace6 IDWriteFontFace6;
    288 #ifdef __cplusplus
    289 interface IDWriteFontFace6;
    290 #endif /* __cplusplus */
    291 #endif
    292 
    293 #ifndef __IDWritePaintReader_FWD_DEFINED__
    294 #define __IDWritePaintReader_FWD_DEFINED__
    295 typedef interface IDWritePaintReader IDWritePaintReader;
    296 #ifdef __cplusplus
    297 interface IDWritePaintReader;
    298 #endif /* __cplusplus */
    299 #endif
    300 
    301 #ifndef __IDWriteFontFace7_FWD_DEFINED__
    302 #define __IDWriteFontFace7_FWD_DEFINED__
    303 typedef interface IDWriteFontFace7 IDWriteFontFace7;
    304 #ifdef __cplusplus
    305 interface IDWriteFontFace7;
    306 #endif /* __cplusplus */
    307 #endif
    308 
    309 #ifndef __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__
    310 #define __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__
    311 typedef interface IDWriteColorGlyphRunEnumerator1 IDWriteColorGlyphRunEnumerator1;
    312 #ifdef __cplusplus
    313 interface IDWriteColorGlyphRunEnumerator1;
    314 #endif /* __cplusplus */
    315 #endif
    316 
    317 #ifndef __IDWriteFactory4_FWD_DEFINED__
    318 #define __IDWriteFactory4_FWD_DEFINED__
    319 typedef interface IDWriteFactory4 IDWriteFactory4;
    320 #ifdef __cplusplus
    321 interface IDWriteFactory4;
    322 #endif /* __cplusplus */
    323 #endif
    324 
    325 #ifndef __IDWriteAsyncResult_FWD_DEFINED__
    326 #define __IDWriteAsyncResult_FWD_DEFINED__
    327 typedef interface IDWriteAsyncResult IDWriteAsyncResult;
    328 #ifdef __cplusplus
    329 interface IDWriteAsyncResult;
    330 #endif /* __cplusplus */
    331 #endif
    332 
    333 #ifndef __IDWriteRemoteFontFileStream_FWD_DEFINED__
    334 #define __IDWriteRemoteFontFileStream_FWD_DEFINED__
    335 typedef interface IDWriteRemoteFontFileStream IDWriteRemoteFontFileStream;
    336 #ifdef __cplusplus
    337 interface IDWriteRemoteFontFileStream;
    338 #endif /* __cplusplus */
    339 #endif
    340 
    341 #ifndef __IDWriteRemoteFontFileLoader_FWD_DEFINED__
    342 #define __IDWriteRemoteFontFileLoader_FWD_DEFINED__
    343 typedef interface IDWriteRemoteFontFileLoader IDWriteRemoteFontFileLoader;
    344 #ifdef __cplusplus
    345 interface IDWriteRemoteFontFileLoader;
    346 #endif /* __cplusplus */
    347 #endif
    348 
    349 #ifndef __IDWriteInMemoryFontFileLoader_FWD_DEFINED__
    350 #define __IDWriteInMemoryFontFileLoader_FWD_DEFINED__
    351 typedef interface IDWriteInMemoryFontFileLoader IDWriteInMemoryFontFileLoader;
    352 #ifdef __cplusplus
    353 interface IDWriteInMemoryFontFileLoader;
    354 #endif /* __cplusplus */
    355 #endif
    356 
    357 #ifndef __IDWriteFactory5_FWD_DEFINED__
    358 #define __IDWriteFactory5_FWD_DEFINED__
    359 typedef interface IDWriteFactory5 IDWriteFactory5;
    360 #ifdef __cplusplus
    361 interface IDWriteFactory5;
    362 #endif /* __cplusplus */
    363 #endif
    364 
    365 #ifndef __IDWriteFactory6_FWD_DEFINED__
    366 #define __IDWriteFactory6_FWD_DEFINED__
    367 typedef interface IDWriteFactory6 IDWriteFactory6;
    368 #ifdef __cplusplus
    369 interface IDWriteFactory6;
    370 #endif /* __cplusplus */
    371 #endif
    372 
    373 #ifndef __IDWriteFactory7_FWD_DEFINED__
    374 #define __IDWriteFactory7_FWD_DEFINED__
    375 typedef interface IDWriteFactory7 IDWriteFactory7;
    376 #ifdef __cplusplus
    377 interface IDWriteFactory7;
    378 #endif /* __cplusplus */
    379 #endif
    380 
    381 #ifndef __IDWriteFactory8_FWD_DEFINED__
    382 #define __IDWriteFactory8_FWD_DEFINED__
    383 typedef interface IDWriteFactory8 IDWriteFactory8;
    384 #ifdef __cplusplus
    385 interface IDWriteFactory8;
    386 #endif /* __cplusplus */
    387 #endif
    388 
    389 #ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__
    390 #define __IDWriteBitmapRenderTarget2_FWD_DEFINED__
    391 typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2;
    392 #ifdef __cplusplus
    393 interface IDWriteBitmapRenderTarget2;
    394 #endif /* __cplusplus */
    395 #endif
    396 
    397 #ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__
    398 #define __IDWriteBitmapRenderTarget3_FWD_DEFINED__
    399 typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3;
    400 #ifdef __cplusplus
    401 interface IDWriteBitmapRenderTarget3;
    402 #endif /* __cplusplus */
    403 #endif
    404 
    405 /* Headers for imported files */
    406 
    407 #include <dwrite_2.h>
    408 
    409 #ifdef __cplusplus
    410 extern "C" {
    411 #endif
    412 
    413 #ifndef __IDWriteFontFaceReference_FWD_DEFINED__
    414 #define __IDWriteFontFaceReference_FWD_DEFINED__
    415 typedef interface IDWriteFontFaceReference IDWriteFontFaceReference;
    416 #ifdef __cplusplus
    417 interface IDWriteFontFaceReference;
    418 #endif /* __cplusplus */
    419 #endif
    420 
    421 #ifndef __IDWriteFontFaceReference1_FWD_DEFINED__
    422 #define __IDWriteFontFaceReference1_FWD_DEFINED__
    423 typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1;
    424 #ifdef __cplusplus
    425 interface IDWriteFontFaceReference1;
    426 #endif /* __cplusplus */
    427 #endif
    428 
    429 #ifndef __IDWriteFontFace3_FWD_DEFINED__
    430 #define __IDWriteFontFace3_FWD_DEFINED__
    431 typedef interface IDWriteFontFace3 IDWriteFontFace3;
    432 #ifdef __cplusplus
    433 interface IDWriteFontFace3;
    434 #endif /* __cplusplus */
    435 #endif
    436 
    437 #ifndef __IDWriteFontSet_FWD_DEFINED__
    438 #define __IDWriteFontSet_FWD_DEFINED__
    439 typedef interface IDWriteFontSet IDWriteFontSet;
    440 #ifdef __cplusplus
    441 interface IDWriteFontSet;
    442 #endif /* __cplusplus */
    443 #endif
    444 
    445 #ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__
    446 #define __IDWriteFontDownloadQueue_FWD_DEFINED__
    447 typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue;
    448 #ifdef __cplusplus
    449 interface IDWriteFontDownloadQueue;
    450 #endif /* __cplusplus */
    451 #endif
    452 
    453 #ifndef __IDWriteFontFace5_FWD_DEFINED__
    454 #define __IDWriteFontFace5_FWD_DEFINED__
    455 typedef interface IDWriteFontFace5 IDWriteFontFace5;
    456 #ifdef __cplusplus
    457 interface IDWriteFontFace5;
    458 #endif /* __cplusplus */
    459 #endif
    460 
    461 #ifndef __IDWriteFontList2_FWD_DEFINED__
    462 #define __IDWriteFontList2_FWD_DEFINED__
    463 typedef interface IDWriteFontList2 IDWriteFontList2;
    464 #ifdef __cplusplus
    465 interface IDWriteFontList2;
    466 #endif /* __cplusplus */
    467 #endif
    468 
    469 #ifndef _WINGDI_
    470 typedef struct FONTSIGNATURE FONTSIGNATURE;
    471 #endif /* _WINGDI_ */
    472 typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP;
    473 typedef enum DWRITE_COLOR_COMPOSITE_MODE {
    474     DWRITE_COLOR_COMPOSITE_CLEAR = 0,
    475     DWRITE_COLOR_COMPOSITE_SRC = 1,
    476     DWRITE_COLOR_COMPOSITE_DEST = 2,
    477     DWRITE_COLOR_COMPOSITE_SRC_OVER = 3,
    478     DWRITE_COLOR_COMPOSITE_DEST_OVER = 4,
    479     DWRITE_COLOR_COMPOSITE_SRC_IN = 5,
    480     DWRITE_COLOR_COMPOSITE_DEST_IN = 6,
    481     DWRITE_COLOR_COMPOSITE_SRC_OUT = 7,
    482     DWRITE_COLOR_COMPOSITE_DEST_OUT = 8,
    483     DWRITE_COLOR_COMPOSITE_SRC_ATOP = 9,
    484     DWRITE_COLOR_COMPOSITE_DEST_ATOP = 10,
    485     DWRITE_COLOR_COMPOSITE_XOR = 11,
    486     DWRITE_COLOR_COMPOSITE_PLUS = 12,
    487     DWRITE_COLOR_COMPOSITE_SCREEN = 13,
    488     DWRITE_COLOR_COMPOSITE_OVERLAY = 14,
    489     DWRITE_COLOR_COMPOSITE_DARKEN = 15,
    490     DWRITE_COLOR_COMPOSITE_LIGHTEN = 16,
    491     DWRITE_COLOR_COMPOSITE_COLOR_DODGE = 17,
    492     DWRITE_COLOR_COMPOSITE_COLOR_BURN = 18,
    493     DWRITE_COLOR_COMPOSITE_HARD_LIGHT = 19,
    494     DWRITE_COLOR_COMPOSITE_SOFT_LIGHT = 20,
    495     DWRITE_COLOR_COMPOSITE_DIFFERENCE = 21,
    496     DWRITE_COLOR_COMPOSITE_EXCLUSION = 22,
    497     DWRITE_COLOR_COMPOSITE_MULTIPLY = 23,
    498     DWRITE_COLOR_COMPOSITE_HSL_HUE = 24,
    499     DWRITE_COLOR_COMPOSITE_HSL_SATURATION = 25,
    500     DWRITE_COLOR_COMPOSITE_HSL_COLOR = 26,
    501     DWRITE_COLOR_COMPOSITE_HSL_LUMINOSITY = 27
    502 } DWRITE_COLOR_COMPOSITE_MODE;
    503 typedef enum DWRITE_LOCALITY {
    504     DWRITE_LOCALITY_REMOTE = 0,
    505     DWRITE_LOCALITY_PARTIAL = 1,
    506     DWRITE_LOCALITY_LOCAL = 2
    507 } DWRITE_LOCALITY;
    508 typedef enum DWRITE_RENDERING_MODE1 {
    509     DWRITE_RENDERING_MODE1_DEFAULT = 0,
    510     DWRITE_RENDERING_MODE1_ALIASED = 1,
    511     DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2,
    512     DWRITE_RENDERING_MODE1_GDI_NATURAL = 3,
    513     DWRITE_RENDERING_MODE1_NATURAL = 4,
    514     DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5,
    515     DWRITE_RENDERING_MODE1_OUTLINE = 6,
    516     DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7
    517 } DWRITE_RENDERING_MODE1;
    518 typedef enum DWRITE_FONT_PROPERTY_ID {
    519     DWRITE_FONT_PROPERTY_ID_NONE = 0,
    520     DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1,
    521     DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2,
    522     DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3,
    523     DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4,
    524     DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5,
    525     DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6,
    526     DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7,
    527     DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8,
    528     DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9,
    529     DWRITE_FONT_PROPERTY_ID_WEIGHT = 10,
    530     DWRITE_FONT_PROPERTY_ID_STRETCH = 11,
    531     DWRITE_FONT_PROPERTY_ID_STYLE = 12,
    532     DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13,
    533     DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1,
    534     DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1,
    535     DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME,
    536     DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
    537     DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME
    538 } DWRITE_FONT_PROPERTY_ID;
    539 typedef struct DWRITE_FONT_PROPERTY {
    540     DWRITE_FONT_PROPERTY_ID propertyId;
    541     const WCHAR *propertyValue;
    542     const WCHAR *localeName;
    543 } DWRITE_FONT_PROPERTY;
    544 #ifdef __cplusplus
    545 #define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
    546 #else
    547 #define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))
    548 #endif
    549 typedef enum DWRITE_FONT_AXIS_TAG {
    550     DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777,
    551     DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477,
    552     DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73,
    553     DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f,
    554     DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469
    555 } DWRITE_FONT_AXIS_TAG;
    556 typedef enum DWRITE_FONT_SOURCE_TYPE {
    557     DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0,
    558     DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1,
    559     DWRITE_FONT_SOURCE_TYPE_PER_USER = 2,
    560     DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3,
    561     DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4
    562 } DWRITE_FONT_SOURCE_TYPE;
    563 typedef struct DWRITE_FONT_AXIS_VALUE {
    564     DWRITE_FONT_AXIS_TAG axisTag;
    565     FLOAT value;
    566 } DWRITE_FONT_AXIS_VALUE;
    567 typedef struct DWRITE_FONT_AXIS_RANGE {
    568     DWRITE_FONT_AXIS_TAG axisTag;
    569     FLOAT minValue;
    570     FLOAT maxValue;
    571 } DWRITE_FONT_AXIS_RANGE;
    572 typedef enum DWRITE_AUTOMATIC_FONT_AXES {
    573     DWRITE_AUTOMATIC_FONT_AXES_NONE = 0,
    574     DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1
    575 } DWRITE_AUTOMATIC_FONT_AXES;
    576 typedef enum DWRITE_FONT_AXIS_ATTRIBUTES {
    577     DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0,
    578     DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1,
    579     DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2
    580 } DWRITE_FONT_AXIS_ATTRIBUTES;
    581 typedef enum DWRITE_FONT_FAMILY_MODEL {
    582     DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0,
    583     DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1
    584 } DWRITE_FONT_FAMILY_MODEL;
    585 typedef enum DWRITE_PAINT_TYPE {
    586     DWRITE_PAINT_TYPE_NONE = 0,
    587     DWRITE_PAINT_TYPE_LAYERS = 1,
    588     DWRITE_PAINT_TYPE_SOLID_GLYPH = 2,
    589     DWRITE_PAINT_TYPE_SOLID = 3,
    590     DWRITE_PAINT_TYPE_LINEAR_GRADIENT = 4,
    591     DWRITE_PAINT_TYPE_RADIAL_GRADIENT = 5,
    592     DWRITE_PAINT_TYPE_SWEEP_GRADIENT = 6,
    593     DWRITE_PAINT_TYPE_GLYPH = 7,
    594     DWRITE_PAINT_TYPE_COLOR_GLYPH = 8,
    595     DWRITE_PAINT_TYPE_TRANSFORM = 9,
    596     DWRITE_PAINT_TYPE_COMPOSITE = 10
    597 } DWRITE_PAINT_TYPE;
    598 #ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED
    599 #define DWRITE_PAINT_FEATURE_LEVEL_DEFINED
    600 typedef enum DWRITE_PAINT_FEATURE_LEVEL {
    601     DWRITE_PAINT_FEATURE_LEVEL_NONE = 0,
    602     DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1,
    603     DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2
    604 } DWRITE_PAINT_FEATURE_LEVEL;
    605 #endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */
    606 typedef enum DWRITE_PAINT_ATTRIBUTES {
    607     DWRITE_PAINT_ATTRIBUTES_NONE = 0,
    608     DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1,
    609     DWRITE_PAINT_ATTRIBUTES_USES_TEXT_COLOR = 0x2
    610 } DWRITE_PAINT_ATTRIBUTES;
    611 DEFINE_ENUM_FLAG_OPERATORS(DWRITE_PAINT_ATTRIBUTES)
    612 typedef struct DWRITE_PAINT_COLOR {
    613     DWRITE_COLOR_F value;
    614     UINT16 paletteEntryIndex;
    615     float alphaMultiplier;
    616     DWRITE_PAINT_ATTRIBUTES colorAttributes;
    617 } DWRITE_PAINT_COLOR;
    618 typedef struct DWRITE_PAINT_ELEMENT {
    619     DWRITE_PAINT_TYPE paintType;
    620     union PAINT_UNION {
    621         struct PAINT_LAYERS {
    622             UINT32 childCount;
    623         } layers;
    624         struct PAINT_SOLID_GLYPH {
    625             UINT32 glyphIndex;
    626             DWRITE_PAINT_COLOR color;
    627         } solidGlyph;
    628         DWRITE_PAINT_COLOR solid;
    629         struct PAINT_LINEAR_GRADIENT {
    630             UINT32 extendMode;
    631             UINT32 gradientStopCount;
    632             float x0;
    633             float y0;
    634             float x1;
    635             float y1;
    636             float x2;
    637             float y2;
    638         } linearGradient;
    639         struct PAINT_RADIAL_GRADIENT {
    640             UINT32 extendMode;
    641             UINT32 gradientStopCount;
    642             float x0;
    643             float y0;
    644             float radius0;
    645             float x1;
    646             float y1;
    647             float radius1;
    648         } radialGradient;
    649         struct PAINT_SWEEP_GRADIENT {
    650             UINT32 extendMode;
    651             UINT32 gradientStopCount;
    652             float centerX;
    653             float centerY;
    654             float startAngle;
    655             float endAngle;
    656         } sweepGradient;
    657         struct PAINT_GLYPH {
    658             UINT32 glyphIndex;
    659         } glyph;
    660         struct PAINT_COLOR_GLYPH {
    661             UINT32 glyphIndex;
    662             D2D_RECT_F clipBox;
    663         } colorGlyph;
    664         DWRITE_MATRIX transform;
    665         struct PAINT_COMPOSITE {
    666             DWRITE_COLOR_COMPOSITE_MODE mode;
    667         } composite;
    668     } paint;
    669 } DWRITE_PAINT_ELEMENT;
    670 /*****************************************************************************
    671  * IDWriteFontDownloadListener interface
    672  */
    673 #ifndef __IDWriteFontDownloadListener_INTERFACE_DEFINED__
    674 #define __IDWriteFontDownloadListener_INTERFACE_DEFINED__
    675 
    676 DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7);
    677 #if defined(__cplusplus) && !defined(CINTERFACE)
    678 MIDL_INTERFACE("b06fe5b9-43ec-4393-881b-dbe4dc72fda7")
    679 IDWriteFontDownloadListener : public IUnknown
    680 {
    681     virtual void STDMETHODCALLTYPE DownloadCompleted(
    682         IDWriteFontDownloadQueue *queue,
    683         IUnknown *context,
    684         HRESULT result) = 0;
    685 
    686 };
    687 #ifdef __CRT_UUID_DECL
    688 __CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7)
    689 #endif
    690 #else
    691 typedef struct IDWriteFontDownloadListenerVtbl {
    692     BEGIN_INTERFACE
    693 
    694     /*** IUnknown methods ***/
    695     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    696         IDWriteFontDownloadListener *This,
    697         REFIID riid,
    698         void **ppvObject);
    699 
    700     ULONG (STDMETHODCALLTYPE *AddRef)(
    701         IDWriteFontDownloadListener *This);
    702 
    703     ULONG (STDMETHODCALLTYPE *Release)(
    704         IDWriteFontDownloadListener *This);
    705 
    706     /*** IDWriteFontDownloadListener methods ***/
    707     void (STDMETHODCALLTYPE *DownloadCompleted)(
    708         IDWriteFontDownloadListener *This,
    709         IDWriteFontDownloadQueue *queue,
    710         IUnknown *context,
    711         HRESULT result);
    712 
    713     END_INTERFACE
    714 } IDWriteFontDownloadListenerVtbl;
    715 
    716 interface IDWriteFontDownloadListener {
    717     CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl;
    718 };
    719 
    720 #ifdef COBJMACROS
    721 #ifndef WIDL_C_INLINE_WRAPPERS
    722 /*** IUnknown methods ***/
    723 #define IDWriteFontDownloadListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    724 #define IDWriteFontDownloadListener_AddRef(This) (This)->lpVtbl->AddRef(This)
    725 #define IDWriteFontDownloadListener_Release(This) (This)->lpVtbl->Release(This)
    726 /*** IDWriteFontDownloadListener methods ***/
    727 #define IDWriteFontDownloadListener_DownloadCompleted(This,queue,context,result) (This)->lpVtbl->DownloadCompleted(This,queue,context,result)
    728 #else
    729 /*** IUnknown methods ***/
    730 static inline HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This,REFIID riid,void **ppvObject) {
    731     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    732 }
    733 static inline ULONG IDWriteFontDownloadListener_AddRef(IDWriteFontDownloadListener* This) {
    734     return This->lpVtbl->AddRef(This);
    735 }
    736 static inline ULONG IDWriteFontDownloadListener_Release(IDWriteFontDownloadListener* This) {
    737     return This->lpVtbl->Release(This);
    738 }
    739 /*** IDWriteFontDownloadListener methods ***/
    740 static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This,IDWriteFontDownloadQueue *queue,IUnknown *context,HRESULT result) {
    741     This->lpVtbl->DownloadCompleted(This,queue,context,result);
    742 }
    743 #endif
    744 #endif
    745 
    746 #endif
    747 
    748 
    749 #endif  /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */
    750 
    751 /*****************************************************************************
    752  * IDWriteFontDownloadQueue interface
    753  */
    754 #ifndef __IDWriteFontDownloadQueue_INTERFACE_DEFINED__
    755 #define __IDWriteFontDownloadQueue_INTERFACE_DEFINED__
    756 
    757 DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91);
    758 #if defined(__cplusplus) && !defined(CINTERFACE)
    759 MIDL_INTERFACE("b71e6052-5aea-4fa3-832e-f60d431f7e91")
    760 IDWriteFontDownloadQueue : public IUnknown
    761 {
    762     virtual HRESULT STDMETHODCALLTYPE AddListener(
    763         IDWriteFontDownloadListener *listener,
    764         UINT32 *token) = 0;
    765 
    766     virtual HRESULT STDMETHODCALLTYPE RemoveListener(
    767         UINT32 token) = 0;
    768 
    769     virtual WINBOOL STDMETHODCALLTYPE IsEmpty(
    770         ) = 0;
    771 
    772     virtual HRESULT STDMETHODCALLTYPE BeginDownload(
    773         IUnknown *context) = 0;
    774 
    775     virtual HRESULT STDMETHODCALLTYPE CancelDownload(
    776         ) = 0;
    777 
    778     virtual UINT64 STDMETHODCALLTYPE GetGenerationCount(
    779         ) = 0;
    780 
    781 };
    782 #ifdef __CRT_UUID_DECL
    783 __CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91)
    784 #endif
    785 #else
    786 typedef struct IDWriteFontDownloadQueueVtbl {
    787     BEGIN_INTERFACE
    788 
    789     /*** IUnknown methods ***/
    790     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    791         IDWriteFontDownloadQueue *This,
    792         REFIID riid,
    793         void **ppvObject);
    794 
    795     ULONG (STDMETHODCALLTYPE *AddRef)(
    796         IDWriteFontDownloadQueue *This);
    797 
    798     ULONG (STDMETHODCALLTYPE *Release)(
    799         IDWriteFontDownloadQueue *This);
    800 
    801     /*** IDWriteFontDownloadQueue methods ***/
    802     HRESULT (STDMETHODCALLTYPE *AddListener)(
    803         IDWriteFontDownloadQueue *This,
    804         IDWriteFontDownloadListener *listener,
    805         UINT32 *token);
    806 
    807     HRESULT (STDMETHODCALLTYPE *RemoveListener)(
    808         IDWriteFontDownloadQueue *This,
    809         UINT32 token);
    810 
    811     WINBOOL (STDMETHODCALLTYPE *IsEmpty)(
    812         IDWriteFontDownloadQueue *This);
    813 
    814     HRESULT (STDMETHODCALLTYPE *BeginDownload)(
    815         IDWriteFontDownloadQueue *This,
    816         IUnknown *context);
    817 
    818     HRESULT (STDMETHODCALLTYPE *CancelDownload)(
    819         IDWriteFontDownloadQueue *This);
    820 
    821     UINT64 (STDMETHODCALLTYPE *GetGenerationCount)(
    822         IDWriteFontDownloadQueue *This);
    823 
    824     END_INTERFACE
    825 } IDWriteFontDownloadQueueVtbl;
    826 
    827 interface IDWriteFontDownloadQueue {
    828     CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl;
    829 };
    830 
    831 #ifdef COBJMACROS
    832 #ifndef WIDL_C_INLINE_WRAPPERS
    833 /*** IUnknown methods ***/
    834 #define IDWriteFontDownloadQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    835 #define IDWriteFontDownloadQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
    836 #define IDWriteFontDownloadQueue_Release(This) (This)->lpVtbl->Release(This)
    837 /*** IDWriteFontDownloadQueue methods ***/
    838 #define IDWriteFontDownloadQueue_AddListener(This,listener,token) (This)->lpVtbl->AddListener(This,listener,token)
    839 #define IDWriteFontDownloadQueue_RemoveListener(This,token) (This)->lpVtbl->RemoveListener(This,token)
    840 #define IDWriteFontDownloadQueue_IsEmpty(This) (This)->lpVtbl->IsEmpty(This)
    841 #define IDWriteFontDownloadQueue_BeginDownload(This,context) (This)->lpVtbl->BeginDownload(This,context)
    842 #define IDWriteFontDownloadQueue_CancelDownload(This) (This)->lpVtbl->CancelDownload(This)
    843 #define IDWriteFontDownloadQueue_GetGenerationCount(This) (This)->lpVtbl->GetGenerationCount(This)
    844 #else
    845 /*** IUnknown methods ***/
    846 static inline HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This,REFIID riid,void **ppvObject) {
    847     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    848 }
    849 static inline ULONG IDWriteFontDownloadQueue_AddRef(IDWriteFontDownloadQueue* This) {
    850     return This->lpVtbl->AddRef(This);
    851 }
    852 static inline ULONG IDWriteFontDownloadQueue_Release(IDWriteFontDownloadQueue* This) {
    853     return This->lpVtbl->Release(This);
    854 }
    855 /*** IDWriteFontDownloadQueue methods ***/
    856 static inline HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This,IDWriteFontDownloadListener *listener,UINT32 *token) {
    857     return This->lpVtbl->AddListener(This,listener,token);
    858 }
    859 static inline HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This,UINT32 token) {
    860     return This->lpVtbl->RemoveListener(This,token);
    861 }
    862 static inline WINBOOL IDWriteFontDownloadQueue_IsEmpty(IDWriteFontDownloadQueue* This) {
    863     return This->lpVtbl->IsEmpty(This);
    864 }
    865 static inline HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This,IUnknown *context) {
    866     return This->lpVtbl->BeginDownload(This,context);
    867 }
    868 static inline HRESULT IDWriteFontDownloadQueue_CancelDownload(IDWriteFontDownloadQueue* This) {
    869     return This->lpVtbl->CancelDownload(This);
    870 }
    871 static inline UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDownloadQueue* This) {
    872     return This->lpVtbl->GetGenerationCount(This);
    873 }
    874 #endif
    875 #endif
    876 
    877 #endif
    878 
    879 
    880 #endif  /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */
    881 
    882 /*****************************************************************************
    883  * IDWriteRenderingParams3 interface
    884  */
    885 #ifndef __IDWriteRenderingParams3_INTERFACE_DEFINED__
    886 #define __IDWriteRenderingParams3_INTERFACE_DEFINED__
    887 
    888 DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc);
    889 #if defined(__cplusplus) && !defined(CINTERFACE)
    890 MIDL_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc")
    891 IDWriteRenderingParams3 : public IDWriteRenderingParams2
    892 {
    893     virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1(
    894         ) = 0;
    895 
    896 };
    897 #ifdef __CRT_UUID_DECL
    898 __CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc)
    899 #endif
    900 #else
    901 typedef struct IDWriteRenderingParams3Vtbl {
    902     BEGIN_INTERFACE
    903 
    904     /*** IUnknown methods ***/
    905     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    906         IDWriteRenderingParams3 *This,
    907         REFIID riid,
    908         void **ppvObject);
    909 
    910     ULONG (STDMETHODCALLTYPE *AddRef)(
    911         IDWriteRenderingParams3 *This);
    912 
    913     ULONG (STDMETHODCALLTYPE *Release)(
    914         IDWriteRenderingParams3 *This);
    915 
    916     /*** IDWriteRenderingParams methods ***/
    917     FLOAT (STDMETHODCALLTYPE *GetGamma)(
    918         IDWriteRenderingParams3 *This);
    919 
    920     FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)(
    921         IDWriteRenderingParams3 *This);
    922 
    923     FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)(
    924         IDWriteRenderingParams3 *This);
    925 
    926     DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)(
    927         IDWriteRenderingParams3 *This);
    928 
    929     DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)(
    930         IDWriteRenderingParams3 *This);
    931 
    932     /*** IDWriteRenderingParams1 methods ***/
    933     FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)(
    934         IDWriteRenderingParams3 *This);
    935 
    936     /*** IDWriteRenderingParams2 methods ***/
    937     DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)(
    938         IDWriteRenderingParams3 *This);
    939 
    940     /*** IDWriteRenderingParams3 methods ***/
    941     DWRITE_RENDERING_MODE1 (STDMETHODCALLTYPE *GetRenderingMode1)(
    942         IDWriteRenderingParams3 *This);
    943 
    944     END_INTERFACE
    945 } IDWriteRenderingParams3Vtbl;
    946 
    947 interface IDWriteRenderingParams3 {
    948     CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl;
    949 };
    950 
    951 #ifdef COBJMACROS
    952 #ifndef WIDL_C_INLINE_WRAPPERS
    953 /*** IUnknown methods ***/
    954 #define IDWriteRenderingParams3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    955 #define IDWriteRenderingParams3_AddRef(This) (This)->lpVtbl->AddRef(This)
    956 #define IDWriteRenderingParams3_Release(This) (This)->lpVtbl->Release(This)
    957 /*** IDWriteRenderingParams methods ***/
    958 #define IDWriteRenderingParams3_GetGamma(This) (This)->lpVtbl->GetGamma(This)
    959 #define IDWriteRenderingParams3_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This)
    960 #define IDWriteRenderingParams3_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This)
    961 #define IDWriteRenderingParams3_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This)
    962 #define IDWriteRenderingParams3_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This)
    963 /*** IDWriteRenderingParams1 methods ***/
    964 #define IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This)
    965 /*** IDWriteRenderingParams2 methods ***/
    966 #define IDWriteRenderingParams3_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This)
    967 /*** IDWriteRenderingParams3 methods ***/
    968 #define IDWriteRenderingParams3_GetRenderingMode1(This) (This)->lpVtbl->GetRenderingMode1(This)
    969 #else
    970 /*** IUnknown methods ***/
    971 static inline HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This,REFIID riid,void **ppvObject) {
    972     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    973 }
    974 static inline ULONG IDWriteRenderingParams3_AddRef(IDWriteRenderingParams3* This) {
    975     return This->lpVtbl->AddRef(This);
    976 }
    977 static inline ULONG IDWriteRenderingParams3_Release(IDWriteRenderingParams3* This) {
    978     return This->lpVtbl->Release(This);
    979 }
    980 /*** IDWriteRenderingParams methods ***/
    981 static inline FLOAT IDWriteRenderingParams3_GetGamma(IDWriteRenderingParams3* This) {
    982     return This->lpVtbl->GetGamma(This);
    983 }
    984 static inline FLOAT IDWriteRenderingParams3_GetEnhancedContrast(IDWriteRenderingParams3* This) {
    985     return This->lpVtbl->GetEnhancedContrast(This);
    986 }
    987 static inline FLOAT IDWriteRenderingParams3_GetClearTypeLevel(IDWriteRenderingParams3* This) {
    988     return This->lpVtbl->GetClearTypeLevel(This);
    989 }
    990 static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams3_GetPixelGeometry(IDWriteRenderingParams3* This) {
    991     return This->lpVtbl->GetPixelGeometry(This);
    992 }
    993 static inline DWRITE_RENDERING_MODE IDWriteRenderingParams3_GetRenderingMode(IDWriteRenderingParams3* This) {
    994     return This->lpVtbl->GetRenderingMode(This);
    995 }
    996 /*** IDWriteRenderingParams1 methods ***/
    997 static inline FLOAT IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(IDWriteRenderingParams3* This) {
    998     return This->lpVtbl->GetGrayscaleEnhancedContrast(This);
    999 }
   1000 /*** IDWriteRenderingParams2 methods ***/
   1001 static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams3_GetGridFitMode(IDWriteRenderingParams3* This) {
   1002     return This->lpVtbl->GetGridFitMode(This);
   1003 }
   1004 /*** IDWriteRenderingParams3 methods ***/
   1005 static inline DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(IDWriteRenderingParams3* This) {
   1006     return This->lpVtbl->GetRenderingMode1(This);
   1007 }
   1008 #endif
   1009 #endif
   1010 
   1011 #endif
   1012 
   1013 
   1014 #endif  /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */
   1015 
   1016 /*****************************************************************************
   1017  * IDWriteStringList interface
   1018  */
   1019 #ifndef __IDWriteStringList_INTERFACE_DEFINED__
   1020 #define __IDWriteStringList_INTERFACE_DEFINED__
   1021 
   1022 DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e);
   1023 #if defined(__cplusplus) && !defined(CINTERFACE)
   1024 MIDL_INTERFACE("cfee3140-1157-47ca-8b85-31bfcf3f2d0e")
   1025 IDWriteStringList : public IUnknown
   1026 {
   1027     virtual UINT32 STDMETHODCALLTYPE GetCount(
   1028         ) = 0;
   1029 
   1030     virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength(
   1031         UINT32 index,
   1032         UINT32 *length) = 0;
   1033 
   1034     virtual HRESULT STDMETHODCALLTYPE GetLocaleName(
   1035         UINT32 index,
   1036         WCHAR *name,
   1037         UINT32 size) = 0;
   1038 
   1039     virtual HRESULT STDMETHODCALLTYPE GetStringLength(
   1040         UINT32 index,
   1041         UINT32 *length) = 0;
   1042 
   1043     virtual HRESULT STDMETHODCALLTYPE GetString(
   1044         UINT32 index,
   1045         WCHAR *string,
   1046         UINT32 size) = 0;
   1047 
   1048 };
   1049 #ifdef __CRT_UUID_DECL
   1050 __CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e)
   1051 #endif
   1052 #else
   1053 typedef struct IDWriteStringListVtbl {
   1054     BEGIN_INTERFACE
   1055 
   1056     /*** IUnknown methods ***/
   1057     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1058         IDWriteStringList *This,
   1059         REFIID riid,
   1060         void **ppvObject);
   1061 
   1062     ULONG (STDMETHODCALLTYPE *AddRef)(
   1063         IDWriteStringList *This);
   1064 
   1065     ULONG (STDMETHODCALLTYPE *Release)(
   1066         IDWriteStringList *This);
   1067 
   1068     /*** IDWriteStringList methods ***/
   1069     UINT32 (STDMETHODCALLTYPE *GetCount)(
   1070         IDWriteStringList *This);
   1071 
   1072     HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)(
   1073         IDWriteStringList *This,
   1074         UINT32 index,
   1075         UINT32 *length);
   1076 
   1077     HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
   1078         IDWriteStringList *This,
   1079         UINT32 index,
   1080         WCHAR *name,
   1081         UINT32 size);
   1082 
   1083     HRESULT (STDMETHODCALLTYPE *GetStringLength)(
   1084         IDWriteStringList *This,
   1085         UINT32 index,
   1086         UINT32 *length);
   1087 
   1088     HRESULT (STDMETHODCALLTYPE *GetString)(
   1089         IDWriteStringList *This,
   1090         UINT32 index,
   1091         WCHAR *string,
   1092         UINT32 size);
   1093 
   1094     END_INTERFACE
   1095 } IDWriteStringListVtbl;
   1096 
   1097 interface IDWriteStringList {
   1098     CONST_VTBL IDWriteStringListVtbl* lpVtbl;
   1099 };
   1100 
   1101 #ifdef COBJMACROS
   1102 #ifndef WIDL_C_INLINE_WRAPPERS
   1103 /*** IUnknown methods ***/
   1104 #define IDWriteStringList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1105 #define IDWriteStringList_AddRef(This) (This)->lpVtbl->AddRef(This)
   1106 #define IDWriteStringList_Release(This) (This)->lpVtbl->Release(This)
   1107 /*** IDWriteStringList methods ***/
   1108 #define IDWriteStringList_GetCount(This) (This)->lpVtbl->GetCount(This)
   1109 #define IDWriteStringList_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length)
   1110 #define IDWriteStringList_GetLocaleName(This,index,name,size) (This)->lpVtbl->GetLocaleName(This,index,name,size)
   1111 #define IDWriteStringList_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length)
   1112 #define IDWriteStringList_GetString(This,index,string,size) (This)->lpVtbl->GetString(This,index,string,size)
   1113 #else
   1114 /*** IUnknown methods ***/
   1115 static inline HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This,REFIID riid,void **ppvObject) {
   1116     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1117 }
   1118 static inline ULONG IDWriteStringList_AddRef(IDWriteStringList* This) {
   1119     return This->lpVtbl->AddRef(This);
   1120 }
   1121 static inline ULONG IDWriteStringList_Release(IDWriteStringList* This) {
   1122     return This->lpVtbl->Release(This);
   1123 }
   1124 /*** IDWriteStringList methods ***/
   1125 static inline UINT32 IDWriteStringList_GetCount(IDWriteStringList* This) {
   1126     return This->lpVtbl->GetCount(This);
   1127 }
   1128 static inline HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This,UINT32 index,UINT32 *length) {
   1129     return This->lpVtbl->GetLocaleNameLength(This,index,length);
   1130 }
   1131 static inline HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This,UINT32 index,WCHAR *name,UINT32 size) {
   1132     return This->lpVtbl->GetLocaleName(This,index,name,size);
   1133 }
   1134 static inline HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This,UINT32 index,UINT32 *length) {
   1135     return This->lpVtbl->GetStringLength(This,index,length);
   1136 }
   1137 static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This,UINT32 index,WCHAR *string,UINT32 size) {
   1138     return This->lpVtbl->GetString(This,index,string,size);
   1139 }
   1140 #endif
   1141 #endif
   1142 
   1143 #endif
   1144 
   1145 
   1146 #endif  /* __IDWriteStringList_INTERFACE_DEFINED__ */
   1147 
   1148 /*****************************************************************************
   1149  * IDWriteFontSet interface
   1150  */
   1151 #ifndef __IDWriteFontSet_INTERFACE_DEFINED__
   1152 #define __IDWriteFontSet_INTERFACE_DEFINED__
   1153 
   1154 DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b);
   1155 #if defined(__cplusplus) && !defined(CINTERFACE)
   1156 MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116b")
   1157 IDWriteFontSet : public IUnknown
   1158 {
   1159     virtual UINT32 STDMETHODCALLTYPE GetFontCount(
   1160         ) = 0;
   1161 
   1162     virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
   1163         UINT32 index,
   1164         IDWriteFontFaceReference **reference) = 0;
   1165 
   1166     virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference(
   1167         IDWriteFontFaceReference *reference,
   1168         UINT32 *index,
   1169         WINBOOL *exists) = 0;
   1170 
   1171     virtual HRESULT STDMETHODCALLTYPE FindFontFace(
   1172         IDWriteFontFace *fontface,
   1173         UINT32 *index,
   1174         WINBOOL *exists) = 0;
   1175 
   1176     virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__(
   1177         DWRITE_FONT_PROPERTY_ID id,
   1178         IDWriteStringList **values) = 0;
   1179 
   1180     virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_(
   1181         DWRITE_FONT_PROPERTY_ID id,
   1182         const WCHAR *preferred_locales,
   1183         IDWriteStringList **values) = 0;
   1184 
   1185     virtual HRESULT STDMETHODCALLTYPE GetPropertyValues(
   1186         UINT32 index,
   1187         DWRITE_FONT_PROPERTY_ID id,
   1188         WINBOOL *exists,
   1189         IDWriteLocalizedStrings **values) = 0;
   1190 
   1191     virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount(
   1192         const DWRITE_FONT_PROPERTY *property,
   1193         UINT32 *count) = 0;
   1194 
   1195     virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_(
   1196         const WCHAR *family,
   1197         DWRITE_FONT_WEIGHT weight,
   1198         DWRITE_FONT_STRETCH stretch,
   1199         DWRITE_FONT_STYLE style,
   1200         IDWriteFontSet **fontset) = 0;
   1201 
   1202     virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
   1203         const DWRITE_FONT_PROPERTY *props,
   1204         UINT32 count,
   1205         IDWriteFontSet **fontset) = 0;
   1206 
   1207 };
   1208 #ifdef __CRT_UUID_DECL
   1209 __CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b)
   1210 #endif
   1211 #else
   1212 typedef struct IDWriteFontSetVtbl {
   1213     BEGIN_INTERFACE
   1214 
   1215     /*** IUnknown methods ***/
   1216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1217         IDWriteFontSet *This,
   1218         REFIID riid,
   1219         void **ppvObject);
   1220 
   1221     ULONG (STDMETHODCALLTYPE *AddRef)(
   1222         IDWriteFontSet *This);
   1223 
   1224     ULONG (STDMETHODCALLTYPE *Release)(
   1225         IDWriteFontSet *This);
   1226 
   1227     /*** IDWriteFontSet methods ***/
   1228     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   1229         IDWriteFontSet *This);
   1230 
   1231     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   1232         IDWriteFontSet *This,
   1233         UINT32 index,
   1234         IDWriteFontFaceReference **reference);
   1235 
   1236     HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
   1237         IDWriteFontSet *This,
   1238         IDWriteFontFaceReference *reference,
   1239         UINT32 *index,
   1240         WINBOOL *exists);
   1241 
   1242     HRESULT (STDMETHODCALLTYPE *FindFontFace)(
   1243         IDWriteFontSet *This,
   1244         IDWriteFontFace *fontface,
   1245         UINT32 *index,
   1246         WINBOOL *exists);
   1247 
   1248     HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
   1249         IDWriteFontSet *This,
   1250         DWRITE_FONT_PROPERTY_ID id,
   1251         IDWriteStringList **values);
   1252 
   1253     HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
   1254         IDWriteFontSet *This,
   1255         DWRITE_FONT_PROPERTY_ID id,
   1256         const WCHAR *preferred_locales,
   1257         IDWriteStringList **values);
   1258 
   1259     HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
   1260         IDWriteFontSet *This,
   1261         UINT32 index,
   1262         DWRITE_FONT_PROPERTY_ID id,
   1263         WINBOOL *exists,
   1264         IDWriteLocalizedStrings **values);
   1265 
   1266     HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
   1267         IDWriteFontSet *This,
   1268         const DWRITE_FONT_PROPERTY *property,
   1269         UINT32 *count);
   1270 
   1271     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
   1272         IDWriteFontSet *This,
   1273         const WCHAR *family,
   1274         DWRITE_FONT_WEIGHT weight,
   1275         DWRITE_FONT_STRETCH stretch,
   1276         DWRITE_FONT_STYLE style,
   1277         IDWriteFontSet **fontset);
   1278 
   1279     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   1280         IDWriteFontSet *This,
   1281         const DWRITE_FONT_PROPERTY *props,
   1282         UINT32 count,
   1283         IDWriteFontSet **fontset);
   1284 
   1285     END_INTERFACE
   1286 } IDWriteFontSetVtbl;
   1287 
   1288 interface IDWriteFontSet {
   1289     CONST_VTBL IDWriteFontSetVtbl* lpVtbl;
   1290 };
   1291 
   1292 #ifdef COBJMACROS
   1293 #ifndef WIDL_C_INLINE_WRAPPERS
   1294 /*** IUnknown methods ***/
   1295 #define IDWriteFontSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1296 #define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This)
   1297 #define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This)
   1298 /*** IDWriteFontSet methods ***/
   1299 #define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   1300 #define IDWriteFontSet_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
   1301 #define IDWriteFontSet_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
   1302 #define IDWriteFontSet_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
   1303 #define IDWriteFontSet_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
   1304 #define IDWriteFontSet_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
   1305 #define IDWriteFontSet_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
   1306 #define IDWriteFontSet_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
   1307 #define IDWriteFontSet_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
   1308 #define IDWriteFontSet_GetMatchingFonts(This,props,count,fontset) (This)->lpVtbl->GetMatchingFonts(This,props,count,fontset)
   1309 #else
   1310 /*** IUnknown methods ***/
   1311 static inline HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This,REFIID riid,void **ppvObject) {
   1312     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1313 }
   1314 static inline ULONG IDWriteFontSet_AddRef(IDWriteFontSet* This) {
   1315     return This->lpVtbl->AddRef(This);
   1316 }
   1317 static inline ULONG IDWriteFontSet_Release(IDWriteFontSet* This) {
   1318     return This->lpVtbl->Release(This);
   1319 }
   1320 /*** IDWriteFontSet methods ***/
   1321 static inline UINT32 IDWriteFontSet_GetFontCount(IDWriteFontSet* This) {
   1322     return This->lpVtbl->GetFontCount(This);
   1323 }
   1324 static inline HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This,UINT32 index,IDWriteFontFaceReference **reference) {
   1325     return This->lpVtbl->GetFontFaceReference(This,index,reference);
   1326 }
   1327 static inline HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
   1328     return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
   1329 }
   1330 static inline HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
   1331     return This->lpVtbl->FindFontFace(This,fontface,index,exists);
   1332 }
   1333 static inline HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
   1334     return This->lpVtbl->GetPropertyValues__(This,id,values);
   1335 }
   1336 static inline HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
   1337     return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
   1338 }
   1339 static inline HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
   1340     return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
   1341 }
   1342 static inline HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
   1343     return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
   1344 }
   1345 static inline HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
   1346     return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
   1347 }
   1348 static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *props,UINT32 count,IDWriteFontSet **fontset) {
   1349     return This->lpVtbl->GetMatchingFonts(This,props,count,fontset);
   1350 }
   1351 #endif
   1352 #endif
   1353 
   1354 #endif
   1355 
   1356 
   1357 #endif  /* __IDWriteFontSet_INTERFACE_DEFINED__ */
   1358 
   1359 /*****************************************************************************
   1360  * IDWriteFontResource interface
   1361  */
   1362 #ifndef __IDWriteFontResource_INTERFACE_DEFINED__
   1363 #define __IDWriteFontResource_INTERFACE_DEFINED__
   1364 
   1365 DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2);
   1366 #if defined(__cplusplus) && !defined(CINTERFACE)
   1367 MIDL_INTERFACE("1f803a76-6871-48e8-987f-b975551c50f2")
   1368 IDWriteFontResource : public IUnknown
   1369 {
   1370     virtual HRESULT STDMETHODCALLTYPE GetFontFile(
   1371         IDWriteFontFile **fontfile) = 0;
   1372 
   1373     virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex(
   1374         ) = 0;
   1375 
   1376     virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount(
   1377         ) = 0;
   1378 
   1379     virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues(
   1380         DWRITE_FONT_AXIS_VALUE *values,
   1381         UINT32 num_values) = 0;
   1382 
   1383     virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges(
   1384         DWRITE_FONT_AXIS_RANGE *ranges,
   1385         UINT32 num_ranges) = 0;
   1386 
   1387     virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes(
   1388         UINT32 axis) = 0;
   1389 
   1390     virtual HRESULT STDMETHODCALLTYPE GetAxisNames(
   1391         UINT32 axis,
   1392         IDWriteLocalizedStrings **names) = 0;
   1393 
   1394     virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount(
   1395         UINT32 axis) = 0;
   1396 
   1397     virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames(
   1398         UINT32 axis,
   1399         UINT32 axis_value,
   1400         DWRITE_FONT_AXIS_RANGE *axis_range,
   1401         IDWriteLocalizedStrings **names) = 0;
   1402 
   1403     virtual WINBOOL STDMETHODCALLTYPE HasVariations(
   1404         ) = 0;
   1405 
   1406     virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
   1407         DWRITE_FONT_SIMULATIONS simulations,
   1408         const DWRITE_FONT_AXIS_VALUE *axis_values,
   1409         UINT32 num_values,
   1410         IDWriteFontFace5 **fontface) = 0;
   1411 
   1412     virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
   1413         DWRITE_FONT_SIMULATIONS simulations,
   1414         const DWRITE_FONT_AXIS_VALUE *axis_values,
   1415         UINT32 num_values,
   1416         IDWriteFontFaceReference1 **reference) = 0;
   1417 
   1418 };
   1419 #ifdef __CRT_UUID_DECL
   1420 __CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2)
   1421 #endif
   1422 #else
   1423 typedef struct IDWriteFontResourceVtbl {
   1424     BEGIN_INTERFACE
   1425 
   1426     /*** IUnknown methods ***/
   1427     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1428         IDWriteFontResource *This,
   1429         REFIID riid,
   1430         void **ppvObject);
   1431 
   1432     ULONG (STDMETHODCALLTYPE *AddRef)(
   1433         IDWriteFontResource *This);
   1434 
   1435     ULONG (STDMETHODCALLTYPE *Release)(
   1436         IDWriteFontResource *This);
   1437 
   1438     /*** IDWriteFontResource methods ***/
   1439     HRESULT (STDMETHODCALLTYPE *GetFontFile)(
   1440         IDWriteFontResource *This,
   1441         IDWriteFontFile **fontfile);
   1442 
   1443     UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
   1444         IDWriteFontResource *This);
   1445 
   1446     UINT32 (STDMETHODCALLTYPE *GetFontAxisCount)(
   1447         IDWriteFontResource *This);
   1448 
   1449     HRESULT (STDMETHODCALLTYPE *GetDefaultFontAxisValues)(
   1450         IDWriteFontResource *This,
   1451         DWRITE_FONT_AXIS_VALUE *values,
   1452         UINT32 num_values);
   1453 
   1454     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
   1455         IDWriteFontResource *This,
   1456         DWRITE_FONT_AXIS_RANGE *ranges,
   1457         UINT32 num_ranges);
   1458 
   1459     DWRITE_FONT_AXIS_ATTRIBUTES (STDMETHODCALLTYPE *GetFontAxisAttributes)(
   1460         IDWriteFontResource *This,
   1461         UINT32 axis);
   1462 
   1463     HRESULT (STDMETHODCALLTYPE *GetAxisNames)(
   1464         IDWriteFontResource *This,
   1465         UINT32 axis,
   1466         IDWriteLocalizedStrings **names);
   1467 
   1468     UINT32 (STDMETHODCALLTYPE *GetAxisValueNameCount)(
   1469         IDWriteFontResource *This,
   1470         UINT32 axis);
   1471 
   1472     HRESULT (STDMETHODCALLTYPE *GetAxisValueNames)(
   1473         IDWriteFontResource *This,
   1474         UINT32 axis,
   1475         UINT32 axis_value,
   1476         DWRITE_FONT_AXIS_RANGE *axis_range,
   1477         IDWriteLocalizedStrings **names);
   1478 
   1479     WINBOOL (STDMETHODCALLTYPE *HasVariations)(
   1480         IDWriteFontResource *This);
   1481 
   1482     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   1483         IDWriteFontResource *This,
   1484         DWRITE_FONT_SIMULATIONS simulations,
   1485         const DWRITE_FONT_AXIS_VALUE *axis_values,
   1486         UINT32 num_values,
   1487         IDWriteFontFace5 **fontface);
   1488 
   1489     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
   1490         IDWriteFontResource *This,
   1491         DWRITE_FONT_SIMULATIONS simulations,
   1492         const DWRITE_FONT_AXIS_VALUE *axis_values,
   1493         UINT32 num_values,
   1494         IDWriteFontFaceReference1 **reference);
   1495 
   1496     END_INTERFACE
   1497 } IDWriteFontResourceVtbl;
   1498 
   1499 interface IDWriteFontResource {
   1500     CONST_VTBL IDWriteFontResourceVtbl* lpVtbl;
   1501 };
   1502 
   1503 #ifdef COBJMACROS
   1504 #ifndef WIDL_C_INLINE_WRAPPERS
   1505 /*** IUnknown methods ***/
   1506 #define IDWriteFontResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1507 #define IDWriteFontResource_AddRef(This) (This)->lpVtbl->AddRef(This)
   1508 #define IDWriteFontResource_Release(This) (This)->lpVtbl->Release(This)
   1509 /*** IDWriteFontResource methods ***/
   1510 #define IDWriteFontResource_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
   1511 #define IDWriteFontResource_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
   1512 #define IDWriteFontResource_GetFontAxisCount(This) (This)->lpVtbl->GetFontAxisCount(This)
   1513 #define IDWriteFontResource_GetDefaultFontAxisValues(This,values,num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This,values,num_values)
   1514 #define IDWriteFontResource_GetFontAxisRanges(This,ranges,num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges)
   1515 #define IDWriteFontResource_GetFontAxisAttributes(This,axis) (This)->lpVtbl->GetFontAxisAttributes(This,axis)
   1516 #define IDWriteFontResource_GetAxisNames(This,axis,names) (This)->lpVtbl->GetAxisNames(This,axis,names)
   1517 #define IDWriteFontResource_GetAxisValueNameCount(This,axis) (This)->lpVtbl->GetAxisValueNameCount(This,axis)
   1518 #define IDWriteFontResource_GetAxisValueNames(This,axis,axis_value,axis_range,names) (This)->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names)
   1519 #define IDWriteFontResource_HasVariations(This) (This)->lpVtbl->HasVariations(This)
   1520 #define IDWriteFontResource_CreateFontFace(This,simulations,axis_values,num_values,fontface) (This)->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface)
   1521 #define IDWriteFontResource_CreateFontFaceReference(This,simulations,axis_values,num_values,reference) (This)->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference)
   1522 #else
   1523 /*** IUnknown methods ***/
   1524 static inline HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This,REFIID riid,void **ppvObject) {
   1525     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1526 }
   1527 static inline ULONG IDWriteFontResource_AddRef(IDWriteFontResource* This) {
   1528     return This->lpVtbl->AddRef(This);
   1529 }
   1530 static inline ULONG IDWriteFontResource_Release(IDWriteFontResource* This) {
   1531     return This->lpVtbl->Release(This);
   1532 }
   1533 /*** IDWriteFontResource methods ***/
   1534 static inline HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This,IDWriteFontFile **fontfile) {
   1535     return This->lpVtbl->GetFontFile(This,fontfile);
   1536 }
   1537 static inline UINT32 IDWriteFontResource_GetFontFaceIndex(IDWriteFontResource* This) {
   1538     return This->lpVtbl->GetFontFaceIndex(This);
   1539 }
   1540 static inline UINT32 IDWriteFontResource_GetFontAxisCount(IDWriteFontResource* This) {
   1541     return This->lpVtbl->GetFontAxisCount(This);
   1542 }
   1543 static inline HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) {
   1544     return This->lpVtbl->GetDefaultFontAxisValues(This,values,num_values);
   1545 }
   1546 static inline HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This,DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges) {
   1547     return This->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges);
   1548 }
   1549 static inline DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This,UINT32 axis) {
   1550     return This->lpVtbl->GetFontAxisAttributes(This,axis);
   1551 }
   1552 static inline HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This,UINT32 axis,IDWriteLocalizedStrings **names) {
   1553     return This->lpVtbl->GetAxisNames(This,axis,names);
   1554 }
   1555 static inline UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This,UINT32 axis) {
   1556     return This->lpVtbl->GetAxisValueNameCount(This,axis);
   1557 }
   1558 static inline HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This,UINT32 axis,UINT32 axis_value,DWRITE_FONT_AXIS_RANGE *axis_range,IDWriteLocalizedStrings **names) {
   1559     return This->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names);
   1560 }
   1561 static inline WINBOOL IDWriteFontResource_HasVariations(IDWriteFontResource* This) {
   1562     return This->lpVtbl->HasVariations(This);
   1563 }
   1564 static inline HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFace5 **fontface) {
   1565     return This->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface);
   1566 }
   1567 static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFaceReference1 **reference) {
   1568     return This->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference);
   1569 }
   1570 #endif
   1571 #endif
   1572 
   1573 #endif
   1574 
   1575 
   1576 #endif  /* __IDWriteFontResource_INTERFACE_DEFINED__ */
   1577 
   1578 /*****************************************************************************
   1579  * IDWriteFontSet1 interface
   1580  */
   1581 #ifndef __IDWriteFontSet1_INTERFACE_DEFINED__
   1582 #define __IDWriteFontSet1_INTERFACE_DEFINED__
   1583 
   1584 DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3);
   1585 #if defined(__cplusplus) && !defined(CINTERFACE)
   1586 MIDL_INTERFACE("7e9fda85-6c92-4053-bc47-7ae3530db4d3")
   1587 IDWriteFontSet1 : public IDWriteFontSet
   1588 {
   1589     virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
   1590         const DWRITE_FONT_PROPERTY *property,
   1591         const DWRITE_FONT_AXIS_VALUE *axis_values,
   1592         UINT32 num_values,
   1593         IDWriteFontSet1 **fontset) = 0;
   1594 
   1595     virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources(
   1596         IDWriteFontSet1 **fontset) = 0;
   1597 
   1598     virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__(
   1599         const UINT32 *indices,
   1600         UINT32 num_indices,
   1601         IDWriteFontSet1 **fontset) = 0;
   1602 
   1603     virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_(
   1604         const DWRITE_FONT_AXIS_RANGE *axis_ranges,
   1605         UINT32 num_ranges,
   1606         WINBOOL select_any_range,
   1607         IDWriteFontSet1 **fontset) = 0;
   1608 
   1609     virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts(
   1610         const DWRITE_FONT_PROPERTY *props,
   1611         UINT32 num_properties,
   1612         WINBOOL select_any_property,
   1613         IDWriteFontSet1 **fontset) = 0;
   1614 
   1615     virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_(
   1616         const DWRITE_FONT_AXIS_RANGE *ranges,
   1617         UINT32 num_ranges,
   1618         WINBOOL select_any_range,
   1619         UINT32 *indices,
   1620         UINT32 num_indices,
   1621         UINT32 *actual_num_indices) = 0;
   1622 
   1623     virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices(
   1624         const DWRITE_FONT_PROPERTY *props,
   1625         UINT32 num_properties,
   1626         WINBOOL select_any_range,
   1627         UINT32 *indices,
   1628         UINT32 num_indices,
   1629         UINT32 *actual_num_indices) = 0;
   1630 
   1631     virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_(
   1632         UINT32 font_index,
   1633         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   1634         UINT32 num_ranges,
   1635         UINT32 *actual_num_ranges) = 0;
   1636 
   1637     virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges(
   1638         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   1639         UINT32 num_ranges,
   1640         UINT32 *actual_num_ranges) = 0;
   1641 
   1642     virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
   1643         UINT32 index,
   1644         IDWriteFontFaceReference1 **reference) = 0;
   1645 
   1646     virtual HRESULT STDMETHODCALLTYPE CreateFontResource(
   1647         UINT32 index,
   1648         IDWriteFontResource **resource) = 0;
   1649 
   1650     virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
   1651         UINT32 index,
   1652         IDWriteFontFace5 **fontface) = 0;
   1653 
   1654     virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
   1655         UINT32 index) = 0;
   1656 
   1657 };
   1658 #ifdef __CRT_UUID_DECL
   1659 __CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3)
   1660 #endif
   1661 #else
   1662 typedef struct IDWriteFontSet1Vtbl {
   1663     BEGIN_INTERFACE
   1664 
   1665     /*** IUnknown methods ***/
   1666     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1667         IDWriteFontSet1 *This,
   1668         REFIID riid,
   1669         void **ppvObject);
   1670 
   1671     ULONG (STDMETHODCALLTYPE *AddRef)(
   1672         IDWriteFontSet1 *This);
   1673 
   1674     ULONG (STDMETHODCALLTYPE *Release)(
   1675         IDWriteFontSet1 *This);
   1676 
   1677     /*** IDWriteFontSet methods ***/
   1678     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   1679         IDWriteFontSet1 *This);
   1680 
   1681     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   1682         IDWriteFontSet1 *This,
   1683         UINT32 index,
   1684         IDWriteFontFaceReference **reference);
   1685 
   1686     HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
   1687         IDWriteFontSet1 *This,
   1688         IDWriteFontFaceReference *reference,
   1689         UINT32 *index,
   1690         WINBOOL *exists);
   1691 
   1692     HRESULT (STDMETHODCALLTYPE *FindFontFace)(
   1693         IDWriteFontSet1 *This,
   1694         IDWriteFontFace *fontface,
   1695         UINT32 *index,
   1696         WINBOOL *exists);
   1697 
   1698     HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
   1699         IDWriteFontSet1 *This,
   1700         DWRITE_FONT_PROPERTY_ID id,
   1701         IDWriteStringList **values);
   1702 
   1703     HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
   1704         IDWriteFontSet1 *This,
   1705         DWRITE_FONT_PROPERTY_ID id,
   1706         const WCHAR *preferred_locales,
   1707         IDWriteStringList **values);
   1708 
   1709     HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
   1710         IDWriteFontSet1 *This,
   1711         UINT32 index,
   1712         DWRITE_FONT_PROPERTY_ID id,
   1713         WINBOOL *exists,
   1714         IDWriteLocalizedStrings **values);
   1715 
   1716     HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
   1717         IDWriteFontSet1 *This,
   1718         const DWRITE_FONT_PROPERTY *property,
   1719         UINT32 *count);
   1720 
   1721     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
   1722         IDWriteFontSet1 *This,
   1723         const WCHAR *family,
   1724         DWRITE_FONT_WEIGHT weight,
   1725         DWRITE_FONT_STRETCH stretch,
   1726         DWRITE_FONT_STYLE style,
   1727         IDWriteFontSet **fontset);
   1728 
   1729     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   1730         IDWriteFontSet1 *This,
   1731         const DWRITE_FONT_PROPERTY *props,
   1732         UINT32 count,
   1733         IDWriteFontSet **fontset);
   1734 
   1735     /*** IDWriteFontSet1 methods ***/
   1736     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
   1737         IDWriteFontSet1 *This,
   1738         const DWRITE_FONT_PROPERTY *property,
   1739         const DWRITE_FONT_AXIS_VALUE *axis_values,
   1740         UINT32 num_values,
   1741         IDWriteFontSet1 **fontset);
   1742 
   1743     HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
   1744         IDWriteFontSet1 *This,
   1745         IDWriteFontSet1 **fontset);
   1746 
   1747     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
   1748         IDWriteFontSet1 *This,
   1749         const UINT32 *indices,
   1750         UINT32 num_indices,
   1751         IDWriteFontSet1 **fontset);
   1752 
   1753     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
   1754         IDWriteFontSet1 *This,
   1755         const DWRITE_FONT_AXIS_RANGE *axis_ranges,
   1756         UINT32 num_ranges,
   1757         WINBOOL select_any_range,
   1758         IDWriteFontSet1 **fontset);
   1759 
   1760     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
   1761         IDWriteFontSet1 *This,
   1762         const DWRITE_FONT_PROPERTY *props,
   1763         UINT32 num_properties,
   1764         WINBOOL select_any_property,
   1765         IDWriteFontSet1 **fontset);
   1766 
   1767     HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
   1768         IDWriteFontSet1 *This,
   1769         const DWRITE_FONT_AXIS_RANGE *ranges,
   1770         UINT32 num_ranges,
   1771         WINBOOL select_any_range,
   1772         UINT32 *indices,
   1773         UINT32 num_indices,
   1774         UINT32 *actual_num_indices);
   1775 
   1776     HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
   1777         IDWriteFontSet1 *This,
   1778         const DWRITE_FONT_PROPERTY *props,
   1779         UINT32 num_properties,
   1780         WINBOOL select_any_range,
   1781         UINT32 *indices,
   1782         UINT32 num_indices,
   1783         UINT32 *actual_num_indices);
   1784 
   1785     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
   1786         IDWriteFontSet1 *This,
   1787         UINT32 font_index,
   1788         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   1789         UINT32 num_ranges,
   1790         UINT32 *actual_num_ranges);
   1791 
   1792     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
   1793         IDWriteFontSet1 *This,
   1794         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   1795         UINT32 num_ranges,
   1796         UINT32 *actual_num_ranges);
   1797 
   1798     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
   1799         IDWriteFontSet1 *This,
   1800         UINT32 index,
   1801         IDWriteFontFaceReference1 **reference);
   1802 
   1803     HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
   1804         IDWriteFontSet1 *This,
   1805         UINT32 index,
   1806         IDWriteFontResource **resource);
   1807 
   1808     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   1809         IDWriteFontSet1 *This,
   1810         UINT32 index,
   1811         IDWriteFontFace5 **fontface);
   1812 
   1813     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
   1814         IDWriteFontSet1 *This,
   1815         UINT32 index);
   1816 
   1817     END_INTERFACE
   1818 } IDWriteFontSet1Vtbl;
   1819 
   1820 interface IDWriteFontSet1 {
   1821     CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl;
   1822 };
   1823 
   1824 #ifdef COBJMACROS
   1825 #ifndef WIDL_C_INLINE_WRAPPERS
   1826 /*** IUnknown methods ***/
   1827 #define IDWriteFontSet1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1828 #define IDWriteFontSet1_AddRef(This) (This)->lpVtbl->AddRef(This)
   1829 #define IDWriteFontSet1_Release(This) (This)->lpVtbl->Release(This)
   1830 /*** IDWriteFontSet methods ***/
   1831 #define IDWriteFontSet1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   1832 #define IDWriteFontSet1_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
   1833 #define IDWriteFontSet1_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
   1834 #define IDWriteFontSet1_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
   1835 #define IDWriteFontSet1_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
   1836 #define IDWriteFontSet1_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
   1837 #define IDWriteFontSet1_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
   1838 #define IDWriteFontSet1_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
   1839 /*** IDWriteFontSet1 methods ***/
   1840 #define IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
   1841 #define IDWriteFontSet1_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
   1842 #define IDWriteFontSet1_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
   1843 #define IDWriteFontSet1_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
   1844 #define IDWriteFontSet1_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
   1845 #define IDWriteFontSet1_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
   1846 #define IDWriteFontSet1_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
   1847 #define IDWriteFontSet1_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
   1848 #define IDWriteFontSet1_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
   1849 #define IDWriteFontSet1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
   1850 #define IDWriteFontSet1_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
   1851 #define IDWriteFontSet1_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
   1852 #define IDWriteFontSet1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
   1853 #else
   1854 /*** IUnknown methods ***/
   1855 static inline HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This,REFIID riid,void **ppvObject) {
   1856     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1857 }
   1858 static inline ULONG IDWriteFontSet1_AddRef(IDWriteFontSet1* This) {
   1859     return This->lpVtbl->AddRef(This);
   1860 }
   1861 static inline ULONG IDWriteFontSet1_Release(IDWriteFontSet1* This) {
   1862     return This->lpVtbl->Release(This);
   1863 }
   1864 /*** IDWriteFontSet methods ***/
   1865 static inline UINT32 IDWriteFontSet1_GetFontCount(IDWriteFontSet1* This) {
   1866     return This->lpVtbl->GetFontCount(This);
   1867 }
   1868 static inline HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
   1869     return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
   1870 }
   1871 static inline HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
   1872     return This->lpVtbl->FindFontFace(This,fontface,index,exists);
   1873 }
   1874 static inline HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
   1875     return This->lpVtbl->GetPropertyValues__(This,id,values);
   1876 }
   1877 static inline HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
   1878     return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
   1879 }
   1880 static inline HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
   1881     return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
   1882 }
   1883 static inline HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
   1884     return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
   1885 }
   1886 static inline HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
   1887     return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
   1888 }
   1889 /*** IDWriteFontSet1 methods ***/
   1890 static inline HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
   1891     return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
   1892 }
   1893 static inline HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This,IDWriteFontSet1 **fontset) {
   1894     return This->lpVtbl->GetFirstFontResources(This,fontset);
   1895 }
   1896 static inline HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
   1897     return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
   1898 }
   1899 static inline HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
   1900     return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
   1901 }
   1902 static inline HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
   1903     return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
   1904 }
   1905 static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
   1906     return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
   1907 }
   1908 static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
   1909     return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
   1910 }
   1911 static inline HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
   1912     return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
   1913 }
   1914 static inline HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
   1915     return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
   1916 }
   1917 static inline HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
   1918     return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
   1919 }
   1920 static inline HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This,UINT32 index,IDWriteFontResource **resource) {
   1921     return This->lpVtbl->CreateFontResource(This,index,resource);
   1922 }
   1923 static inline HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This,UINT32 index,IDWriteFontFace5 **fontface) {
   1924     return This->lpVtbl->CreateFontFace(This,index,fontface);
   1925 }
   1926 static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This,UINT32 index) {
   1927     return This->lpVtbl->GetFontLocality(This,index);
   1928 }
   1929 #endif
   1930 #endif
   1931 
   1932 #endif
   1933 
   1934 
   1935 #endif  /* __IDWriteFontSet1_INTERFACE_DEFINED__ */
   1936 
   1937 /*****************************************************************************
   1938  * IDWriteFont3 interface
   1939  */
   1940 #ifndef __IDWriteFont3_INTERFACE_DEFINED__
   1941 #define __IDWriteFont3_INTERFACE_DEFINED__
   1942 
   1943 DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44);
   1944 #if defined(__cplusplus) && !defined(CINTERFACE)
   1945 MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944")
   1946 IDWriteFont3 : public IDWriteFont2
   1947 {
   1948     virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
   1949         IDWriteFontFace3 **fontface) = 0;
   1950 
   1951     virtual WINBOOL STDMETHODCALLTYPE Equals(
   1952         IDWriteFont *font) = 0;
   1953 
   1954     virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
   1955         IDWriteFontFaceReference **reference) = 0;
   1956 
   1957     virtual WINBOOL STDMETHODCALLTYPE HasCharacter(
   1958         UINT32 character) = 0;
   1959 
   1960     virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
   1961         ) = 0;
   1962 
   1963 };
   1964 #ifdef __CRT_UUID_DECL
   1965 __CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44)
   1966 #endif
   1967 #else
   1968 typedef struct IDWriteFont3Vtbl {
   1969     BEGIN_INTERFACE
   1970 
   1971     /*** IUnknown methods ***/
   1972     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1973         IDWriteFont3 *This,
   1974         REFIID riid,
   1975         void **ppvObject);
   1976 
   1977     ULONG (STDMETHODCALLTYPE *AddRef)(
   1978         IDWriteFont3 *This);
   1979 
   1980     ULONG (STDMETHODCALLTYPE *Release)(
   1981         IDWriteFont3 *This);
   1982 
   1983     /*** IDWriteFont methods ***/
   1984     HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
   1985         IDWriteFont3 *This,
   1986         IDWriteFontFamily **family);
   1987 
   1988     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
   1989         IDWriteFont3 *This);
   1990 
   1991     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
   1992         IDWriteFont3 *This);
   1993 
   1994     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
   1995         IDWriteFont3 *This);
   1996 
   1997     WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
   1998         IDWriteFont3 *This);
   1999 
   2000     HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
   2001         IDWriteFont3 *This,
   2002         IDWriteLocalizedStrings **names);
   2003 
   2004     HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
   2005         IDWriteFont3 *This,
   2006         DWRITE_INFORMATIONAL_STRING_ID stringid,
   2007         IDWriteLocalizedStrings **strings,
   2008         WINBOOL *exists);
   2009 
   2010     DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
   2011         IDWriteFont3 *This);
   2012 
   2013     void (STDMETHODCALLTYPE *GetMetrics)(
   2014         IDWriteFont3 *This,
   2015         DWRITE_FONT_METRICS *metrics);
   2016 
   2017     HRESULT (STDMETHODCALLTYPE *HasCharacter)(
   2018         IDWriteFont3 *This,
   2019         UINT32 value,
   2020         WINBOOL *exists);
   2021 
   2022     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   2023         IDWriteFont3 *This,
   2024         IDWriteFontFace **face);
   2025 
   2026     /*** IDWriteFont1 methods ***/
   2027     void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)(
   2028         IDWriteFont3 *This,
   2029         DWRITE_FONT_METRICS1 *metrics);
   2030 
   2031     void (STDMETHODCALLTYPE *GetPanose)(
   2032         IDWriteFont3 *This,
   2033         DWRITE_PANOSE *panose);
   2034 
   2035     HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
   2036         IDWriteFont3 *This,
   2037         UINT32 max_count,
   2038         DWRITE_UNICODE_RANGE *ranges,
   2039         UINT32 *count);
   2040 
   2041     WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
   2042         IDWriteFont3 *This);
   2043 
   2044     /*** IDWriteFont2 methods ***/
   2045     WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
   2046         IDWriteFont3 *This);
   2047 
   2048     /*** IDWriteFont3 methods ***/
   2049     HRESULT (STDMETHODCALLTYPE *IDWriteFont3_CreateFontFace)(
   2050         IDWriteFont3 *This,
   2051         IDWriteFontFace3 **fontface);
   2052 
   2053     WINBOOL (STDMETHODCALLTYPE *Equals)(
   2054         IDWriteFont3 *This,
   2055         IDWriteFont *font);
   2056 
   2057     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   2058         IDWriteFont3 *This,
   2059         IDWriteFontFaceReference **reference);
   2060 
   2061     WINBOOL (STDMETHODCALLTYPE *IDWriteFont3_HasCharacter)(
   2062         IDWriteFont3 *This,
   2063         UINT32 character);
   2064 
   2065     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
   2066         IDWriteFont3 *This);
   2067 
   2068     END_INTERFACE
   2069 } IDWriteFont3Vtbl;
   2070 
   2071 interface IDWriteFont3 {
   2072     CONST_VTBL IDWriteFont3Vtbl* lpVtbl;
   2073 };
   2074 
   2075 #ifdef COBJMACROS
   2076 #ifndef WIDL_C_INLINE_WRAPPERS
   2077 /*** IUnknown methods ***/
   2078 #define IDWriteFont3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2079 #define IDWriteFont3_AddRef(This) (This)->lpVtbl->AddRef(This)
   2080 #define IDWriteFont3_Release(This) (This)->lpVtbl->Release(This)
   2081 /*** IDWriteFont methods ***/
   2082 #define IDWriteFont3_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family)
   2083 #define IDWriteFont3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
   2084 #define IDWriteFont3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
   2085 #define IDWriteFont3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
   2086 #define IDWriteFont3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
   2087 #define IDWriteFont3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
   2088 #define IDWriteFont3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
   2089 #define IDWriteFont3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
   2090 /*** IDWriteFont1 methods ***/
   2091 #define IDWriteFont3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics)
   2092 #define IDWriteFont3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
   2093 #define IDWriteFont3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
   2094 #define IDWriteFont3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
   2095 /*** IDWriteFont2 methods ***/
   2096 #define IDWriteFont3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
   2097 /*** IDWriteFont3 methods ***/
   2098 #define IDWriteFont3_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface)
   2099 #define IDWriteFont3_Equals(This,font) (This)->lpVtbl->Equals(This,font)
   2100 #define IDWriteFont3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
   2101 #define IDWriteFont3_HasCharacter(This,character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This,character)
   2102 #define IDWriteFont3_GetLocality(This) (This)->lpVtbl->GetLocality(This)
   2103 #else
   2104 /*** IUnknown methods ***/
   2105 static inline HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This,REFIID riid,void **ppvObject) {
   2106     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2107 }
   2108 static inline ULONG IDWriteFont3_AddRef(IDWriteFont3* This) {
   2109     return This->lpVtbl->AddRef(This);
   2110 }
   2111 static inline ULONG IDWriteFont3_Release(IDWriteFont3* This) {
   2112     return This->lpVtbl->Release(This);
   2113 }
   2114 /*** IDWriteFont methods ***/
   2115 static inline HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This,IDWriteFontFamily **family) {
   2116     return This->lpVtbl->GetFontFamily(This,family);
   2117 }
   2118 static inline DWRITE_FONT_WEIGHT IDWriteFont3_GetWeight(IDWriteFont3* This) {
   2119     return This->lpVtbl->GetWeight(This);
   2120 }
   2121 static inline DWRITE_FONT_STRETCH IDWriteFont3_GetStretch(IDWriteFont3* This) {
   2122     return This->lpVtbl->GetStretch(This);
   2123 }
   2124 static inline DWRITE_FONT_STYLE IDWriteFont3_GetStyle(IDWriteFont3* This) {
   2125     return This->lpVtbl->GetStyle(This);
   2126 }
   2127 static inline WINBOOL IDWriteFont3_IsSymbolFont(IDWriteFont3* This) {
   2128     return This->lpVtbl->IsSymbolFont(This);
   2129 }
   2130 static inline HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This,IDWriteLocalizedStrings **names) {
   2131     return This->lpVtbl->GetFaceNames(This,names);
   2132 }
   2133 static inline HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
   2134     return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
   2135 }
   2136 static inline DWRITE_FONT_SIMULATIONS IDWriteFont3_GetSimulations(IDWriteFont3* This) {
   2137     return This->lpVtbl->GetSimulations(This);
   2138 }
   2139 /*** IDWriteFont1 methods ***/
   2140 static inline void IDWriteFont3_GetMetrics(IDWriteFont3* This,DWRITE_FONT_METRICS1 *metrics) {
   2141     This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics);
   2142 }
   2143 static inline void IDWriteFont3_GetPanose(IDWriteFont3* This,DWRITE_PANOSE *panose) {
   2144     This->lpVtbl->GetPanose(This,panose);
   2145 }
   2146 static inline HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
   2147     return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
   2148 }
   2149 static inline WINBOOL IDWriteFont3_IsMonospacedFont(IDWriteFont3* This) {
   2150     return This->lpVtbl->IsMonospacedFont(This);
   2151 }
   2152 /*** IDWriteFont2 methods ***/
   2153 static inline WINBOOL IDWriteFont3_IsColorFont(IDWriteFont3* This) {
   2154     return This->lpVtbl->IsColorFont(This);
   2155 }
   2156 /*** IDWriteFont3 methods ***/
   2157 static inline HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This,IDWriteFontFace3 **fontface) {
   2158     return This->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface);
   2159 }
   2160 static inline WINBOOL IDWriteFont3_Equals(IDWriteFont3* This,IDWriteFont *font) {
   2161     return This->lpVtbl->Equals(This,font);
   2162 }
   2163 static inline HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This,IDWriteFontFaceReference **reference) {
   2164     return This->lpVtbl->GetFontFaceReference(This,reference);
   2165 }
   2166 static inline WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This,UINT32 character) {
   2167     return This->lpVtbl->IDWriteFont3_HasCharacter(This,character);
   2168 }
   2169 static inline DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) {
   2170     return This->lpVtbl->GetLocality(This);
   2171 }
   2172 #endif
   2173 #endif
   2174 
   2175 #endif
   2176 
   2177 
   2178 #endif  /* __IDWriteFont3_INTERFACE_DEFINED__ */
   2179 
   2180 /*****************************************************************************
   2181  * IDWriteFontFamily1 interface
   2182  */
   2183 #ifndef __IDWriteFontFamily1_INTERFACE_DEFINED__
   2184 #define __IDWriteFontFamily1_INTERFACE_DEFINED__
   2185 
   2186 DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf);
   2187 #if defined(__cplusplus) && !defined(CINTERFACE)
   2188 MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7adf")
   2189 IDWriteFontFamily1 : public IDWriteFontFamily
   2190 {
   2191     virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
   2192         UINT32 index) = 0;
   2193 
   2194     virtual HRESULT STDMETHODCALLTYPE GetFont(
   2195         UINT32 index,
   2196         IDWriteFont3 **font) = 0;
   2197 
   2198     virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
   2199         UINT32 index,
   2200         IDWriteFontFaceReference **reference) = 0;
   2201 
   2202 };
   2203 #ifdef __CRT_UUID_DECL
   2204 __CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf)
   2205 #endif
   2206 #else
   2207 typedef struct IDWriteFontFamily1Vtbl {
   2208     BEGIN_INTERFACE
   2209 
   2210     /*** IUnknown methods ***/
   2211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2212         IDWriteFontFamily1 *This,
   2213         REFIID riid,
   2214         void **ppvObject);
   2215 
   2216     ULONG (STDMETHODCALLTYPE *AddRef)(
   2217         IDWriteFontFamily1 *This);
   2218 
   2219     ULONG (STDMETHODCALLTYPE *Release)(
   2220         IDWriteFontFamily1 *This);
   2221 
   2222     /*** IDWriteFontList methods ***/
   2223     HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
   2224         IDWriteFontFamily1 *This,
   2225         IDWriteFontCollection **collection);
   2226 
   2227     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   2228         IDWriteFontFamily1 *This);
   2229 
   2230     HRESULT (STDMETHODCALLTYPE *GetFont)(
   2231         IDWriteFontFamily1 *This,
   2232         UINT32 index,
   2233         IDWriteFont **font);
   2234 
   2235     /*** IDWriteFontFamily methods ***/
   2236     HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
   2237         IDWriteFontFamily1 *This,
   2238         IDWriteLocalizedStrings **names);
   2239 
   2240     HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
   2241         IDWriteFontFamily1 *This,
   2242         DWRITE_FONT_WEIGHT weight,
   2243         DWRITE_FONT_STRETCH stretch,
   2244         DWRITE_FONT_STYLE style,
   2245         IDWriteFont **font);
   2246 
   2247     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   2248         IDWriteFontFamily1 *This,
   2249         DWRITE_FONT_WEIGHT weight,
   2250         DWRITE_FONT_STRETCH stretch,
   2251         DWRITE_FONT_STYLE style,
   2252         IDWriteFontList **fonts);
   2253 
   2254     /*** IDWriteFontFamily1 methods ***/
   2255     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
   2256         IDWriteFontFamily1 *This,
   2257         UINT32 index);
   2258 
   2259     HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)(
   2260         IDWriteFontFamily1 *This,
   2261         UINT32 index,
   2262         IDWriteFont3 **font);
   2263 
   2264     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   2265         IDWriteFontFamily1 *This,
   2266         UINT32 index,
   2267         IDWriteFontFaceReference **reference);
   2268 
   2269     END_INTERFACE
   2270 } IDWriteFontFamily1Vtbl;
   2271 
   2272 interface IDWriteFontFamily1 {
   2273     CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl;
   2274 };
   2275 
   2276 #ifdef COBJMACROS
   2277 #ifndef WIDL_C_INLINE_WRAPPERS
   2278 /*** IUnknown methods ***/
   2279 #define IDWriteFontFamily1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2280 #define IDWriteFontFamily1_AddRef(This) (This)->lpVtbl->AddRef(This)
   2281 #define IDWriteFontFamily1_Release(This) (This)->lpVtbl->Release(This)
   2282 /*** IDWriteFontList methods ***/
   2283 #define IDWriteFontFamily1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
   2284 #define IDWriteFontFamily1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   2285 /*** IDWriteFontFamily methods ***/
   2286 #define IDWriteFontFamily1_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
   2287 #define IDWriteFontFamily1_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
   2288 #define IDWriteFontFamily1_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts)
   2289 /*** IDWriteFontFamily1 methods ***/
   2290 #define IDWriteFontFamily1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
   2291 #define IDWriteFontFamily1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font)
   2292 #define IDWriteFontFamily1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
   2293 #else
   2294 /*** IUnknown methods ***/
   2295 static inline HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This,REFIID riid,void **ppvObject) {
   2296     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2297 }
   2298 static inline ULONG IDWriteFontFamily1_AddRef(IDWriteFontFamily1* This) {
   2299     return This->lpVtbl->AddRef(This);
   2300 }
   2301 static inline ULONG IDWriteFontFamily1_Release(IDWriteFontFamily1* This) {
   2302     return This->lpVtbl->Release(This);
   2303 }
   2304 /*** IDWriteFontList methods ***/
   2305 static inline HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This,IDWriteFontCollection **collection) {
   2306     return This->lpVtbl->GetFontCollection(This,collection);
   2307 }
   2308 static inline UINT32 IDWriteFontFamily1_GetFontCount(IDWriteFontFamily1* This) {
   2309     return This->lpVtbl->GetFontCount(This);
   2310 }
   2311 /*** IDWriteFontFamily methods ***/
   2312 static inline HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This,IDWriteLocalizedStrings **names) {
   2313     return This->lpVtbl->GetFamilyNames(This,names);
   2314 }
   2315 static inline HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
   2316     return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
   2317 }
   2318 static inline HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) {
   2319     return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts);
   2320 }
   2321 /*** IDWriteFontFamily1 methods ***/
   2322 static inline DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This,UINT32 index) {
   2323     return This->lpVtbl->GetFontLocality(This,index);
   2324 }
   2325 static inline HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This,UINT32 index,IDWriteFont3 **font) {
   2326     return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font);
   2327 }
   2328 static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This,UINT32 index,IDWriteFontFaceReference **reference) {
   2329     return This->lpVtbl->GetFontFaceReference(This,index,reference);
   2330 }
   2331 #endif
   2332 #endif
   2333 
   2334 #endif
   2335 
   2336 
   2337 #endif  /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */
   2338 
   2339 /*****************************************************************************
   2340  * IDWriteFontFamily2 interface
   2341  */
   2342 #ifndef __IDWriteFontFamily2_INTERFACE_DEFINED__
   2343 #define __IDWriteFontFamily2_INTERFACE_DEFINED__
   2344 
   2345 DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3);
   2346 #if defined(__cplusplus) && !defined(CINTERFACE)
   2347 MIDL_INTERFACE("3ed49e77-a398-4261-b9cf-c126c2131ef3")
   2348 IDWriteFontFamily2 : public IDWriteFontFamily1
   2349 {
   2350     virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
   2351         const DWRITE_FONT_AXIS_VALUE *axis_values,
   2352         UINT32 num_values,
   2353         IDWriteFontList2 **fontlist) = 0;
   2354 
   2355     virtual HRESULT STDMETHODCALLTYPE GetFontSet(
   2356         IDWriteFontSet1 **fontset) = 0;
   2357 
   2358 };
   2359 #ifdef __CRT_UUID_DECL
   2360 __CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3)
   2361 #endif
   2362 #else
   2363 typedef struct IDWriteFontFamily2Vtbl {
   2364     BEGIN_INTERFACE
   2365 
   2366     /*** IUnknown methods ***/
   2367     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2368         IDWriteFontFamily2 *This,
   2369         REFIID riid,
   2370         void **ppvObject);
   2371 
   2372     ULONG (STDMETHODCALLTYPE *AddRef)(
   2373         IDWriteFontFamily2 *This);
   2374 
   2375     ULONG (STDMETHODCALLTYPE *Release)(
   2376         IDWriteFontFamily2 *This);
   2377 
   2378     /*** IDWriteFontList methods ***/
   2379     HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
   2380         IDWriteFontFamily2 *This,
   2381         IDWriteFontCollection **collection);
   2382 
   2383     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   2384         IDWriteFontFamily2 *This);
   2385 
   2386     HRESULT (STDMETHODCALLTYPE *GetFont)(
   2387         IDWriteFontFamily2 *This,
   2388         UINT32 index,
   2389         IDWriteFont **font);
   2390 
   2391     /*** IDWriteFontFamily methods ***/
   2392     HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
   2393         IDWriteFontFamily2 *This,
   2394         IDWriteLocalizedStrings **names);
   2395 
   2396     HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
   2397         IDWriteFontFamily2 *This,
   2398         DWRITE_FONT_WEIGHT weight,
   2399         DWRITE_FONT_STRETCH stretch,
   2400         DWRITE_FONT_STYLE style,
   2401         IDWriteFont **font);
   2402 
   2403     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   2404         IDWriteFontFamily2 *This,
   2405         DWRITE_FONT_WEIGHT weight,
   2406         DWRITE_FONT_STRETCH stretch,
   2407         DWRITE_FONT_STYLE style,
   2408         IDWriteFontList **fonts);
   2409 
   2410     /*** IDWriteFontFamily1 methods ***/
   2411     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
   2412         IDWriteFontFamily2 *This,
   2413         UINT32 index);
   2414 
   2415     HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)(
   2416         IDWriteFontFamily2 *This,
   2417         UINT32 index,
   2418         IDWriteFont3 **font);
   2419 
   2420     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   2421         IDWriteFontFamily2 *This,
   2422         UINT32 index,
   2423         IDWriteFontFaceReference **reference);
   2424 
   2425     /*** IDWriteFontFamily2 methods ***/
   2426     HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily2_GetMatchingFonts)(
   2427         IDWriteFontFamily2 *This,
   2428         const DWRITE_FONT_AXIS_VALUE *axis_values,
   2429         UINT32 num_values,
   2430         IDWriteFontList2 **fontlist);
   2431 
   2432     HRESULT (STDMETHODCALLTYPE *GetFontSet)(
   2433         IDWriteFontFamily2 *This,
   2434         IDWriteFontSet1 **fontset);
   2435 
   2436     END_INTERFACE
   2437 } IDWriteFontFamily2Vtbl;
   2438 
   2439 interface IDWriteFontFamily2 {
   2440     CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl;
   2441 };
   2442 
   2443 #ifdef COBJMACROS
   2444 #ifndef WIDL_C_INLINE_WRAPPERS
   2445 /*** IUnknown methods ***/
   2446 #define IDWriteFontFamily2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2447 #define IDWriteFontFamily2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2448 #define IDWriteFontFamily2_Release(This) (This)->lpVtbl->Release(This)
   2449 /*** IDWriteFontList methods ***/
   2450 #define IDWriteFontFamily2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
   2451 #define IDWriteFontFamily2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   2452 /*** IDWriteFontFamily methods ***/
   2453 #define IDWriteFontFamily2_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
   2454 #define IDWriteFontFamily2_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
   2455 /*** IDWriteFontFamily1 methods ***/
   2456 #define IDWriteFontFamily2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
   2457 #define IDWriteFontFamily2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font)
   2458 #define IDWriteFontFamily2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
   2459 /*** IDWriteFontFamily2 methods ***/
   2460 #define IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist)
   2461 #define IDWriteFontFamily2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
   2462 #else
   2463 /*** IUnknown methods ***/
   2464 static inline HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This,REFIID riid,void **ppvObject) {
   2465     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2466 }
   2467 static inline ULONG IDWriteFontFamily2_AddRef(IDWriteFontFamily2* This) {
   2468     return This->lpVtbl->AddRef(This);
   2469 }
   2470 static inline ULONG IDWriteFontFamily2_Release(IDWriteFontFamily2* This) {
   2471     return This->lpVtbl->Release(This);
   2472 }
   2473 /*** IDWriteFontList methods ***/
   2474 static inline HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This,IDWriteFontCollection **collection) {
   2475     return This->lpVtbl->GetFontCollection(This,collection);
   2476 }
   2477 static inline UINT32 IDWriteFontFamily2_GetFontCount(IDWriteFontFamily2* This) {
   2478     return This->lpVtbl->GetFontCount(This);
   2479 }
   2480 /*** IDWriteFontFamily methods ***/
   2481 static inline HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This,IDWriteLocalizedStrings **names) {
   2482     return This->lpVtbl->GetFamilyNames(This,names);
   2483 }
   2484 static inline HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
   2485     return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
   2486 }
   2487 /*** IDWriteFontFamily1 methods ***/
   2488 static inline DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This,UINT32 index) {
   2489     return This->lpVtbl->GetFontLocality(This,index);
   2490 }
   2491 static inline HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This,UINT32 index,IDWriteFont3 **font) {
   2492     return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font);
   2493 }
   2494 static inline HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This,UINT32 index,IDWriteFontFaceReference **reference) {
   2495     return This->lpVtbl->GetFontFaceReference(This,index,reference);
   2496 }
   2497 /*** IDWriteFontFamily2 methods ***/
   2498 static inline HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
   2499     return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist);
   2500 }
   2501 static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This,IDWriteFontSet1 **fontset) {
   2502     return This->lpVtbl->GetFontSet(This,fontset);
   2503 }
   2504 #endif
   2505 #endif
   2506 
   2507 #endif
   2508 
   2509 
   2510 #endif  /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */
   2511 
   2512 /*****************************************************************************
   2513  * IDWriteFontCollection1 interface
   2514  */
   2515 #ifndef __IDWriteFontCollection1_INTERFACE_DEFINED__
   2516 #define __IDWriteFontCollection1_INTERFACE_DEFINED__
   2517 
   2518 DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c);
   2519 #if defined(__cplusplus) && !defined(CINTERFACE)
   2520 MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116c")
   2521 IDWriteFontCollection1 : public IDWriteFontCollection
   2522 {
   2523     virtual HRESULT STDMETHODCALLTYPE GetFontSet(
   2524         IDWriteFontSet **fontset) = 0;
   2525 
   2526     virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
   2527         UINT32 index,
   2528         IDWriteFontFamily1 **family) = 0;
   2529 
   2530 };
   2531 #ifdef __CRT_UUID_DECL
   2532 __CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c)
   2533 #endif
   2534 #else
   2535 typedef struct IDWriteFontCollection1Vtbl {
   2536     BEGIN_INTERFACE
   2537 
   2538     /*** IUnknown methods ***/
   2539     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2540         IDWriteFontCollection1 *This,
   2541         REFIID riid,
   2542         void **ppvObject);
   2543 
   2544     ULONG (STDMETHODCALLTYPE *AddRef)(
   2545         IDWriteFontCollection1 *This);
   2546 
   2547     ULONG (STDMETHODCALLTYPE *Release)(
   2548         IDWriteFontCollection1 *This);
   2549 
   2550     /*** IDWriteFontCollection methods ***/
   2551     UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
   2552         IDWriteFontCollection1 *This);
   2553 
   2554     HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
   2555         IDWriteFontCollection1 *This,
   2556         UINT32 index,
   2557         IDWriteFontFamily **family);
   2558 
   2559     HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
   2560         IDWriteFontCollection1 *This,
   2561         const WCHAR *name,
   2562         UINT32 *index,
   2563         WINBOOL *exists);
   2564 
   2565     HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
   2566         IDWriteFontCollection1 *This,
   2567         IDWriteFontFace *face,
   2568         IDWriteFont **font);
   2569 
   2570     /*** IDWriteFontCollection1 methods ***/
   2571     HRESULT (STDMETHODCALLTYPE *GetFontSet)(
   2572         IDWriteFontCollection1 *This,
   2573         IDWriteFontSet **fontset);
   2574 
   2575     HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
   2576         IDWriteFontCollection1 *This,
   2577         UINT32 index,
   2578         IDWriteFontFamily1 **family);
   2579 
   2580     END_INTERFACE
   2581 } IDWriteFontCollection1Vtbl;
   2582 
   2583 interface IDWriteFontCollection1 {
   2584     CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl;
   2585 };
   2586 
   2587 #ifdef COBJMACROS
   2588 #ifndef WIDL_C_INLINE_WRAPPERS
   2589 /*** IUnknown methods ***/
   2590 #define IDWriteFontCollection1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2591 #define IDWriteFontCollection1_AddRef(This) (This)->lpVtbl->AddRef(This)
   2592 #define IDWriteFontCollection1_Release(This) (This)->lpVtbl->Release(This)
   2593 /*** IDWriteFontCollection methods ***/
   2594 #define IDWriteFontCollection1_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
   2595 #define IDWriteFontCollection1_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
   2596 #define IDWriteFontCollection1_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
   2597 /*** IDWriteFontCollection1 methods ***/
   2598 #define IDWriteFontCollection1_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
   2599 #define IDWriteFontCollection1_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family)
   2600 #else
   2601 /*** IUnknown methods ***/
   2602 static inline HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This,REFIID riid,void **ppvObject) {
   2603     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2604 }
   2605 static inline ULONG IDWriteFontCollection1_AddRef(IDWriteFontCollection1* This) {
   2606     return This->lpVtbl->AddRef(This);
   2607 }
   2608 static inline ULONG IDWriteFontCollection1_Release(IDWriteFontCollection1* This) {
   2609     return This->lpVtbl->Release(This);
   2610 }
   2611 /*** IDWriteFontCollection methods ***/
   2612 static inline UINT32 IDWriteFontCollection1_GetFontFamilyCount(IDWriteFontCollection1* This) {
   2613     return This->lpVtbl->GetFontFamilyCount(This);
   2614 }
   2615 static inline HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
   2616     return This->lpVtbl->FindFamilyName(This,name,index,exists);
   2617 }
   2618 static inline HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This,IDWriteFontFace *face,IDWriteFont **font) {
   2619     return This->lpVtbl->GetFontFromFontFace(This,face,font);
   2620 }
   2621 /*** IDWriteFontCollection1 methods ***/
   2622 static inline HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This,IDWriteFontSet **fontset) {
   2623     return This->lpVtbl->GetFontSet(This,fontset);
   2624 }
   2625 static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This,UINT32 index,IDWriteFontFamily1 **family) {
   2626     return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family);
   2627 }
   2628 #endif
   2629 #endif
   2630 
   2631 #endif
   2632 
   2633 
   2634 #endif  /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */
   2635 
   2636 /*****************************************************************************
   2637  * IDWriteFontCollection2 interface
   2638  */
   2639 #ifndef __IDWriteFontCollection2_INTERFACE_DEFINED__
   2640 #define __IDWriteFontCollection2_INTERFACE_DEFINED__
   2641 
   2642 DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0);
   2643 #if defined(__cplusplus) && !defined(CINTERFACE)
   2644 MIDL_INTERFACE("514039c6-4617-4064-bf8b-92ea83e506e0")
   2645 IDWriteFontCollection2 : public IDWriteFontCollection1
   2646 {
   2647     virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
   2648         UINT32 index,
   2649         IDWriteFontFamily2 **family) = 0;
   2650 
   2651     virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
   2652         const WCHAR *familyname,
   2653         const DWRITE_FONT_AXIS_VALUE *axis_values,
   2654         UINT32 num_values,
   2655         IDWriteFontList2 **fontlist) = 0;
   2656 
   2657     virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel(
   2658         ) = 0;
   2659 
   2660     virtual HRESULT STDMETHODCALLTYPE GetFontSet(
   2661         IDWriteFontSet1 **fontset) = 0;
   2662 
   2663 };
   2664 #ifdef __CRT_UUID_DECL
   2665 __CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0)
   2666 #endif
   2667 #else
   2668 typedef struct IDWriteFontCollection2Vtbl {
   2669     BEGIN_INTERFACE
   2670 
   2671     /*** IUnknown methods ***/
   2672     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2673         IDWriteFontCollection2 *This,
   2674         REFIID riid,
   2675         void **ppvObject);
   2676 
   2677     ULONG (STDMETHODCALLTYPE *AddRef)(
   2678         IDWriteFontCollection2 *This);
   2679 
   2680     ULONG (STDMETHODCALLTYPE *Release)(
   2681         IDWriteFontCollection2 *This);
   2682 
   2683     /*** IDWriteFontCollection methods ***/
   2684     UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
   2685         IDWriteFontCollection2 *This);
   2686 
   2687     HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
   2688         IDWriteFontCollection2 *This,
   2689         UINT32 index,
   2690         IDWriteFontFamily **family);
   2691 
   2692     HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
   2693         IDWriteFontCollection2 *This,
   2694         const WCHAR *name,
   2695         UINT32 *index,
   2696         WINBOOL *exists);
   2697 
   2698     HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
   2699         IDWriteFontCollection2 *This,
   2700         IDWriteFontFace *face,
   2701         IDWriteFont **font);
   2702 
   2703     /*** IDWriteFontCollection1 methods ***/
   2704     HRESULT (STDMETHODCALLTYPE *GetFontSet)(
   2705         IDWriteFontCollection2 *This,
   2706         IDWriteFontSet **fontset);
   2707 
   2708     HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
   2709         IDWriteFontCollection2 *This,
   2710         UINT32 index,
   2711         IDWriteFontFamily1 **family);
   2712 
   2713     /*** IDWriteFontCollection2 methods ***/
   2714     HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)(
   2715         IDWriteFontCollection2 *This,
   2716         UINT32 index,
   2717         IDWriteFontFamily2 **family);
   2718 
   2719     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   2720         IDWriteFontCollection2 *This,
   2721         const WCHAR *familyname,
   2722         const DWRITE_FONT_AXIS_VALUE *axis_values,
   2723         UINT32 num_values,
   2724         IDWriteFontList2 **fontlist);
   2725 
   2726     DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)(
   2727         IDWriteFontCollection2 *This);
   2728 
   2729     HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)(
   2730         IDWriteFontCollection2 *This,
   2731         IDWriteFontSet1 **fontset);
   2732 
   2733     END_INTERFACE
   2734 } IDWriteFontCollection2Vtbl;
   2735 
   2736 interface IDWriteFontCollection2 {
   2737     CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl;
   2738 };
   2739 
   2740 #ifdef COBJMACROS
   2741 #ifndef WIDL_C_INLINE_WRAPPERS
   2742 /*** IUnknown methods ***/
   2743 #define IDWriteFontCollection2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2744 #define IDWriteFontCollection2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2745 #define IDWriteFontCollection2_Release(This) (This)->lpVtbl->Release(This)
   2746 /*** IDWriteFontCollection methods ***/
   2747 #define IDWriteFontCollection2_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
   2748 #define IDWriteFontCollection2_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
   2749 #define IDWriteFontCollection2_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
   2750 /*** IDWriteFontCollection1 methods ***/
   2751 /*** IDWriteFontCollection2 methods ***/
   2752 #define IDWriteFontCollection2_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family)
   2753 #define IDWriteFontCollection2_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist)
   2754 #define IDWriteFontCollection2_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This)
   2755 #define IDWriteFontCollection2_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset)
   2756 #else
   2757 /*** IUnknown methods ***/
   2758 static inline HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This,REFIID riid,void **ppvObject) {
   2759     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2760 }
   2761 static inline ULONG IDWriteFontCollection2_AddRef(IDWriteFontCollection2* This) {
   2762     return This->lpVtbl->AddRef(This);
   2763 }
   2764 static inline ULONG IDWriteFontCollection2_Release(IDWriteFontCollection2* This) {
   2765     return This->lpVtbl->Release(This);
   2766 }
   2767 /*** IDWriteFontCollection methods ***/
   2768 static inline UINT32 IDWriteFontCollection2_GetFontFamilyCount(IDWriteFontCollection2* This) {
   2769     return This->lpVtbl->GetFontFamilyCount(This);
   2770 }
   2771 static inline HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
   2772     return This->lpVtbl->FindFamilyName(This,name,index,exists);
   2773 }
   2774 static inline HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This,IDWriteFontFace *face,IDWriteFont **font) {
   2775     return This->lpVtbl->GetFontFromFontFace(This,face,font);
   2776 }
   2777 /*** IDWriteFontCollection1 methods ***/
   2778 /*** IDWriteFontCollection2 methods ***/
   2779 static inline HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This,UINT32 index,IDWriteFontFamily2 **family) {
   2780     return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family);
   2781 }
   2782 static inline HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
   2783     return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist);
   2784 }
   2785 static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection2_GetFontFamilyModel(IDWriteFontCollection2* This) {
   2786     return This->lpVtbl->GetFontFamilyModel(This);
   2787 }
   2788 static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This,IDWriteFontSet1 **fontset) {
   2789     return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset);
   2790 }
   2791 #endif
   2792 #endif
   2793 
   2794 #endif
   2795 
   2796 
   2797 #endif  /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */
   2798 
   2799 /*****************************************************************************
   2800  * IDWriteFontCollection3 interface
   2801  */
   2802 #ifndef __IDWriteFontCollection3_INTERFACE_DEFINED__
   2803 #define __IDWriteFontCollection3_INTERFACE_DEFINED__
   2804 
   2805 DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9);
   2806 #if defined(__cplusplus) && !defined(CINTERFACE)
   2807 MIDL_INTERFACE("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9")
   2808 IDWriteFontCollection3 : public IDWriteFontCollection2
   2809 {
   2810     virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent(
   2811         ) = 0;
   2812 
   2813 };
   2814 #ifdef __CRT_UUID_DECL
   2815 __CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9)
   2816 #endif
   2817 #else
   2818 typedef struct IDWriteFontCollection3Vtbl {
   2819     BEGIN_INTERFACE
   2820 
   2821     /*** IUnknown methods ***/
   2822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2823         IDWriteFontCollection3 *This,
   2824         REFIID riid,
   2825         void **ppvObject);
   2826 
   2827     ULONG (STDMETHODCALLTYPE *AddRef)(
   2828         IDWriteFontCollection3 *This);
   2829 
   2830     ULONG (STDMETHODCALLTYPE *Release)(
   2831         IDWriteFontCollection3 *This);
   2832 
   2833     /*** IDWriteFontCollection methods ***/
   2834     UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
   2835         IDWriteFontCollection3 *This);
   2836 
   2837     HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
   2838         IDWriteFontCollection3 *This,
   2839         UINT32 index,
   2840         IDWriteFontFamily **family);
   2841 
   2842     HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
   2843         IDWriteFontCollection3 *This,
   2844         const WCHAR *name,
   2845         UINT32 *index,
   2846         WINBOOL *exists);
   2847 
   2848     HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
   2849         IDWriteFontCollection3 *This,
   2850         IDWriteFontFace *face,
   2851         IDWriteFont **font);
   2852 
   2853     /*** IDWriteFontCollection1 methods ***/
   2854     HRESULT (STDMETHODCALLTYPE *GetFontSet)(
   2855         IDWriteFontCollection3 *This,
   2856         IDWriteFontSet **fontset);
   2857 
   2858     HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
   2859         IDWriteFontCollection3 *This,
   2860         UINT32 index,
   2861         IDWriteFontFamily1 **family);
   2862 
   2863     /*** IDWriteFontCollection2 methods ***/
   2864     HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)(
   2865         IDWriteFontCollection3 *This,
   2866         UINT32 index,
   2867         IDWriteFontFamily2 **family);
   2868 
   2869     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   2870         IDWriteFontCollection3 *This,
   2871         const WCHAR *familyname,
   2872         const DWRITE_FONT_AXIS_VALUE *axis_values,
   2873         UINT32 num_values,
   2874         IDWriteFontList2 **fontlist);
   2875 
   2876     DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)(
   2877         IDWriteFontCollection3 *This);
   2878 
   2879     HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)(
   2880         IDWriteFontCollection3 *This,
   2881         IDWriteFontSet1 **fontset);
   2882 
   2883     /*** IDWriteFontCollection3 methods ***/
   2884     HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
   2885         IDWriteFontCollection3 *This);
   2886 
   2887     END_INTERFACE
   2888 } IDWriteFontCollection3Vtbl;
   2889 
   2890 interface IDWriteFontCollection3 {
   2891     CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl;
   2892 };
   2893 
   2894 #ifdef COBJMACROS
   2895 #ifndef WIDL_C_INLINE_WRAPPERS
   2896 /*** IUnknown methods ***/
   2897 #define IDWriteFontCollection3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2898 #define IDWriteFontCollection3_AddRef(This) (This)->lpVtbl->AddRef(This)
   2899 #define IDWriteFontCollection3_Release(This) (This)->lpVtbl->Release(This)
   2900 /*** IDWriteFontCollection methods ***/
   2901 #define IDWriteFontCollection3_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
   2902 #define IDWriteFontCollection3_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
   2903 #define IDWriteFontCollection3_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
   2904 /*** IDWriteFontCollection1 methods ***/
   2905 /*** IDWriteFontCollection2 methods ***/
   2906 #define IDWriteFontCollection3_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family)
   2907 #define IDWriteFontCollection3_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist)
   2908 #define IDWriteFontCollection3_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This)
   2909 #define IDWriteFontCollection3_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset)
   2910 /*** IDWriteFontCollection3 methods ***/
   2911 #define IDWriteFontCollection3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
   2912 #else
   2913 /*** IUnknown methods ***/
   2914 static inline HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This,REFIID riid,void **ppvObject) {
   2915     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2916 }
   2917 static inline ULONG IDWriteFontCollection3_AddRef(IDWriteFontCollection3* This) {
   2918     return This->lpVtbl->AddRef(This);
   2919 }
   2920 static inline ULONG IDWriteFontCollection3_Release(IDWriteFontCollection3* This) {
   2921     return This->lpVtbl->Release(This);
   2922 }
   2923 /*** IDWriteFontCollection methods ***/
   2924 static inline UINT32 IDWriteFontCollection3_GetFontFamilyCount(IDWriteFontCollection3* This) {
   2925     return This->lpVtbl->GetFontFamilyCount(This);
   2926 }
   2927 static inline HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
   2928     return This->lpVtbl->FindFamilyName(This,name,index,exists);
   2929 }
   2930 static inline HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This,IDWriteFontFace *face,IDWriteFont **font) {
   2931     return This->lpVtbl->GetFontFromFontFace(This,face,font);
   2932 }
   2933 /*** IDWriteFontCollection1 methods ***/
   2934 /*** IDWriteFontCollection2 methods ***/
   2935 static inline HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This,UINT32 index,IDWriteFontFamily2 **family) {
   2936     return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family);
   2937 }
   2938 static inline HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
   2939     return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist);
   2940 }
   2941 static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection3_GetFontFamilyModel(IDWriteFontCollection3* This) {
   2942     return This->lpVtbl->GetFontFamilyModel(This);
   2943 }
   2944 static inline HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This,IDWriteFontSet1 **fontset) {
   2945     return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset);
   2946 }
   2947 /*** IDWriteFontCollection3 methods ***/
   2948 static inline HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollection3* This) {
   2949     return This->lpVtbl->GetExpirationEvent(This);
   2950 }
   2951 #endif
   2952 #endif
   2953 
   2954 #endif
   2955 
   2956 
   2957 #endif  /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */
   2958 
   2959 /*****************************************************************************
   2960  * IDWriteFontFaceReference interface
   2961  */
   2962 #ifndef __IDWriteFontFaceReference_INTERFACE_DEFINED__
   2963 #define __IDWriteFontFaceReference_INTERFACE_DEFINED__
   2964 
   2965 DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd);
   2966 #if defined(__cplusplus) && !defined(CINTERFACE)
   2967 MIDL_INTERFACE("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd")
   2968 IDWriteFontFaceReference : public IUnknown
   2969 {
   2970     virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
   2971         IDWriteFontFace3 **fontface) = 0;
   2972 
   2973     virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations(
   2974         DWRITE_FONT_SIMULATIONS simulations,
   2975         IDWriteFontFace3 **fontface) = 0;
   2976 
   2977     virtual WINBOOL STDMETHODCALLTYPE Equals(
   2978         IDWriteFontFaceReference *reference) = 0;
   2979 
   2980     virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex(
   2981         ) = 0;
   2982 
   2983     virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations(
   2984         ) = 0;
   2985 
   2986     virtual HRESULT STDMETHODCALLTYPE GetFontFile(
   2987         IDWriteFontFile **fontfile) = 0;
   2988 
   2989     virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize(
   2990         ) = 0;
   2991 
   2992     virtual UINT64 STDMETHODCALLTYPE GetFileSize(
   2993         ) = 0;
   2994 
   2995     virtual HRESULT STDMETHODCALLTYPE GetFileTime(
   2996         FILETIME *writetime) = 0;
   2997 
   2998     virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
   2999         ) = 0;
   3000 
   3001     virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest(
   3002         ) = 0;
   3003 
   3004     virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest(
   3005         const WCHAR *chars,
   3006         UINT32 count) = 0;
   3007 
   3008     virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest(
   3009         const UINT16 *glyphs,
   3010         UINT32 count) = 0;
   3011 
   3012     virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest(
   3013         UINT64 offset,
   3014         UINT64 size) = 0;
   3015 
   3016 };
   3017 #ifdef __CRT_UUID_DECL
   3018 __CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd)
   3019 #endif
   3020 #else
   3021 typedef struct IDWriteFontFaceReferenceVtbl {
   3022     BEGIN_INTERFACE
   3023 
   3024     /*** IUnknown methods ***/
   3025     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3026         IDWriteFontFaceReference *This,
   3027         REFIID riid,
   3028         void **ppvObject);
   3029 
   3030     ULONG (STDMETHODCALLTYPE *AddRef)(
   3031         IDWriteFontFaceReference *This);
   3032 
   3033     ULONG (STDMETHODCALLTYPE *Release)(
   3034         IDWriteFontFaceReference *This);
   3035 
   3036     /*** IDWriteFontFaceReference methods ***/
   3037     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   3038         IDWriteFontFaceReference *This,
   3039         IDWriteFontFace3 **fontface);
   3040 
   3041     HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)(
   3042         IDWriteFontFaceReference *This,
   3043         DWRITE_FONT_SIMULATIONS simulations,
   3044         IDWriteFontFace3 **fontface);
   3045 
   3046     WINBOOL (STDMETHODCALLTYPE *Equals)(
   3047         IDWriteFontFaceReference *This,
   3048         IDWriteFontFaceReference *reference);
   3049 
   3050     UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
   3051         IDWriteFontFaceReference *This);
   3052 
   3053     DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
   3054         IDWriteFontFaceReference *This);
   3055 
   3056     HRESULT (STDMETHODCALLTYPE *GetFontFile)(
   3057         IDWriteFontFaceReference *This,
   3058         IDWriteFontFile **fontfile);
   3059 
   3060     UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)(
   3061         IDWriteFontFaceReference *This);
   3062 
   3063     UINT64 (STDMETHODCALLTYPE *GetFileSize)(
   3064         IDWriteFontFaceReference *This);
   3065 
   3066     HRESULT (STDMETHODCALLTYPE *GetFileTime)(
   3067         IDWriteFontFaceReference *This,
   3068         FILETIME *writetime);
   3069 
   3070     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
   3071         IDWriteFontFaceReference *This);
   3072 
   3073     HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)(
   3074         IDWriteFontFaceReference *This);
   3075 
   3076     HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)(
   3077         IDWriteFontFaceReference *This,
   3078         const WCHAR *chars,
   3079         UINT32 count);
   3080 
   3081     HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)(
   3082         IDWriteFontFaceReference *This,
   3083         const UINT16 *glyphs,
   3084         UINT32 count);
   3085 
   3086     HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)(
   3087         IDWriteFontFaceReference *This,
   3088         UINT64 offset,
   3089         UINT64 size);
   3090 
   3091     END_INTERFACE
   3092 } IDWriteFontFaceReferenceVtbl;
   3093 
   3094 interface IDWriteFontFaceReference {
   3095     CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl;
   3096 };
   3097 
   3098 #ifdef COBJMACROS
   3099 #ifndef WIDL_C_INLINE_WRAPPERS
   3100 /*** IUnknown methods ***/
   3101 #define IDWriteFontFaceReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3102 #define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This)
   3103 #define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This)
   3104 /*** IDWriteFontFaceReference methods ***/
   3105 #define IDWriteFontFaceReference_CreateFontFace(This,fontface) (This)->lpVtbl->CreateFontFace(This,fontface)
   3106 #define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface)
   3107 #define IDWriteFontFaceReference_Equals(This,reference) (This)->lpVtbl->Equals(This,reference)
   3108 #define IDWriteFontFaceReference_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
   3109 #define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
   3110 #define IDWriteFontFaceReference_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
   3111 #define IDWriteFontFaceReference_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This)
   3112 #define IDWriteFontFaceReference_GetFileSize(This) (This)->lpVtbl->GetFileSize(This)
   3113 #define IDWriteFontFaceReference_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime)
   3114 #define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This)
   3115 #define IDWriteFontFaceReference_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This)
   3116 #define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count)
   3117 #define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count)
   3118 #define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size)
   3119 #else
   3120 /*** IUnknown methods ***/
   3121 static inline HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This,REFIID riid,void **ppvObject) {
   3122     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3123 }
   3124 static inline ULONG IDWriteFontFaceReference_AddRef(IDWriteFontFaceReference* This) {
   3125     return This->lpVtbl->AddRef(This);
   3126 }
   3127 static inline ULONG IDWriteFontFaceReference_Release(IDWriteFontFaceReference* This) {
   3128     return This->lpVtbl->Release(This);
   3129 }
   3130 /*** IDWriteFontFaceReference methods ***/
   3131 static inline HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This,IDWriteFontFace3 **fontface) {
   3132     return This->lpVtbl->CreateFontFace(This,fontface);
   3133 }
   3134 static inline HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) {
   3135     return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface);
   3136 }
   3137 static inline WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This,IDWriteFontFaceReference *reference) {
   3138     return This->lpVtbl->Equals(This,reference);
   3139 }
   3140 static inline UINT32 IDWriteFontFaceReference_GetFontFaceIndex(IDWriteFontFaceReference* This) {
   3141     return This->lpVtbl->GetFontFaceIndex(This);
   3142 }
   3143 static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference_GetSimulations(IDWriteFontFaceReference* This) {
   3144     return This->lpVtbl->GetSimulations(This);
   3145 }
   3146 static inline HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This,IDWriteFontFile **fontfile) {
   3147     return This->lpVtbl->GetFontFile(This,fontfile);
   3148 }
   3149 static inline UINT64 IDWriteFontFaceReference_GetLocalFileSize(IDWriteFontFaceReference* This) {
   3150     return This->lpVtbl->GetLocalFileSize(This);
   3151 }
   3152 static inline UINT64 IDWriteFontFaceReference_GetFileSize(IDWriteFontFaceReference* This) {
   3153     return This->lpVtbl->GetFileSize(This);
   3154 }
   3155 static inline HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This,FILETIME *writetime) {
   3156     return This->lpVtbl->GetFileTime(This,writetime);
   3157 }
   3158 static inline DWRITE_LOCALITY IDWriteFontFaceReference_GetLocality(IDWriteFontFaceReference* This) {
   3159     return This->lpVtbl->GetLocality(This);
   3160 }
   3161 static inline HRESULT IDWriteFontFaceReference_EnqueueFontDownloadRequest(IDWriteFontFaceReference* This) {
   3162     return This->lpVtbl->EnqueueFontDownloadRequest(This);
   3163 }
   3164 static inline HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This,const WCHAR *chars,UINT32 count) {
   3165     return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count);
   3166 }
   3167 static inline HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This,const UINT16 *glyphs,UINT32 count) {
   3168     return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count);
   3169 }
   3170 static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This,UINT64 offset,UINT64 size) {
   3171     return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size);
   3172 }
   3173 #endif
   3174 #endif
   3175 
   3176 #endif
   3177 
   3178 
   3179 #endif  /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */
   3180 
   3181 /*****************************************************************************
   3182  * IDWriteFontFaceReference1 interface
   3183  */
   3184 #ifndef __IDWriteFontFaceReference1_INTERFACE_DEFINED__
   3185 #define __IDWriteFontFaceReference1_INTERFACE_DEFINED__
   3186 
   3187 DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a);
   3188 #if defined(__cplusplus) && !defined(CINTERFACE)
   3189 MIDL_INTERFACE("c081fe77-2fd1-41ac-a5a3-34983c4ba61a")
   3190 IDWriteFontFaceReference1 : public IDWriteFontFaceReference
   3191 {
   3192     virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
   3193         IDWriteFontFace5 **fontface) = 0;
   3194 
   3195     virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
   3196         ) = 0;
   3197 
   3198     virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
   3199         DWRITE_FONT_AXIS_VALUE *values,
   3200         UINT32 num_values) = 0;
   3201 
   3202 };
   3203 #ifdef __CRT_UUID_DECL
   3204 __CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a)
   3205 #endif
   3206 #else
   3207 typedef struct IDWriteFontFaceReference1Vtbl {
   3208     BEGIN_INTERFACE
   3209 
   3210     /*** IUnknown methods ***/
   3211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3212         IDWriteFontFaceReference1 *This,
   3213         REFIID riid,
   3214         void **ppvObject);
   3215 
   3216     ULONG (STDMETHODCALLTYPE *AddRef)(
   3217         IDWriteFontFaceReference1 *This);
   3218 
   3219     ULONG (STDMETHODCALLTYPE *Release)(
   3220         IDWriteFontFaceReference1 *This);
   3221 
   3222     /*** IDWriteFontFaceReference methods ***/
   3223     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   3224         IDWriteFontFaceReference1 *This,
   3225         IDWriteFontFace3 **fontface);
   3226 
   3227     HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)(
   3228         IDWriteFontFaceReference1 *This,
   3229         DWRITE_FONT_SIMULATIONS simulations,
   3230         IDWriteFontFace3 **fontface);
   3231 
   3232     WINBOOL (STDMETHODCALLTYPE *Equals)(
   3233         IDWriteFontFaceReference1 *This,
   3234         IDWriteFontFaceReference *reference);
   3235 
   3236     UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
   3237         IDWriteFontFaceReference1 *This);
   3238 
   3239     DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
   3240         IDWriteFontFaceReference1 *This);
   3241 
   3242     HRESULT (STDMETHODCALLTYPE *GetFontFile)(
   3243         IDWriteFontFaceReference1 *This,
   3244         IDWriteFontFile **fontfile);
   3245 
   3246     UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)(
   3247         IDWriteFontFaceReference1 *This);
   3248 
   3249     UINT64 (STDMETHODCALLTYPE *GetFileSize)(
   3250         IDWriteFontFaceReference1 *This);
   3251 
   3252     HRESULT (STDMETHODCALLTYPE *GetFileTime)(
   3253         IDWriteFontFaceReference1 *This,
   3254         FILETIME *writetime);
   3255 
   3256     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
   3257         IDWriteFontFaceReference1 *This);
   3258 
   3259     HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)(
   3260         IDWriteFontFaceReference1 *This);
   3261 
   3262     HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)(
   3263         IDWriteFontFaceReference1 *This,
   3264         const WCHAR *chars,
   3265         UINT32 count);
   3266 
   3267     HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)(
   3268         IDWriteFontFaceReference1 *This,
   3269         const UINT16 *glyphs,
   3270         UINT32 count);
   3271 
   3272     HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)(
   3273         IDWriteFontFaceReference1 *This,
   3274         UINT64 offset,
   3275         UINT64 size);
   3276 
   3277     /*** IDWriteFontFaceReference1 methods ***/
   3278     HRESULT (STDMETHODCALLTYPE *IDWriteFontFaceReference1_CreateFontFace)(
   3279         IDWriteFontFaceReference1 *This,
   3280         IDWriteFontFace5 **fontface);
   3281 
   3282     UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
   3283         IDWriteFontFaceReference1 *This);
   3284 
   3285     HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
   3286         IDWriteFontFaceReference1 *This,
   3287         DWRITE_FONT_AXIS_VALUE *values,
   3288         UINT32 num_values);
   3289 
   3290     END_INTERFACE
   3291 } IDWriteFontFaceReference1Vtbl;
   3292 
   3293 interface IDWriteFontFaceReference1 {
   3294     CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl;
   3295 };
   3296 
   3297 #ifdef COBJMACROS
   3298 #ifndef WIDL_C_INLINE_WRAPPERS
   3299 /*** IUnknown methods ***/
   3300 #define IDWriteFontFaceReference1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3301 #define IDWriteFontFaceReference1_AddRef(This) (This)->lpVtbl->AddRef(This)
   3302 #define IDWriteFontFaceReference1_Release(This) (This)->lpVtbl->Release(This)
   3303 /*** IDWriteFontFaceReference methods ***/
   3304 #define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface)
   3305 #define IDWriteFontFaceReference1_Equals(This,reference) (This)->lpVtbl->Equals(This,reference)
   3306 #define IDWriteFontFaceReference1_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
   3307 #define IDWriteFontFaceReference1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
   3308 #define IDWriteFontFaceReference1_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
   3309 #define IDWriteFontFaceReference1_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This)
   3310 #define IDWriteFontFaceReference1_GetFileSize(This) (This)->lpVtbl->GetFileSize(This)
   3311 #define IDWriteFontFaceReference1_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime)
   3312 #define IDWriteFontFaceReference1_GetLocality(This) (This)->lpVtbl->GetLocality(This)
   3313 #define IDWriteFontFaceReference1_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This)
   3314 #define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count)
   3315 #define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count)
   3316 #define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size)
   3317 /*** IDWriteFontFaceReference1 methods ***/
   3318 #define IDWriteFontFaceReference1_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface)
   3319 #define IDWriteFontFaceReference1_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
   3320 #define IDWriteFontFaceReference1_GetFontAxisValues(This,values,num_values) (This)->lpVtbl->GetFontAxisValues(This,values,num_values)
   3321 #else
   3322 /*** IUnknown methods ***/
   3323 static inline HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This,REFIID riid,void **ppvObject) {
   3324     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3325 }
   3326 static inline ULONG IDWriteFontFaceReference1_AddRef(IDWriteFontFaceReference1* This) {
   3327     return This->lpVtbl->AddRef(This);
   3328 }
   3329 static inline ULONG IDWriteFontFaceReference1_Release(IDWriteFontFaceReference1* This) {
   3330     return This->lpVtbl->Release(This);
   3331 }
   3332 /*** IDWriteFontFaceReference methods ***/
   3333 static inline HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) {
   3334     return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface);
   3335 }
   3336 static inline WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This,IDWriteFontFaceReference *reference) {
   3337     return This->lpVtbl->Equals(This,reference);
   3338 }
   3339 static inline UINT32 IDWriteFontFaceReference1_GetFontFaceIndex(IDWriteFontFaceReference1* This) {
   3340     return This->lpVtbl->GetFontFaceIndex(This);
   3341 }
   3342 static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference1_GetSimulations(IDWriteFontFaceReference1* This) {
   3343     return This->lpVtbl->GetSimulations(This);
   3344 }
   3345 static inline HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This,IDWriteFontFile **fontfile) {
   3346     return This->lpVtbl->GetFontFile(This,fontfile);
   3347 }
   3348 static inline UINT64 IDWriteFontFaceReference1_GetLocalFileSize(IDWriteFontFaceReference1* This) {
   3349     return This->lpVtbl->GetLocalFileSize(This);
   3350 }
   3351 static inline UINT64 IDWriteFontFaceReference1_GetFileSize(IDWriteFontFaceReference1* This) {
   3352     return This->lpVtbl->GetFileSize(This);
   3353 }
   3354 static inline HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This,FILETIME *writetime) {
   3355     return This->lpVtbl->GetFileTime(This,writetime);
   3356 }
   3357 static inline DWRITE_LOCALITY IDWriteFontFaceReference1_GetLocality(IDWriteFontFaceReference1* This) {
   3358     return This->lpVtbl->GetLocality(This);
   3359 }
   3360 static inline HRESULT IDWriteFontFaceReference1_EnqueueFontDownloadRequest(IDWriteFontFaceReference1* This) {
   3361     return This->lpVtbl->EnqueueFontDownloadRequest(This);
   3362 }
   3363 static inline HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This,const WCHAR *chars,UINT32 count) {
   3364     return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count);
   3365 }
   3366 static inline HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This,const UINT16 *glyphs,UINT32 count) {
   3367     return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count);
   3368 }
   3369 static inline HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This,UINT64 offset,UINT64 size) {
   3370     return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size);
   3371 }
   3372 /*** IDWriteFontFaceReference1 methods ***/
   3373 static inline HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This,IDWriteFontFace5 **fontface) {
   3374     return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface);
   3375 }
   3376 static inline UINT32 IDWriteFontFaceReference1_GetFontAxisValueCount(IDWriteFontFaceReference1* This) {
   3377     return This->lpVtbl->GetFontAxisValueCount(This);
   3378 }
   3379 static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) {
   3380     return This->lpVtbl->GetFontAxisValues(This,values,num_values);
   3381 }
   3382 #endif
   3383 #endif
   3384 
   3385 #endif
   3386 
   3387 
   3388 #endif  /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */
   3389 
   3390 /*****************************************************************************
   3391  * IDWriteFontList1 interface
   3392  */
   3393 #ifndef __IDWriteFontList1_INTERFACE_DEFINED__
   3394 #define __IDWriteFontList1_INTERFACE_DEFINED__
   3395 
   3396 DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde);
   3397 #if defined(__cplusplus) && !defined(CINTERFACE)
   3398 MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7ade")
   3399 IDWriteFontList1 : public IDWriteFontList
   3400 {
   3401     virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
   3402         UINT32 index) = 0;
   3403 
   3404     virtual HRESULT STDMETHODCALLTYPE GetFont(
   3405         UINT32 index,
   3406         IDWriteFont3 **font) = 0;
   3407 
   3408     virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
   3409         UINT32 index,
   3410         IDWriteFontFaceReference **reference) = 0;
   3411 
   3412 };
   3413 #ifdef __CRT_UUID_DECL
   3414 __CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde)
   3415 #endif
   3416 #else
   3417 typedef struct IDWriteFontList1Vtbl {
   3418     BEGIN_INTERFACE
   3419 
   3420     /*** IUnknown methods ***/
   3421     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3422         IDWriteFontList1 *This,
   3423         REFIID riid,
   3424         void **ppvObject);
   3425 
   3426     ULONG (STDMETHODCALLTYPE *AddRef)(
   3427         IDWriteFontList1 *This);
   3428 
   3429     ULONG (STDMETHODCALLTYPE *Release)(
   3430         IDWriteFontList1 *This);
   3431 
   3432     /*** IDWriteFontList methods ***/
   3433     HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
   3434         IDWriteFontList1 *This,
   3435         IDWriteFontCollection **collection);
   3436 
   3437     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   3438         IDWriteFontList1 *This);
   3439 
   3440     HRESULT (STDMETHODCALLTYPE *GetFont)(
   3441         IDWriteFontList1 *This,
   3442         UINT32 index,
   3443         IDWriteFont **font);
   3444 
   3445     /*** IDWriteFontList1 methods ***/
   3446     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
   3447         IDWriteFontList1 *This,
   3448         UINT32 index);
   3449 
   3450     HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)(
   3451         IDWriteFontList1 *This,
   3452         UINT32 index,
   3453         IDWriteFont3 **font);
   3454 
   3455     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   3456         IDWriteFontList1 *This,
   3457         UINT32 index,
   3458         IDWriteFontFaceReference **reference);
   3459 
   3460     END_INTERFACE
   3461 } IDWriteFontList1Vtbl;
   3462 
   3463 interface IDWriteFontList1 {
   3464     CONST_VTBL IDWriteFontList1Vtbl* lpVtbl;
   3465 };
   3466 
   3467 #ifdef COBJMACROS
   3468 #ifndef WIDL_C_INLINE_WRAPPERS
   3469 /*** IUnknown methods ***/
   3470 #define IDWriteFontList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3471 #define IDWriteFontList1_AddRef(This) (This)->lpVtbl->AddRef(This)
   3472 #define IDWriteFontList1_Release(This) (This)->lpVtbl->Release(This)
   3473 /*** IDWriteFontList methods ***/
   3474 #define IDWriteFontList1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
   3475 #define IDWriteFontList1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   3476 /*** IDWriteFontList1 methods ***/
   3477 #define IDWriteFontList1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
   3478 #define IDWriteFontList1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font)
   3479 #define IDWriteFontList1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
   3480 #else
   3481 /*** IUnknown methods ***/
   3482 static inline HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This,REFIID riid,void **ppvObject) {
   3483     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3484 }
   3485 static inline ULONG IDWriteFontList1_AddRef(IDWriteFontList1* This) {
   3486     return This->lpVtbl->AddRef(This);
   3487 }
   3488 static inline ULONG IDWriteFontList1_Release(IDWriteFontList1* This) {
   3489     return This->lpVtbl->Release(This);
   3490 }
   3491 /*** IDWriteFontList methods ***/
   3492 static inline HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This,IDWriteFontCollection **collection) {
   3493     return This->lpVtbl->GetFontCollection(This,collection);
   3494 }
   3495 static inline UINT32 IDWriteFontList1_GetFontCount(IDWriteFontList1* This) {
   3496     return This->lpVtbl->GetFontCount(This);
   3497 }
   3498 /*** IDWriteFontList1 methods ***/
   3499 static inline DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This,UINT32 index) {
   3500     return This->lpVtbl->GetFontLocality(This,index);
   3501 }
   3502 static inline HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This,UINT32 index,IDWriteFont3 **font) {
   3503     return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font);
   3504 }
   3505 static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This,UINT32 index,IDWriteFontFaceReference **reference) {
   3506     return This->lpVtbl->GetFontFaceReference(This,index,reference);
   3507 }
   3508 #endif
   3509 #endif
   3510 
   3511 #endif
   3512 
   3513 
   3514 #endif  /* __IDWriteFontList1_INTERFACE_DEFINED__ */
   3515 
   3516 /*****************************************************************************
   3517  * IDWriteFontList2 interface
   3518  */
   3519 #ifndef __IDWriteFontList2_INTERFACE_DEFINED__
   3520 #define __IDWriteFontList2_INTERFACE_DEFINED__
   3521 
   3522 DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5);
   3523 #if defined(__cplusplus) && !defined(CINTERFACE)
   3524 MIDL_INTERFACE("c0763a34-77af-445a-b735-08c37b0a5bf5")
   3525 IDWriteFontList2 : public IDWriteFontList1
   3526 {
   3527     virtual HRESULT STDMETHODCALLTYPE GetFontSet(
   3528         IDWriteFontSet1 **fontset) = 0;
   3529 
   3530 };
   3531 #ifdef __CRT_UUID_DECL
   3532 __CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5)
   3533 #endif
   3534 #else
   3535 typedef struct IDWriteFontList2Vtbl {
   3536     BEGIN_INTERFACE
   3537 
   3538     /*** IUnknown methods ***/
   3539     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3540         IDWriteFontList2 *This,
   3541         REFIID riid,
   3542         void **ppvObject);
   3543 
   3544     ULONG (STDMETHODCALLTYPE *AddRef)(
   3545         IDWriteFontList2 *This);
   3546 
   3547     ULONG (STDMETHODCALLTYPE *Release)(
   3548         IDWriteFontList2 *This);
   3549 
   3550     /*** IDWriteFontList methods ***/
   3551     HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
   3552         IDWriteFontList2 *This,
   3553         IDWriteFontCollection **collection);
   3554 
   3555     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   3556         IDWriteFontList2 *This);
   3557 
   3558     HRESULT (STDMETHODCALLTYPE *GetFont)(
   3559         IDWriteFontList2 *This,
   3560         UINT32 index,
   3561         IDWriteFont **font);
   3562 
   3563     /*** IDWriteFontList1 methods ***/
   3564     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
   3565         IDWriteFontList2 *This,
   3566         UINT32 index);
   3567 
   3568     HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)(
   3569         IDWriteFontList2 *This,
   3570         UINT32 index,
   3571         IDWriteFont3 **font);
   3572 
   3573     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   3574         IDWriteFontList2 *This,
   3575         UINT32 index,
   3576         IDWriteFontFaceReference **reference);
   3577 
   3578     /*** IDWriteFontList2 methods ***/
   3579     HRESULT (STDMETHODCALLTYPE *GetFontSet)(
   3580         IDWriteFontList2 *This,
   3581         IDWriteFontSet1 **fontset);
   3582 
   3583     END_INTERFACE
   3584 } IDWriteFontList2Vtbl;
   3585 
   3586 interface IDWriteFontList2 {
   3587     CONST_VTBL IDWriteFontList2Vtbl* lpVtbl;
   3588 };
   3589 
   3590 #ifdef COBJMACROS
   3591 #ifndef WIDL_C_INLINE_WRAPPERS
   3592 /*** IUnknown methods ***/
   3593 #define IDWriteFontList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3594 #define IDWriteFontList2_AddRef(This) (This)->lpVtbl->AddRef(This)
   3595 #define IDWriteFontList2_Release(This) (This)->lpVtbl->Release(This)
   3596 /*** IDWriteFontList methods ***/
   3597 #define IDWriteFontList2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
   3598 #define IDWriteFontList2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   3599 /*** IDWriteFontList1 methods ***/
   3600 #define IDWriteFontList2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
   3601 #define IDWriteFontList2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font)
   3602 #define IDWriteFontList2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
   3603 /*** IDWriteFontList2 methods ***/
   3604 #define IDWriteFontList2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
   3605 #else
   3606 /*** IUnknown methods ***/
   3607 static inline HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This,REFIID riid,void **ppvObject) {
   3608     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3609 }
   3610 static inline ULONG IDWriteFontList2_AddRef(IDWriteFontList2* This) {
   3611     return This->lpVtbl->AddRef(This);
   3612 }
   3613 static inline ULONG IDWriteFontList2_Release(IDWriteFontList2* This) {
   3614     return This->lpVtbl->Release(This);
   3615 }
   3616 /*** IDWriteFontList methods ***/
   3617 static inline HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This,IDWriteFontCollection **collection) {
   3618     return This->lpVtbl->GetFontCollection(This,collection);
   3619 }
   3620 static inline UINT32 IDWriteFontList2_GetFontCount(IDWriteFontList2* This) {
   3621     return This->lpVtbl->GetFontCount(This);
   3622 }
   3623 /*** IDWriteFontList1 methods ***/
   3624 static inline DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This,UINT32 index) {
   3625     return This->lpVtbl->GetFontLocality(This,index);
   3626 }
   3627 static inline HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This,UINT32 index,IDWriteFont3 **font) {
   3628     return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font);
   3629 }
   3630 static inline HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This,UINT32 index,IDWriteFontFaceReference **reference) {
   3631     return This->lpVtbl->GetFontFaceReference(This,index,reference);
   3632 }
   3633 /*** IDWriteFontList2 methods ***/
   3634 static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This,IDWriteFontSet1 **fontset) {
   3635     return This->lpVtbl->GetFontSet(This,fontset);
   3636 }
   3637 #endif
   3638 #endif
   3639 
   3640 #endif
   3641 
   3642 
   3643 #endif  /* __IDWriteFontList2_INTERFACE_DEFINED__ */
   3644 
   3645 /*****************************************************************************
   3646  * IDWriteFontSet2 interface
   3647  */
   3648 #ifndef __IDWriteFontSet2_INTERFACE_DEFINED__
   3649 #define __IDWriteFontSet2_INTERFACE_DEFINED__
   3650 
   3651 DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f);
   3652 #if defined(__cplusplus) && !defined(CINTERFACE)
   3653 MIDL_INTERFACE("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f")
   3654 IDWriteFontSet2 : public IDWriteFontSet1
   3655 {
   3656     virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent(
   3657         ) = 0;
   3658 
   3659 };
   3660 #ifdef __CRT_UUID_DECL
   3661 __CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f)
   3662 #endif
   3663 #else
   3664 typedef struct IDWriteFontSet2Vtbl {
   3665     BEGIN_INTERFACE
   3666 
   3667     /*** IUnknown methods ***/
   3668     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3669         IDWriteFontSet2 *This,
   3670         REFIID riid,
   3671         void **ppvObject);
   3672 
   3673     ULONG (STDMETHODCALLTYPE *AddRef)(
   3674         IDWriteFontSet2 *This);
   3675 
   3676     ULONG (STDMETHODCALLTYPE *Release)(
   3677         IDWriteFontSet2 *This);
   3678 
   3679     /*** IDWriteFontSet methods ***/
   3680     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   3681         IDWriteFontSet2 *This);
   3682 
   3683     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   3684         IDWriteFontSet2 *This,
   3685         UINT32 index,
   3686         IDWriteFontFaceReference **reference);
   3687 
   3688     HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
   3689         IDWriteFontSet2 *This,
   3690         IDWriteFontFaceReference *reference,
   3691         UINT32 *index,
   3692         WINBOOL *exists);
   3693 
   3694     HRESULT (STDMETHODCALLTYPE *FindFontFace)(
   3695         IDWriteFontSet2 *This,
   3696         IDWriteFontFace *fontface,
   3697         UINT32 *index,
   3698         WINBOOL *exists);
   3699 
   3700     HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
   3701         IDWriteFontSet2 *This,
   3702         DWRITE_FONT_PROPERTY_ID id,
   3703         IDWriteStringList **values);
   3704 
   3705     HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
   3706         IDWriteFontSet2 *This,
   3707         DWRITE_FONT_PROPERTY_ID id,
   3708         const WCHAR *preferred_locales,
   3709         IDWriteStringList **values);
   3710 
   3711     HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
   3712         IDWriteFontSet2 *This,
   3713         UINT32 index,
   3714         DWRITE_FONT_PROPERTY_ID id,
   3715         WINBOOL *exists,
   3716         IDWriteLocalizedStrings **values);
   3717 
   3718     HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
   3719         IDWriteFontSet2 *This,
   3720         const DWRITE_FONT_PROPERTY *property,
   3721         UINT32 *count);
   3722 
   3723     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
   3724         IDWriteFontSet2 *This,
   3725         const WCHAR *family,
   3726         DWRITE_FONT_WEIGHT weight,
   3727         DWRITE_FONT_STRETCH stretch,
   3728         DWRITE_FONT_STYLE style,
   3729         IDWriteFontSet **fontset);
   3730 
   3731     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   3732         IDWriteFontSet2 *This,
   3733         const DWRITE_FONT_PROPERTY *props,
   3734         UINT32 count,
   3735         IDWriteFontSet **fontset);
   3736 
   3737     /*** IDWriteFontSet1 methods ***/
   3738     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
   3739         IDWriteFontSet2 *This,
   3740         const DWRITE_FONT_PROPERTY *property,
   3741         const DWRITE_FONT_AXIS_VALUE *axis_values,
   3742         UINT32 num_values,
   3743         IDWriteFontSet1 **fontset);
   3744 
   3745     HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
   3746         IDWriteFontSet2 *This,
   3747         IDWriteFontSet1 **fontset);
   3748 
   3749     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
   3750         IDWriteFontSet2 *This,
   3751         const UINT32 *indices,
   3752         UINT32 num_indices,
   3753         IDWriteFontSet1 **fontset);
   3754 
   3755     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
   3756         IDWriteFontSet2 *This,
   3757         const DWRITE_FONT_AXIS_RANGE *axis_ranges,
   3758         UINT32 num_ranges,
   3759         WINBOOL select_any_range,
   3760         IDWriteFontSet1 **fontset);
   3761 
   3762     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
   3763         IDWriteFontSet2 *This,
   3764         const DWRITE_FONT_PROPERTY *props,
   3765         UINT32 num_properties,
   3766         WINBOOL select_any_property,
   3767         IDWriteFontSet1 **fontset);
   3768 
   3769     HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
   3770         IDWriteFontSet2 *This,
   3771         const DWRITE_FONT_AXIS_RANGE *ranges,
   3772         UINT32 num_ranges,
   3773         WINBOOL select_any_range,
   3774         UINT32 *indices,
   3775         UINT32 num_indices,
   3776         UINT32 *actual_num_indices);
   3777 
   3778     HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
   3779         IDWriteFontSet2 *This,
   3780         const DWRITE_FONT_PROPERTY *props,
   3781         UINT32 num_properties,
   3782         WINBOOL select_any_range,
   3783         UINT32 *indices,
   3784         UINT32 num_indices,
   3785         UINT32 *actual_num_indices);
   3786 
   3787     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
   3788         IDWriteFontSet2 *This,
   3789         UINT32 font_index,
   3790         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   3791         UINT32 num_ranges,
   3792         UINT32 *actual_num_ranges);
   3793 
   3794     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
   3795         IDWriteFontSet2 *This,
   3796         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   3797         UINT32 num_ranges,
   3798         UINT32 *actual_num_ranges);
   3799 
   3800     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
   3801         IDWriteFontSet2 *This,
   3802         UINT32 index,
   3803         IDWriteFontFaceReference1 **reference);
   3804 
   3805     HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
   3806         IDWriteFontSet2 *This,
   3807         UINT32 index,
   3808         IDWriteFontResource **resource);
   3809 
   3810     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   3811         IDWriteFontSet2 *This,
   3812         UINT32 index,
   3813         IDWriteFontFace5 **fontface);
   3814 
   3815     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
   3816         IDWriteFontSet2 *This,
   3817         UINT32 index);
   3818 
   3819     /*** IDWriteFontSet2 methods ***/
   3820     HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
   3821         IDWriteFontSet2 *This);
   3822 
   3823     END_INTERFACE
   3824 } IDWriteFontSet2Vtbl;
   3825 
   3826 interface IDWriteFontSet2 {
   3827     CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl;
   3828 };
   3829 
   3830 #ifdef COBJMACROS
   3831 #ifndef WIDL_C_INLINE_WRAPPERS
   3832 /*** IUnknown methods ***/
   3833 #define IDWriteFontSet2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3834 #define IDWriteFontSet2_AddRef(This) (This)->lpVtbl->AddRef(This)
   3835 #define IDWriteFontSet2_Release(This) (This)->lpVtbl->Release(This)
   3836 /*** IDWriteFontSet methods ***/
   3837 #define IDWriteFontSet2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   3838 #define IDWriteFontSet2_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
   3839 #define IDWriteFontSet2_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
   3840 #define IDWriteFontSet2_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
   3841 #define IDWriteFontSet2_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
   3842 #define IDWriteFontSet2_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
   3843 #define IDWriteFontSet2_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
   3844 #define IDWriteFontSet2_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
   3845 /*** IDWriteFontSet1 methods ***/
   3846 #define IDWriteFontSet2_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
   3847 #define IDWriteFontSet2_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
   3848 #define IDWriteFontSet2_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
   3849 #define IDWriteFontSet2_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
   3850 #define IDWriteFontSet2_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
   3851 #define IDWriteFontSet2_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
   3852 #define IDWriteFontSet2_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
   3853 #define IDWriteFontSet2_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
   3854 #define IDWriteFontSet2_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
   3855 #define IDWriteFontSet2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
   3856 #define IDWriteFontSet2_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
   3857 #define IDWriteFontSet2_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
   3858 #define IDWriteFontSet2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
   3859 /*** IDWriteFontSet2 methods ***/
   3860 #define IDWriteFontSet2_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
   3861 #else
   3862 /*** IUnknown methods ***/
   3863 static inline HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This,REFIID riid,void **ppvObject) {
   3864     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3865 }
   3866 static inline ULONG IDWriteFontSet2_AddRef(IDWriteFontSet2* This) {
   3867     return This->lpVtbl->AddRef(This);
   3868 }
   3869 static inline ULONG IDWriteFontSet2_Release(IDWriteFontSet2* This) {
   3870     return This->lpVtbl->Release(This);
   3871 }
   3872 /*** IDWriteFontSet methods ***/
   3873 static inline UINT32 IDWriteFontSet2_GetFontCount(IDWriteFontSet2* This) {
   3874     return This->lpVtbl->GetFontCount(This);
   3875 }
   3876 static inline HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
   3877     return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
   3878 }
   3879 static inline HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
   3880     return This->lpVtbl->FindFontFace(This,fontface,index,exists);
   3881 }
   3882 static inline HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
   3883     return This->lpVtbl->GetPropertyValues__(This,id,values);
   3884 }
   3885 static inline HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
   3886     return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
   3887 }
   3888 static inline HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
   3889     return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
   3890 }
   3891 static inline HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
   3892     return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
   3893 }
   3894 static inline HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
   3895     return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
   3896 }
   3897 /*** IDWriteFontSet1 methods ***/
   3898 static inline HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
   3899     return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
   3900 }
   3901 static inline HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This,IDWriteFontSet1 **fontset) {
   3902     return This->lpVtbl->GetFirstFontResources(This,fontset);
   3903 }
   3904 static inline HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
   3905     return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
   3906 }
   3907 static inline HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
   3908     return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
   3909 }
   3910 static inline HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
   3911     return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
   3912 }
   3913 static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
   3914     return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
   3915 }
   3916 static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
   3917     return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
   3918 }
   3919 static inline HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
   3920     return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
   3921 }
   3922 static inline HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
   3923     return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
   3924 }
   3925 static inline HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
   3926     return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
   3927 }
   3928 static inline HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This,UINT32 index,IDWriteFontResource **resource) {
   3929     return This->lpVtbl->CreateFontResource(This,index,resource);
   3930 }
   3931 static inline HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This,UINT32 index,IDWriteFontFace5 **fontface) {
   3932     return This->lpVtbl->CreateFontFace(This,index,fontface);
   3933 }
   3934 static inline DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This,UINT32 index) {
   3935     return This->lpVtbl->GetFontLocality(This,index);
   3936 }
   3937 /*** IDWriteFontSet2 methods ***/
   3938 static inline HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) {
   3939     return This->lpVtbl->GetExpirationEvent(This);
   3940 }
   3941 #endif
   3942 #endif
   3943 
   3944 #endif
   3945 
   3946 
   3947 #endif  /* __IDWriteFontSet2_INTERFACE_DEFINED__ */
   3948 
   3949 /*****************************************************************************
   3950  * IDWriteFontSet3 interface
   3951  */
   3952 #ifndef __IDWriteFontSet3_INTERFACE_DEFINED__
   3953 #define __IDWriteFontSet3_INTERFACE_DEFINED__
   3954 
   3955 DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90);
   3956 #if defined(__cplusplus) && !defined(CINTERFACE)
   3957 MIDL_INTERFACE("7c073ef2-a7f4-4045-8c32-8ab8ae640f90")
   3958 IDWriteFontSet3 : public IDWriteFontSet2
   3959 {
   3960     virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType(
   3961         UINT32 index) = 0;
   3962 
   3963     virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength(
   3964         UINT32 index) = 0;
   3965 
   3966     virtual HRESULT STDMETHODCALLTYPE GetFontSourceName(
   3967         UINT32 index,
   3968         WCHAR *buffer,
   3969         UINT32 buffer_size) = 0;
   3970 
   3971 };
   3972 #ifdef __CRT_UUID_DECL
   3973 __CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90)
   3974 #endif
   3975 #else
   3976 typedef struct IDWriteFontSet3Vtbl {
   3977     BEGIN_INTERFACE
   3978 
   3979     /*** IUnknown methods ***/
   3980     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3981         IDWriteFontSet3 *This,
   3982         REFIID riid,
   3983         void **ppvObject);
   3984 
   3985     ULONG (STDMETHODCALLTYPE *AddRef)(
   3986         IDWriteFontSet3 *This);
   3987 
   3988     ULONG (STDMETHODCALLTYPE *Release)(
   3989         IDWriteFontSet3 *This);
   3990 
   3991     /*** IDWriteFontSet methods ***/
   3992     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   3993         IDWriteFontSet3 *This);
   3994 
   3995     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   3996         IDWriteFontSet3 *This,
   3997         UINT32 index,
   3998         IDWriteFontFaceReference **reference);
   3999 
   4000     HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
   4001         IDWriteFontSet3 *This,
   4002         IDWriteFontFaceReference *reference,
   4003         UINT32 *index,
   4004         WINBOOL *exists);
   4005 
   4006     HRESULT (STDMETHODCALLTYPE *FindFontFace)(
   4007         IDWriteFontSet3 *This,
   4008         IDWriteFontFace *fontface,
   4009         UINT32 *index,
   4010         WINBOOL *exists);
   4011 
   4012     HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
   4013         IDWriteFontSet3 *This,
   4014         DWRITE_FONT_PROPERTY_ID id,
   4015         IDWriteStringList **values);
   4016 
   4017     HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
   4018         IDWriteFontSet3 *This,
   4019         DWRITE_FONT_PROPERTY_ID id,
   4020         const WCHAR *preferred_locales,
   4021         IDWriteStringList **values);
   4022 
   4023     HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
   4024         IDWriteFontSet3 *This,
   4025         UINT32 index,
   4026         DWRITE_FONT_PROPERTY_ID id,
   4027         WINBOOL *exists,
   4028         IDWriteLocalizedStrings **values);
   4029 
   4030     HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
   4031         IDWriteFontSet3 *This,
   4032         const DWRITE_FONT_PROPERTY *property,
   4033         UINT32 *count);
   4034 
   4035     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
   4036         IDWriteFontSet3 *This,
   4037         const WCHAR *family,
   4038         DWRITE_FONT_WEIGHT weight,
   4039         DWRITE_FONT_STRETCH stretch,
   4040         DWRITE_FONT_STYLE style,
   4041         IDWriteFontSet **fontset);
   4042 
   4043     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   4044         IDWriteFontSet3 *This,
   4045         const DWRITE_FONT_PROPERTY *props,
   4046         UINT32 count,
   4047         IDWriteFontSet **fontset);
   4048 
   4049     /*** IDWriteFontSet1 methods ***/
   4050     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
   4051         IDWriteFontSet3 *This,
   4052         const DWRITE_FONT_PROPERTY *property,
   4053         const DWRITE_FONT_AXIS_VALUE *axis_values,
   4054         UINT32 num_values,
   4055         IDWriteFontSet1 **fontset);
   4056 
   4057     HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
   4058         IDWriteFontSet3 *This,
   4059         IDWriteFontSet1 **fontset);
   4060 
   4061     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
   4062         IDWriteFontSet3 *This,
   4063         const UINT32 *indices,
   4064         UINT32 num_indices,
   4065         IDWriteFontSet1 **fontset);
   4066 
   4067     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
   4068         IDWriteFontSet3 *This,
   4069         const DWRITE_FONT_AXIS_RANGE *axis_ranges,
   4070         UINT32 num_ranges,
   4071         WINBOOL select_any_range,
   4072         IDWriteFontSet1 **fontset);
   4073 
   4074     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
   4075         IDWriteFontSet3 *This,
   4076         const DWRITE_FONT_PROPERTY *props,
   4077         UINT32 num_properties,
   4078         WINBOOL select_any_property,
   4079         IDWriteFontSet1 **fontset);
   4080 
   4081     HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
   4082         IDWriteFontSet3 *This,
   4083         const DWRITE_FONT_AXIS_RANGE *ranges,
   4084         UINT32 num_ranges,
   4085         WINBOOL select_any_range,
   4086         UINT32 *indices,
   4087         UINT32 num_indices,
   4088         UINT32 *actual_num_indices);
   4089 
   4090     HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
   4091         IDWriteFontSet3 *This,
   4092         const DWRITE_FONT_PROPERTY *props,
   4093         UINT32 num_properties,
   4094         WINBOOL select_any_range,
   4095         UINT32 *indices,
   4096         UINT32 num_indices,
   4097         UINT32 *actual_num_indices);
   4098 
   4099     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
   4100         IDWriteFontSet3 *This,
   4101         UINT32 font_index,
   4102         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   4103         UINT32 num_ranges,
   4104         UINT32 *actual_num_ranges);
   4105 
   4106     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
   4107         IDWriteFontSet3 *This,
   4108         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   4109         UINT32 num_ranges,
   4110         UINT32 *actual_num_ranges);
   4111 
   4112     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
   4113         IDWriteFontSet3 *This,
   4114         UINT32 index,
   4115         IDWriteFontFaceReference1 **reference);
   4116 
   4117     HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
   4118         IDWriteFontSet3 *This,
   4119         UINT32 index,
   4120         IDWriteFontResource **resource);
   4121 
   4122     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   4123         IDWriteFontSet3 *This,
   4124         UINT32 index,
   4125         IDWriteFontFace5 **fontface);
   4126 
   4127     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
   4128         IDWriteFontSet3 *This,
   4129         UINT32 index);
   4130 
   4131     /*** IDWriteFontSet2 methods ***/
   4132     HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
   4133         IDWriteFontSet3 *This);
   4134 
   4135     /*** IDWriteFontSet3 methods ***/
   4136     DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)(
   4137         IDWriteFontSet3 *This,
   4138         UINT32 index);
   4139 
   4140     UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)(
   4141         IDWriteFontSet3 *This,
   4142         UINT32 index);
   4143 
   4144     HRESULT (STDMETHODCALLTYPE *GetFontSourceName)(
   4145         IDWriteFontSet3 *This,
   4146         UINT32 index,
   4147         WCHAR *buffer,
   4148         UINT32 buffer_size);
   4149 
   4150     END_INTERFACE
   4151 } IDWriteFontSet3Vtbl;
   4152 
   4153 interface IDWriteFontSet3 {
   4154     CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl;
   4155 };
   4156 
   4157 #ifdef COBJMACROS
   4158 #ifndef WIDL_C_INLINE_WRAPPERS
   4159 /*** IUnknown methods ***/
   4160 #define IDWriteFontSet3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4161 #define IDWriteFontSet3_AddRef(This) (This)->lpVtbl->AddRef(This)
   4162 #define IDWriteFontSet3_Release(This) (This)->lpVtbl->Release(This)
   4163 /*** IDWriteFontSet methods ***/
   4164 #define IDWriteFontSet3_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   4165 #define IDWriteFontSet3_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
   4166 #define IDWriteFontSet3_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
   4167 #define IDWriteFontSet3_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
   4168 #define IDWriteFontSet3_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
   4169 #define IDWriteFontSet3_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
   4170 #define IDWriteFontSet3_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
   4171 #define IDWriteFontSet3_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
   4172 /*** IDWriteFontSet1 methods ***/
   4173 #define IDWriteFontSet3_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
   4174 #define IDWriteFontSet3_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
   4175 #define IDWriteFontSet3_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
   4176 #define IDWriteFontSet3_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
   4177 #define IDWriteFontSet3_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
   4178 #define IDWriteFontSet3_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
   4179 #define IDWriteFontSet3_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
   4180 #define IDWriteFontSet3_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
   4181 #define IDWriteFontSet3_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
   4182 #define IDWriteFontSet3_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
   4183 #define IDWriteFontSet3_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
   4184 #define IDWriteFontSet3_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
   4185 #define IDWriteFontSet3_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
   4186 /*** IDWriteFontSet2 methods ***/
   4187 #define IDWriteFontSet3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
   4188 /*** IDWriteFontSet3 methods ***/
   4189 #define IDWriteFontSet3_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index)
   4190 #define IDWriteFontSet3_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index)
   4191 #define IDWriteFontSet3_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size)
   4192 #else
   4193 /*** IUnknown methods ***/
   4194 static inline HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This,REFIID riid,void **ppvObject) {
   4195     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4196 }
   4197 static inline ULONG IDWriteFontSet3_AddRef(IDWriteFontSet3* This) {
   4198     return This->lpVtbl->AddRef(This);
   4199 }
   4200 static inline ULONG IDWriteFontSet3_Release(IDWriteFontSet3* This) {
   4201     return This->lpVtbl->Release(This);
   4202 }
   4203 /*** IDWriteFontSet methods ***/
   4204 static inline UINT32 IDWriteFontSet3_GetFontCount(IDWriteFontSet3* This) {
   4205     return This->lpVtbl->GetFontCount(This);
   4206 }
   4207 static inline HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
   4208     return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
   4209 }
   4210 static inline HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
   4211     return This->lpVtbl->FindFontFace(This,fontface,index,exists);
   4212 }
   4213 static inline HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
   4214     return This->lpVtbl->GetPropertyValues__(This,id,values);
   4215 }
   4216 static inline HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
   4217     return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
   4218 }
   4219 static inline HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
   4220     return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
   4221 }
   4222 static inline HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
   4223     return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
   4224 }
   4225 static inline HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
   4226     return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
   4227 }
   4228 /*** IDWriteFontSet1 methods ***/
   4229 static inline HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
   4230     return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
   4231 }
   4232 static inline HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This,IDWriteFontSet1 **fontset) {
   4233     return This->lpVtbl->GetFirstFontResources(This,fontset);
   4234 }
   4235 static inline HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
   4236     return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
   4237 }
   4238 static inline HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
   4239     return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
   4240 }
   4241 static inline HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
   4242     return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
   4243 }
   4244 static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
   4245     return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
   4246 }
   4247 static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
   4248     return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
   4249 }
   4250 static inline HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
   4251     return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
   4252 }
   4253 static inline HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
   4254     return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
   4255 }
   4256 static inline HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
   4257     return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
   4258 }
   4259 static inline HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This,UINT32 index,IDWriteFontResource **resource) {
   4260     return This->lpVtbl->CreateFontResource(This,index,resource);
   4261 }
   4262 static inline HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This,UINT32 index,IDWriteFontFace5 **fontface) {
   4263     return This->lpVtbl->CreateFontFace(This,index,fontface);
   4264 }
   4265 static inline DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This,UINT32 index) {
   4266     return This->lpVtbl->GetFontLocality(This,index);
   4267 }
   4268 /*** IDWriteFontSet2 methods ***/
   4269 static inline HANDLE IDWriteFontSet3_GetExpirationEvent(IDWriteFontSet3* This) {
   4270     return This->lpVtbl->GetExpirationEvent(This);
   4271 }
   4272 /*** IDWriteFontSet3 methods ***/
   4273 static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This,UINT32 index) {
   4274     return This->lpVtbl->GetFontSourceType(This,index);
   4275 }
   4276 static inline UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This,UINT32 index) {
   4277     return This->lpVtbl->GetFontSourceNameLength(This,index);
   4278 }
   4279 static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) {
   4280     return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size);
   4281 }
   4282 #endif
   4283 #endif
   4284 
   4285 #endif
   4286 
   4287 
   4288 #endif  /* __IDWriteFontSet3_INTERFACE_DEFINED__ */
   4289 
   4290 /*****************************************************************************
   4291  * IDWriteFontSet4 interface
   4292  */
   4293 #ifndef __IDWriteFontSet4_INTERFACE_DEFINED__
   4294 #define __IDWriteFontSet4_INTERFACE_DEFINED__
   4295 
   4296 DEFINE_GUID(IID_IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82);
   4297 #if defined(__cplusplus) && !defined(CINTERFACE)
   4298 MIDL_INTERFACE("eec175fc-bea9-4c86-8b53-ccbdd7df0c82")
   4299 IDWriteFontSet4 : public IDWriteFontSet3
   4300 {
   4301     virtual UINT32 STDMETHODCALLTYPE ConvertWeightStretchStyleToFontAxisValues(
   4302         const DWRITE_FONT_AXIS_VALUE *input_axis_values,
   4303         UINT32 input_axis_count,
   4304         DWRITE_FONT_WEIGHT weight,
   4305         DWRITE_FONT_STRETCH stretch,
   4306         DWRITE_FONT_STYLE style,
   4307         float size,
   4308         DWRITE_FONT_AXIS_VALUE *output_axis_values) = 0;
   4309 
   4310     virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
   4311         const WCHAR *family_name,
   4312         const DWRITE_FONT_AXIS_VALUE *axis_values,
   4313         UINT32 axis_value_count,
   4314         DWRITE_FONT_SIMULATIONS allowed_simulations,
   4315         IDWriteFontSet4 **fonts) = 0;
   4316 
   4317 };
   4318 #ifdef __CRT_UUID_DECL
   4319 __CRT_UUID_DECL(IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82)
   4320 #endif
   4321 #else
   4322 typedef struct IDWriteFontSet4Vtbl {
   4323     BEGIN_INTERFACE
   4324 
   4325     /*** IUnknown methods ***/
   4326     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4327         IDWriteFontSet4 *This,
   4328         REFIID riid,
   4329         void **ppvObject);
   4330 
   4331     ULONG (STDMETHODCALLTYPE *AddRef)(
   4332         IDWriteFontSet4 *This);
   4333 
   4334     ULONG (STDMETHODCALLTYPE *Release)(
   4335         IDWriteFontSet4 *This);
   4336 
   4337     /*** IDWriteFontSet methods ***/
   4338     UINT32 (STDMETHODCALLTYPE *GetFontCount)(
   4339         IDWriteFontSet4 *This);
   4340 
   4341     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   4342         IDWriteFontSet4 *This,
   4343         UINT32 index,
   4344         IDWriteFontFaceReference **reference);
   4345 
   4346     HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
   4347         IDWriteFontSet4 *This,
   4348         IDWriteFontFaceReference *reference,
   4349         UINT32 *index,
   4350         WINBOOL *exists);
   4351 
   4352     HRESULT (STDMETHODCALLTYPE *FindFontFace)(
   4353         IDWriteFontSet4 *This,
   4354         IDWriteFontFace *fontface,
   4355         UINT32 *index,
   4356         WINBOOL *exists);
   4357 
   4358     HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
   4359         IDWriteFontSet4 *This,
   4360         DWRITE_FONT_PROPERTY_ID id,
   4361         IDWriteStringList **values);
   4362 
   4363     HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
   4364         IDWriteFontSet4 *This,
   4365         DWRITE_FONT_PROPERTY_ID id,
   4366         const WCHAR *preferred_locales,
   4367         IDWriteStringList **values);
   4368 
   4369     HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
   4370         IDWriteFontSet4 *This,
   4371         UINT32 index,
   4372         DWRITE_FONT_PROPERTY_ID id,
   4373         WINBOOL *exists,
   4374         IDWriteLocalizedStrings **values);
   4375 
   4376     HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
   4377         IDWriteFontSet4 *This,
   4378         const DWRITE_FONT_PROPERTY *property,
   4379         UINT32 *count);
   4380 
   4381     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
   4382         IDWriteFontSet4 *This,
   4383         const WCHAR *family,
   4384         DWRITE_FONT_WEIGHT weight,
   4385         DWRITE_FONT_STRETCH stretch,
   4386         DWRITE_FONT_STYLE style,
   4387         IDWriteFontSet **fontset);
   4388 
   4389     HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
   4390         IDWriteFontSet4 *This,
   4391         const DWRITE_FONT_PROPERTY *props,
   4392         UINT32 count,
   4393         IDWriteFontSet **fontset);
   4394 
   4395     /*** IDWriteFontSet1 methods ***/
   4396     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
   4397         IDWriteFontSet4 *This,
   4398         const DWRITE_FONT_PROPERTY *property,
   4399         const DWRITE_FONT_AXIS_VALUE *axis_values,
   4400         UINT32 num_values,
   4401         IDWriteFontSet1 **fontset);
   4402 
   4403     HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
   4404         IDWriteFontSet4 *This,
   4405         IDWriteFontSet1 **fontset);
   4406 
   4407     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
   4408         IDWriteFontSet4 *This,
   4409         const UINT32 *indices,
   4410         UINT32 num_indices,
   4411         IDWriteFontSet1 **fontset);
   4412 
   4413     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
   4414         IDWriteFontSet4 *This,
   4415         const DWRITE_FONT_AXIS_RANGE *axis_ranges,
   4416         UINT32 num_ranges,
   4417         WINBOOL select_any_range,
   4418         IDWriteFontSet1 **fontset);
   4419 
   4420     HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
   4421         IDWriteFontSet4 *This,
   4422         const DWRITE_FONT_PROPERTY *props,
   4423         UINT32 num_properties,
   4424         WINBOOL select_any_property,
   4425         IDWriteFontSet1 **fontset);
   4426 
   4427     HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
   4428         IDWriteFontSet4 *This,
   4429         const DWRITE_FONT_AXIS_RANGE *ranges,
   4430         UINT32 num_ranges,
   4431         WINBOOL select_any_range,
   4432         UINT32 *indices,
   4433         UINT32 num_indices,
   4434         UINT32 *actual_num_indices);
   4435 
   4436     HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
   4437         IDWriteFontSet4 *This,
   4438         const DWRITE_FONT_PROPERTY *props,
   4439         UINT32 num_properties,
   4440         WINBOOL select_any_range,
   4441         UINT32 *indices,
   4442         UINT32 num_indices,
   4443         UINT32 *actual_num_indices);
   4444 
   4445     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
   4446         IDWriteFontSet4 *This,
   4447         UINT32 font_index,
   4448         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   4449         UINT32 num_ranges,
   4450         UINT32 *actual_num_ranges);
   4451 
   4452     HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
   4453         IDWriteFontSet4 *This,
   4454         DWRITE_FONT_AXIS_RANGE *axis_ranges,
   4455         UINT32 num_ranges,
   4456         UINT32 *actual_num_ranges);
   4457 
   4458     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
   4459         IDWriteFontSet4 *This,
   4460         UINT32 index,
   4461         IDWriteFontFaceReference1 **reference);
   4462 
   4463     HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
   4464         IDWriteFontSet4 *This,
   4465         UINT32 index,
   4466         IDWriteFontResource **resource);
   4467 
   4468     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   4469         IDWriteFontSet4 *This,
   4470         UINT32 index,
   4471         IDWriteFontFace5 **fontface);
   4472 
   4473     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
   4474         IDWriteFontSet4 *This,
   4475         UINT32 index);
   4476 
   4477     /*** IDWriteFontSet2 methods ***/
   4478     HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
   4479         IDWriteFontSet4 *This);
   4480 
   4481     /*** IDWriteFontSet3 methods ***/
   4482     DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)(
   4483         IDWriteFontSet4 *This,
   4484         UINT32 index);
   4485 
   4486     UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)(
   4487         IDWriteFontSet4 *This,
   4488         UINT32 index);
   4489 
   4490     HRESULT (STDMETHODCALLTYPE *GetFontSourceName)(
   4491         IDWriteFontSet4 *This,
   4492         UINT32 index,
   4493         WCHAR *buffer,
   4494         UINT32 buffer_size);
   4495 
   4496     /*** IDWriteFontSet4 methods ***/
   4497     UINT32 (STDMETHODCALLTYPE *ConvertWeightStretchStyleToFontAxisValues)(
   4498         IDWriteFontSet4 *This,
   4499         const DWRITE_FONT_AXIS_VALUE *input_axis_values,
   4500         UINT32 input_axis_count,
   4501         DWRITE_FONT_WEIGHT weight,
   4502         DWRITE_FONT_STRETCH stretch,
   4503         DWRITE_FONT_STYLE style,
   4504         float size,
   4505         DWRITE_FONT_AXIS_VALUE *output_axis_values);
   4506 
   4507     HRESULT (STDMETHODCALLTYPE *IDWriteFontSet4_GetMatchingFonts)(
   4508         IDWriteFontSet4 *This,
   4509         const WCHAR *family_name,
   4510         const DWRITE_FONT_AXIS_VALUE *axis_values,
   4511         UINT32 axis_value_count,
   4512         DWRITE_FONT_SIMULATIONS allowed_simulations,
   4513         IDWriteFontSet4 **fonts);
   4514 
   4515     END_INTERFACE
   4516 } IDWriteFontSet4Vtbl;
   4517 
   4518 interface IDWriteFontSet4 {
   4519     CONST_VTBL IDWriteFontSet4Vtbl* lpVtbl;
   4520 };
   4521 
   4522 #ifdef COBJMACROS
   4523 #ifndef WIDL_C_INLINE_WRAPPERS
   4524 /*** IUnknown methods ***/
   4525 #define IDWriteFontSet4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4526 #define IDWriteFontSet4_AddRef(This) (This)->lpVtbl->AddRef(This)
   4527 #define IDWriteFontSet4_Release(This) (This)->lpVtbl->Release(This)
   4528 /*** IDWriteFontSet methods ***/
   4529 #define IDWriteFontSet4_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
   4530 #define IDWriteFontSet4_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
   4531 #define IDWriteFontSet4_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
   4532 #define IDWriteFontSet4_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
   4533 #define IDWriteFontSet4_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
   4534 #define IDWriteFontSet4_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
   4535 #define IDWriteFontSet4_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
   4536 #define IDWriteFontSet4_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
   4537 /*** IDWriteFontSet1 methods ***/
   4538 #define IDWriteFontSet4_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
   4539 #define IDWriteFontSet4_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
   4540 #define IDWriteFontSet4_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
   4541 #define IDWriteFontSet4_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
   4542 #define IDWriteFontSet4_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
   4543 #define IDWriteFontSet4_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
   4544 #define IDWriteFontSet4_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
   4545 #define IDWriteFontSet4_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
   4546 #define IDWriteFontSet4_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
   4547 #define IDWriteFontSet4_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
   4548 #define IDWriteFontSet4_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
   4549 #define IDWriteFontSet4_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
   4550 /*** IDWriteFontSet2 methods ***/
   4551 #define IDWriteFontSet4_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
   4552 /*** IDWriteFontSet3 methods ***/
   4553 #define IDWriteFontSet4_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index)
   4554 #define IDWriteFontSet4_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index)
   4555 #define IDWriteFontSet4_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size)
   4556 /*** IDWriteFontSet4 methods ***/
   4557 #define IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) (This)->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values)
   4558 #define IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) (This)->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts)
   4559 #else
   4560 /*** IUnknown methods ***/
   4561 static inline HRESULT IDWriteFontSet4_QueryInterface(IDWriteFontSet4* This,REFIID riid,void **ppvObject) {
   4562     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4563 }
   4564 static inline ULONG IDWriteFontSet4_AddRef(IDWriteFontSet4* This) {
   4565     return This->lpVtbl->AddRef(This);
   4566 }
   4567 static inline ULONG IDWriteFontSet4_Release(IDWriteFontSet4* This) {
   4568     return This->lpVtbl->Release(This);
   4569 }
   4570 /*** IDWriteFontSet methods ***/
   4571 static inline UINT32 IDWriteFontSet4_GetFontCount(IDWriteFontSet4* This) {
   4572     return This->lpVtbl->GetFontCount(This);
   4573 }
   4574 static inline HRESULT IDWriteFontSet4_FindFontFaceReference(IDWriteFontSet4* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
   4575     return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
   4576 }
   4577 static inline HRESULT IDWriteFontSet4_FindFontFace(IDWriteFontSet4* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
   4578     return This->lpVtbl->FindFontFace(This,fontface,index,exists);
   4579 }
   4580 static inline HRESULT IDWriteFontSet4_GetPropertyValues__(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
   4581     return This->lpVtbl->GetPropertyValues__(This,id,values);
   4582 }
   4583 static inline HRESULT IDWriteFontSet4_GetPropertyValues_(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
   4584     return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
   4585 }
   4586 static inline HRESULT IDWriteFontSet4_GetPropertyValues(IDWriteFontSet4* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
   4587     return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
   4588 }
   4589 static inline HRESULT IDWriteFontSet4_GetPropertyOccurrenceCount(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
   4590     return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
   4591 }
   4592 static inline HRESULT IDWriteFontSet4_GetMatchingFonts_(IDWriteFontSet4* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
   4593     return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
   4594 }
   4595 /*** IDWriteFontSet1 methods ***/
   4596 static inline HRESULT IDWriteFontSet4_GetFirstFontResources(IDWriteFontSet4* This,IDWriteFontSet1 **fontset) {
   4597     return This->lpVtbl->GetFirstFontResources(This,fontset);
   4598 }
   4599 static inline HRESULT IDWriteFontSet4_GetFilteredFonts__(IDWriteFontSet4* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
   4600     return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
   4601 }
   4602 static inline HRESULT IDWriteFontSet4_GetFilteredFonts_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
   4603     return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
   4604 }
   4605 static inline HRESULT IDWriteFontSet4_GetFilteredFonts(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
   4606     return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
   4607 }
   4608 static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
   4609     return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
   4610 }
   4611 static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
   4612     return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
   4613 }
   4614 static inline HRESULT IDWriteFontSet4_GetFontAxisRanges_(IDWriteFontSet4* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
   4615     return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
   4616 }
   4617 static inline HRESULT IDWriteFontSet4_GetFontAxisRanges(IDWriteFontSet4* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
   4618     return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
   4619 }
   4620 static inline HRESULT IDWriteFontSet4_GetFontFaceReference(IDWriteFontSet4* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
   4621     return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
   4622 }
   4623 static inline HRESULT IDWriteFontSet4_CreateFontResource(IDWriteFontSet4* This,UINT32 index,IDWriteFontResource **resource) {
   4624     return This->lpVtbl->CreateFontResource(This,index,resource);
   4625 }
   4626 static inline HRESULT IDWriteFontSet4_CreateFontFace(IDWriteFontSet4* This,UINT32 index,IDWriteFontFace5 **fontface) {
   4627     return This->lpVtbl->CreateFontFace(This,index,fontface);
   4628 }
   4629 static inline DWRITE_LOCALITY IDWriteFontSet4_GetFontLocality(IDWriteFontSet4* This,UINT32 index) {
   4630     return This->lpVtbl->GetFontLocality(This,index);
   4631 }
   4632 /*** IDWriteFontSet2 methods ***/
   4633 static inline HANDLE IDWriteFontSet4_GetExpirationEvent(IDWriteFontSet4* This) {
   4634     return This->lpVtbl->GetExpirationEvent(This);
   4635 }
   4636 /*** IDWriteFontSet3 methods ***/
   4637 static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet4_GetFontSourceType(IDWriteFontSet4* This,UINT32 index) {
   4638     return This->lpVtbl->GetFontSourceType(This,index);
   4639 }
   4640 static inline UINT32 IDWriteFontSet4_GetFontSourceNameLength(IDWriteFontSet4* This,UINT32 index) {
   4641     return This->lpVtbl->GetFontSourceNameLength(This,index);
   4642 }
   4643 static inline HRESULT IDWriteFontSet4_GetFontSourceName(IDWriteFontSet4* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) {
   4644     return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size);
   4645 }
   4646 /*** IDWriteFontSet4 methods ***/
   4647 static inline UINT32 IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_VALUE *input_axis_values,UINT32 input_axis_count,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,float size,DWRITE_FONT_AXIS_VALUE *output_axis_values) {
   4648     return This->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values);
   4649 }
   4650 static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This,const WCHAR *family_name,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 axis_value_count,DWRITE_FONT_SIMULATIONS allowed_simulations,IDWriteFontSet4 **fonts) {
   4651     return This->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts);
   4652 }
   4653 #endif
   4654 #endif
   4655 
   4656 #endif
   4657 
   4658 
   4659 #endif  /* __IDWriteFontSet4_INTERFACE_DEFINED__ */
   4660 
   4661 /*****************************************************************************
   4662  * IDWriteFontFace3 interface
   4663  */
   4664 #ifndef __IDWriteFontFace3_INTERFACE_DEFINED__
   4665 #define __IDWriteFontFace3_INTERFACE_DEFINED__
   4666 
   4667 DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2);
   4668 #if defined(__cplusplus) && !defined(CINTERFACE)
   4669 MIDL_INTERFACE("d37d7598-09be-4222-a236-2081341cc1f2")
   4670 IDWriteFontFace3 : public IDWriteFontFace2
   4671 {
   4672     virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
   4673         IDWriteFontFaceReference **reference) = 0;
   4674 
   4675     virtual void STDMETHODCALLTYPE GetPanose(
   4676         DWRITE_PANOSE *panose) = 0;
   4677 
   4678     virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight(
   4679         ) = 0;
   4680 
   4681     virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch(
   4682         ) = 0;
   4683 
   4684     virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle(
   4685         ) = 0;
   4686 
   4687     virtual HRESULT STDMETHODCALLTYPE GetFamilyNames(
   4688         IDWriteLocalizedStrings **names) = 0;
   4689 
   4690     virtual HRESULT STDMETHODCALLTYPE GetFaceNames(
   4691         IDWriteLocalizedStrings **names) = 0;
   4692 
   4693     virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings(
   4694         DWRITE_INFORMATIONAL_STRING_ID stringid,
   4695         IDWriteLocalizedStrings **strings,
   4696         WINBOOL *exists) = 0;
   4697 
   4698     virtual WINBOOL STDMETHODCALLTYPE HasCharacter(
   4699         UINT32 character) = 0;
   4700 
   4701     virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode(
   4702         FLOAT emsize,
   4703         FLOAT dpi_x,
   4704         FLOAT dpi_y,
   4705         const DWRITE_MATRIX *transform,
   4706         WINBOOL is_sideways,
   4707         DWRITE_OUTLINE_THRESHOLD threshold,
   4708         DWRITE_MEASURING_MODE measuring_mode,
   4709         IDWriteRenderingParams *params,
   4710         DWRITE_RENDERING_MODE1 *rendering_mode,
   4711         DWRITE_GRID_FIT_MODE *gridfit_mode) = 0;
   4712 
   4713     virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal(
   4714         UINT32 character) = 0;
   4715 
   4716     virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal(
   4717         UINT16 glyph) = 0;
   4718 
   4719     virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal(
   4720         const WCHAR *characters,
   4721         UINT32 count,
   4722         WINBOOL enqueue_if_not,
   4723         WINBOOL *are_local) = 0;
   4724 
   4725     virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal(
   4726         const UINT16 *glyphs,
   4727         UINT32 count,
   4728         WINBOOL enqueue_if_not,
   4729         WINBOOL *are_local) = 0;
   4730 
   4731 };
   4732 #ifdef __CRT_UUID_DECL
   4733 __CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2)
   4734 #endif
   4735 #else
   4736 typedef struct IDWriteFontFace3Vtbl {
   4737     BEGIN_INTERFACE
   4738 
   4739     /*** IUnknown methods ***/
   4740     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4741         IDWriteFontFace3 *This,
   4742         REFIID riid,
   4743         void **ppvObject);
   4744 
   4745     ULONG (STDMETHODCALLTYPE *AddRef)(
   4746         IDWriteFontFace3 *This);
   4747 
   4748     ULONG (STDMETHODCALLTYPE *Release)(
   4749         IDWriteFontFace3 *This);
   4750 
   4751     /*** IDWriteFontFace methods ***/
   4752     DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
   4753         IDWriteFontFace3 *This);
   4754 
   4755     HRESULT (STDMETHODCALLTYPE *GetFiles)(
   4756         IDWriteFontFace3 *This,
   4757         UINT32 *number_of_files,
   4758         IDWriteFontFile **fontfiles);
   4759 
   4760     UINT32 (STDMETHODCALLTYPE *GetIndex)(
   4761         IDWriteFontFace3 *This);
   4762 
   4763     DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
   4764         IDWriteFontFace3 *This);
   4765 
   4766     WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
   4767         IDWriteFontFace3 *This);
   4768 
   4769     void (STDMETHODCALLTYPE *GetMetrics)(
   4770         IDWriteFontFace3 *This,
   4771         DWRITE_FONT_METRICS *metrics);
   4772 
   4773     UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
   4774         IDWriteFontFace3 *This);
   4775 
   4776     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
   4777         IDWriteFontFace3 *This,
   4778         const UINT16 *glyph_indices,
   4779         UINT32 glyph_count,
   4780         DWRITE_GLYPH_METRICS *metrics,
   4781         WINBOOL is_sideways);
   4782 
   4783     HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
   4784         IDWriteFontFace3 *This,
   4785         const UINT32 *codepoints,
   4786         UINT32 count,
   4787         UINT16 *glyph_indices);
   4788 
   4789     HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
   4790         IDWriteFontFace3 *This,
   4791         UINT32 table_tag,
   4792         const void **table_data,
   4793         UINT32 *table_size,
   4794         void **context,
   4795         WINBOOL *exists);
   4796 
   4797     void (STDMETHODCALLTYPE *ReleaseFontTable)(
   4798         IDWriteFontFace3 *This,
   4799         void *table_context);
   4800 
   4801     HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
   4802         IDWriteFontFace3 *This,
   4803         FLOAT emSize,
   4804         const UINT16 *glyph_indices,
   4805         const FLOAT *glyph_advances,
   4806         const DWRITE_GLYPH_OFFSET *glyph_offsets,
   4807         UINT32 glyph_count,
   4808         WINBOOL is_sideways,
   4809         WINBOOL is_rtl,
   4810         IDWriteGeometrySink *geometrysink);
   4811 
   4812     HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
   4813         IDWriteFontFace3 *This,
   4814         FLOAT emSize,
   4815         FLOAT pixels_per_dip,
   4816         DWRITE_MEASURING_MODE mode,
   4817         IDWriteRenderingParams *params,
   4818         DWRITE_RENDERING_MODE *rendering_mode);
   4819 
   4820     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
   4821         IDWriteFontFace3 *This,
   4822         FLOAT emSize,
   4823         FLOAT pixels_per_dip,
   4824         const DWRITE_MATRIX *transform,
   4825         DWRITE_FONT_METRICS *metrics);
   4826 
   4827     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
   4828         IDWriteFontFace3 *This,
   4829         FLOAT emSize,
   4830         FLOAT pixels_per_dip,
   4831         const DWRITE_MATRIX *transform,
   4832         WINBOOL use_gdi_natural,
   4833         const UINT16 *glyph_indices,
   4834         UINT32 glyph_count,
   4835         DWRITE_GLYPH_METRICS *metrics,
   4836         WINBOOL is_sideways);
   4837 
   4838     /*** IDWriteFontFace1 methods ***/
   4839     void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
   4840         IDWriteFontFace3 *This,
   4841         DWRITE_FONT_METRICS1 *metrics);
   4842 
   4843     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
   4844         IDWriteFontFace3 *This,
   4845         FLOAT em_size,
   4846         FLOAT pixels_per_dip,
   4847         const DWRITE_MATRIX *transform,
   4848         DWRITE_FONT_METRICS1 *metrics);
   4849 
   4850     void (STDMETHODCALLTYPE *GetCaretMetrics)(
   4851         IDWriteFontFace3 *This,
   4852         DWRITE_CARET_METRICS *metrics);
   4853 
   4854     HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
   4855         IDWriteFontFace3 *This,
   4856         UINT32 max_count,
   4857         DWRITE_UNICODE_RANGE *ranges,
   4858         UINT32 *count);
   4859 
   4860     WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
   4861         IDWriteFontFace3 *This);
   4862 
   4863     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
   4864         IDWriteFontFace3 *This,
   4865         UINT32 glyph_count,
   4866         const UINT16 *indices,
   4867         INT32 *advances,
   4868         WINBOOL is_sideways);
   4869 
   4870     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
   4871         IDWriteFontFace3 *This,
   4872         FLOAT em_size,
   4873         FLOAT pixels_per_dip,
   4874         const DWRITE_MATRIX *transform,
   4875         WINBOOL use_gdi_natural,
   4876         WINBOOL is_sideways,
   4877         UINT32 glyph_count,
   4878         const UINT16 *indices,
   4879         INT32 *advances);
   4880 
   4881     HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
   4882         IDWriteFontFace3 *This,
   4883         UINT32 glyph_count,
   4884         const UINT16 *indices,
   4885         INT32 *adjustments);
   4886 
   4887     WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
   4888         IDWriteFontFace3 *This);
   4889 
   4890     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
   4891         IDWriteFontFace3 *This,
   4892         FLOAT font_emsize,
   4893         FLOAT dpiX,
   4894         FLOAT dpiY,
   4895         const DWRITE_MATRIX *transform,
   4896         WINBOOL is_sideways,
   4897         DWRITE_OUTLINE_THRESHOLD threshold,
   4898         DWRITE_MEASURING_MODE measuring_mode,
   4899         DWRITE_RENDERING_MODE *rendering_mode);
   4900 
   4901     HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
   4902         IDWriteFontFace3 *This,
   4903         UINT32 glyph_count,
   4904         const UINT16 *nominal_indices,
   4905         UINT16 *vertical_indices);
   4906 
   4907     WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
   4908         IDWriteFontFace3 *This);
   4909 
   4910     /*** IDWriteFontFace2 methods ***/
   4911     WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
   4912         IDWriteFontFace3 *This);
   4913 
   4914     UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
   4915         IDWriteFontFace3 *This);
   4916 
   4917     UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
   4918         IDWriteFontFace3 *This);
   4919 
   4920     HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
   4921         IDWriteFontFace3 *This,
   4922         UINT32 palette_index,
   4923         UINT32 first_entry_index,
   4924         UINT32 entry_count,
   4925         DWRITE_COLOR_F *entries);
   4926 
   4927     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
   4928         IDWriteFontFace3 *This,
   4929         FLOAT fontEmSize,
   4930         FLOAT dpiX,
   4931         FLOAT dpiY,
   4932         const DWRITE_MATRIX *transform,
   4933         WINBOOL is_sideways,
   4934         DWRITE_OUTLINE_THRESHOLD threshold,
   4935         DWRITE_MEASURING_MODE measuringmode,
   4936         IDWriteRenderingParams *params,
   4937         DWRITE_RENDERING_MODE *renderingmode,
   4938         DWRITE_GRID_FIT_MODE *gridfitmode);
   4939 
   4940     /*** IDWriteFontFace3 methods ***/
   4941     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   4942         IDWriteFontFace3 *This,
   4943         IDWriteFontFaceReference **reference);
   4944 
   4945     void (STDMETHODCALLTYPE *GetPanose)(
   4946         IDWriteFontFace3 *This,
   4947         DWRITE_PANOSE *panose);
   4948 
   4949     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
   4950         IDWriteFontFace3 *This);
   4951 
   4952     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
   4953         IDWriteFontFace3 *This);
   4954 
   4955     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
   4956         IDWriteFontFace3 *This);
   4957 
   4958     HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
   4959         IDWriteFontFace3 *This,
   4960         IDWriteLocalizedStrings **names);
   4961 
   4962     HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
   4963         IDWriteFontFace3 *This,
   4964         IDWriteLocalizedStrings **names);
   4965 
   4966     HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
   4967         IDWriteFontFace3 *This,
   4968         DWRITE_INFORMATIONAL_STRING_ID stringid,
   4969         IDWriteLocalizedStrings **strings,
   4970         WINBOOL *exists);
   4971 
   4972     WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
   4973         IDWriteFontFace3 *This,
   4974         UINT32 character);
   4975 
   4976     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
   4977         IDWriteFontFace3 *This,
   4978         FLOAT emsize,
   4979         FLOAT dpi_x,
   4980         FLOAT dpi_y,
   4981         const DWRITE_MATRIX *transform,
   4982         WINBOOL is_sideways,
   4983         DWRITE_OUTLINE_THRESHOLD threshold,
   4984         DWRITE_MEASURING_MODE measuring_mode,
   4985         IDWriteRenderingParams *params,
   4986         DWRITE_RENDERING_MODE1 *rendering_mode,
   4987         DWRITE_GRID_FIT_MODE *gridfit_mode);
   4988 
   4989     WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
   4990         IDWriteFontFace3 *This,
   4991         UINT32 character);
   4992 
   4993     WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
   4994         IDWriteFontFace3 *This,
   4995         UINT16 glyph);
   4996 
   4997     HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
   4998         IDWriteFontFace3 *This,
   4999         const WCHAR *characters,
   5000         UINT32 count,
   5001         WINBOOL enqueue_if_not,
   5002         WINBOOL *are_local);
   5003 
   5004     HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
   5005         IDWriteFontFace3 *This,
   5006         const UINT16 *glyphs,
   5007         UINT32 count,
   5008         WINBOOL enqueue_if_not,
   5009         WINBOOL *are_local);
   5010 
   5011     END_INTERFACE
   5012 } IDWriteFontFace3Vtbl;
   5013 
   5014 interface IDWriteFontFace3 {
   5015     CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl;
   5016 };
   5017 
   5018 #ifdef COBJMACROS
   5019 #ifndef WIDL_C_INLINE_WRAPPERS
   5020 /*** IUnknown methods ***/
   5021 #define IDWriteFontFace3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5022 #define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This)
   5023 #define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This)
   5024 /*** IDWriteFontFace methods ***/
   5025 #define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This)
   5026 #define IDWriteFontFace3_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
   5027 #define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This)
   5028 #define IDWriteFontFace3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
   5029 #define IDWriteFontFace3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
   5030 #define IDWriteFontFace3_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
   5031 #define IDWriteFontFace3_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
   5032 #define IDWriteFontFace3_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
   5033 #define IDWriteFontFace3_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
   5034 #define IDWriteFontFace3_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
   5035 #define IDWriteFontFace3_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
   5036 #define IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
   5037 /*** IDWriteFontFace1 methods ***/
   5038 #define IDWriteFontFace3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
   5039 #define IDWriteFontFace3_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
   5040 #define IDWriteFontFace3_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
   5041 #define IDWriteFontFace3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
   5042 #define IDWriteFontFace3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
   5043 #define IDWriteFontFace3_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
   5044 #define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
   5045 #define IDWriteFontFace3_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
   5046 #define IDWriteFontFace3_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
   5047 #define IDWriteFontFace3_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
   5048 #define IDWriteFontFace3_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
   5049 /*** IDWriteFontFace2 methods ***/
   5050 #define IDWriteFontFace3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
   5051 #define IDWriteFontFace3_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
   5052 #define IDWriteFontFace3_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
   5053 #define IDWriteFontFace3_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
   5054 /*** IDWriteFontFace3 methods ***/
   5055 #define IDWriteFontFace3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
   5056 #define IDWriteFontFace3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
   5057 #define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
   5058 #define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
   5059 #define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
   5060 #define IDWriteFontFace3_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
   5061 #define IDWriteFontFace3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
   5062 #define IDWriteFontFace3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
   5063 #define IDWriteFontFace3_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
   5064 #define IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
   5065 #define IDWriteFontFace3_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
   5066 #define IDWriteFontFace3_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
   5067 #define IDWriteFontFace3_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
   5068 #define IDWriteFontFace3_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
   5069 #else
   5070 /*** IUnknown methods ***/
   5071 static inline HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This,REFIID riid,void **ppvObject) {
   5072     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5073 }
   5074 static inline ULONG IDWriteFontFace3_AddRef(IDWriteFontFace3* This) {
   5075     return This->lpVtbl->AddRef(This);
   5076 }
   5077 static inline ULONG IDWriteFontFace3_Release(IDWriteFontFace3* This) {
   5078     return This->lpVtbl->Release(This);
   5079 }
   5080 /*** IDWriteFontFace methods ***/
   5081 static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace3_GetType(IDWriteFontFace3* This) {
   5082     return This->lpVtbl->GetType(This);
   5083 }
   5084 static inline HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
   5085     return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
   5086 }
   5087 static inline UINT32 IDWriteFontFace3_GetIndex(IDWriteFontFace3* This) {
   5088     return This->lpVtbl->GetIndex(This);
   5089 }
   5090 static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace3_GetSimulations(IDWriteFontFace3* This) {
   5091     return This->lpVtbl->GetSimulations(This);
   5092 }
   5093 static inline WINBOOL IDWriteFontFace3_IsSymbolFont(IDWriteFontFace3* This) {
   5094     return This->lpVtbl->IsSymbolFont(This);
   5095 }
   5096 static inline UINT16 IDWriteFontFace3_GetGlyphCount(IDWriteFontFace3* This) {
   5097     return This->lpVtbl->GetGlyphCount(This);
   5098 }
   5099 static inline HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
   5100     return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
   5101 }
   5102 static inline HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
   5103     return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
   5104 }
   5105 static inline HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
   5106     return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
   5107 }
   5108 static inline void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This,void *table_context) {
   5109     This->lpVtbl->ReleaseFontTable(This,table_context);
   5110 }
   5111 static inline HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
   5112     return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
   5113 }
   5114 static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
   5115     return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
   5116 }
   5117 /*** IDWriteFontFace1 methods ***/
   5118 static inline void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This,DWRITE_FONT_METRICS1 *metrics) {
   5119     This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
   5120 }
   5121 static inline HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
   5122     return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
   5123 }
   5124 static inline void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This,DWRITE_CARET_METRICS *metrics) {
   5125     This->lpVtbl->GetCaretMetrics(This,metrics);
   5126 }
   5127 static inline HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
   5128     return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
   5129 }
   5130 static inline WINBOOL IDWriteFontFace3_IsMonospacedFont(IDWriteFontFace3* This) {
   5131     return This->lpVtbl->IsMonospacedFont(This);
   5132 }
   5133 static inline HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
   5134     return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
   5135 }
   5136 static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
   5137     return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
   5138 }
   5139 static inline HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
   5140     return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
   5141 }
   5142 static inline WINBOOL IDWriteFontFace3_HasKerningPairs(IDWriteFontFace3* This) {
   5143     return This->lpVtbl->HasKerningPairs(This);
   5144 }
   5145 static inline HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
   5146     return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
   5147 }
   5148 static inline WINBOOL IDWriteFontFace3_HasVerticalGlyphVariants(IDWriteFontFace3* This) {
   5149     return This->lpVtbl->HasVerticalGlyphVariants(This);
   5150 }
   5151 /*** IDWriteFontFace2 methods ***/
   5152 static inline WINBOOL IDWriteFontFace3_IsColorFont(IDWriteFontFace3* This) {
   5153     return This->lpVtbl->IsColorFont(This);
   5154 }
   5155 static inline UINT32 IDWriteFontFace3_GetColorPaletteCount(IDWriteFontFace3* This) {
   5156     return This->lpVtbl->GetColorPaletteCount(This);
   5157 }
   5158 static inline UINT32 IDWriteFontFace3_GetPaletteEntryCount(IDWriteFontFace3* This) {
   5159     return This->lpVtbl->GetPaletteEntryCount(This);
   5160 }
   5161 static inline HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
   5162     return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
   5163 }
   5164 /*** IDWriteFontFace3 methods ***/
   5165 static inline HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This,IDWriteFontFaceReference **reference) {
   5166     return This->lpVtbl->GetFontFaceReference(This,reference);
   5167 }
   5168 static inline void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This,DWRITE_PANOSE *panose) {
   5169     This->lpVtbl->GetPanose(This,panose);
   5170 }
   5171 static inline DWRITE_FONT_WEIGHT IDWriteFontFace3_GetWeight(IDWriteFontFace3* This) {
   5172     return This->lpVtbl->GetWeight(This);
   5173 }
   5174 static inline DWRITE_FONT_STRETCH IDWriteFontFace3_GetStretch(IDWriteFontFace3* This) {
   5175     return This->lpVtbl->GetStretch(This);
   5176 }
   5177 static inline DWRITE_FONT_STYLE IDWriteFontFace3_GetStyle(IDWriteFontFace3* This) {
   5178     return This->lpVtbl->GetStyle(This);
   5179 }
   5180 static inline HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) {
   5181     return This->lpVtbl->GetFamilyNames(This,names);
   5182 }
   5183 static inline HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) {
   5184     return This->lpVtbl->GetFaceNames(This,names);
   5185 }
   5186 static inline HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
   5187     return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
   5188 }
   5189 static inline WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This,UINT32 character) {
   5190     return This->lpVtbl->HasCharacter(This,character);
   5191 }
   5192 static inline HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
   5193     return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
   5194 }
   5195 static inline WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This,UINT32 character) {
   5196     return This->lpVtbl->IsCharacterLocal(This,character);
   5197 }
   5198 static inline WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This,UINT16 glyph) {
   5199     return This->lpVtbl->IsGlyphLocal(This,glyph);
   5200 }
   5201 static inline HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
   5202     return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
   5203 }
   5204 static inline HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
   5205     return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
   5206 }
   5207 #endif
   5208 #endif
   5209 
   5210 #endif
   5211 
   5212 
   5213 #endif  /* __IDWriteFontFace3_INTERFACE_DEFINED__ */
   5214 
   5215 typedef struct DWRITE_LINE_METRICS1 {
   5216     UINT32 length;
   5217     UINT32 trailingWhitespaceLength;
   5218     UINT32 newlineLength;
   5219     FLOAT height;
   5220     FLOAT baseline;
   5221     WINBOOL isTrimmed;
   5222     FLOAT leadingBefore;
   5223     FLOAT leadingAfter;
   5224 } DWRITE_LINE_METRICS1;
   5225 typedef enum DWRITE_FONT_LINE_GAP_USAGE {
   5226     DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0,
   5227     DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1,
   5228     DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2
   5229 } DWRITE_FONT_LINE_GAP_USAGE;
   5230 typedef struct DWRITE_LINE_SPACING {
   5231     DWRITE_LINE_SPACING_METHOD method;
   5232     FLOAT height;
   5233     FLOAT baseline;
   5234     FLOAT leadingBefore;
   5235     DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage;
   5236 } DWRITE_LINE_SPACING;
   5237 /*****************************************************************************
   5238  * IDWriteTextFormat2 interface
   5239  */
   5240 #ifndef __IDWriteTextFormat2_INTERFACE_DEFINED__
   5241 #define __IDWriteTextFormat2_INTERFACE_DEFINED__
   5242 
   5243 DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70);
   5244 #if defined(__cplusplus) && !defined(CINTERFACE)
   5245 MIDL_INTERFACE("f67e0edd-9e3d-4ecc-8c32-4183253dfe70")
   5246 IDWriteTextFormat2 : public IDWriteTextFormat1
   5247 {
   5248     virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
   5249         const DWRITE_LINE_SPACING *spacing) = 0;
   5250 
   5251     virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
   5252         DWRITE_LINE_SPACING *spacing) = 0;
   5253 
   5254 };
   5255 #ifdef __CRT_UUID_DECL
   5256 __CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70)
   5257 #endif
   5258 #else
   5259 typedef struct IDWriteTextFormat2Vtbl {
   5260     BEGIN_INTERFACE
   5261 
   5262     /*** IUnknown methods ***/
   5263     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5264         IDWriteTextFormat2 *This,
   5265         REFIID riid,
   5266         void **ppvObject);
   5267 
   5268     ULONG (STDMETHODCALLTYPE *AddRef)(
   5269         IDWriteTextFormat2 *This);
   5270 
   5271     ULONG (STDMETHODCALLTYPE *Release)(
   5272         IDWriteTextFormat2 *This);
   5273 
   5274     /*** IDWriteTextFormat methods ***/
   5275     HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
   5276         IDWriteTextFormat2 *This,
   5277         DWRITE_TEXT_ALIGNMENT alignment);
   5278 
   5279     HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
   5280         IDWriteTextFormat2 *This,
   5281         DWRITE_PARAGRAPH_ALIGNMENT alignment);
   5282 
   5283     HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
   5284         IDWriteTextFormat2 *This,
   5285         DWRITE_WORD_WRAPPING wrapping);
   5286 
   5287     HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
   5288         IDWriteTextFormat2 *This,
   5289         DWRITE_READING_DIRECTION direction);
   5290 
   5291     HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
   5292         IDWriteTextFormat2 *This,
   5293         DWRITE_FLOW_DIRECTION direction);
   5294 
   5295     HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
   5296         IDWriteTextFormat2 *This,
   5297         FLOAT tabstop);
   5298 
   5299     HRESULT (STDMETHODCALLTYPE *SetTrimming)(
   5300         IDWriteTextFormat2 *This,
   5301         const DWRITE_TRIMMING *trimming,
   5302         IDWriteInlineObject *trimming_sign);
   5303 
   5304     HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
   5305         IDWriteTextFormat2 *This,
   5306         DWRITE_LINE_SPACING_METHOD spacing,
   5307         FLOAT line_spacing,
   5308         FLOAT baseline);
   5309 
   5310     DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
   5311         IDWriteTextFormat2 *This);
   5312 
   5313     DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
   5314         IDWriteTextFormat2 *This);
   5315 
   5316     DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
   5317         IDWriteTextFormat2 *This);
   5318 
   5319     DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
   5320         IDWriteTextFormat2 *This);
   5321 
   5322     DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
   5323         IDWriteTextFormat2 *This);
   5324 
   5325     FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
   5326         IDWriteTextFormat2 *This);
   5327 
   5328     HRESULT (STDMETHODCALLTYPE *GetTrimming)(
   5329         IDWriteTextFormat2 *This,
   5330         DWRITE_TRIMMING *options,
   5331         IDWriteInlineObject **trimming_sign);
   5332 
   5333     HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
   5334         IDWriteTextFormat2 *This,
   5335         DWRITE_LINE_SPACING_METHOD *method,
   5336         FLOAT *spacing,
   5337         FLOAT *baseline);
   5338 
   5339     HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
   5340         IDWriteTextFormat2 *This,
   5341         IDWriteFontCollection **collection);
   5342 
   5343     UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
   5344         IDWriteTextFormat2 *This);
   5345 
   5346     HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
   5347         IDWriteTextFormat2 *This,
   5348         WCHAR *name,
   5349         UINT32 size);
   5350 
   5351     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
   5352         IDWriteTextFormat2 *This);
   5353 
   5354     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
   5355         IDWriteTextFormat2 *This);
   5356 
   5357     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
   5358         IDWriteTextFormat2 *This);
   5359 
   5360     FLOAT (STDMETHODCALLTYPE *GetFontSize)(
   5361         IDWriteTextFormat2 *This);
   5362 
   5363     UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
   5364         IDWriteTextFormat2 *This);
   5365 
   5366     HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
   5367         IDWriteTextFormat2 *This,
   5368         WCHAR *name,
   5369         UINT32 size);
   5370 
   5371     /*** IDWriteTextFormat1 methods ***/
   5372     HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
   5373         IDWriteTextFormat2 *This,
   5374         DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
   5375 
   5376     DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
   5377         IDWriteTextFormat2 *This);
   5378 
   5379     HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
   5380         IDWriteTextFormat2 *This,
   5381         WINBOOL lastline_wrapping_enabled);
   5382 
   5383     WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
   5384         IDWriteTextFormat2 *This);
   5385 
   5386     HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
   5387         IDWriteTextFormat2 *This,
   5388         DWRITE_OPTICAL_ALIGNMENT alignment);
   5389 
   5390     DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
   5391         IDWriteTextFormat2 *This);
   5392 
   5393     HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
   5394         IDWriteTextFormat2 *This,
   5395         IDWriteFontFallback *fallback);
   5396 
   5397     HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
   5398         IDWriteTextFormat2 *This,
   5399         IDWriteFontFallback **fallback);
   5400 
   5401     /*** IDWriteTextFormat2 methods ***/
   5402     HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)(
   5403         IDWriteTextFormat2 *This,
   5404         const DWRITE_LINE_SPACING *spacing);
   5405 
   5406     HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)(
   5407         IDWriteTextFormat2 *This,
   5408         DWRITE_LINE_SPACING *spacing);
   5409 
   5410     END_INTERFACE
   5411 } IDWriteTextFormat2Vtbl;
   5412 
   5413 interface IDWriteTextFormat2 {
   5414     CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl;
   5415 };
   5416 
   5417 #ifdef COBJMACROS
   5418 #ifndef WIDL_C_INLINE_WRAPPERS
   5419 /*** IUnknown methods ***/
   5420 #define IDWriteTextFormat2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5421 #define IDWriteTextFormat2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5422 #define IDWriteTextFormat2_Release(This) (This)->lpVtbl->Release(This)
   5423 /*** IDWriteTextFormat methods ***/
   5424 #define IDWriteTextFormat2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
   5425 #define IDWriteTextFormat2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
   5426 #define IDWriteTextFormat2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
   5427 #define IDWriteTextFormat2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
   5428 #define IDWriteTextFormat2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
   5429 #define IDWriteTextFormat2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
   5430 #define IDWriteTextFormat2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
   5431 #define IDWriteTextFormat2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
   5432 #define IDWriteTextFormat2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
   5433 #define IDWriteTextFormat2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
   5434 #define IDWriteTextFormat2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
   5435 #define IDWriteTextFormat2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
   5436 #define IDWriteTextFormat2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
   5437 #define IDWriteTextFormat2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
   5438 #define IDWriteTextFormat2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
   5439 #define IDWriteTextFormat2_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
   5440 #define IDWriteTextFormat2_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
   5441 #define IDWriteTextFormat2_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
   5442 #define IDWriteTextFormat2_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
   5443 #define IDWriteTextFormat2_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
   5444 #define IDWriteTextFormat2_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
   5445 #define IDWriteTextFormat2_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
   5446 #define IDWriteTextFormat2_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
   5447 /*** IDWriteTextFormat1 methods ***/
   5448 #define IDWriteTextFormat2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
   5449 #define IDWriteTextFormat2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
   5450 #define IDWriteTextFormat2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
   5451 #define IDWriteTextFormat2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
   5452 #define IDWriteTextFormat2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
   5453 #define IDWriteTextFormat2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
   5454 #define IDWriteTextFormat2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
   5455 #define IDWriteTextFormat2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
   5456 /*** IDWriteTextFormat2 methods ***/
   5457 #define IDWriteTextFormat2_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing)
   5458 #define IDWriteTextFormat2_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing)
   5459 #else
   5460 /*** IUnknown methods ***/
   5461 static inline HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This,REFIID riid,void **ppvObject) {
   5462     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5463 }
   5464 static inline ULONG IDWriteTextFormat2_AddRef(IDWriteTextFormat2* This) {
   5465     return This->lpVtbl->AddRef(This);
   5466 }
   5467 static inline ULONG IDWriteTextFormat2_Release(IDWriteTextFormat2* This) {
   5468     return This->lpVtbl->Release(This);
   5469 }
   5470 /*** IDWriteTextFormat methods ***/
   5471 static inline HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This,DWRITE_TEXT_ALIGNMENT alignment) {
   5472     return This->lpVtbl->SetTextAlignment(This,alignment);
   5473 }
   5474 static inline HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
   5475     return This->lpVtbl->SetParagraphAlignment(This,alignment);
   5476 }
   5477 static inline HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This,DWRITE_WORD_WRAPPING wrapping) {
   5478     return This->lpVtbl->SetWordWrapping(This,wrapping);
   5479 }
   5480 static inline HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This,DWRITE_READING_DIRECTION direction) {
   5481     return This->lpVtbl->SetReadingDirection(This,direction);
   5482 }
   5483 static inline HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This,DWRITE_FLOW_DIRECTION direction) {
   5484     return This->lpVtbl->SetFlowDirection(This,direction);
   5485 }
   5486 static inline HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This,FLOAT tabstop) {
   5487     return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
   5488 }
   5489 static inline HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
   5490     return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
   5491 }
   5492 static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat2_GetTextAlignment(IDWriteTextFormat2* This) {
   5493     return This->lpVtbl->GetTextAlignment(This);
   5494 }
   5495 static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat2_GetParagraphAlignment(IDWriteTextFormat2* This) {
   5496     return This->lpVtbl->GetParagraphAlignment(This);
   5497 }
   5498 static inline DWRITE_WORD_WRAPPING IDWriteTextFormat2_GetWordWrapping(IDWriteTextFormat2* This) {
   5499     return This->lpVtbl->GetWordWrapping(This);
   5500 }
   5501 static inline DWRITE_READING_DIRECTION IDWriteTextFormat2_GetReadingDirection(IDWriteTextFormat2* This) {
   5502     return This->lpVtbl->GetReadingDirection(This);
   5503 }
   5504 static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat2_GetFlowDirection(IDWriteTextFormat2* This) {
   5505     return This->lpVtbl->GetFlowDirection(This);
   5506 }
   5507 static inline FLOAT IDWriteTextFormat2_GetIncrementalTabStop(IDWriteTextFormat2* This) {
   5508     return This->lpVtbl->GetIncrementalTabStop(This);
   5509 }
   5510 static inline HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
   5511     return This->lpVtbl->GetTrimming(This,options,trimming_sign);
   5512 }
   5513 static inline HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This,IDWriteFontCollection **collection) {
   5514     return This->lpVtbl->GetFontCollection(This,collection);
   5515 }
   5516 static inline UINT32 IDWriteTextFormat2_GetFontFamilyNameLength(IDWriteTextFormat2* This) {
   5517     return This->lpVtbl->GetFontFamilyNameLength(This);
   5518 }
   5519 static inline HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) {
   5520     return This->lpVtbl->GetFontFamilyName(This,name,size);
   5521 }
   5522 static inline DWRITE_FONT_WEIGHT IDWriteTextFormat2_GetFontWeight(IDWriteTextFormat2* This) {
   5523     return This->lpVtbl->GetFontWeight(This);
   5524 }
   5525 static inline DWRITE_FONT_STYLE IDWriteTextFormat2_GetFontStyle(IDWriteTextFormat2* This) {
   5526     return This->lpVtbl->GetFontStyle(This);
   5527 }
   5528 static inline DWRITE_FONT_STRETCH IDWriteTextFormat2_GetFontStretch(IDWriteTextFormat2* This) {
   5529     return This->lpVtbl->GetFontStretch(This);
   5530 }
   5531 static inline FLOAT IDWriteTextFormat2_GetFontSize(IDWriteTextFormat2* This) {
   5532     return This->lpVtbl->GetFontSize(This);
   5533 }
   5534 static inline UINT32 IDWriteTextFormat2_GetLocaleNameLength(IDWriteTextFormat2* This) {
   5535     return This->lpVtbl->GetLocaleNameLength(This);
   5536 }
   5537 static inline HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) {
   5538     return This->lpVtbl->GetLocaleName(This,name,size);
   5539 }
   5540 /*** IDWriteTextFormat1 methods ***/
   5541 static inline HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
   5542     return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
   5543 }
   5544 static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat2_GetVerticalGlyphOrientation(IDWriteTextFormat2* This) {
   5545     return This->lpVtbl->GetVerticalGlyphOrientation(This);
   5546 }
   5547 static inline HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This,WINBOOL lastline_wrapping_enabled) {
   5548     return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
   5549 }
   5550 static inline WINBOOL IDWriteTextFormat2_GetLastLineWrapping(IDWriteTextFormat2* This) {
   5551     return This->lpVtbl->GetLastLineWrapping(This);
   5552 }
   5553 static inline HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
   5554     return This->lpVtbl->SetOpticalAlignment(This,alignment);
   5555 }
   5556 static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat2_GetOpticalAlignment(IDWriteTextFormat2* This) {
   5557     return This->lpVtbl->GetOpticalAlignment(This);
   5558 }
   5559 static inline HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback *fallback) {
   5560     return This->lpVtbl->SetFontFallback(This,fallback);
   5561 }
   5562 static inline HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback **fallback) {
   5563     return This->lpVtbl->GetFontFallback(This,fallback);
   5564 }
   5565 /*** IDWriteTextFormat2 methods ***/
   5566 static inline HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This,const DWRITE_LINE_SPACING *spacing) {
   5567     return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing);
   5568 }
   5569 static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This,DWRITE_LINE_SPACING *spacing) {
   5570     return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing);
   5571 }
   5572 #endif
   5573 #endif
   5574 
   5575 #endif
   5576 
   5577 
   5578 #endif  /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */
   5579 
   5580 /*****************************************************************************
   5581  * IDWriteTextFormat3 interface
   5582  */
   5583 #ifndef __IDWriteTextFormat3_INTERFACE_DEFINED__
   5584 #define __IDWriteTextFormat3_INTERFACE_DEFINED__
   5585 
   5586 DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27);
   5587 #if defined(__cplusplus) && !defined(CINTERFACE)
   5588 MIDL_INTERFACE("6d3b5641-e550-430d-a85b-b7bf48a93427")
   5589 IDWriteTextFormat3 : public IDWriteTextFormat2
   5590 {
   5591     virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues(
   5592         const DWRITE_FONT_AXIS_VALUE *axis_values,
   5593         UINT32 num_values) = 0;
   5594 
   5595     virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
   5596         ) = 0;
   5597 
   5598     virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
   5599         DWRITE_FONT_AXIS_VALUE *axis_values,
   5600         UINT32 num_values) = 0;
   5601 
   5602     virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
   5603         ) = 0;
   5604 
   5605     virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes(
   5606         DWRITE_AUTOMATIC_FONT_AXES axes) = 0;
   5607 
   5608 };
   5609 #ifdef __CRT_UUID_DECL
   5610 __CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27)
   5611 #endif
   5612 #else
   5613 typedef struct IDWriteTextFormat3Vtbl {
   5614     BEGIN_INTERFACE
   5615 
   5616     /*** IUnknown methods ***/
   5617     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5618         IDWriteTextFormat3 *This,
   5619         REFIID riid,
   5620         void **ppvObject);
   5621 
   5622     ULONG (STDMETHODCALLTYPE *AddRef)(
   5623         IDWriteTextFormat3 *This);
   5624 
   5625     ULONG (STDMETHODCALLTYPE *Release)(
   5626         IDWriteTextFormat3 *This);
   5627 
   5628     /*** IDWriteTextFormat methods ***/
   5629     HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
   5630         IDWriteTextFormat3 *This,
   5631         DWRITE_TEXT_ALIGNMENT alignment);
   5632 
   5633     HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
   5634         IDWriteTextFormat3 *This,
   5635         DWRITE_PARAGRAPH_ALIGNMENT alignment);
   5636 
   5637     HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
   5638         IDWriteTextFormat3 *This,
   5639         DWRITE_WORD_WRAPPING wrapping);
   5640 
   5641     HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
   5642         IDWriteTextFormat3 *This,
   5643         DWRITE_READING_DIRECTION direction);
   5644 
   5645     HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
   5646         IDWriteTextFormat3 *This,
   5647         DWRITE_FLOW_DIRECTION direction);
   5648 
   5649     HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
   5650         IDWriteTextFormat3 *This,
   5651         FLOAT tabstop);
   5652 
   5653     HRESULT (STDMETHODCALLTYPE *SetTrimming)(
   5654         IDWriteTextFormat3 *This,
   5655         const DWRITE_TRIMMING *trimming,
   5656         IDWriteInlineObject *trimming_sign);
   5657 
   5658     HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
   5659         IDWriteTextFormat3 *This,
   5660         DWRITE_LINE_SPACING_METHOD spacing,
   5661         FLOAT line_spacing,
   5662         FLOAT baseline);
   5663 
   5664     DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
   5665         IDWriteTextFormat3 *This);
   5666 
   5667     DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
   5668         IDWriteTextFormat3 *This);
   5669 
   5670     DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
   5671         IDWriteTextFormat3 *This);
   5672 
   5673     DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
   5674         IDWriteTextFormat3 *This);
   5675 
   5676     DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
   5677         IDWriteTextFormat3 *This);
   5678 
   5679     FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
   5680         IDWriteTextFormat3 *This);
   5681 
   5682     HRESULT (STDMETHODCALLTYPE *GetTrimming)(
   5683         IDWriteTextFormat3 *This,
   5684         DWRITE_TRIMMING *options,
   5685         IDWriteInlineObject **trimming_sign);
   5686 
   5687     HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
   5688         IDWriteTextFormat3 *This,
   5689         DWRITE_LINE_SPACING_METHOD *method,
   5690         FLOAT *spacing,
   5691         FLOAT *baseline);
   5692 
   5693     HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
   5694         IDWriteTextFormat3 *This,
   5695         IDWriteFontCollection **collection);
   5696 
   5697     UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
   5698         IDWriteTextFormat3 *This);
   5699 
   5700     HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
   5701         IDWriteTextFormat3 *This,
   5702         WCHAR *name,
   5703         UINT32 size);
   5704 
   5705     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
   5706         IDWriteTextFormat3 *This);
   5707 
   5708     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
   5709         IDWriteTextFormat3 *This);
   5710 
   5711     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
   5712         IDWriteTextFormat3 *This);
   5713 
   5714     FLOAT (STDMETHODCALLTYPE *GetFontSize)(
   5715         IDWriteTextFormat3 *This);
   5716 
   5717     UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
   5718         IDWriteTextFormat3 *This);
   5719 
   5720     HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
   5721         IDWriteTextFormat3 *This,
   5722         WCHAR *name,
   5723         UINT32 size);
   5724 
   5725     /*** IDWriteTextFormat1 methods ***/
   5726     HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
   5727         IDWriteTextFormat3 *This,
   5728         DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
   5729 
   5730     DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
   5731         IDWriteTextFormat3 *This);
   5732 
   5733     HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
   5734         IDWriteTextFormat3 *This,
   5735         WINBOOL lastline_wrapping_enabled);
   5736 
   5737     WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
   5738         IDWriteTextFormat3 *This);
   5739 
   5740     HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
   5741         IDWriteTextFormat3 *This,
   5742         DWRITE_OPTICAL_ALIGNMENT alignment);
   5743 
   5744     DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
   5745         IDWriteTextFormat3 *This);
   5746 
   5747     HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
   5748         IDWriteTextFormat3 *This,
   5749         IDWriteFontFallback *fallback);
   5750 
   5751     HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
   5752         IDWriteTextFormat3 *This,
   5753         IDWriteFontFallback **fallback);
   5754 
   5755     /*** IDWriteTextFormat2 methods ***/
   5756     HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)(
   5757         IDWriteTextFormat3 *This,
   5758         const DWRITE_LINE_SPACING *spacing);
   5759 
   5760     HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)(
   5761         IDWriteTextFormat3 *This,
   5762         DWRITE_LINE_SPACING *spacing);
   5763 
   5764     /*** IDWriteTextFormat3 methods ***/
   5765     HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)(
   5766         IDWriteTextFormat3 *This,
   5767         const DWRITE_FONT_AXIS_VALUE *axis_values,
   5768         UINT32 num_values);
   5769 
   5770     UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
   5771         IDWriteTextFormat3 *This);
   5772 
   5773     HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
   5774         IDWriteTextFormat3 *This,
   5775         DWRITE_FONT_AXIS_VALUE *axis_values,
   5776         UINT32 num_values);
   5777 
   5778     DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
   5779         IDWriteTextFormat3 *This);
   5780 
   5781     HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)(
   5782         IDWriteTextFormat3 *This,
   5783         DWRITE_AUTOMATIC_FONT_AXES axes);
   5784 
   5785     END_INTERFACE
   5786 } IDWriteTextFormat3Vtbl;
   5787 
   5788 interface IDWriteTextFormat3 {
   5789     CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl;
   5790 };
   5791 
   5792 #ifdef COBJMACROS
   5793 #ifndef WIDL_C_INLINE_WRAPPERS
   5794 /*** IUnknown methods ***/
   5795 #define IDWriteTextFormat3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5796 #define IDWriteTextFormat3_AddRef(This) (This)->lpVtbl->AddRef(This)
   5797 #define IDWriteTextFormat3_Release(This) (This)->lpVtbl->Release(This)
   5798 /*** IDWriteTextFormat methods ***/
   5799 #define IDWriteTextFormat3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
   5800 #define IDWriteTextFormat3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
   5801 #define IDWriteTextFormat3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
   5802 #define IDWriteTextFormat3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
   5803 #define IDWriteTextFormat3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
   5804 #define IDWriteTextFormat3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
   5805 #define IDWriteTextFormat3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
   5806 #define IDWriteTextFormat3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
   5807 #define IDWriteTextFormat3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
   5808 #define IDWriteTextFormat3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
   5809 #define IDWriteTextFormat3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
   5810 #define IDWriteTextFormat3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
   5811 #define IDWriteTextFormat3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
   5812 #define IDWriteTextFormat3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
   5813 #define IDWriteTextFormat3_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
   5814 #define IDWriteTextFormat3_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
   5815 #define IDWriteTextFormat3_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
   5816 #define IDWriteTextFormat3_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
   5817 #define IDWriteTextFormat3_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
   5818 #define IDWriteTextFormat3_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
   5819 #define IDWriteTextFormat3_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
   5820 #define IDWriteTextFormat3_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
   5821 #define IDWriteTextFormat3_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
   5822 /*** IDWriteTextFormat1 methods ***/
   5823 #define IDWriteTextFormat3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
   5824 #define IDWriteTextFormat3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
   5825 #define IDWriteTextFormat3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
   5826 #define IDWriteTextFormat3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
   5827 #define IDWriteTextFormat3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
   5828 #define IDWriteTextFormat3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
   5829 #define IDWriteTextFormat3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
   5830 #define IDWriteTextFormat3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
   5831 /*** IDWriteTextFormat2 methods ***/
   5832 #define IDWriteTextFormat3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing)
   5833 #define IDWriteTextFormat3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing)
   5834 /*** IDWriteTextFormat3 methods ***/
   5835 #define IDWriteTextFormat3_SetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values)
   5836 #define IDWriteTextFormat3_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
   5837 #define IDWriteTextFormat3_GetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->GetFontAxisValues(This,axis_values,num_values)
   5838 #define IDWriteTextFormat3_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This)
   5839 #define IDWriteTextFormat3_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes)
   5840 #else
   5841 /*** IUnknown methods ***/
   5842 static inline HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This,REFIID riid,void **ppvObject) {
   5843     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5844 }
   5845 static inline ULONG IDWriteTextFormat3_AddRef(IDWriteTextFormat3* This) {
   5846     return This->lpVtbl->AddRef(This);
   5847 }
   5848 static inline ULONG IDWriteTextFormat3_Release(IDWriteTextFormat3* This) {
   5849     return This->lpVtbl->Release(This);
   5850 }
   5851 /*** IDWriteTextFormat methods ***/
   5852 static inline HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This,DWRITE_TEXT_ALIGNMENT alignment) {
   5853     return This->lpVtbl->SetTextAlignment(This,alignment);
   5854 }
   5855 static inline HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
   5856     return This->lpVtbl->SetParagraphAlignment(This,alignment);
   5857 }
   5858 static inline HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This,DWRITE_WORD_WRAPPING wrapping) {
   5859     return This->lpVtbl->SetWordWrapping(This,wrapping);
   5860 }
   5861 static inline HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This,DWRITE_READING_DIRECTION direction) {
   5862     return This->lpVtbl->SetReadingDirection(This,direction);
   5863 }
   5864 static inline HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This,DWRITE_FLOW_DIRECTION direction) {
   5865     return This->lpVtbl->SetFlowDirection(This,direction);
   5866 }
   5867 static inline HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This,FLOAT tabstop) {
   5868     return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
   5869 }
   5870 static inline HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
   5871     return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
   5872 }
   5873 static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat3_GetTextAlignment(IDWriteTextFormat3* This) {
   5874     return This->lpVtbl->GetTextAlignment(This);
   5875 }
   5876 static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat3_GetParagraphAlignment(IDWriteTextFormat3* This) {
   5877     return This->lpVtbl->GetParagraphAlignment(This);
   5878 }
   5879 static inline DWRITE_WORD_WRAPPING IDWriteTextFormat3_GetWordWrapping(IDWriteTextFormat3* This) {
   5880     return This->lpVtbl->GetWordWrapping(This);
   5881 }
   5882 static inline DWRITE_READING_DIRECTION IDWriteTextFormat3_GetReadingDirection(IDWriteTextFormat3* This) {
   5883     return This->lpVtbl->GetReadingDirection(This);
   5884 }
   5885 static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat3_GetFlowDirection(IDWriteTextFormat3* This) {
   5886     return This->lpVtbl->GetFlowDirection(This);
   5887 }
   5888 static inline FLOAT IDWriteTextFormat3_GetIncrementalTabStop(IDWriteTextFormat3* This) {
   5889     return This->lpVtbl->GetIncrementalTabStop(This);
   5890 }
   5891 static inline HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
   5892     return This->lpVtbl->GetTrimming(This,options,trimming_sign);
   5893 }
   5894 static inline HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This,IDWriteFontCollection **collection) {
   5895     return This->lpVtbl->GetFontCollection(This,collection);
   5896 }
   5897 static inline UINT32 IDWriteTextFormat3_GetFontFamilyNameLength(IDWriteTextFormat3* This) {
   5898     return This->lpVtbl->GetFontFamilyNameLength(This);
   5899 }
   5900 static inline HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) {
   5901     return This->lpVtbl->GetFontFamilyName(This,name,size);
   5902 }
   5903 static inline DWRITE_FONT_WEIGHT IDWriteTextFormat3_GetFontWeight(IDWriteTextFormat3* This) {
   5904     return This->lpVtbl->GetFontWeight(This);
   5905 }
   5906 static inline DWRITE_FONT_STYLE IDWriteTextFormat3_GetFontStyle(IDWriteTextFormat3* This) {
   5907     return This->lpVtbl->GetFontStyle(This);
   5908 }
   5909 static inline DWRITE_FONT_STRETCH IDWriteTextFormat3_GetFontStretch(IDWriteTextFormat3* This) {
   5910     return This->lpVtbl->GetFontStretch(This);
   5911 }
   5912 static inline FLOAT IDWriteTextFormat3_GetFontSize(IDWriteTextFormat3* This) {
   5913     return This->lpVtbl->GetFontSize(This);
   5914 }
   5915 static inline UINT32 IDWriteTextFormat3_GetLocaleNameLength(IDWriteTextFormat3* This) {
   5916     return This->lpVtbl->GetLocaleNameLength(This);
   5917 }
   5918 static inline HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) {
   5919     return This->lpVtbl->GetLocaleName(This,name,size);
   5920 }
   5921 /*** IDWriteTextFormat1 methods ***/
   5922 static inline HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
   5923     return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
   5924 }
   5925 static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat3_GetVerticalGlyphOrientation(IDWriteTextFormat3* This) {
   5926     return This->lpVtbl->GetVerticalGlyphOrientation(This);
   5927 }
   5928 static inline HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This,WINBOOL lastline_wrapping_enabled) {
   5929     return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
   5930 }
   5931 static inline WINBOOL IDWriteTextFormat3_GetLastLineWrapping(IDWriteTextFormat3* This) {
   5932     return This->lpVtbl->GetLastLineWrapping(This);
   5933 }
   5934 static inline HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
   5935     return This->lpVtbl->SetOpticalAlignment(This,alignment);
   5936 }
   5937 static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat3_GetOpticalAlignment(IDWriteTextFormat3* This) {
   5938     return This->lpVtbl->GetOpticalAlignment(This);
   5939 }
   5940 static inline HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback *fallback) {
   5941     return This->lpVtbl->SetFontFallback(This,fallback);
   5942 }
   5943 static inline HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback **fallback) {
   5944     return This->lpVtbl->GetFontFallback(This,fallback);
   5945 }
   5946 /*** IDWriteTextFormat2 methods ***/
   5947 static inline HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This,const DWRITE_LINE_SPACING *spacing) {
   5948     return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing);
   5949 }
   5950 static inline HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This,DWRITE_LINE_SPACING *spacing) {
   5951     return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing);
   5952 }
   5953 /*** IDWriteTextFormat3 methods ***/
   5954 static inline HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
   5955     return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values);
   5956 }
   5957 static inline UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) {
   5958     return This->lpVtbl->GetFontAxisValueCount(This);
   5959 }
   5960 static inline HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
   5961     return This->lpVtbl->GetFontAxisValues(This,axis_values,num_values);
   5962 }
   5963 static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) {
   5964     return This->lpVtbl->GetAutomaticFontAxes(This);
   5965 }
   5966 static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This,DWRITE_AUTOMATIC_FONT_AXES axes) {
   5967     return This->lpVtbl->SetAutomaticFontAxes(This,axes);
   5968 }
   5969 #endif
   5970 #endif
   5971 
   5972 #endif
   5973 
   5974 
   5975 #endif  /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */
   5976 
   5977 /*****************************************************************************
   5978  * IDWriteTextLayout3 interface
   5979  */
   5980 #ifndef __IDWriteTextLayout3_INTERFACE_DEFINED__
   5981 #define __IDWriteTextLayout3_INTERFACE_DEFINED__
   5982 
   5983 DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d);
   5984 #if defined(__cplusplus) && !defined(CINTERFACE)
   5985 MIDL_INTERFACE("07ddcd52-020e-4de8-ac33-6c953d83f92d")
   5986 IDWriteTextLayout3 : public IDWriteTextLayout2
   5987 {
   5988     virtual HRESULT STDMETHODCALLTYPE InvalidateLayout(
   5989         ) = 0;
   5990 
   5991     virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
   5992         const DWRITE_LINE_SPACING *spacing) = 0;
   5993 
   5994     virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
   5995         DWRITE_LINE_SPACING *spacing) = 0;
   5996 
   5997     virtual HRESULT STDMETHODCALLTYPE GetLineMetrics(
   5998         DWRITE_LINE_METRICS1 *metrics,
   5999         UINT32 max_count,
   6000         UINT32 *count) = 0;
   6001 
   6002 };
   6003 #ifdef __CRT_UUID_DECL
   6004 __CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d)
   6005 #endif
   6006 #else
   6007 typedef struct IDWriteTextLayout3Vtbl {
   6008     BEGIN_INTERFACE
   6009 
   6010     /*** IUnknown methods ***/
   6011     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6012         IDWriteTextLayout3 *This,
   6013         REFIID riid,
   6014         void **ppvObject);
   6015 
   6016     ULONG (STDMETHODCALLTYPE *AddRef)(
   6017         IDWriteTextLayout3 *This);
   6018 
   6019     ULONG (STDMETHODCALLTYPE *Release)(
   6020         IDWriteTextLayout3 *This);
   6021 
   6022     /*** IDWriteTextFormat methods ***/
   6023     HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
   6024         IDWriteTextLayout3 *This,
   6025         DWRITE_TEXT_ALIGNMENT alignment);
   6026 
   6027     HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
   6028         IDWriteTextLayout3 *This,
   6029         DWRITE_PARAGRAPH_ALIGNMENT alignment);
   6030 
   6031     HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
   6032         IDWriteTextLayout3 *This,
   6033         DWRITE_WORD_WRAPPING wrapping);
   6034 
   6035     HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
   6036         IDWriteTextLayout3 *This,
   6037         DWRITE_READING_DIRECTION direction);
   6038 
   6039     HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
   6040         IDWriteTextLayout3 *This,
   6041         DWRITE_FLOW_DIRECTION direction);
   6042 
   6043     HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
   6044         IDWriteTextLayout3 *This,
   6045         FLOAT tabstop);
   6046 
   6047     HRESULT (STDMETHODCALLTYPE *SetTrimming)(
   6048         IDWriteTextLayout3 *This,
   6049         const DWRITE_TRIMMING *trimming,
   6050         IDWriteInlineObject *trimming_sign);
   6051 
   6052     HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
   6053         IDWriteTextLayout3 *This,
   6054         DWRITE_LINE_SPACING_METHOD spacing,
   6055         FLOAT line_spacing,
   6056         FLOAT baseline);
   6057 
   6058     DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
   6059         IDWriteTextLayout3 *This);
   6060 
   6061     DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
   6062         IDWriteTextLayout3 *This);
   6063 
   6064     DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
   6065         IDWriteTextLayout3 *This);
   6066 
   6067     DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
   6068         IDWriteTextLayout3 *This);
   6069 
   6070     DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
   6071         IDWriteTextLayout3 *This);
   6072 
   6073     FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
   6074         IDWriteTextLayout3 *This);
   6075 
   6076     HRESULT (STDMETHODCALLTYPE *GetTrimming)(
   6077         IDWriteTextLayout3 *This,
   6078         DWRITE_TRIMMING *options,
   6079         IDWriteInlineObject **trimming_sign);
   6080 
   6081     HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
   6082         IDWriteTextLayout3 *This,
   6083         DWRITE_LINE_SPACING_METHOD *method,
   6084         FLOAT *spacing,
   6085         FLOAT *baseline);
   6086 
   6087     HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
   6088         IDWriteTextLayout3 *This,
   6089         IDWriteFontCollection **collection);
   6090 
   6091     UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
   6092         IDWriteTextLayout3 *This);
   6093 
   6094     HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
   6095         IDWriteTextLayout3 *This,
   6096         WCHAR *name,
   6097         UINT32 size);
   6098 
   6099     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
   6100         IDWriteTextLayout3 *This);
   6101 
   6102     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
   6103         IDWriteTextLayout3 *This);
   6104 
   6105     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
   6106         IDWriteTextLayout3 *This);
   6107 
   6108     FLOAT (STDMETHODCALLTYPE *GetFontSize)(
   6109         IDWriteTextLayout3 *This);
   6110 
   6111     UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
   6112         IDWriteTextLayout3 *This);
   6113 
   6114     HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
   6115         IDWriteTextLayout3 *This,
   6116         WCHAR *name,
   6117         UINT32 size);
   6118 
   6119     /*** IDWriteTextLayout methods ***/
   6120     HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
   6121         IDWriteTextLayout3 *This,
   6122         FLOAT maxWidth);
   6123 
   6124     HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
   6125         IDWriteTextLayout3 *This,
   6126         FLOAT maxHeight);
   6127 
   6128     HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
   6129         IDWriteTextLayout3 *This,
   6130         IDWriteFontCollection *collection,
   6131         DWRITE_TEXT_RANGE range);
   6132 
   6133     HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
   6134         IDWriteTextLayout3 *This,
   6135         const WCHAR *name,
   6136         DWRITE_TEXT_RANGE range);
   6137 
   6138     HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
   6139         IDWriteTextLayout3 *This,
   6140         DWRITE_FONT_WEIGHT weight,
   6141         DWRITE_TEXT_RANGE range);
   6142 
   6143     HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
   6144         IDWriteTextLayout3 *This,
   6145         DWRITE_FONT_STYLE style,
   6146         DWRITE_TEXT_RANGE range);
   6147 
   6148     HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
   6149         IDWriteTextLayout3 *This,
   6150         DWRITE_FONT_STRETCH stretch,
   6151         DWRITE_TEXT_RANGE range);
   6152 
   6153     HRESULT (STDMETHODCALLTYPE *SetFontSize)(
   6154         IDWriteTextLayout3 *This,
   6155         FLOAT size,
   6156         DWRITE_TEXT_RANGE range);
   6157 
   6158     HRESULT (STDMETHODCALLTYPE *SetUnderline)(
   6159         IDWriteTextLayout3 *This,
   6160         WINBOOL underline,
   6161         DWRITE_TEXT_RANGE range);
   6162 
   6163     HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
   6164         IDWriteTextLayout3 *This,
   6165         WINBOOL strikethrough,
   6166         DWRITE_TEXT_RANGE range);
   6167 
   6168     HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
   6169         IDWriteTextLayout3 *This,
   6170         IUnknown *effect,
   6171         DWRITE_TEXT_RANGE range);
   6172 
   6173     HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
   6174         IDWriteTextLayout3 *This,
   6175         IDWriteInlineObject *object,
   6176         DWRITE_TEXT_RANGE range);
   6177 
   6178     HRESULT (STDMETHODCALLTYPE *SetTypography)(
   6179         IDWriteTextLayout3 *This,
   6180         IDWriteTypography *typography,
   6181         DWRITE_TEXT_RANGE range);
   6182 
   6183     HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
   6184         IDWriteTextLayout3 *This,
   6185         const WCHAR *locale,
   6186         DWRITE_TEXT_RANGE range);
   6187 
   6188     FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
   6189         IDWriteTextLayout3 *This);
   6190 
   6191     FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
   6192         IDWriteTextLayout3 *This);
   6193 
   6194     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
   6195         IDWriteTextLayout3 *This,
   6196         UINT32 pos,
   6197         IDWriteFontCollection **collection,
   6198         DWRITE_TEXT_RANGE *range);
   6199 
   6200     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
   6201         IDWriteTextLayout3 *This,
   6202         UINT32 pos,
   6203         UINT32 *len,
   6204         DWRITE_TEXT_RANGE *range);
   6205 
   6206     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
   6207         IDWriteTextLayout3 *This,
   6208         UINT32 position,
   6209         WCHAR *name,
   6210         UINT32 name_size,
   6211         DWRITE_TEXT_RANGE *range);
   6212 
   6213     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
   6214         IDWriteTextLayout3 *This,
   6215         UINT32 position,
   6216         DWRITE_FONT_WEIGHT *weight,
   6217         DWRITE_TEXT_RANGE *range);
   6218 
   6219     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
   6220         IDWriteTextLayout3 *This,
   6221         UINT32 currentPosition,
   6222         DWRITE_FONT_STYLE *style,
   6223         DWRITE_TEXT_RANGE *range);
   6224 
   6225     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
   6226         IDWriteTextLayout3 *This,
   6227         UINT32 position,
   6228         DWRITE_FONT_STRETCH *stretch,
   6229         DWRITE_TEXT_RANGE *range);
   6230 
   6231     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
   6232         IDWriteTextLayout3 *This,
   6233         UINT32 position,
   6234         FLOAT *size,
   6235         DWRITE_TEXT_RANGE *range);
   6236 
   6237     HRESULT (STDMETHODCALLTYPE *GetUnderline)(
   6238         IDWriteTextLayout3 *This,
   6239         UINT32 position,
   6240         WINBOOL *has_underline,
   6241         DWRITE_TEXT_RANGE *range);
   6242 
   6243     HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
   6244         IDWriteTextLayout3 *This,
   6245         UINT32 position,
   6246         WINBOOL *has_strikethrough,
   6247         DWRITE_TEXT_RANGE *range);
   6248 
   6249     HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
   6250         IDWriteTextLayout3 *This,
   6251         UINT32 position,
   6252         IUnknown **effect,
   6253         DWRITE_TEXT_RANGE *range);
   6254 
   6255     HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
   6256         IDWriteTextLayout3 *This,
   6257         UINT32 position,
   6258         IDWriteInlineObject **object,
   6259         DWRITE_TEXT_RANGE *range);
   6260 
   6261     HRESULT (STDMETHODCALLTYPE *GetTypography)(
   6262         IDWriteTextLayout3 *This,
   6263         UINT32 position,
   6264         IDWriteTypography **typography,
   6265         DWRITE_TEXT_RANGE *range);
   6266 
   6267     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
   6268         IDWriteTextLayout3 *This,
   6269         UINT32 position,
   6270         UINT32 *length,
   6271         DWRITE_TEXT_RANGE *range);
   6272 
   6273     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
   6274         IDWriteTextLayout3 *This,
   6275         UINT32 position,
   6276         WCHAR *name,
   6277         UINT32 name_size,
   6278         DWRITE_TEXT_RANGE *range);
   6279 
   6280     HRESULT (STDMETHODCALLTYPE *Draw)(
   6281         IDWriteTextLayout3 *This,
   6282         void *context,
   6283         IDWriteTextRenderer *renderer,
   6284         FLOAT originX,
   6285         FLOAT originY);
   6286 
   6287     HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
   6288         IDWriteTextLayout3 *This,
   6289         DWRITE_LINE_METRICS *metrics,
   6290         UINT32 max_count,
   6291         UINT32 *actual_count);
   6292 
   6293     HRESULT (STDMETHODCALLTYPE *GetMetrics)(
   6294         IDWriteTextLayout3 *This,
   6295         DWRITE_TEXT_METRICS *metrics);
   6296 
   6297     HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
   6298         IDWriteTextLayout3 *This,
   6299         DWRITE_OVERHANG_METRICS *overhangs);
   6300 
   6301     HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
   6302         IDWriteTextLayout3 *This,
   6303         DWRITE_CLUSTER_METRICS *metrics,
   6304         UINT32 max_count,
   6305         UINT32 *act_count);
   6306 
   6307     HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
   6308         IDWriteTextLayout3 *This,
   6309         FLOAT *min_width);
   6310 
   6311     HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
   6312         IDWriteTextLayout3 *This,
   6313         FLOAT pointX,
   6314         FLOAT pointY,
   6315         WINBOOL *is_trailinghit,
   6316         WINBOOL *is_inside,
   6317         DWRITE_HIT_TEST_METRICS *metrics);
   6318 
   6319     HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
   6320         IDWriteTextLayout3 *This,
   6321         UINT32 textPosition,
   6322         WINBOOL is_trailinghit,
   6323         FLOAT *pointX,
   6324         FLOAT *pointY,
   6325         DWRITE_HIT_TEST_METRICS *metrics);
   6326 
   6327     HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
   6328         IDWriteTextLayout3 *This,
   6329         UINT32 textPosition,
   6330         UINT32 textLength,
   6331         FLOAT originX,
   6332         FLOAT originY,
   6333         DWRITE_HIT_TEST_METRICS *metrics,
   6334         UINT32 max_metricscount,
   6335         UINT32 *actual_metricscount);
   6336 
   6337     /*** IDWriteTextLayout1 methods ***/
   6338     HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
   6339         IDWriteTextLayout3 *This,
   6340         WINBOOL is_pairkerning_enabled,
   6341         DWRITE_TEXT_RANGE range);
   6342 
   6343     HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
   6344         IDWriteTextLayout3 *This,
   6345         UINT32 position,
   6346         WINBOOL *is_pairkerning_enabled,
   6347         DWRITE_TEXT_RANGE *range);
   6348 
   6349     HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
   6350         IDWriteTextLayout3 *This,
   6351         FLOAT leading_spacing,
   6352         FLOAT trailing_spacing,
   6353         FLOAT minimum_advance_width,
   6354         DWRITE_TEXT_RANGE range);
   6355 
   6356     HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
   6357         IDWriteTextLayout3 *This,
   6358         UINT32 position,
   6359         FLOAT *leading_spacing,
   6360         FLOAT *trailing_spacing,
   6361         FLOAT *minimum_advance_width,
   6362         DWRITE_TEXT_RANGE *range);
   6363 
   6364     /*** IDWriteTextLayout2 methods ***/
   6365     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
   6366         IDWriteTextLayout3 *This,
   6367         DWRITE_TEXT_METRICS1 *metrics);
   6368 
   6369     HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
   6370         IDWriteTextLayout3 *This,
   6371         DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
   6372 
   6373     DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
   6374         IDWriteTextLayout3 *This);
   6375 
   6376     HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
   6377         IDWriteTextLayout3 *This,
   6378         WINBOOL lastline_wrapping_enabled);
   6379 
   6380     WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
   6381         IDWriteTextLayout3 *This);
   6382 
   6383     HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
   6384         IDWriteTextLayout3 *This,
   6385         DWRITE_OPTICAL_ALIGNMENT alignment);
   6386 
   6387     DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
   6388         IDWriteTextLayout3 *This);
   6389 
   6390     HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
   6391         IDWriteTextLayout3 *This,
   6392         IDWriteFontFallback *fallback);
   6393 
   6394     HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
   6395         IDWriteTextLayout3 *This,
   6396         IDWriteFontFallback **fallback);
   6397 
   6398     /*** IDWriteTextLayout3 methods ***/
   6399     HRESULT (STDMETHODCALLTYPE *InvalidateLayout)(
   6400         IDWriteTextLayout3 *This);
   6401 
   6402     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)(
   6403         IDWriteTextLayout3 *This,
   6404         const DWRITE_LINE_SPACING *spacing);
   6405 
   6406     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)(
   6407         IDWriteTextLayout3 *This,
   6408         DWRITE_LINE_SPACING *spacing);
   6409 
   6410     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)(
   6411         IDWriteTextLayout3 *This,
   6412         DWRITE_LINE_METRICS1 *metrics,
   6413         UINT32 max_count,
   6414         UINT32 *count);
   6415 
   6416     END_INTERFACE
   6417 } IDWriteTextLayout3Vtbl;
   6418 
   6419 interface IDWriteTextLayout3 {
   6420     CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl;
   6421 };
   6422 
   6423 #ifdef COBJMACROS
   6424 #ifndef WIDL_C_INLINE_WRAPPERS
   6425 /*** IUnknown methods ***/
   6426 #define IDWriteTextLayout3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6427 #define IDWriteTextLayout3_AddRef(This) (This)->lpVtbl->AddRef(This)
   6428 #define IDWriteTextLayout3_Release(This) (This)->lpVtbl->Release(This)
   6429 /*** IDWriteTextFormat methods ***/
   6430 #define IDWriteTextLayout3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
   6431 #define IDWriteTextLayout3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
   6432 #define IDWriteTextLayout3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
   6433 #define IDWriteTextLayout3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
   6434 #define IDWriteTextLayout3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
   6435 #define IDWriteTextLayout3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
   6436 #define IDWriteTextLayout3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
   6437 #define IDWriteTextLayout3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
   6438 #define IDWriteTextLayout3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
   6439 #define IDWriteTextLayout3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
   6440 #define IDWriteTextLayout3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
   6441 #define IDWriteTextLayout3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
   6442 #define IDWriteTextLayout3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
   6443 #define IDWriteTextLayout3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
   6444 /*** IDWriteTextLayout methods ***/
   6445 #define IDWriteTextLayout3_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
   6446 #define IDWriteTextLayout3_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
   6447 #define IDWriteTextLayout3_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
   6448 #define IDWriteTextLayout3_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
   6449 #define IDWriteTextLayout3_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
   6450 #define IDWriteTextLayout3_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
   6451 #define IDWriteTextLayout3_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
   6452 #define IDWriteTextLayout3_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
   6453 #define IDWriteTextLayout3_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
   6454 #define IDWriteTextLayout3_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
   6455 #define IDWriteTextLayout3_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
   6456 #define IDWriteTextLayout3_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
   6457 #define IDWriteTextLayout3_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
   6458 #define IDWriteTextLayout3_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
   6459 #define IDWriteTextLayout3_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
   6460 #define IDWriteTextLayout3_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
   6461 #define IDWriteTextLayout3_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
   6462 #define IDWriteTextLayout3_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
   6463 #define IDWriteTextLayout3_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
   6464 #define IDWriteTextLayout3_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
   6465 #define IDWriteTextLayout3_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
   6466 #define IDWriteTextLayout3_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
   6467 #define IDWriteTextLayout3_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
   6468 #define IDWriteTextLayout3_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
   6469 #define IDWriteTextLayout3_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
   6470 #define IDWriteTextLayout3_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
   6471 #define IDWriteTextLayout3_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
   6472 #define IDWriteTextLayout3_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
   6473 #define IDWriteTextLayout3_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
   6474 #define IDWriteTextLayout3_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
   6475 #define IDWriteTextLayout3_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
   6476 #define IDWriteTextLayout3_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
   6477 #define IDWriteTextLayout3_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
   6478 #define IDWriteTextLayout3_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
   6479 #define IDWriteTextLayout3_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
   6480 #define IDWriteTextLayout3_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
   6481 #define IDWriteTextLayout3_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
   6482 /*** IDWriteTextLayout1 methods ***/
   6483 #define IDWriteTextLayout3_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
   6484 #define IDWriteTextLayout3_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
   6485 #define IDWriteTextLayout3_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
   6486 #define IDWriteTextLayout3_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
   6487 /*** IDWriteTextLayout2 methods ***/
   6488 #define IDWriteTextLayout3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
   6489 #define IDWriteTextLayout3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
   6490 #define IDWriteTextLayout3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
   6491 #define IDWriteTextLayout3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
   6492 #define IDWriteTextLayout3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
   6493 #define IDWriteTextLayout3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
   6494 #define IDWriteTextLayout3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
   6495 #define IDWriteTextLayout3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
   6496 #define IDWriteTextLayout3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
   6497 /*** IDWriteTextLayout3 methods ***/
   6498 #define IDWriteTextLayout3_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This)
   6499 #define IDWriteTextLayout3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing)
   6500 #define IDWriteTextLayout3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing)
   6501 #define IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count)
   6502 #else
   6503 /*** IUnknown methods ***/
   6504 static inline HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This,REFIID riid,void **ppvObject) {
   6505     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6506 }
   6507 static inline ULONG IDWriteTextLayout3_AddRef(IDWriteTextLayout3* This) {
   6508     return This->lpVtbl->AddRef(This);
   6509 }
   6510 static inline ULONG IDWriteTextLayout3_Release(IDWriteTextLayout3* This) {
   6511     return This->lpVtbl->Release(This);
   6512 }
   6513 /*** IDWriteTextFormat methods ***/
   6514 static inline HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This,DWRITE_TEXT_ALIGNMENT alignment) {
   6515     return This->lpVtbl->SetTextAlignment(This,alignment);
   6516 }
   6517 static inline HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
   6518     return This->lpVtbl->SetParagraphAlignment(This,alignment);
   6519 }
   6520 static inline HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This,DWRITE_WORD_WRAPPING wrapping) {
   6521     return This->lpVtbl->SetWordWrapping(This,wrapping);
   6522 }
   6523 static inline HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This,DWRITE_READING_DIRECTION direction) {
   6524     return This->lpVtbl->SetReadingDirection(This,direction);
   6525 }
   6526 static inline HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This,DWRITE_FLOW_DIRECTION direction) {
   6527     return This->lpVtbl->SetFlowDirection(This,direction);
   6528 }
   6529 static inline HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This,FLOAT tabstop) {
   6530     return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
   6531 }
   6532 static inline HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
   6533     return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
   6534 }
   6535 static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout3_GetTextAlignment(IDWriteTextLayout3* This) {
   6536     return This->lpVtbl->GetTextAlignment(This);
   6537 }
   6538 static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout3_GetParagraphAlignment(IDWriteTextLayout3* This) {
   6539     return This->lpVtbl->GetParagraphAlignment(This);
   6540 }
   6541 static inline DWRITE_WORD_WRAPPING IDWriteTextLayout3_GetWordWrapping(IDWriteTextLayout3* This) {
   6542     return This->lpVtbl->GetWordWrapping(This);
   6543 }
   6544 static inline DWRITE_READING_DIRECTION IDWriteTextLayout3_GetReadingDirection(IDWriteTextLayout3* This) {
   6545     return This->lpVtbl->GetReadingDirection(This);
   6546 }
   6547 static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout3_GetFlowDirection(IDWriteTextLayout3* This) {
   6548     return This->lpVtbl->GetFlowDirection(This);
   6549 }
   6550 static inline FLOAT IDWriteTextLayout3_GetIncrementalTabStop(IDWriteTextLayout3* This) {
   6551     return This->lpVtbl->GetIncrementalTabStop(This);
   6552 }
   6553 static inline HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
   6554     return This->lpVtbl->GetTrimming(This,options,trimming_sign);
   6555 }
   6556 /*** IDWriteTextLayout methods ***/
   6557 static inline HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This,FLOAT maxWidth) {
   6558     return This->lpVtbl->SetMaxWidth(This,maxWidth);
   6559 }
   6560 static inline HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This,FLOAT maxHeight) {
   6561     return This->lpVtbl->SetMaxHeight(This,maxHeight);
   6562 }
   6563 static inline HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
   6564     return This->lpVtbl->SetFontCollection(This,collection,range);
   6565 }
   6566 static inline HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
   6567     return This->lpVtbl->SetFontFamilyName(This,name,range);
   6568 }
   6569 static inline HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
   6570     return This->lpVtbl->SetFontWeight(This,weight,range);
   6571 }
   6572 static inline HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
   6573     return This->lpVtbl->SetFontStyle(This,style,range);
   6574 }
   6575 static inline HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
   6576     return This->lpVtbl->SetFontStretch(This,stretch,range);
   6577 }
   6578 static inline HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This,FLOAT size,DWRITE_TEXT_RANGE range) {
   6579     return This->lpVtbl->SetFontSize(This,size,range);
   6580 }
   6581 static inline HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
   6582     return This->lpVtbl->SetUnderline(This,underline,range);
   6583 }
   6584 static inline HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
   6585     return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
   6586 }
   6587 static inline HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
   6588     return This->lpVtbl->SetDrawingEffect(This,effect,range);
   6589 }
   6590 static inline HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
   6591     return This->lpVtbl->SetInlineObject(This,object,range);
   6592 }
   6593 static inline HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
   6594     return This->lpVtbl->SetTypography(This,typography,range);
   6595 }
   6596 static inline HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
   6597     return This->lpVtbl->SetLocaleName(This,locale,range);
   6598 }
   6599 static inline FLOAT IDWriteTextLayout3_GetMaxWidth(IDWriteTextLayout3* This) {
   6600     return This->lpVtbl->GetMaxWidth(This);
   6601 }
   6602 static inline FLOAT IDWriteTextLayout3_GetMaxHeight(IDWriteTextLayout3* This) {
   6603     return This->lpVtbl->GetMaxHeight(This);
   6604 }
   6605 static inline HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
   6606     return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
   6607 }
   6608 static inline HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
   6609     return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
   6610 }
   6611 static inline HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
   6612     return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
   6613 }
   6614 static inline HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
   6615     return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
   6616 }
   6617 static inline HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
   6618     return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
   6619 }
   6620 static inline HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
   6621     return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
   6622 }
   6623 static inline HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
   6624     return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
   6625 }
   6626 static inline HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
   6627     return This->lpVtbl->GetUnderline(This,position,has_underline,range);
   6628 }
   6629 static inline HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
   6630     return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
   6631 }
   6632 static inline HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
   6633     return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
   6634 }
   6635 static inline HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
   6636     return This->lpVtbl->GetInlineObject(This,position,object,range);
   6637 }
   6638 static inline HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
   6639     return This->lpVtbl->GetTypography(This,position,typography,range);
   6640 }
   6641 static inline HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
   6642     return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
   6643 }
   6644 static inline HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
   6645     return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
   6646 }
   6647 static inline HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
   6648     return This->lpVtbl->Draw(This,context,renderer,originX,originY);
   6649 }
   6650 static inline HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This,DWRITE_OVERHANG_METRICS *overhangs) {
   6651     return This->lpVtbl->GetOverhangMetrics(This,overhangs);
   6652 }
   6653 static inline HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
   6654     return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
   6655 }
   6656 static inline HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This,FLOAT *min_width) {
   6657     return This->lpVtbl->DetermineMinWidth(This,min_width);
   6658 }
   6659 static inline HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
   6660     return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
   6661 }
   6662 static inline HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
   6663     return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
   6664 }
   6665 static inline HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
   6666     return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
   6667 }
   6668 /*** IDWriteTextLayout1 methods ***/
   6669 static inline HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
   6670     return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
   6671 }
   6672 static inline HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
   6673     return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
   6674 }
   6675 static inline HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
   6676     return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
   6677 }
   6678 static inline HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
   6679     return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
   6680 }
   6681 /*** IDWriteTextLayout2 methods ***/
   6682 static inline HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This,DWRITE_TEXT_METRICS1 *metrics) {
   6683     return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
   6684 }
   6685 static inline HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
   6686     return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
   6687 }
   6688 static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout3_GetVerticalGlyphOrientation(IDWriteTextLayout3* This) {
   6689     return This->lpVtbl->GetVerticalGlyphOrientation(This);
   6690 }
   6691 static inline HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This,WINBOOL lastline_wrapping_enabled) {
   6692     return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
   6693 }
   6694 static inline WINBOOL IDWriteTextLayout3_GetLastLineWrapping(IDWriteTextLayout3* This) {
   6695     return This->lpVtbl->GetLastLineWrapping(This);
   6696 }
   6697 static inline HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
   6698     return This->lpVtbl->SetOpticalAlignment(This,alignment);
   6699 }
   6700 static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout3_GetOpticalAlignment(IDWriteTextLayout3* This) {
   6701     return This->lpVtbl->GetOpticalAlignment(This);
   6702 }
   6703 static inline HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback *fallback) {
   6704     return This->lpVtbl->SetFontFallback(This,fallback);
   6705 }
   6706 static inline HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback **fallback) {
   6707     return This->lpVtbl->GetFontFallback(This,fallback);
   6708 }
   6709 /*** IDWriteTextLayout3 methods ***/
   6710 static inline HRESULT IDWriteTextLayout3_InvalidateLayout(IDWriteTextLayout3* This) {
   6711     return This->lpVtbl->InvalidateLayout(This);
   6712 }
   6713 static inline HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This,const DWRITE_LINE_SPACING *spacing) {
   6714     return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing);
   6715 }
   6716 static inline HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This,DWRITE_LINE_SPACING *spacing) {
   6717     return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing);
   6718 }
   6719 static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) {
   6720     return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count);
   6721 }
   6722 #endif
   6723 #endif
   6724 
   6725 #endif
   6726 
   6727 
   6728 #endif  /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */
   6729 
   6730 /*****************************************************************************
   6731  * IDWriteTextLayout4 interface
   6732  */
   6733 #ifndef __IDWriteTextLayout4_INTERFACE_DEFINED__
   6734 #define __IDWriteTextLayout4_INTERFACE_DEFINED__
   6735 
   6736 DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9);
   6737 #if defined(__cplusplus) && !defined(CINTERFACE)
   6738 MIDL_INTERFACE("05a9bf42-223f-4441-b5fb-8263685f55e9")
   6739 IDWriteTextLayout4 : public IDWriteTextLayout3
   6740 {
   6741     virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues(
   6742         const DWRITE_FONT_AXIS_VALUE *axis_values,
   6743         UINT32 num_values,
   6744         DWRITE_TEXT_RANGE range) = 0;
   6745 
   6746     virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
   6747         UINT32 pos) = 0;
   6748 
   6749     virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
   6750         UINT32 pos,
   6751         DWRITE_FONT_AXIS_VALUE *values,
   6752         UINT32 num_values,
   6753         DWRITE_TEXT_RANGE *range) = 0;
   6754 
   6755     virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
   6756         ) = 0;
   6757 
   6758     virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes(
   6759         DWRITE_AUTOMATIC_FONT_AXES axes) = 0;
   6760 
   6761 };
   6762 #ifdef __CRT_UUID_DECL
   6763 __CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9)
   6764 #endif
   6765 #else
   6766 typedef struct IDWriteTextLayout4Vtbl {
   6767     BEGIN_INTERFACE
   6768 
   6769     /*** IUnknown methods ***/
   6770     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6771         IDWriteTextLayout4 *This,
   6772         REFIID riid,
   6773         void **ppvObject);
   6774 
   6775     ULONG (STDMETHODCALLTYPE *AddRef)(
   6776         IDWriteTextLayout4 *This);
   6777 
   6778     ULONG (STDMETHODCALLTYPE *Release)(
   6779         IDWriteTextLayout4 *This);
   6780 
   6781     /*** IDWriteTextFormat methods ***/
   6782     HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
   6783         IDWriteTextLayout4 *This,
   6784         DWRITE_TEXT_ALIGNMENT alignment);
   6785 
   6786     HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
   6787         IDWriteTextLayout4 *This,
   6788         DWRITE_PARAGRAPH_ALIGNMENT alignment);
   6789 
   6790     HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
   6791         IDWriteTextLayout4 *This,
   6792         DWRITE_WORD_WRAPPING wrapping);
   6793 
   6794     HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
   6795         IDWriteTextLayout4 *This,
   6796         DWRITE_READING_DIRECTION direction);
   6797 
   6798     HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
   6799         IDWriteTextLayout4 *This,
   6800         DWRITE_FLOW_DIRECTION direction);
   6801 
   6802     HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
   6803         IDWriteTextLayout4 *This,
   6804         FLOAT tabstop);
   6805 
   6806     HRESULT (STDMETHODCALLTYPE *SetTrimming)(
   6807         IDWriteTextLayout4 *This,
   6808         const DWRITE_TRIMMING *trimming,
   6809         IDWriteInlineObject *trimming_sign);
   6810 
   6811     HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
   6812         IDWriteTextLayout4 *This,
   6813         DWRITE_LINE_SPACING_METHOD spacing,
   6814         FLOAT line_spacing,
   6815         FLOAT baseline);
   6816 
   6817     DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
   6818         IDWriteTextLayout4 *This);
   6819 
   6820     DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
   6821         IDWriteTextLayout4 *This);
   6822 
   6823     DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
   6824         IDWriteTextLayout4 *This);
   6825 
   6826     DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
   6827         IDWriteTextLayout4 *This);
   6828 
   6829     DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
   6830         IDWriteTextLayout4 *This);
   6831 
   6832     FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
   6833         IDWriteTextLayout4 *This);
   6834 
   6835     HRESULT (STDMETHODCALLTYPE *GetTrimming)(
   6836         IDWriteTextLayout4 *This,
   6837         DWRITE_TRIMMING *options,
   6838         IDWriteInlineObject **trimming_sign);
   6839 
   6840     HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
   6841         IDWriteTextLayout4 *This,
   6842         DWRITE_LINE_SPACING_METHOD *method,
   6843         FLOAT *spacing,
   6844         FLOAT *baseline);
   6845 
   6846     HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
   6847         IDWriteTextLayout4 *This,
   6848         IDWriteFontCollection **collection);
   6849 
   6850     UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
   6851         IDWriteTextLayout4 *This);
   6852 
   6853     HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
   6854         IDWriteTextLayout4 *This,
   6855         WCHAR *name,
   6856         UINT32 size);
   6857 
   6858     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
   6859         IDWriteTextLayout4 *This);
   6860 
   6861     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
   6862         IDWriteTextLayout4 *This);
   6863 
   6864     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
   6865         IDWriteTextLayout4 *This);
   6866 
   6867     FLOAT (STDMETHODCALLTYPE *GetFontSize)(
   6868         IDWriteTextLayout4 *This);
   6869 
   6870     UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
   6871         IDWriteTextLayout4 *This);
   6872 
   6873     HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
   6874         IDWriteTextLayout4 *This,
   6875         WCHAR *name,
   6876         UINT32 size);
   6877 
   6878     /*** IDWriteTextLayout methods ***/
   6879     HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
   6880         IDWriteTextLayout4 *This,
   6881         FLOAT maxWidth);
   6882 
   6883     HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
   6884         IDWriteTextLayout4 *This,
   6885         FLOAT maxHeight);
   6886 
   6887     HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
   6888         IDWriteTextLayout4 *This,
   6889         IDWriteFontCollection *collection,
   6890         DWRITE_TEXT_RANGE range);
   6891 
   6892     HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
   6893         IDWriteTextLayout4 *This,
   6894         const WCHAR *name,
   6895         DWRITE_TEXT_RANGE range);
   6896 
   6897     HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
   6898         IDWriteTextLayout4 *This,
   6899         DWRITE_FONT_WEIGHT weight,
   6900         DWRITE_TEXT_RANGE range);
   6901 
   6902     HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
   6903         IDWriteTextLayout4 *This,
   6904         DWRITE_FONT_STYLE style,
   6905         DWRITE_TEXT_RANGE range);
   6906 
   6907     HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
   6908         IDWriteTextLayout4 *This,
   6909         DWRITE_FONT_STRETCH stretch,
   6910         DWRITE_TEXT_RANGE range);
   6911 
   6912     HRESULT (STDMETHODCALLTYPE *SetFontSize)(
   6913         IDWriteTextLayout4 *This,
   6914         FLOAT size,
   6915         DWRITE_TEXT_RANGE range);
   6916 
   6917     HRESULT (STDMETHODCALLTYPE *SetUnderline)(
   6918         IDWriteTextLayout4 *This,
   6919         WINBOOL underline,
   6920         DWRITE_TEXT_RANGE range);
   6921 
   6922     HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
   6923         IDWriteTextLayout4 *This,
   6924         WINBOOL strikethrough,
   6925         DWRITE_TEXT_RANGE range);
   6926 
   6927     HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
   6928         IDWriteTextLayout4 *This,
   6929         IUnknown *effect,
   6930         DWRITE_TEXT_RANGE range);
   6931 
   6932     HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
   6933         IDWriteTextLayout4 *This,
   6934         IDWriteInlineObject *object,
   6935         DWRITE_TEXT_RANGE range);
   6936 
   6937     HRESULT (STDMETHODCALLTYPE *SetTypography)(
   6938         IDWriteTextLayout4 *This,
   6939         IDWriteTypography *typography,
   6940         DWRITE_TEXT_RANGE range);
   6941 
   6942     HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
   6943         IDWriteTextLayout4 *This,
   6944         const WCHAR *locale,
   6945         DWRITE_TEXT_RANGE range);
   6946 
   6947     FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
   6948         IDWriteTextLayout4 *This);
   6949 
   6950     FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
   6951         IDWriteTextLayout4 *This);
   6952 
   6953     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
   6954         IDWriteTextLayout4 *This,
   6955         UINT32 pos,
   6956         IDWriteFontCollection **collection,
   6957         DWRITE_TEXT_RANGE *range);
   6958 
   6959     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
   6960         IDWriteTextLayout4 *This,
   6961         UINT32 pos,
   6962         UINT32 *len,
   6963         DWRITE_TEXT_RANGE *range);
   6964 
   6965     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
   6966         IDWriteTextLayout4 *This,
   6967         UINT32 position,
   6968         WCHAR *name,
   6969         UINT32 name_size,
   6970         DWRITE_TEXT_RANGE *range);
   6971 
   6972     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
   6973         IDWriteTextLayout4 *This,
   6974         UINT32 position,
   6975         DWRITE_FONT_WEIGHT *weight,
   6976         DWRITE_TEXT_RANGE *range);
   6977 
   6978     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
   6979         IDWriteTextLayout4 *This,
   6980         UINT32 currentPosition,
   6981         DWRITE_FONT_STYLE *style,
   6982         DWRITE_TEXT_RANGE *range);
   6983 
   6984     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
   6985         IDWriteTextLayout4 *This,
   6986         UINT32 position,
   6987         DWRITE_FONT_STRETCH *stretch,
   6988         DWRITE_TEXT_RANGE *range);
   6989 
   6990     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
   6991         IDWriteTextLayout4 *This,
   6992         UINT32 position,
   6993         FLOAT *size,
   6994         DWRITE_TEXT_RANGE *range);
   6995 
   6996     HRESULT (STDMETHODCALLTYPE *GetUnderline)(
   6997         IDWriteTextLayout4 *This,
   6998         UINT32 position,
   6999         WINBOOL *has_underline,
   7000         DWRITE_TEXT_RANGE *range);
   7001 
   7002     HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
   7003         IDWriteTextLayout4 *This,
   7004         UINT32 position,
   7005         WINBOOL *has_strikethrough,
   7006         DWRITE_TEXT_RANGE *range);
   7007 
   7008     HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
   7009         IDWriteTextLayout4 *This,
   7010         UINT32 position,
   7011         IUnknown **effect,
   7012         DWRITE_TEXT_RANGE *range);
   7013 
   7014     HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
   7015         IDWriteTextLayout4 *This,
   7016         UINT32 position,
   7017         IDWriteInlineObject **object,
   7018         DWRITE_TEXT_RANGE *range);
   7019 
   7020     HRESULT (STDMETHODCALLTYPE *GetTypography)(
   7021         IDWriteTextLayout4 *This,
   7022         UINT32 position,
   7023         IDWriteTypography **typography,
   7024         DWRITE_TEXT_RANGE *range);
   7025 
   7026     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
   7027         IDWriteTextLayout4 *This,
   7028         UINT32 position,
   7029         UINT32 *length,
   7030         DWRITE_TEXT_RANGE *range);
   7031 
   7032     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
   7033         IDWriteTextLayout4 *This,
   7034         UINT32 position,
   7035         WCHAR *name,
   7036         UINT32 name_size,
   7037         DWRITE_TEXT_RANGE *range);
   7038 
   7039     HRESULT (STDMETHODCALLTYPE *Draw)(
   7040         IDWriteTextLayout4 *This,
   7041         void *context,
   7042         IDWriteTextRenderer *renderer,
   7043         FLOAT originX,
   7044         FLOAT originY);
   7045 
   7046     HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
   7047         IDWriteTextLayout4 *This,
   7048         DWRITE_LINE_METRICS *metrics,
   7049         UINT32 max_count,
   7050         UINT32 *actual_count);
   7051 
   7052     HRESULT (STDMETHODCALLTYPE *GetMetrics)(
   7053         IDWriteTextLayout4 *This,
   7054         DWRITE_TEXT_METRICS *metrics);
   7055 
   7056     HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
   7057         IDWriteTextLayout4 *This,
   7058         DWRITE_OVERHANG_METRICS *overhangs);
   7059 
   7060     HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
   7061         IDWriteTextLayout4 *This,
   7062         DWRITE_CLUSTER_METRICS *metrics,
   7063         UINT32 max_count,
   7064         UINT32 *act_count);
   7065 
   7066     HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
   7067         IDWriteTextLayout4 *This,
   7068         FLOAT *min_width);
   7069 
   7070     HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
   7071         IDWriteTextLayout4 *This,
   7072         FLOAT pointX,
   7073         FLOAT pointY,
   7074         WINBOOL *is_trailinghit,
   7075         WINBOOL *is_inside,
   7076         DWRITE_HIT_TEST_METRICS *metrics);
   7077 
   7078     HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
   7079         IDWriteTextLayout4 *This,
   7080         UINT32 textPosition,
   7081         WINBOOL is_trailinghit,
   7082         FLOAT *pointX,
   7083         FLOAT *pointY,
   7084         DWRITE_HIT_TEST_METRICS *metrics);
   7085 
   7086     HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
   7087         IDWriteTextLayout4 *This,
   7088         UINT32 textPosition,
   7089         UINT32 textLength,
   7090         FLOAT originX,
   7091         FLOAT originY,
   7092         DWRITE_HIT_TEST_METRICS *metrics,
   7093         UINT32 max_metricscount,
   7094         UINT32 *actual_metricscount);
   7095 
   7096     /*** IDWriteTextLayout1 methods ***/
   7097     HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
   7098         IDWriteTextLayout4 *This,
   7099         WINBOOL is_pairkerning_enabled,
   7100         DWRITE_TEXT_RANGE range);
   7101 
   7102     HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
   7103         IDWriteTextLayout4 *This,
   7104         UINT32 position,
   7105         WINBOOL *is_pairkerning_enabled,
   7106         DWRITE_TEXT_RANGE *range);
   7107 
   7108     HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
   7109         IDWriteTextLayout4 *This,
   7110         FLOAT leading_spacing,
   7111         FLOAT trailing_spacing,
   7112         FLOAT minimum_advance_width,
   7113         DWRITE_TEXT_RANGE range);
   7114 
   7115     HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
   7116         IDWriteTextLayout4 *This,
   7117         UINT32 position,
   7118         FLOAT *leading_spacing,
   7119         FLOAT *trailing_spacing,
   7120         FLOAT *minimum_advance_width,
   7121         DWRITE_TEXT_RANGE *range);
   7122 
   7123     /*** IDWriteTextLayout2 methods ***/
   7124     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
   7125         IDWriteTextLayout4 *This,
   7126         DWRITE_TEXT_METRICS1 *metrics);
   7127 
   7128     HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
   7129         IDWriteTextLayout4 *This,
   7130         DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
   7131 
   7132     DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
   7133         IDWriteTextLayout4 *This);
   7134 
   7135     HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
   7136         IDWriteTextLayout4 *This,
   7137         WINBOOL lastline_wrapping_enabled);
   7138 
   7139     WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
   7140         IDWriteTextLayout4 *This);
   7141 
   7142     HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
   7143         IDWriteTextLayout4 *This,
   7144         DWRITE_OPTICAL_ALIGNMENT alignment);
   7145 
   7146     DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
   7147         IDWriteTextLayout4 *This);
   7148 
   7149     HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
   7150         IDWriteTextLayout4 *This,
   7151         IDWriteFontFallback *fallback);
   7152 
   7153     HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
   7154         IDWriteTextLayout4 *This,
   7155         IDWriteFontFallback **fallback);
   7156 
   7157     /*** IDWriteTextLayout3 methods ***/
   7158     HRESULT (STDMETHODCALLTYPE *InvalidateLayout)(
   7159         IDWriteTextLayout4 *This);
   7160 
   7161     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)(
   7162         IDWriteTextLayout4 *This,
   7163         const DWRITE_LINE_SPACING *spacing);
   7164 
   7165     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)(
   7166         IDWriteTextLayout4 *This,
   7167         DWRITE_LINE_SPACING *spacing);
   7168 
   7169     HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)(
   7170         IDWriteTextLayout4 *This,
   7171         DWRITE_LINE_METRICS1 *metrics,
   7172         UINT32 max_count,
   7173         UINT32 *count);
   7174 
   7175     /*** IDWriteTextLayout4 methods ***/
   7176     HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)(
   7177         IDWriteTextLayout4 *This,
   7178         const DWRITE_FONT_AXIS_VALUE *axis_values,
   7179         UINT32 num_values,
   7180         DWRITE_TEXT_RANGE range);
   7181 
   7182     UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
   7183         IDWriteTextLayout4 *This,
   7184         UINT32 pos);
   7185 
   7186     HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
   7187         IDWriteTextLayout4 *This,
   7188         UINT32 pos,
   7189         DWRITE_FONT_AXIS_VALUE *values,
   7190         UINT32 num_values,
   7191         DWRITE_TEXT_RANGE *range);
   7192 
   7193     DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
   7194         IDWriteTextLayout4 *This);
   7195 
   7196     HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)(
   7197         IDWriteTextLayout4 *This,
   7198         DWRITE_AUTOMATIC_FONT_AXES axes);
   7199 
   7200     END_INTERFACE
   7201 } IDWriteTextLayout4Vtbl;
   7202 
   7203 interface IDWriteTextLayout4 {
   7204     CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl;
   7205 };
   7206 
   7207 #ifdef COBJMACROS
   7208 #ifndef WIDL_C_INLINE_WRAPPERS
   7209 /*** IUnknown methods ***/
   7210 #define IDWriteTextLayout4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7211 #define IDWriteTextLayout4_AddRef(This) (This)->lpVtbl->AddRef(This)
   7212 #define IDWriteTextLayout4_Release(This) (This)->lpVtbl->Release(This)
   7213 /*** IDWriteTextFormat methods ***/
   7214 #define IDWriteTextLayout4_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
   7215 #define IDWriteTextLayout4_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
   7216 #define IDWriteTextLayout4_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
   7217 #define IDWriteTextLayout4_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
   7218 #define IDWriteTextLayout4_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
   7219 #define IDWriteTextLayout4_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
   7220 #define IDWriteTextLayout4_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
   7221 #define IDWriteTextLayout4_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
   7222 #define IDWriteTextLayout4_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
   7223 #define IDWriteTextLayout4_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
   7224 #define IDWriteTextLayout4_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
   7225 #define IDWriteTextLayout4_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
   7226 #define IDWriteTextLayout4_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
   7227 #define IDWriteTextLayout4_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
   7228 /*** IDWriteTextLayout methods ***/
   7229 #define IDWriteTextLayout4_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
   7230 #define IDWriteTextLayout4_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
   7231 #define IDWriteTextLayout4_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
   7232 #define IDWriteTextLayout4_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
   7233 #define IDWriteTextLayout4_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
   7234 #define IDWriteTextLayout4_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
   7235 #define IDWriteTextLayout4_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
   7236 #define IDWriteTextLayout4_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
   7237 #define IDWriteTextLayout4_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
   7238 #define IDWriteTextLayout4_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
   7239 #define IDWriteTextLayout4_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
   7240 #define IDWriteTextLayout4_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
   7241 #define IDWriteTextLayout4_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
   7242 #define IDWriteTextLayout4_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
   7243 #define IDWriteTextLayout4_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
   7244 #define IDWriteTextLayout4_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
   7245 #define IDWriteTextLayout4_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
   7246 #define IDWriteTextLayout4_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
   7247 #define IDWriteTextLayout4_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
   7248 #define IDWriteTextLayout4_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
   7249 #define IDWriteTextLayout4_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
   7250 #define IDWriteTextLayout4_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
   7251 #define IDWriteTextLayout4_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
   7252 #define IDWriteTextLayout4_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
   7253 #define IDWriteTextLayout4_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
   7254 #define IDWriteTextLayout4_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
   7255 #define IDWriteTextLayout4_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
   7256 #define IDWriteTextLayout4_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
   7257 #define IDWriteTextLayout4_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
   7258 #define IDWriteTextLayout4_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
   7259 #define IDWriteTextLayout4_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
   7260 #define IDWriteTextLayout4_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
   7261 #define IDWriteTextLayout4_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
   7262 #define IDWriteTextLayout4_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
   7263 #define IDWriteTextLayout4_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
   7264 #define IDWriteTextLayout4_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
   7265 #define IDWriteTextLayout4_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
   7266 /*** IDWriteTextLayout1 methods ***/
   7267 #define IDWriteTextLayout4_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
   7268 #define IDWriteTextLayout4_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
   7269 #define IDWriteTextLayout4_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
   7270 #define IDWriteTextLayout4_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
   7271 /*** IDWriteTextLayout2 methods ***/
   7272 #define IDWriteTextLayout4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
   7273 #define IDWriteTextLayout4_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
   7274 #define IDWriteTextLayout4_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
   7275 #define IDWriteTextLayout4_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
   7276 #define IDWriteTextLayout4_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
   7277 #define IDWriteTextLayout4_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
   7278 #define IDWriteTextLayout4_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
   7279 #define IDWriteTextLayout4_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
   7280 #define IDWriteTextLayout4_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
   7281 /*** IDWriteTextLayout3 methods ***/
   7282 #define IDWriteTextLayout4_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This)
   7283 #define IDWriteTextLayout4_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing)
   7284 #define IDWriteTextLayout4_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing)
   7285 #define IDWriteTextLayout4_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count)
   7286 /*** IDWriteTextLayout4 methods ***/
   7287 #define IDWriteTextLayout4_SetFontAxisValues(This,axis_values,num_values,range) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range)
   7288 #define IDWriteTextLayout4_GetFontAxisValueCount(This,pos) (This)->lpVtbl->GetFontAxisValueCount(This,pos)
   7289 #define IDWriteTextLayout4_GetFontAxisValues(This,pos,values,num_values,range) (This)->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range)
   7290 #define IDWriteTextLayout4_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This)
   7291 #define IDWriteTextLayout4_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes)
   7292 #else
   7293 /*** IUnknown methods ***/
   7294 static inline HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This,REFIID riid,void **ppvObject) {
   7295     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7296 }
   7297 static inline ULONG IDWriteTextLayout4_AddRef(IDWriteTextLayout4* This) {
   7298     return This->lpVtbl->AddRef(This);
   7299 }
   7300 static inline ULONG IDWriteTextLayout4_Release(IDWriteTextLayout4* This) {
   7301     return This->lpVtbl->Release(This);
   7302 }
   7303 /*** IDWriteTextFormat methods ***/
   7304 static inline HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This,DWRITE_TEXT_ALIGNMENT alignment) {
   7305     return This->lpVtbl->SetTextAlignment(This,alignment);
   7306 }
   7307 static inline HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
   7308     return This->lpVtbl->SetParagraphAlignment(This,alignment);
   7309 }
   7310 static inline HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This,DWRITE_WORD_WRAPPING wrapping) {
   7311     return This->lpVtbl->SetWordWrapping(This,wrapping);
   7312 }
   7313 static inline HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This,DWRITE_READING_DIRECTION direction) {
   7314     return This->lpVtbl->SetReadingDirection(This,direction);
   7315 }
   7316 static inline HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This,DWRITE_FLOW_DIRECTION direction) {
   7317     return This->lpVtbl->SetFlowDirection(This,direction);
   7318 }
   7319 static inline HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This,FLOAT tabstop) {
   7320     return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
   7321 }
   7322 static inline HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
   7323     return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
   7324 }
   7325 static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout4_GetTextAlignment(IDWriteTextLayout4* This) {
   7326     return This->lpVtbl->GetTextAlignment(This);
   7327 }
   7328 static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout4_GetParagraphAlignment(IDWriteTextLayout4* This) {
   7329     return This->lpVtbl->GetParagraphAlignment(This);
   7330 }
   7331 static inline DWRITE_WORD_WRAPPING IDWriteTextLayout4_GetWordWrapping(IDWriteTextLayout4* This) {
   7332     return This->lpVtbl->GetWordWrapping(This);
   7333 }
   7334 static inline DWRITE_READING_DIRECTION IDWriteTextLayout4_GetReadingDirection(IDWriteTextLayout4* This) {
   7335     return This->lpVtbl->GetReadingDirection(This);
   7336 }
   7337 static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout4_GetFlowDirection(IDWriteTextLayout4* This) {
   7338     return This->lpVtbl->GetFlowDirection(This);
   7339 }
   7340 static inline FLOAT IDWriteTextLayout4_GetIncrementalTabStop(IDWriteTextLayout4* This) {
   7341     return This->lpVtbl->GetIncrementalTabStop(This);
   7342 }
   7343 static inline HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
   7344     return This->lpVtbl->GetTrimming(This,options,trimming_sign);
   7345 }
   7346 /*** IDWriteTextLayout methods ***/
   7347 static inline HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This,FLOAT maxWidth) {
   7348     return This->lpVtbl->SetMaxWidth(This,maxWidth);
   7349 }
   7350 static inline HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This,FLOAT maxHeight) {
   7351     return This->lpVtbl->SetMaxHeight(This,maxHeight);
   7352 }
   7353 static inline HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
   7354     return This->lpVtbl->SetFontCollection(This,collection,range);
   7355 }
   7356 static inline HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
   7357     return This->lpVtbl->SetFontFamilyName(This,name,range);
   7358 }
   7359 static inline HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
   7360     return This->lpVtbl->SetFontWeight(This,weight,range);
   7361 }
   7362 static inline HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
   7363     return This->lpVtbl->SetFontStyle(This,style,range);
   7364 }
   7365 static inline HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
   7366     return This->lpVtbl->SetFontStretch(This,stretch,range);
   7367 }
   7368 static inline HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This,FLOAT size,DWRITE_TEXT_RANGE range) {
   7369     return This->lpVtbl->SetFontSize(This,size,range);
   7370 }
   7371 static inline HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
   7372     return This->lpVtbl->SetUnderline(This,underline,range);
   7373 }
   7374 static inline HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
   7375     return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
   7376 }
   7377 static inline HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
   7378     return This->lpVtbl->SetDrawingEffect(This,effect,range);
   7379 }
   7380 static inline HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
   7381     return This->lpVtbl->SetInlineObject(This,object,range);
   7382 }
   7383 static inline HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
   7384     return This->lpVtbl->SetTypography(This,typography,range);
   7385 }
   7386 static inline HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
   7387     return This->lpVtbl->SetLocaleName(This,locale,range);
   7388 }
   7389 static inline FLOAT IDWriteTextLayout4_GetMaxWidth(IDWriteTextLayout4* This) {
   7390     return This->lpVtbl->GetMaxWidth(This);
   7391 }
   7392 static inline FLOAT IDWriteTextLayout4_GetMaxHeight(IDWriteTextLayout4* This) {
   7393     return This->lpVtbl->GetMaxHeight(This);
   7394 }
   7395 static inline HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
   7396     return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
   7397 }
   7398 static inline HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
   7399     return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
   7400 }
   7401 static inline HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
   7402     return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
   7403 }
   7404 static inline HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
   7405     return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
   7406 }
   7407 static inline HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
   7408     return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
   7409 }
   7410 static inline HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
   7411     return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
   7412 }
   7413 static inline HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
   7414     return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
   7415 }
   7416 static inline HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
   7417     return This->lpVtbl->GetUnderline(This,position,has_underline,range);
   7418 }
   7419 static inline HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
   7420     return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
   7421 }
   7422 static inline HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
   7423     return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
   7424 }
   7425 static inline HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
   7426     return This->lpVtbl->GetInlineObject(This,position,object,range);
   7427 }
   7428 static inline HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
   7429     return This->lpVtbl->GetTypography(This,position,typography,range);
   7430 }
   7431 static inline HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
   7432     return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
   7433 }
   7434 static inline HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
   7435     return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
   7436 }
   7437 static inline HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
   7438     return This->lpVtbl->Draw(This,context,renderer,originX,originY);
   7439 }
   7440 static inline HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This,DWRITE_OVERHANG_METRICS *overhangs) {
   7441     return This->lpVtbl->GetOverhangMetrics(This,overhangs);
   7442 }
   7443 static inline HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
   7444     return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
   7445 }
   7446 static inline HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This,FLOAT *min_width) {
   7447     return This->lpVtbl->DetermineMinWidth(This,min_width);
   7448 }
   7449 static inline HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
   7450     return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
   7451 }
   7452 static inline HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
   7453     return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
   7454 }
   7455 static inline HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
   7456     return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
   7457 }
   7458 /*** IDWriteTextLayout1 methods ***/
   7459 static inline HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
   7460     return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
   7461 }
   7462 static inline HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
   7463     return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
   7464 }
   7465 static inline HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
   7466     return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
   7467 }
   7468 static inline HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
   7469     return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
   7470 }
   7471 /*** IDWriteTextLayout2 methods ***/
   7472 static inline HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This,DWRITE_TEXT_METRICS1 *metrics) {
   7473     return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
   7474 }
   7475 static inline HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
   7476     return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
   7477 }
   7478 static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout4_GetVerticalGlyphOrientation(IDWriteTextLayout4* This) {
   7479     return This->lpVtbl->GetVerticalGlyphOrientation(This);
   7480 }
   7481 static inline HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This,WINBOOL lastline_wrapping_enabled) {
   7482     return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
   7483 }
   7484 static inline WINBOOL IDWriteTextLayout4_GetLastLineWrapping(IDWriteTextLayout4* This) {
   7485     return This->lpVtbl->GetLastLineWrapping(This);
   7486 }
   7487 static inline HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
   7488     return This->lpVtbl->SetOpticalAlignment(This,alignment);
   7489 }
   7490 static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout4_GetOpticalAlignment(IDWriteTextLayout4* This) {
   7491     return This->lpVtbl->GetOpticalAlignment(This);
   7492 }
   7493 static inline HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback *fallback) {
   7494     return This->lpVtbl->SetFontFallback(This,fallback);
   7495 }
   7496 static inline HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback **fallback) {
   7497     return This->lpVtbl->GetFontFallback(This,fallback);
   7498 }
   7499 /*** IDWriteTextLayout3 methods ***/
   7500 static inline HRESULT IDWriteTextLayout4_InvalidateLayout(IDWriteTextLayout4* This) {
   7501     return This->lpVtbl->InvalidateLayout(This);
   7502 }
   7503 static inline HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This,const DWRITE_LINE_SPACING *spacing) {
   7504     return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing);
   7505 }
   7506 static inline HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This,DWRITE_LINE_SPACING *spacing) {
   7507     return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing);
   7508 }
   7509 static inline HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) {
   7510     return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count);
   7511 }
   7512 /*** IDWriteTextLayout4 methods ***/
   7513 static inline HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,DWRITE_TEXT_RANGE range) {
   7514     return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range);
   7515 }
   7516 static inline UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This,UINT32 pos) {
   7517     return This->lpVtbl->GetFontAxisValueCount(This,pos);
   7518 }
   7519 static inline HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This,UINT32 pos,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values,DWRITE_TEXT_RANGE *range) {
   7520     return This->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range);
   7521 }
   7522 static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextLayout4_GetAutomaticFontAxes(IDWriteTextLayout4* This) {
   7523     return This->lpVtbl->GetAutomaticFontAxes(This);
   7524 }
   7525 static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This,DWRITE_AUTOMATIC_FONT_AXES axes) {
   7526     return This->lpVtbl->SetAutomaticFontAxes(This,axes);
   7527 }
   7528 #endif
   7529 #endif
   7530 
   7531 #endif
   7532 
   7533 
   7534 #endif  /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */
   7535 
   7536 /*****************************************************************************
   7537  * IDWriteFontFallback1 interface
   7538  */
   7539 #ifndef __IDWriteFontFallback1_INTERFACE_DEFINED__
   7540 #define __IDWriteFontFallback1_INTERFACE_DEFINED__
   7541 
   7542 DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77);
   7543 #if defined(__cplusplus) && !defined(CINTERFACE)
   7544 MIDL_INTERFACE("2397599d-dd0d-4681-bd6a-f4f31eaade77")
   7545 IDWriteFontFallback1 : public IDWriteFontFallback
   7546 {
   7547     virtual HRESULT STDMETHODCALLTYPE MapCharacters(
   7548         IDWriteTextAnalysisSource *source,
   7549         UINT32 pos,
   7550         UINT32 length,
   7551         IDWriteFontCollection *base_collection,
   7552         const WCHAR *familyname,
   7553         const DWRITE_FONT_AXIS_VALUE *axis_values,
   7554         UINT32 num_values,
   7555         UINT32 *mapped_length,
   7556         FLOAT *scale,
   7557         IDWriteFontFace5 **fontface) = 0;
   7558 
   7559 };
   7560 #ifdef __CRT_UUID_DECL
   7561 __CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77)
   7562 #endif
   7563 #else
   7564 typedef struct IDWriteFontFallback1Vtbl {
   7565     BEGIN_INTERFACE
   7566 
   7567     /*** IUnknown methods ***/
   7568     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7569         IDWriteFontFallback1 *This,
   7570         REFIID riid,
   7571         void **ppvObject);
   7572 
   7573     ULONG (STDMETHODCALLTYPE *AddRef)(
   7574         IDWriteFontFallback1 *This);
   7575 
   7576     ULONG (STDMETHODCALLTYPE *Release)(
   7577         IDWriteFontFallback1 *This);
   7578 
   7579     /*** IDWriteFontFallback methods ***/
   7580     HRESULT (STDMETHODCALLTYPE *MapCharacters)(
   7581         IDWriteFontFallback1 *This,
   7582         IDWriteTextAnalysisSource *source,
   7583         UINT32 position,
   7584         UINT32 length,
   7585         IDWriteFontCollection *basecollection,
   7586         const WCHAR *baseFamilyName,
   7587         DWRITE_FONT_WEIGHT baseWeight,
   7588         DWRITE_FONT_STYLE baseStyle,
   7589         DWRITE_FONT_STRETCH baseStretch,
   7590         UINT32 *mappedLength,
   7591         IDWriteFont **mappedFont,
   7592         FLOAT *scale);
   7593 
   7594     /*** IDWriteFontFallback1 methods ***/
   7595     HRESULT (STDMETHODCALLTYPE *IDWriteFontFallback1_MapCharacters)(
   7596         IDWriteFontFallback1 *This,
   7597         IDWriteTextAnalysisSource *source,
   7598         UINT32 pos,
   7599         UINT32 length,
   7600         IDWriteFontCollection *base_collection,
   7601         const WCHAR *familyname,
   7602         const DWRITE_FONT_AXIS_VALUE *axis_values,
   7603         UINT32 num_values,
   7604         UINT32 *mapped_length,
   7605         FLOAT *scale,
   7606         IDWriteFontFace5 **fontface);
   7607 
   7608     END_INTERFACE
   7609 } IDWriteFontFallback1Vtbl;
   7610 
   7611 interface IDWriteFontFallback1 {
   7612     CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl;
   7613 };
   7614 
   7615 #ifdef COBJMACROS
   7616 #ifndef WIDL_C_INLINE_WRAPPERS
   7617 /*** IUnknown methods ***/
   7618 #define IDWriteFontFallback1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7619 #define IDWriteFontFallback1_AddRef(This) (This)->lpVtbl->AddRef(This)
   7620 #define IDWriteFontFallback1_Release(This) (This)->lpVtbl->Release(This)
   7621 /*** IDWriteFontFallback methods ***/
   7622 /*** IDWriteFontFallback1 methods ***/
   7623 #define IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface)
   7624 #else
   7625 /*** IUnknown methods ***/
   7626 static inline HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This,REFIID riid,void **ppvObject) {
   7627     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7628 }
   7629 static inline ULONG IDWriteFontFallback1_AddRef(IDWriteFontFallback1* This) {
   7630     return This->lpVtbl->AddRef(This);
   7631 }
   7632 static inline ULONG IDWriteFontFallback1_Release(IDWriteFontFallback1* This) {
   7633     return This->lpVtbl->Release(This);
   7634 }
   7635 /*** IDWriteFontFallback methods ***/
   7636 /*** IDWriteFontFallback1 methods ***/
   7637 static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This,IDWriteTextAnalysisSource *source,UINT32 pos,UINT32 length,IDWriteFontCollection *base_collection,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,UINT32 *mapped_length,FLOAT *scale,IDWriteFontFace5 **fontface) {
   7638     return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface);
   7639 }
   7640 #endif
   7641 #endif
   7642 
   7643 #endif
   7644 
   7645 
   7646 #endif  /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */
   7647 
   7648 /*****************************************************************************
   7649  * IDWriteGdiInterop1 interface
   7650  */
   7651 #ifndef __IDWriteGdiInterop1_INTERFACE_DEFINED__
   7652 #define __IDWriteGdiInterop1_INTERFACE_DEFINED__
   7653 
   7654 DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15);
   7655 #if defined(__cplusplus) && !defined(CINTERFACE)
   7656 MIDL_INTERFACE("4556be70-3abd-4f70-90be-421780a6f515")
   7657 IDWriteGdiInterop1 : public IDWriteGdiInterop
   7658 {
   7659     virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT(
   7660         const LOGFONTW *logfont,
   7661         IDWriteFontCollection *collection,
   7662         IDWriteFont **font) = 0;
   7663 
   7664     virtual HRESULT STDMETHODCALLTYPE GetFontSignature_(
   7665         IDWriteFontFace *fontface,
   7666         FONTSIGNATURE *fontsig) = 0;
   7667 
   7668     virtual HRESULT STDMETHODCALLTYPE GetFontSignature(
   7669         IDWriteFont *font,
   7670         FONTSIGNATURE *fontsig) = 0;
   7671 
   7672     virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT(
   7673         const LOGFONTW *logfont,
   7674         IDWriteFontSet *fontset,
   7675         IDWriteFontSet **subset) = 0;
   7676 
   7677 };
   7678 #ifdef __CRT_UUID_DECL
   7679 __CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15)
   7680 #endif
   7681 #else
   7682 typedef struct IDWriteGdiInterop1Vtbl {
   7683     BEGIN_INTERFACE
   7684 
   7685     /*** IUnknown methods ***/
   7686     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7687         IDWriteGdiInterop1 *This,
   7688         REFIID riid,
   7689         void **ppvObject);
   7690 
   7691     ULONG (STDMETHODCALLTYPE *AddRef)(
   7692         IDWriteGdiInterop1 *This);
   7693 
   7694     ULONG (STDMETHODCALLTYPE *Release)(
   7695         IDWriteGdiInterop1 *This);
   7696 
   7697     /*** IDWriteGdiInterop methods ***/
   7698     HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)(
   7699         IDWriteGdiInterop1 *This,
   7700         const LOGFONTW *logfont,
   7701         IDWriteFont **font);
   7702 
   7703     HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)(
   7704         IDWriteGdiInterop1 *This,
   7705         IDWriteFont *font,
   7706         LOGFONTW *logfont,
   7707         WINBOOL *is_systemfont);
   7708 
   7709     HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)(
   7710         IDWriteGdiInterop1 *This,
   7711         IDWriteFontFace *font,
   7712         LOGFONTW *logfont);
   7713 
   7714     HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)(
   7715         IDWriteGdiInterop1 *This,
   7716         HDC hdc,
   7717         IDWriteFontFace **fontface);
   7718 
   7719     HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)(
   7720         IDWriteGdiInterop1 *This,
   7721         HDC hdc,
   7722         UINT32 width,
   7723         UINT32 height,
   7724         IDWriteBitmapRenderTarget **target);
   7725 
   7726     /*** IDWriteGdiInterop1 methods ***/
   7727     HRESULT (STDMETHODCALLTYPE *IDWriteGdiInterop1_CreateFontFromLOGFONT)(
   7728         IDWriteGdiInterop1 *This,
   7729         const LOGFONTW *logfont,
   7730         IDWriteFontCollection *collection,
   7731         IDWriteFont **font);
   7732 
   7733     HRESULT (STDMETHODCALLTYPE *GetFontSignature_)(
   7734         IDWriteGdiInterop1 *This,
   7735         IDWriteFontFace *fontface,
   7736         FONTSIGNATURE *fontsig);
   7737 
   7738     HRESULT (STDMETHODCALLTYPE *GetFontSignature)(
   7739         IDWriteGdiInterop1 *This,
   7740         IDWriteFont *font,
   7741         FONTSIGNATURE *fontsig);
   7742 
   7743     HRESULT (STDMETHODCALLTYPE *GetMatchingFontsByLOGFONT)(
   7744         IDWriteGdiInterop1 *This,
   7745         const LOGFONTW *logfont,
   7746         IDWriteFontSet *fontset,
   7747         IDWriteFontSet **subset);
   7748 
   7749     END_INTERFACE
   7750 } IDWriteGdiInterop1Vtbl;
   7751 
   7752 interface IDWriteGdiInterop1 {
   7753     CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl;
   7754 };
   7755 
   7756 #ifdef COBJMACROS
   7757 #ifndef WIDL_C_INLINE_WRAPPERS
   7758 /*** IUnknown methods ***/
   7759 #define IDWriteGdiInterop1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7760 #define IDWriteGdiInterop1_AddRef(This) (This)->lpVtbl->AddRef(This)
   7761 #define IDWriteGdiInterop1_Release(This) (This)->lpVtbl->Release(This)
   7762 /*** IDWriteGdiInterop methods ***/
   7763 #define IDWriteGdiInterop1_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont)
   7764 #define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont)
   7765 #define IDWriteGdiInterop1_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface)
   7766 #define IDWriteGdiInterop1_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target)
   7767 /*** IDWriteGdiInterop1 methods ***/
   7768 #define IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font)
   7769 #define IDWriteGdiInterop1_GetFontSignature_(This,fontface,fontsig) (This)->lpVtbl->GetFontSignature_(This,fontface,fontsig)
   7770 #define IDWriteGdiInterop1_GetFontSignature(This,font,fontsig) (This)->lpVtbl->GetFontSignature(This,font,fontsig)
   7771 #define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset)
   7772 #else
   7773 /*** IUnknown methods ***/
   7774 static inline HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This,REFIID riid,void **ppvObject) {
   7775     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7776 }
   7777 static inline ULONG IDWriteGdiInterop1_AddRef(IDWriteGdiInterop1* This) {
   7778     return This->lpVtbl->AddRef(This);
   7779 }
   7780 static inline ULONG IDWriteGdiInterop1_Release(IDWriteGdiInterop1* This) {
   7781     return This->lpVtbl->Release(This);
   7782 }
   7783 /*** IDWriteGdiInterop methods ***/
   7784 static inline HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) {
   7785     return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont);
   7786 }
   7787 static inline HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This,IDWriteFontFace *font,LOGFONTW *logfont) {
   7788     return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont);
   7789 }
   7790 static inline HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This,HDC hdc,IDWriteFontFace **fontface) {
   7791     return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface);
   7792 }
   7793 static inline HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) {
   7794     return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target);
   7795 }
   7796 /*** IDWriteGdiInterop1 methods ***/
   7797 static inline HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontCollection *collection,IDWriteFont **font) {
   7798     return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font);
   7799 }
   7800 static inline HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This,IDWriteFontFace *fontface,FONTSIGNATURE *fontsig) {
   7801     return This->lpVtbl->GetFontSignature_(This,fontface,fontsig);
   7802 }
   7803 static inline HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This,IDWriteFont *font,FONTSIGNATURE *fontsig) {
   7804     return This->lpVtbl->GetFontSignature(This,font,fontsig);
   7805 }
   7806 static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontSet *fontset,IDWriteFontSet **subset) {
   7807     return This->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset);
   7808 }
   7809 #endif
   7810 #endif
   7811 
   7812 #endif
   7813 
   7814 
   7815 #endif  /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */
   7816 
   7817 /*****************************************************************************
   7818  * IDWriteFontSetBuilder interface
   7819  */
   7820 #ifndef __IDWriteFontSetBuilder_INTERFACE_DEFINED__
   7821 #define __IDWriteFontSetBuilder_INTERFACE_DEFINED__
   7822 
   7823 DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d);
   7824 #if defined(__cplusplus) && !defined(CINTERFACE)
   7825 MIDL_INTERFACE("2f642afe-9c68-4f40-b8be-457401afcb3d")
   7826 IDWriteFontSetBuilder : public IUnknown
   7827 {
   7828     virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_(
   7829         IDWriteFontFaceReference *ref,
   7830         const DWRITE_FONT_PROPERTY *props,
   7831         UINT32 prop_count) = 0;
   7832 
   7833     virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference(
   7834         IDWriteFontFaceReference *ref) = 0;
   7835 
   7836     virtual HRESULT STDMETHODCALLTYPE AddFontSet(
   7837         IDWriteFontSet *fontset) = 0;
   7838 
   7839     virtual HRESULT STDMETHODCALLTYPE CreateFontSet(
   7840         IDWriteFontSet **fontset) = 0;
   7841 
   7842 };
   7843 #ifdef __CRT_UUID_DECL
   7844 __CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d)
   7845 #endif
   7846 #else
   7847 typedef struct IDWriteFontSetBuilderVtbl {
   7848     BEGIN_INTERFACE
   7849 
   7850     /*** IUnknown methods ***/
   7851     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7852         IDWriteFontSetBuilder *This,
   7853         REFIID riid,
   7854         void **ppvObject);
   7855 
   7856     ULONG (STDMETHODCALLTYPE *AddRef)(
   7857         IDWriteFontSetBuilder *This);
   7858 
   7859     ULONG (STDMETHODCALLTYPE *Release)(
   7860         IDWriteFontSetBuilder *This);
   7861 
   7862     /*** IDWriteFontSetBuilder methods ***/
   7863     HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
   7864         IDWriteFontSetBuilder *This,
   7865         IDWriteFontFaceReference *ref,
   7866         const DWRITE_FONT_PROPERTY *props,
   7867         UINT32 prop_count);
   7868 
   7869     HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
   7870         IDWriteFontSetBuilder *This,
   7871         IDWriteFontFaceReference *ref);
   7872 
   7873     HRESULT (STDMETHODCALLTYPE *AddFontSet)(
   7874         IDWriteFontSetBuilder *This,
   7875         IDWriteFontSet *fontset);
   7876 
   7877     HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
   7878         IDWriteFontSetBuilder *This,
   7879         IDWriteFontSet **fontset);
   7880 
   7881     END_INTERFACE
   7882 } IDWriteFontSetBuilderVtbl;
   7883 
   7884 interface IDWriteFontSetBuilder {
   7885     CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl;
   7886 };
   7887 
   7888 #ifdef COBJMACROS
   7889 #ifndef WIDL_C_INLINE_WRAPPERS
   7890 /*** IUnknown methods ***/
   7891 #define IDWriteFontSetBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7892 #define IDWriteFontSetBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   7893 #define IDWriteFontSetBuilder_Release(This) (This)->lpVtbl->Release(This)
   7894 /*** IDWriteFontSetBuilder methods ***/
   7895 #define IDWriteFontSetBuilder_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
   7896 #define IDWriteFontSetBuilder_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
   7897 #define IDWriteFontSetBuilder_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
   7898 #define IDWriteFontSetBuilder_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
   7899 #else
   7900 /*** IUnknown methods ***/
   7901 static inline HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This,REFIID riid,void **ppvObject) {
   7902     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7903 }
   7904 static inline ULONG IDWriteFontSetBuilder_AddRef(IDWriteFontSetBuilder* This) {
   7905     return This->lpVtbl->AddRef(This);
   7906 }
   7907 static inline ULONG IDWriteFontSetBuilder_Release(IDWriteFontSetBuilder* This) {
   7908     return This->lpVtbl->Release(This);
   7909 }
   7910 /*** IDWriteFontSetBuilder methods ***/
   7911 static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
   7912     return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
   7913 }
   7914 static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref) {
   7915     return This->lpVtbl->AddFontFaceReference(This,ref);
   7916 }
   7917 static inline HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet *fontset) {
   7918     return This->lpVtbl->AddFontSet(This,fontset);
   7919 }
   7920 static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet **fontset) {
   7921     return This->lpVtbl->CreateFontSet(This,fontset);
   7922 }
   7923 #endif
   7924 #endif
   7925 
   7926 #endif
   7927 
   7928 
   7929 #endif  /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */
   7930 
   7931 /*****************************************************************************
   7932  * IDWriteFontSetBuilder1 interface
   7933  */
   7934 #ifndef __IDWriteFontSetBuilder1_INTERFACE_DEFINED__
   7935 #define __IDWriteFontSetBuilder1_INTERFACE_DEFINED__
   7936 
   7937 DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd);
   7938 #if defined(__cplusplus) && !defined(CINTERFACE)
   7939 MIDL_INTERFACE("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd")
   7940 IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder
   7941 {
   7942     virtual HRESULT STDMETHODCALLTYPE AddFontFile(
   7943         IDWriteFontFile *file) = 0;
   7944 
   7945 };
   7946 #ifdef __CRT_UUID_DECL
   7947 __CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd)
   7948 #endif
   7949 #else
   7950 typedef struct IDWriteFontSetBuilder1Vtbl {
   7951     BEGIN_INTERFACE
   7952 
   7953     /*** IUnknown methods ***/
   7954     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7955         IDWriteFontSetBuilder1 *This,
   7956         REFIID riid,
   7957         void **ppvObject);
   7958 
   7959     ULONG (STDMETHODCALLTYPE *AddRef)(
   7960         IDWriteFontSetBuilder1 *This);
   7961 
   7962     ULONG (STDMETHODCALLTYPE *Release)(
   7963         IDWriteFontSetBuilder1 *This);
   7964 
   7965     /*** IDWriteFontSetBuilder methods ***/
   7966     HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
   7967         IDWriteFontSetBuilder1 *This,
   7968         IDWriteFontFaceReference *ref,
   7969         const DWRITE_FONT_PROPERTY *props,
   7970         UINT32 prop_count);
   7971 
   7972     HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
   7973         IDWriteFontSetBuilder1 *This,
   7974         IDWriteFontFaceReference *ref);
   7975 
   7976     HRESULT (STDMETHODCALLTYPE *AddFontSet)(
   7977         IDWriteFontSetBuilder1 *This,
   7978         IDWriteFontSet *fontset);
   7979 
   7980     HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
   7981         IDWriteFontSetBuilder1 *This,
   7982         IDWriteFontSet **fontset);
   7983 
   7984     /*** IDWriteFontSetBuilder1 methods ***/
   7985     HRESULT (STDMETHODCALLTYPE *AddFontFile)(
   7986         IDWriteFontSetBuilder1 *This,
   7987         IDWriteFontFile *file);
   7988 
   7989     END_INTERFACE
   7990 } IDWriteFontSetBuilder1Vtbl;
   7991 
   7992 interface IDWriteFontSetBuilder1 {
   7993     CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl;
   7994 };
   7995 
   7996 #ifdef COBJMACROS
   7997 #ifndef WIDL_C_INLINE_WRAPPERS
   7998 /*** IUnknown methods ***/
   7999 #define IDWriteFontSetBuilder1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8000 #define IDWriteFontSetBuilder1_AddRef(This) (This)->lpVtbl->AddRef(This)
   8001 #define IDWriteFontSetBuilder1_Release(This) (This)->lpVtbl->Release(This)
   8002 /*** IDWriteFontSetBuilder methods ***/
   8003 #define IDWriteFontSetBuilder1_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
   8004 #define IDWriteFontSetBuilder1_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
   8005 #define IDWriteFontSetBuilder1_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
   8006 #define IDWriteFontSetBuilder1_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
   8007 /*** IDWriteFontSetBuilder1 methods ***/
   8008 #define IDWriteFontSetBuilder1_AddFontFile(This,file) (This)->lpVtbl->AddFontFile(This,file)
   8009 #else
   8010 /*** IUnknown methods ***/
   8011 static inline HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This,REFIID riid,void **ppvObject) {
   8012     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8013 }
   8014 static inline ULONG IDWriteFontSetBuilder1_AddRef(IDWriteFontSetBuilder1* This) {
   8015     return This->lpVtbl->AddRef(This);
   8016 }
   8017 static inline ULONG IDWriteFontSetBuilder1_Release(IDWriteFontSetBuilder1* This) {
   8018     return This->lpVtbl->Release(This);
   8019 }
   8020 /*** IDWriteFontSetBuilder methods ***/
   8021 static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
   8022     return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
   8023 }
   8024 static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref) {
   8025     return This->lpVtbl->AddFontFaceReference(This,ref);
   8026 }
   8027 static inline HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet *fontset) {
   8028     return This->lpVtbl->AddFontSet(This,fontset);
   8029 }
   8030 static inline HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet **fontset) {
   8031     return This->lpVtbl->CreateFontSet(This,fontset);
   8032 }
   8033 /*** IDWriteFontSetBuilder1 methods ***/
   8034 static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This,IDWriteFontFile *file) {
   8035     return This->lpVtbl->AddFontFile(This,file);
   8036 }
   8037 #endif
   8038 #endif
   8039 
   8040 #endif
   8041 
   8042 
   8043 #endif  /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */
   8044 
   8045 /*****************************************************************************
   8046  * IDWriteFontSetBuilder2 interface
   8047  */
   8048 #ifndef __IDWriteFontSetBuilder2_INTERFACE_DEFINED__
   8049 #define __IDWriteFontSetBuilder2_INTERFACE_DEFINED__
   8050 
   8051 DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45);
   8052 #if defined(__cplusplus) && !defined(CINTERFACE)
   8053 MIDL_INTERFACE("ee5ba612-b131-463c-8f4f-3189b9401e45")
   8054 IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1
   8055 {
   8056     virtual HRESULT STDMETHODCALLTYPE AddFont(
   8057         IDWriteFontFile *fontfile,
   8058         UINT32 face_index,
   8059         DWRITE_FONT_SIMULATIONS simulations,
   8060         const DWRITE_FONT_AXIS_VALUE *axis_values,
   8061         UINT32 num_values,
   8062         const DWRITE_FONT_AXIS_RANGE *axis_ranges,
   8063         UINT32 num_ranges,
   8064         const DWRITE_FONT_PROPERTY *props,
   8065         UINT32 num_properties) = 0;
   8066 
   8067     virtual HRESULT STDMETHODCALLTYPE AddFontFile(
   8068         const WCHAR *filepath) = 0;
   8069 
   8070 };
   8071 #ifdef __CRT_UUID_DECL
   8072 __CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45)
   8073 #endif
   8074 #else
   8075 typedef struct IDWriteFontSetBuilder2Vtbl {
   8076     BEGIN_INTERFACE
   8077 
   8078     /*** IUnknown methods ***/
   8079     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8080         IDWriteFontSetBuilder2 *This,
   8081         REFIID riid,
   8082         void **ppvObject);
   8083 
   8084     ULONG (STDMETHODCALLTYPE *AddRef)(
   8085         IDWriteFontSetBuilder2 *This);
   8086 
   8087     ULONG (STDMETHODCALLTYPE *Release)(
   8088         IDWriteFontSetBuilder2 *This);
   8089 
   8090     /*** IDWriteFontSetBuilder methods ***/
   8091     HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
   8092         IDWriteFontSetBuilder2 *This,
   8093         IDWriteFontFaceReference *ref,
   8094         const DWRITE_FONT_PROPERTY *props,
   8095         UINT32 prop_count);
   8096 
   8097     HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
   8098         IDWriteFontSetBuilder2 *This,
   8099         IDWriteFontFaceReference *ref);
   8100 
   8101     HRESULT (STDMETHODCALLTYPE *AddFontSet)(
   8102         IDWriteFontSetBuilder2 *This,
   8103         IDWriteFontSet *fontset);
   8104 
   8105     HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
   8106         IDWriteFontSetBuilder2 *This,
   8107         IDWriteFontSet **fontset);
   8108 
   8109     /*** IDWriteFontSetBuilder1 methods ***/
   8110     HRESULT (STDMETHODCALLTYPE *AddFontFile)(
   8111         IDWriteFontSetBuilder2 *This,
   8112         IDWriteFontFile *file);
   8113 
   8114     /*** IDWriteFontSetBuilder2 methods ***/
   8115     HRESULT (STDMETHODCALLTYPE *AddFont)(
   8116         IDWriteFontSetBuilder2 *This,
   8117         IDWriteFontFile *fontfile,
   8118         UINT32 face_index,
   8119         DWRITE_FONT_SIMULATIONS simulations,
   8120         const DWRITE_FONT_AXIS_VALUE *axis_values,
   8121         UINT32 num_values,
   8122         const DWRITE_FONT_AXIS_RANGE *axis_ranges,
   8123         UINT32 num_ranges,
   8124         const DWRITE_FONT_PROPERTY *props,
   8125         UINT32 num_properties);
   8126 
   8127     HRESULT (STDMETHODCALLTYPE *IDWriteFontSetBuilder2_AddFontFile)(
   8128         IDWriteFontSetBuilder2 *This,
   8129         const WCHAR *filepath);
   8130 
   8131     END_INTERFACE
   8132 } IDWriteFontSetBuilder2Vtbl;
   8133 
   8134 interface IDWriteFontSetBuilder2 {
   8135     CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl;
   8136 };
   8137 
   8138 #ifdef COBJMACROS
   8139 #ifndef WIDL_C_INLINE_WRAPPERS
   8140 /*** IUnknown methods ***/
   8141 #define IDWriteFontSetBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8142 #define IDWriteFontSetBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   8143 #define IDWriteFontSetBuilder2_Release(This) (This)->lpVtbl->Release(This)
   8144 /*** IDWriteFontSetBuilder methods ***/
   8145 #define IDWriteFontSetBuilder2_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
   8146 #define IDWriteFontSetBuilder2_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
   8147 #define IDWriteFontSetBuilder2_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
   8148 #define IDWriteFontSetBuilder2_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
   8149 /*** IDWriteFontSetBuilder1 methods ***/
   8150 /*** IDWriteFontSetBuilder2 methods ***/
   8151 #define IDWriteFontSetBuilder2_AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) (This)->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties)
   8152 #define IDWriteFontSetBuilder2_AddFontFile(This,filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath)
   8153 #else
   8154 /*** IUnknown methods ***/
   8155 static inline HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This,REFIID riid,void **ppvObject) {
   8156     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8157 }
   8158 static inline ULONG IDWriteFontSetBuilder2_AddRef(IDWriteFontSetBuilder2* This) {
   8159     return This->lpVtbl->AddRef(This);
   8160 }
   8161 static inline ULONG IDWriteFontSetBuilder2_Release(IDWriteFontSetBuilder2* This) {
   8162     return This->lpVtbl->Release(This);
   8163 }
   8164 /*** IDWriteFontSetBuilder methods ***/
   8165 static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
   8166     return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
   8167 }
   8168 static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref) {
   8169     return This->lpVtbl->AddFontFaceReference(This,ref);
   8170 }
   8171 static inline HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet *fontset) {
   8172     return This->lpVtbl->AddFontSet(This,fontset);
   8173 }
   8174 static inline HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet **fontset) {
   8175     return This->lpVtbl->CreateFontSet(This,fontset);
   8176 }
   8177 /*** IDWriteFontSetBuilder1 methods ***/
   8178 /*** IDWriteFontSetBuilder2 methods ***/
   8179 static inline HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This,IDWriteFontFile *fontfile,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties) {
   8180     return This->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties);
   8181 }
   8182 static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This,const WCHAR *filepath) {
   8183     return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath);
   8184 }
   8185 #endif
   8186 #endif
   8187 
   8188 #endif
   8189 
   8190 
   8191 #endif  /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */
   8192 
   8193 /*****************************************************************************
   8194  * IDWriteFactory3 interface
   8195  */
   8196 #ifndef __IDWriteFactory3_INTERFACE_DEFINED__
   8197 #define __IDWriteFactory3_INTERFACE_DEFINED__
   8198 
   8199 DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65);
   8200 #if defined(__cplusplus) && !defined(CINTERFACE)
   8201 MIDL_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65")
   8202 IDWriteFactory3 : public IDWriteFactory2
   8203 {
   8204     virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis(
   8205         const DWRITE_GLYPH_RUN *run,
   8206         const DWRITE_MATRIX *transform,
   8207         DWRITE_RENDERING_MODE1 rendering_mode,
   8208         DWRITE_MEASURING_MODE measuring_mode,
   8209         DWRITE_GRID_FIT_MODE gridfit_mode,
   8210         DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
   8211         FLOAT origin_x,
   8212         FLOAT origin_y,
   8213         IDWriteGlyphRunAnalysis **analysis) = 0;
   8214 
   8215     virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams(
   8216         FLOAT gamma,
   8217         FLOAT enhanced_contrast,
   8218         FLOAT grayscale_enhanced_contrast,
   8219         FLOAT cleartype_level,
   8220         DWRITE_PIXEL_GEOMETRY pixel_geometry,
   8221         DWRITE_RENDERING_MODE1 rendering_mode,
   8222         DWRITE_GRID_FIT_MODE gridfit_mode,
   8223         IDWriteRenderingParams3 **params) = 0;
   8224 
   8225     virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_(
   8226         IDWriteFontFile *file,
   8227         UINT32 index,
   8228         DWRITE_FONT_SIMULATIONS simulations,
   8229         IDWriteFontFaceReference **reference) = 0;
   8230 
   8231     virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
   8232         const WCHAR *path,
   8233         const FILETIME *writetime,
   8234         UINT32 index,
   8235         DWRITE_FONT_SIMULATIONS simulations,
   8236         IDWriteFontFaceReference **reference) = 0;
   8237 
   8238     virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
   8239         IDWriteFontSet **fontset) = 0;
   8240 
   8241     virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
   8242         IDWriteFontSetBuilder **builder) = 0;
   8243 
   8244     virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet(
   8245         IDWriteFontSet *fontset,
   8246         IDWriteFontCollection1 **collection) = 0;
   8247 
   8248     virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
   8249         WINBOOL include_downloadable,
   8250         IDWriteFontCollection1 **collection,
   8251         WINBOOL check_for_updates) = 0;
   8252 
   8253     virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue(
   8254         IDWriteFontDownloadQueue **queue) = 0;
   8255 
   8256 };
   8257 #ifdef __CRT_UUID_DECL
   8258 __CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65)
   8259 #endif
   8260 #else
   8261 typedef struct IDWriteFactory3Vtbl {
   8262     BEGIN_INTERFACE
   8263 
   8264     /*** IUnknown methods ***/
   8265     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8266         IDWriteFactory3 *This,
   8267         REFIID riid,
   8268         void **ppvObject);
   8269 
   8270     ULONG (STDMETHODCALLTYPE *AddRef)(
   8271         IDWriteFactory3 *This);
   8272 
   8273     ULONG (STDMETHODCALLTYPE *Release)(
   8274         IDWriteFactory3 *This);
   8275 
   8276     /*** IDWriteFactory methods ***/
   8277     HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
   8278         IDWriteFactory3 *This,
   8279         IDWriteFontCollection **collection,
   8280         WINBOOL check_for_updates);
   8281 
   8282     HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
   8283         IDWriteFactory3 *This,
   8284         IDWriteFontCollectionLoader *loader,
   8285         const void *key,
   8286         UINT32 key_size,
   8287         IDWriteFontCollection **collection);
   8288 
   8289     HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
   8290         IDWriteFactory3 *This,
   8291         IDWriteFontCollectionLoader *loader);
   8292 
   8293     HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
   8294         IDWriteFactory3 *This,
   8295         IDWriteFontCollectionLoader *loader);
   8296 
   8297     HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
   8298         IDWriteFactory3 *This,
   8299         const WCHAR *path,
   8300         const FILETIME *writetime,
   8301         IDWriteFontFile **font_file);
   8302 
   8303     HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
   8304         IDWriteFactory3 *This,
   8305         const void *reference_key,
   8306         UINT32 key_size,
   8307         IDWriteFontFileLoader *loader,
   8308         IDWriteFontFile **font_file);
   8309 
   8310     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
   8311         IDWriteFactory3 *This,
   8312         DWRITE_FONT_FACE_TYPE facetype,
   8313         UINT32 files_number,
   8314         IDWriteFontFile *const *font_files,
   8315         UINT32 index,
   8316         DWRITE_FONT_SIMULATIONS sim_flags,
   8317         IDWriteFontFace **font_face);
   8318 
   8319     HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
   8320         IDWriteFactory3 *This,
   8321         IDWriteRenderingParams **params);
   8322 
   8323     HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
   8324         IDWriteFactory3 *This,
   8325         HMONITOR monitor,
   8326         IDWriteRenderingParams **params);
   8327 
   8328     HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
   8329         IDWriteFactory3 *This,
   8330         FLOAT gamma,
   8331         FLOAT enhancedContrast,
   8332         FLOAT cleartype_level,
   8333         DWRITE_PIXEL_GEOMETRY geometry,
   8334         DWRITE_RENDERING_MODE mode,
   8335         IDWriteRenderingParams **params);
   8336 
   8337     HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
   8338         IDWriteFactory3 *This,
   8339         IDWriteFontFileLoader *loader);
   8340 
   8341     HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
   8342         IDWriteFactory3 *This,
   8343         IDWriteFontFileLoader *loader);
   8344 
   8345     HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
   8346         IDWriteFactory3 *This,
   8347         const WCHAR *family_name,
   8348         IDWriteFontCollection *collection,
   8349         DWRITE_FONT_WEIGHT weight,
   8350         DWRITE_FONT_STYLE style,
   8351         DWRITE_FONT_STRETCH stretch,
   8352         FLOAT size,
   8353         const WCHAR *locale,
   8354         IDWriteTextFormat **format);
   8355 
   8356     HRESULT (STDMETHODCALLTYPE *CreateTypography)(
   8357         IDWriteFactory3 *This,
   8358         IDWriteTypography **typography);
   8359 
   8360     HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
   8361         IDWriteFactory3 *This,
   8362         IDWriteGdiInterop **gdi_interop);
   8363 
   8364     HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
   8365         IDWriteFactory3 *This,
   8366         const WCHAR *string,
   8367         UINT32 len,
   8368         IDWriteTextFormat *format,
   8369         FLOAT max_width,
   8370         FLOAT max_height,
   8371         IDWriteTextLayout **layout);
   8372 
   8373     HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
   8374         IDWriteFactory3 *This,
   8375         const WCHAR *string,
   8376         UINT32 len,
   8377         IDWriteTextFormat *format,
   8378         FLOAT layout_width,
   8379         FLOAT layout_height,
   8380         FLOAT pixels_per_dip,
   8381         const DWRITE_MATRIX *transform,
   8382         WINBOOL use_gdi_natural,
   8383         IDWriteTextLayout **layout);
   8384 
   8385     HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
   8386         IDWriteFactory3 *This,
   8387         IDWriteTextFormat *format,
   8388         IDWriteInlineObject **trimming_sign);
   8389 
   8390     HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
   8391         IDWriteFactory3 *This,
   8392         IDWriteTextAnalyzer **analyzer);
   8393 
   8394     HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
   8395         IDWriteFactory3 *This,
   8396         DWRITE_NUMBER_SUBSTITUTION_METHOD method,
   8397         const WCHAR *locale,
   8398         WINBOOL ignore_user_override,
   8399         IDWriteNumberSubstitution **substitution);
   8400 
   8401     HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
   8402         IDWriteFactory3 *This,
   8403         const DWRITE_GLYPH_RUN *glyph_run,
   8404         FLOAT pixels_per_dip,
   8405         const DWRITE_MATRIX *transform,
   8406         DWRITE_RENDERING_MODE rendering_mode,
   8407         DWRITE_MEASURING_MODE measuring_mode,
   8408         FLOAT baseline_x,
   8409         FLOAT baseline_y,
   8410         IDWriteGlyphRunAnalysis **analysis);
   8411 
   8412     /*** IDWriteFactory1 methods ***/
   8413     HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
   8414         IDWriteFactory3 *This,
   8415         IDWriteFontCollection **collection,
   8416         WINBOOL check_for_updates);
   8417 
   8418     HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
   8419         IDWriteFactory3 *This,
   8420         FLOAT gamma,
   8421         FLOAT enhcontrast,
   8422         FLOAT enhcontrast_grayscale,
   8423         FLOAT cleartype_level,
   8424         DWRITE_PIXEL_GEOMETRY geometry,
   8425         DWRITE_RENDERING_MODE mode,
   8426         IDWriteRenderingParams1 **params);
   8427 
   8428     /*** IDWriteFactory2 methods ***/
   8429     HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
   8430         IDWriteFactory3 *This,
   8431         IDWriteFontFallback **fallback);
   8432 
   8433     HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
   8434         IDWriteFactory3 *This,
   8435         IDWriteFontFallbackBuilder **fallbackbuilder);
   8436 
   8437     HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
   8438         IDWriteFactory3 *This,
   8439         FLOAT originX,
   8440         FLOAT originY,
   8441         const DWRITE_GLYPH_RUN *run,
   8442         const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
   8443         DWRITE_MEASURING_MODE mode,
   8444         const DWRITE_MATRIX *transform,
   8445         UINT32 palette_index,
   8446         IDWriteColorGlyphRunEnumerator **colorlayers);
   8447 
   8448     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
   8449         IDWriteFactory3 *This,
   8450         FLOAT gamma,
   8451         FLOAT contrast,
   8452         FLOAT grayscalecontrast,
   8453         FLOAT cleartypeLevel,
   8454         DWRITE_PIXEL_GEOMETRY pixelGeometry,
   8455         DWRITE_RENDERING_MODE renderingMode,
   8456         DWRITE_GRID_FIT_MODE gridFitMode,
   8457         IDWriteRenderingParams2 **params);
   8458 
   8459     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
   8460         IDWriteFactory3 *This,
   8461         const DWRITE_GLYPH_RUN *run,
   8462         const DWRITE_MATRIX *transform,
   8463         DWRITE_RENDERING_MODE renderingMode,
   8464         DWRITE_MEASURING_MODE measuringMode,
   8465         DWRITE_GRID_FIT_MODE gridFitMode,
   8466         DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
   8467         FLOAT originX,
   8468         FLOAT originY,
   8469         IDWriteGlyphRunAnalysis **analysis);
   8470 
   8471     /*** IDWriteFactory3 methods ***/
   8472     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
   8473         IDWriteFactory3 *This,
   8474         const DWRITE_GLYPH_RUN *run,
   8475         const DWRITE_MATRIX *transform,
   8476         DWRITE_RENDERING_MODE1 rendering_mode,
   8477         DWRITE_MEASURING_MODE measuring_mode,
   8478         DWRITE_GRID_FIT_MODE gridfit_mode,
   8479         DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
   8480         FLOAT origin_x,
   8481         FLOAT origin_y,
   8482         IDWriteGlyphRunAnalysis **analysis);
   8483 
   8484     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
   8485         IDWriteFactory3 *This,
   8486         FLOAT gamma,
   8487         FLOAT enhanced_contrast,
   8488         FLOAT grayscale_enhanced_contrast,
   8489         FLOAT cleartype_level,
   8490         DWRITE_PIXEL_GEOMETRY pixel_geometry,
   8491         DWRITE_RENDERING_MODE1 rendering_mode,
   8492         DWRITE_GRID_FIT_MODE gridfit_mode,
   8493         IDWriteRenderingParams3 **params);
   8494 
   8495     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
   8496         IDWriteFactory3 *This,
   8497         IDWriteFontFile *file,
   8498         UINT32 index,
   8499         DWRITE_FONT_SIMULATIONS simulations,
   8500         IDWriteFontFaceReference **reference);
   8501 
   8502     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
   8503         IDWriteFactory3 *This,
   8504         const WCHAR *path,
   8505         const FILETIME *writetime,
   8506         UINT32 index,
   8507         DWRITE_FONT_SIMULATIONS simulations,
   8508         IDWriteFontFaceReference **reference);
   8509 
   8510     HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
   8511         IDWriteFactory3 *This,
   8512         IDWriteFontSet **fontset);
   8513 
   8514     HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
   8515         IDWriteFactory3 *This,
   8516         IDWriteFontSetBuilder **builder);
   8517 
   8518     HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
   8519         IDWriteFactory3 *This,
   8520         IDWriteFontSet *fontset,
   8521         IDWriteFontCollection1 **collection);
   8522 
   8523     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
   8524         IDWriteFactory3 *This,
   8525         WINBOOL include_downloadable,
   8526         IDWriteFontCollection1 **collection,
   8527         WINBOOL check_for_updates);
   8528 
   8529     HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
   8530         IDWriteFactory3 *This,
   8531         IDWriteFontDownloadQueue **queue);
   8532 
   8533     END_INTERFACE
   8534 } IDWriteFactory3Vtbl;
   8535 
   8536 interface IDWriteFactory3 {
   8537     CONST_VTBL IDWriteFactory3Vtbl* lpVtbl;
   8538 };
   8539 
   8540 #ifdef COBJMACROS
   8541 #ifndef WIDL_C_INLINE_WRAPPERS
   8542 /*** IUnknown methods ***/
   8543 #define IDWriteFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8544 #define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This)
   8545 #define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This)
   8546 /*** IDWriteFactory methods ***/
   8547 #define IDWriteFactory3_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
   8548 #define IDWriteFactory3_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
   8549 #define IDWriteFactory3_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
   8550 #define IDWriteFactory3_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
   8551 #define IDWriteFactory3_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
   8552 #define IDWriteFactory3_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
   8553 #define IDWriteFactory3_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
   8554 #define IDWriteFactory3_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
   8555 #define IDWriteFactory3_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
   8556 #define IDWriteFactory3_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
   8557 #define IDWriteFactory3_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
   8558 #define IDWriteFactory3_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
   8559 #define IDWriteFactory3_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
   8560 #define IDWriteFactory3_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
   8561 #define IDWriteFactory3_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
   8562 #define IDWriteFactory3_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
   8563 #define IDWriteFactory3_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
   8564 #define IDWriteFactory3_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
   8565 /*** IDWriteFactory1 methods ***/
   8566 #define IDWriteFactory3_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
   8567 /*** IDWriteFactory2 methods ***/
   8568 #define IDWriteFactory3_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
   8569 #define IDWriteFactory3_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
   8570 #define IDWriteFactory3_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers)
   8571 /*** IDWriteFactory3 methods ***/
   8572 #define IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
   8573 #define IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
   8574 #define IDWriteFactory3_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
   8575 #define IDWriteFactory3_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
   8576 #define IDWriteFactory3_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
   8577 #define IDWriteFactory3_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder)
   8578 #define IDWriteFactory3_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
   8579 #define IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
   8580 #define IDWriteFactory3_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
   8581 #else
   8582 /*** IUnknown methods ***/
   8583 static inline HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This,REFIID riid,void **ppvObject) {
   8584     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8585 }
   8586 static inline ULONG IDWriteFactory3_AddRef(IDWriteFactory3* This) {
   8587     return This->lpVtbl->AddRef(This);
   8588 }
   8589 static inline ULONG IDWriteFactory3_Release(IDWriteFactory3* This) {
   8590     return This->lpVtbl->Release(This);
   8591 }
   8592 /*** IDWriteFactory methods ***/
   8593 static inline HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
   8594     return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
   8595 }
   8596 static inline HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) {
   8597     return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
   8598 }
   8599 static inline HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) {
   8600     return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
   8601 }
   8602 static inline HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
   8603     return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
   8604 }
   8605 static inline HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
   8606     return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
   8607 }
   8608 static inline HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
   8609     return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
   8610 }
   8611 static inline HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This,IDWriteRenderingParams **params) {
   8612     return This->lpVtbl->CreateRenderingParams(This,params);
   8613 }
   8614 static inline HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This,HMONITOR monitor,IDWriteRenderingParams **params) {
   8615     return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
   8616 }
   8617 static inline HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) {
   8618     return This->lpVtbl->RegisterFontFileLoader(This,loader);
   8619 }
   8620 static inline HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) {
   8621     return This->lpVtbl->UnregisterFontFileLoader(This,loader);
   8622 }
   8623 static inline HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
   8624     return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
   8625 }
   8626 static inline HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This,IDWriteTypography **typography) {
   8627     return This->lpVtbl->CreateTypography(This,typography);
   8628 }
   8629 static inline HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This,IDWriteGdiInterop **gdi_interop) {
   8630     return This->lpVtbl->GetGdiInterop(This,gdi_interop);
   8631 }
   8632 static inline HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
   8633     return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
   8634 }
   8635 static inline HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
   8636     return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
   8637 }
   8638 static inline HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
   8639     return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
   8640 }
   8641 static inline HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This,IDWriteTextAnalyzer **analyzer) {
   8642     return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
   8643 }
   8644 static inline HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
   8645     return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
   8646 }
   8647 /*** IDWriteFactory1 methods ***/
   8648 static inline HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
   8649     return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
   8650 }
   8651 /*** IDWriteFactory2 methods ***/
   8652 static inline HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This,IDWriteFontFallback **fallback) {
   8653     return This->lpVtbl->GetSystemFontFallback(This,fallback);
   8654 }
   8655 static inline HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
   8656     return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
   8657 }
   8658 static inline HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) {
   8659     return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers);
   8660 }
   8661 /*** IDWriteFactory3 methods ***/
   8662 static inline HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
   8663     return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
   8664 }
   8665 static inline HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
   8666     return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
   8667 }
   8668 static inline HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
   8669     return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
   8670 }
   8671 static inline HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
   8672     return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
   8673 }
   8674 static inline HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This,IDWriteFontSet **fontset) {
   8675     return This->lpVtbl->GetSystemFontSet(This,fontset);
   8676 }
   8677 static inline HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This,IDWriteFontSetBuilder **builder) {
   8678     return This->lpVtbl->CreateFontSetBuilder(This,builder);
   8679 }
   8680 static inline HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
   8681     return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
   8682 }
   8683 static inline HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
   8684     return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
   8685 }
   8686 static inline HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This,IDWriteFontDownloadQueue **queue) {
   8687     return This->lpVtbl->GetFontDownloadQueue(This,queue);
   8688 }
   8689 #endif
   8690 #endif
   8691 
   8692 #endif
   8693 
   8694 
   8695 #endif  /* __IDWriteFactory3_INTERFACE_DEFINED__ */
   8696 
   8697 typedef struct DWRITE_GLYPH_IMAGE_DATA {
   8698     const void *imageData;
   8699     UINT32 imageDataSize;
   8700     UINT32 uniqueDataId;
   8701     UINT32 pixelsPerEm;
   8702     D2D1_SIZE_U pixelSize;
   8703     D2D1_POINT_2L horizontalLeftOrigin;
   8704     D2D1_POINT_2L horizontalRightOrigin;
   8705     D2D1_POINT_2L verticalTopOrigin;
   8706     D2D1_POINT_2L verticalBottomOrigin;
   8707 } DWRITE_GLYPH_IMAGE_DATA;
   8708 /*****************************************************************************
   8709  * IDWriteFontFace4 interface
   8710  */
   8711 #ifndef __IDWriteFontFace4_INTERFACE_DEFINED__
   8712 #define __IDWriteFontFace4_INTERFACE_DEFINED__
   8713 
   8714 DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f);
   8715 #if defined(__cplusplus) && !defined(CINTERFACE)
   8716 MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f")
   8717 IDWriteFontFace4 : public IDWriteFontFace3
   8718 {
   8719     virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_(
   8720         UINT16 glyph,
   8721         UINT32 ppem_first,
   8722         UINT32 ppem_last,
   8723         DWRITE_GLYPH_IMAGE_FORMATS *formats) = 0;
   8724 
   8725     virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats(
   8726         ) = 0;
   8727 
   8728     virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData(
   8729         UINT16 glyph,
   8730         UINT32 ppem,
   8731         DWRITE_GLYPH_IMAGE_FORMATS format,
   8732         DWRITE_GLYPH_IMAGE_DATA *data,
   8733         void **context) = 0;
   8734 
   8735     virtual void STDMETHODCALLTYPE ReleaseGlyphImageData(
   8736         void *context) = 0;
   8737 
   8738 };
   8739 #ifdef __CRT_UUID_DECL
   8740 __CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f)
   8741 #endif
   8742 #else
   8743 typedef struct IDWriteFontFace4Vtbl {
   8744     BEGIN_INTERFACE
   8745 
   8746     /*** IUnknown methods ***/
   8747     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8748         IDWriteFontFace4 *This,
   8749         REFIID riid,
   8750         void **ppvObject);
   8751 
   8752     ULONG (STDMETHODCALLTYPE *AddRef)(
   8753         IDWriteFontFace4 *This);
   8754 
   8755     ULONG (STDMETHODCALLTYPE *Release)(
   8756         IDWriteFontFace4 *This);
   8757 
   8758     /*** IDWriteFontFace methods ***/
   8759     DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
   8760         IDWriteFontFace4 *This);
   8761 
   8762     HRESULT (STDMETHODCALLTYPE *GetFiles)(
   8763         IDWriteFontFace4 *This,
   8764         UINT32 *number_of_files,
   8765         IDWriteFontFile **fontfiles);
   8766 
   8767     UINT32 (STDMETHODCALLTYPE *GetIndex)(
   8768         IDWriteFontFace4 *This);
   8769 
   8770     DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
   8771         IDWriteFontFace4 *This);
   8772 
   8773     WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
   8774         IDWriteFontFace4 *This);
   8775 
   8776     void (STDMETHODCALLTYPE *GetMetrics)(
   8777         IDWriteFontFace4 *This,
   8778         DWRITE_FONT_METRICS *metrics);
   8779 
   8780     UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
   8781         IDWriteFontFace4 *This);
   8782 
   8783     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
   8784         IDWriteFontFace4 *This,
   8785         const UINT16 *glyph_indices,
   8786         UINT32 glyph_count,
   8787         DWRITE_GLYPH_METRICS *metrics,
   8788         WINBOOL is_sideways);
   8789 
   8790     HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
   8791         IDWriteFontFace4 *This,
   8792         const UINT32 *codepoints,
   8793         UINT32 count,
   8794         UINT16 *glyph_indices);
   8795 
   8796     HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
   8797         IDWriteFontFace4 *This,
   8798         UINT32 table_tag,
   8799         const void **table_data,
   8800         UINT32 *table_size,
   8801         void **context,
   8802         WINBOOL *exists);
   8803 
   8804     void (STDMETHODCALLTYPE *ReleaseFontTable)(
   8805         IDWriteFontFace4 *This,
   8806         void *table_context);
   8807 
   8808     HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
   8809         IDWriteFontFace4 *This,
   8810         FLOAT emSize,
   8811         const UINT16 *glyph_indices,
   8812         const FLOAT *glyph_advances,
   8813         const DWRITE_GLYPH_OFFSET *glyph_offsets,
   8814         UINT32 glyph_count,
   8815         WINBOOL is_sideways,
   8816         WINBOOL is_rtl,
   8817         IDWriteGeometrySink *geometrysink);
   8818 
   8819     HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
   8820         IDWriteFontFace4 *This,
   8821         FLOAT emSize,
   8822         FLOAT pixels_per_dip,
   8823         DWRITE_MEASURING_MODE mode,
   8824         IDWriteRenderingParams *params,
   8825         DWRITE_RENDERING_MODE *rendering_mode);
   8826 
   8827     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
   8828         IDWriteFontFace4 *This,
   8829         FLOAT emSize,
   8830         FLOAT pixels_per_dip,
   8831         const DWRITE_MATRIX *transform,
   8832         DWRITE_FONT_METRICS *metrics);
   8833 
   8834     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
   8835         IDWriteFontFace4 *This,
   8836         FLOAT emSize,
   8837         FLOAT pixels_per_dip,
   8838         const DWRITE_MATRIX *transform,
   8839         WINBOOL use_gdi_natural,
   8840         const UINT16 *glyph_indices,
   8841         UINT32 glyph_count,
   8842         DWRITE_GLYPH_METRICS *metrics,
   8843         WINBOOL is_sideways);
   8844 
   8845     /*** IDWriteFontFace1 methods ***/
   8846     void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
   8847         IDWriteFontFace4 *This,
   8848         DWRITE_FONT_METRICS1 *metrics);
   8849 
   8850     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
   8851         IDWriteFontFace4 *This,
   8852         FLOAT em_size,
   8853         FLOAT pixels_per_dip,
   8854         const DWRITE_MATRIX *transform,
   8855         DWRITE_FONT_METRICS1 *metrics);
   8856 
   8857     void (STDMETHODCALLTYPE *GetCaretMetrics)(
   8858         IDWriteFontFace4 *This,
   8859         DWRITE_CARET_METRICS *metrics);
   8860 
   8861     HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
   8862         IDWriteFontFace4 *This,
   8863         UINT32 max_count,
   8864         DWRITE_UNICODE_RANGE *ranges,
   8865         UINT32 *count);
   8866 
   8867     WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
   8868         IDWriteFontFace4 *This);
   8869 
   8870     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
   8871         IDWriteFontFace4 *This,
   8872         UINT32 glyph_count,
   8873         const UINT16 *indices,
   8874         INT32 *advances,
   8875         WINBOOL is_sideways);
   8876 
   8877     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
   8878         IDWriteFontFace4 *This,
   8879         FLOAT em_size,
   8880         FLOAT pixels_per_dip,
   8881         const DWRITE_MATRIX *transform,
   8882         WINBOOL use_gdi_natural,
   8883         WINBOOL is_sideways,
   8884         UINT32 glyph_count,
   8885         const UINT16 *indices,
   8886         INT32 *advances);
   8887 
   8888     HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
   8889         IDWriteFontFace4 *This,
   8890         UINT32 glyph_count,
   8891         const UINT16 *indices,
   8892         INT32 *adjustments);
   8893 
   8894     WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
   8895         IDWriteFontFace4 *This);
   8896 
   8897     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
   8898         IDWriteFontFace4 *This,
   8899         FLOAT font_emsize,
   8900         FLOAT dpiX,
   8901         FLOAT dpiY,
   8902         const DWRITE_MATRIX *transform,
   8903         WINBOOL is_sideways,
   8904         DWRITE_OUTLINE_THRESHOLD threshold,
   8905         DWRITE_MEASURING_MODE measuring_mode,
   8906         DWRITE_RENDERING_MODE *rendering_mode);
   8907 
   8908     HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
   8909         IDWriteFontFace4 *This,
   8910         UINT32 glyph_count,
   8911         const UINT16 *nominal_indices,
   8912         UINT16 *vertical_indices);
   8913 
   8914     WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
   8915         IDWriteFontFace4 *This);
   8916 
   8917     /*** IDWriteFontFace2 methods ***/
   8918     WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
   8919         IDWriteFontFace4 *This);
   8920 
   8921     UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
   8922         IDWriteFontFace4 *This);
   8923 
   8924     UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
   8925         IDWriteFontFace4 *This);
   8926 
   8927     HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
   8928         IDWriteFontFace4 *This,
   8929         UINT32 palette_index,
   8930         UINT32 first_entry_index,
   8931         UINT32 entry_count,
   8932         DWRITE_COLOR_F *entries);
   8933 
   8934     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
   8935         IDWriteFontFace4 *This,
   8936         FLOAT fontEmSize,
   8937         FLOAT dpiX,
   8938         FLOAT dpiY,
   8939         const DWRITE_MATRIX *transform,
   8940         WINBOOL is_sideways,
   8941         DWRITE_OUTLINE_THRESHOLD threshold,
   8942         DWRITE_MEASURING_MODE measuringmode,
   8943         IDWriteRenderingParams *params,
   8944         DWRITE_RENDERING_MODE *renderingmode,
   8945         DWRITE_GRID_FIT_MODE *gridfitmode);
   8946 
   8947     /*** IDWriteFontFace3 methods ***/
   8948     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   8949         IDWriteFontFace4 *This,
   8950         IDWriteFontFaceReference **reference);
   8951 
   8952     void (STDMETHODCALLTYPE *GetPanose)(
   8953         IDWriteFontFace4 *This,
   8954         DWRITE_PANOSE *panose);
   8955 
   8956     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
   8957         IDWriteFontFace4 *This);
   8958 
   8959     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
   8960         IDWriteFontFace4 *This);
   8961 
   8962     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
   8963         IDWriteFontFace4 *This);
   8964 
   8965     HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
   8966         IDWriteFontFace4 *This,
   8967         IDWriteLocalizedStrings **names);
   8968 
   8969     HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
   8970         IDWriteFontFace4 *This,
   8971         IDWriteLocalizedStrings **names);
   8972 
   8973     HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
   8974         IDWriteFontFace4 *This,
   8975         DWRITE_INFORMATIONAL_STRING_ID stringid,
   8976         IDWriteLocalizedStrings **strings,
   8977         WINBOOL *exists);
   8978 
   8979     WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
   8980         IDWriteFontFace4 *This,
   8981         UINT32 character);
   8982 
   8983     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
   8984         IDWriteFontFace4 *This,
   8985         FLOAT emsize,
   8986         FLOAT dpi_x,
   8987         FLOAT dpi_y,
   8988         const DWRITE_MATRIX *transform,
   8989         WINBOOL is_sideways,
   8990         DWRITE_OUTLINE_THRESHOLD threshold,
   8991         DWRITE_MEASURING_MODE measuring_mode,
   8992         IDWriteRenderingParams *params,
   8993         DWRITE_RENDERING_MODE1 *rendering_mode,
   8994         DWRITE_GRID_FIT_MODE *gridfit_mode);
   8995 
   8996     WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
   8997         IDWriteFontFace4 *This,
   8998         UINT32 character);
   8999 
   9000     WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
   9001         IDWriteFontFace4 *This,
   9002         UINT16 glyph);
   9003 
   9004     HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
   9005         IDWriteFontFace4 *This,
   9006         const WCHAR *characters,
   9007         UINT32 count,
   9008         WINBOOL enqueue_if_not,
   9009         WINBOOL *are_local);
   9010 
   9011     HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
   9012         IDWriteFontFace4 *This,
   9013         const UINT16 *glyphs,
   9014         UINT32 count,
   9015         WINBOOL enqueue_if_not,
   9016         WINBOOL *are_local);
   9017 
   9018     /*** IDWriteFontFace4 methods ***/
   9019     HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
   9020         IDWriteFontFace4 *This,
   9021         UINT16 glyph,
   9022         UINT32 ppem_first,
   9023         UINT32 ppem_last,
   9024         DWRITE_GLYPH_IMAGE_FORMATS *formats);
   9025 
   9026     DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
   9027         IDWriteFontFace4 *This);
   9028 
   9029     HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
   9030         IDWriteFontFace4 *This,
   9031         UINT16 glyph,
   9032         UINT32 ppem,
   9033         DWRITE_GLYPH_IMAGE_FORMATS format,
   9034         DWRITE_GLYPH_IMAGE_DATA *data,
   9035         void **context);
   9036 
   9037     void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
   9038         IDWriteFontFace4 *This,
   9039         void *context);
   9040 
   9041     END_INTERFACE
   9042 } IDWriteFontFace4Vtbl;
   9043 
   9044 interface IDWriteFontFace4 {
   9045     CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl;
   9046 };
   9047 
   9048 #ifdef COBJMACROS
   9049 #ifndef WIDL_C_INLINE_WRAPPERS
   9050 /*** IUnknown methods ***/
   9051 #define IDWriteFontFace4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9052 #define IDWriteFontFace4_AddRef(This) (This)->lpVtbl->AddRef(This)
   9053 #define IDWriteFontFace4_Release(This) (This)->lpVtbl->Release(This)
   9054 /*** IDWriteFontFace methods ***/
   9055 #define IDWriteFontFace4_GetType(This) (This)->lpVtbl->GetType(This)
   9056 #define IDWriteFontFace4_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
   9057 #define IDWriteFontFace4_GetIndex(This) (This)->lpVtbl->GetIndex(This)
   9058 #define IDWriteFontFace4_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
   9059 #define IDWriteFontFace4_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
   9060 #define IDWriteFontFace4_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
   9061 #define IDWriteFontFace4_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
   9062 #define IDWriteFontFace4_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
   9063 #define IDWriteFontFace4_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
   9064 #define IDWriteFontFace4_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
   9065 #define IDWriteFontFace4_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
   9066 #define IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
   9067 /*** IDWriteFontFace1 methods ***/
   9068 #define IDWriteFontFace4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
   9069 #define IDWriteFontFace4_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
   9070 #define IDWriteFontFace4_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
   9071 #define IDWriteFontFace4_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
   9072 #define IDWriteFontFace4_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
   9073 #define IDWriteFontFace4_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
   9074 #define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
   9075 #define IDWriteFontFace4_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
   9076 #define IDWriteFontFace4_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
   9077 #define IDWriteFontFace4_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
   9078 #define IDWriteFontFace4_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
   9079 /*** IDWriteFontFace2 methods ***/
   9080 #define IDWriteFontFace4_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
   9081 #define IDWriteFontFace4_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
   9082 #define IDWriteFontFace4_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
   9083 #define IDWriteFontFace4_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
   9084 /*** IDWriteFontFace3 methods ***/
   9085 #define IDWriteFontFace4_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
   9086 #define IDWriteFontFace4_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
   9087 #define IDWriteFontFace4_GetWeight(This) (This)->lpVtbl->GetWeight(This)
   9088 #define IDWriteFontFace4_GetStretch(This) (This)->lpVtbl->GetStretch(This)
   9089 #define IDWriteFontFace4_GetStyle(This) (This)->lpVtbl->GetStyle(This)
   9090 #define IDWriteFontFace4_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
   9091 #define IDWriteFontFace4_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
   9092 #define IDWriteFontFace4_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
   9093 #define IDWriteFontFace4_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
   9094 #define IDWriteFontFace4_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
   9095 #define IDWriteFontFace4_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
   9096 #define IDWriteFontFace4_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
   9097 #define IDWriteFontFace4_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
   9098 #define IDWriteFontFace4_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
   9099 /*** IDWriteFontFace4 methods ***/
   9100 #define IDWriteFontFace4_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
   9101 #define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
   9102 #define IDWriteFontFace4_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
   9103 #define IDWriteFontFace4_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
   9104 #else
   9105 /*** IUnknown methods ***/
   9106 static inline HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This,REFIID riid,void **ppvObject) {
   9107     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9108 }
   9109 static inline ULONG IDWriteFontFace4_AddRef(IDWriteFontFace4* This) {
   9110     return This->lpVtbl->AddRef(This);
   9111 }
   9112 static inline ULONG IDWriteFontFace4_Release(IDWriteFontFace4* This) {
   9113     return This->lpVtbl->Release(This);
   9114 }
   9115 /*** IDWriteFontFace methods ***/
   9116 static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace4_GetType(IDWriteFontFace4* This) {
   9117     return This->lpVtbl->GetType(This);
   9118 }
   9119 static inline HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
   9120     return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
   9121 }
   9122 static inline UINT32 IDWriteFontFace4_GetIndex(IDWriteFontFace4* This) {
   9123     return This->lpVtbl->GetIndex(This);
   9124 }
   9125 static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace4_GetSimulations(IDWriteFontFace4* This) {
   9126     return This->lpVtbl->GetSimulations(This);
   9127 }
   9128 static inline WINBOOL IDWriteFontFace4_IsSymbolFont(IDWriteFontFace4* This) {
   9129     return This->lpVtbl->IsSymbolFont(This);
   9130 }
   9131 static inline UINT16 IDWriteFontFace4_GetGlyphCount(IDWriteFontFace4* This) {
   9132     return This->lpVtbl->GetGlyphCount(This);
   9133 }
   9134 static inline HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
   9135     return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
   9136 }
   9137 static inline HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
   9138     return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
   9139 }
   9140 static inline HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
   9141     return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
   9142 }
   9143 static inline void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This,void *table_context) {
   9144     This->lpVtbl->ReleaseFontTable(This,table_context);
   9145 }
   9146 static inline HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
   9147     return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
   9148 }
   9149 static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
   9150     return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
   9151 }
   9152 /*** IDWriteFontFace1 methods ***/
   9153 static inline void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This,DWRITE_FONT_METRICS1 *metrics) {
   9154     This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
   9155 }
   9156 static inline HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
   9157     return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
   9158 }
   9159 static inline void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This,DWRITE_CARET_METRICS *metrics) {
   9160     This->lpVtbl->GetCaretMetrics(This,metrics);
   9161 }
   9162 static inline HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
   9163     return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
   9164 }
   9165 static inline WINBOOL IDWriteFontFace4_IsMonospacedFont(IDWriteFontFace4* This) {
   9166     return This->lpVtbl->IsMonospacedFont(This);
   9167 }
   9168 static inline HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
   9169     return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
   9170 }
   9171 static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
   9172     return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
   9173 }
   9174 static inline HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
   9175     return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
   9176 }
   9177 static inline WINBOOL IDWriteFontFace4_HasKerningPairs(IDWriteFontFace4* This) {
   9178     return This->lpVtbl->HasKerningPairs(This);
   9179 }
   9180 static inline HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
   9181     return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
   9182 }
   9183 static inline WINBOOL IDWriteFontFace4_HasVerticalGlyphVariants(IDWriteFontFace4* This) {
   9184     return This->lpVtbl->HasVerticalGlyphVariants(This);
   9185 }
   9186 /*** IDWriteFontFace2 methods ***/
   9187 static inline WINBOOL IDWriteFontFace4_IsColorFont(IDWriteFontFace4* This) {
   9188     return This->lpVtbl->IsColorFont(This);
   9189 }
   9190 static inline UINT32 IDWriteFontFace4_GetColorPaletteCount(IDWriteFontFace4* This) {
   9191     return This->lpVtbl->GetColorPaletteCount(This);
   9192 }
   9193 static inline UINT32 IDWriteFontFace4_GetPaletteEntryCount(IDWriteFontFace4* This) {
   9194     return This->lpVtbl->GetPaletteEntryCount(This);
   9195 }
   9196 static inline HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
   9197     return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
   9198 }
   9199 /*** IDWriteFontFace3 methods ***/
   9200 static inline HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This,IDWriteFontFaceReference **reference) {
   9201     return This->lpVtbl->GetFontFaceReference(This,reference);
   9202 }
   9203 static inline void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This,DWRITE_PANOSE *panose) {
   9204     This->lpVtbl->GetPanose(This,panose);
   9205 }
   9206 static inline DWRITE_FONT_WEIGHT IDWriteFontFace4_GetWeight(IDWriteFontFace4* This) {
   9207     return This->lpVtbl->GetWeight(This);
   9208 }
   9209 static inline DWRITE_FONT_STRETCH IDWriteFontFace4_GetStretch(IDWriteFontFace4* This) {
   9210     return This->lpVtbl->GetStretch(This);
   9211 }
   9212 static inline DWRITE_FONT_STYLE IDWriteFontFace4_GetStyle(IDWriteFontFace4* This) {
   9213     return This->lpVtbl->GetStyle(This);
   9214 }
   9215 static inline HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) {
   9216     return This->lpVtbl->GetFamilyNames(This,names);
   9217 }
   9218 static inline HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) {
   9219     return This->lpVtbl->GetFaceNames(This,names);
   9220 }
   9221 static inline HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
   9222     return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
   9223 }
   9224 static inline WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This,UINT32 character) {
   9225     return This->lpVtbl->HasCharacter(This,character);
   9226 }
   9227 static inline HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
   9228     return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
   9229 }
   9230 static inline WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This,UINT32 character) {
   9231     return This->lpVtbl->IsCharacterLocal(This,character);
   9232 }
   9233 static inline WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This,UINT16 glyph) {
   9234     return This->lpVtbl->IsGlyphLocal(This,glyph);
   9235 }
   9236 static inline HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
   9237     return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
   9238 }
   9239 static inline HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
   9240     return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
   9241 }
   9242 /*** IDWriteFontFace4 methods ***/
   9243 static inline HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
   9244     return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
   9245 }
   9246 static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) {
   9247     return This->lpVtbl->GetGlyphImageFormats(This);
   9248 }
   9249 static inline HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
   9250     return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
   9251 }
   9252 static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This,void *context) {
   9253     This->lpVtbl->ReleaseGlyphImageData(This,context);
   9254 }
   9255 #endif
   9256 #endif
   9257 
   9258 #endif
   9259 
   9260 
   9261 #endif  /* __IDWriteFontFace4_INTERFACE_DEFINED__ */
   9262 
   9263 /*****************************************************************************
   9264  * IDWriteFontFace5 interface
   9265  */
   9266 #ifndef __IDWriteFontFace5_INTERFACE_DEFINED__
   9267 #define __IDWriteFontFace5_INTERFACE_DEFINED__
   9268 
   9269 DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29);
   9270 #if defined(__cplusplus) && !defined(CINTERFACE)
   9271 MIDL_INTERFACE("98eff3a5-b667-479a-b145-e2fa5b9fdc29")
   9272 IDWriteFontFace5 : public IDWriteFontFace4
   9273 {
   9274     virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
   9275         ) = 0;
   9276 
   9277     virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
   9278         DWRITE_FONT_AXIS_VALUE *values,
   9279         UINT32 value_count) = 0;
   9280 
   9281     virtual WINBOOL STDMETHODCALLTYPE HasVariations(
   9282         ) = 0;
   9283 
   9284     virtual HRESULT STDMETHODCALLTYPE GetFontResource(
   9285         IDWriteFontResource **resource) = 0;
   9286 
   9287     virtual WINBOOL STDMETHODCALLTYPE Equals(
   9288         IDWriteFontFace *fontface) = 0;
   9289 
   9290 };
   9291 #ifdef __CRT_UUID_DECL
   9292 __CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29)
   9293 #endif
   9294 #else
   9295 typedef struct IDWriteFontFace5Vtbl {
   9296     BEGIN_INTERFACE
   9297 
   9298     /*** IUnknown methods ***/
   9299     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9300         IDWriteFontFace5 *This,
   9301         REFIID riid,
   9302         void **ppvObject);
   9303 
   9304     ULONG (STDMETHODCALLTYPE *AddRef)(
   9305         IDWriteFontFace5 *This);
   9306 
   9307     ULONG (STDMETHODCALLTYPE *Release)(
   9308         IDWriteFontFace5 *This);
   9309 
   9310     /*** IDWriteFontFace methods ***/
   9311     DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
   9312         IDWriteFontFace5 *This);
   9313 
   9314     HRESULT (STDMETHODCALLTYPE *GetFiles)(
   9315         IDWriteFontFace5 *This,
   9316         UINT32 *number_of_files,
   9317         IDWriteFontFile **fontfiles);
   9318 
   9319     UINT32 (STDMETHODCALLTYPE *GetIndex)(
   9320         IDWriteFontFace5 *This);
   9321 
   9322     DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
   9323         IDWriteFontFace5 *This);
   9324 
   9325     WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
   9326         IDWriteFontFace5 *This);
   9327 
   9328     void (STDMETHODCALLTYPE *GetMetrics)(
   9329         IDWriteFontFace5 *This,
   9330         DWRITE_FONT_METRICS *metrics);
   9331 
   9332     UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
   9333         IDWriteFontFace5 *This);
   9334 
   9335     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
   9336         IDWriteFontFace5 *This,
   9337         const UINT16 *glyph_indices,
   9338         UINT32 glyph_count,
   9339         DWRITE_GLYPH_METRICS *metrics,
   9340         WINBOOL is_sideways);
   9341 
   9342     HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
   9343         IDWriteFontFace5 *This,
   9344         const UINT32 *codepoints,
   9345         UINT32 count,
   9346         UINT16 *glyph_indices);
   9347 
   9348     HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
   9349         IDWriteFontFace5 *This,
   9350         UINT32 table_tag,
   9351         const void **table_data,
   9352         UINT32 *table_size,
   9353         void **context,
   9354         WINBOOL *exists);
   9355 
   9356     void (STDMETHODCALLTYPE *ReleaseFontTable)(
   9357         IDWriteFontFace5 *This,
   9358         void *table_context);
   9359 
   9360     HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
   9361         IDWriteFontFace5 *This,
   9362         FLOAT emSize,
   9363         const UINT16 *glyph_indices,
   9364         const FLOAT *glyph_advances,
   9365         const DWRITE_GLYPH_OFFSET *glyph_offsets,
   9366         UINT32 glyph_count,
   9367         WINBOOL is_sideways,
   9368         WINBOOL is_rtl,
   9369         IDWriteGeometrySink *geometrysink);
   9370 
   9371     HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
   9372         IDWriteFontFace5 *This,
   9373         FLOAT emSize,
   9374         FLOAT pixels_per_dip,
   9375         DWRITE_MEASURING_MODE mode,
   9376         IDWriteRenderingParams *params,
   9377         DWRITE_RENDERING_MODE *rendering_mode);
   9378 
   9379     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
   9380         IDWriteFontFace5 *This,
   9381         FLOAT emSize,
   9382         FLOAT pixels_per_dip,
   9383         const DWRITE_MATRIX *transform,
   9384         DWRITE_FONT_METRICS *metrics);
   9385 
   9386     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
   9387         IDWriteFontFace5 *This,
   9388         FLOAT emSize,
   9389         FLOAT pixels_per_dip,
   9390         const DWRITE_MATRIX *transform,
   9391         WINBOOL use_gdi_natural,
   9392         const UINT16 *glyph_indices,
   9393         UINT32 glyph_count,
   9394         DWRITE_GLYPH_METRICS *metrics,
   9395         WINBOOL is_sideways);
   9396 
   9397     /*** IDWriteFontFace1 methods ***/
   9398     void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
   9399         IDWriteFontFace5 *This,
   9400         DWRITE_FONT_METRICS1 *metrics);
   9401 
   9402     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
   9403         IDWriteFontFace5 *This,
   9404         FLOAT em_size,
   9405         FLOAT pixels_per_dip,
   9406         const DWRITE_MATRIX *transform,
   9407         DWRITE_FONT_METRICS1 *metrics);
   9408 
   9409     void (STDMETHODCALLTYPE *GetCaretMetrics)(
   9410         IDWriteFontFace5 *This,
   9411         DWRITE_CARET_METRICS *metrics);
   9412 
   9413     HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
   9414         IDWriteFontFace5 *This,
   9415         UINT32 max_count,
   9416         DWRITE_UNICODE_RANGE *ranges,
   9417         UINT32 *count);
   9418 
   9419     WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
   9420         IDWriteFontFace5 *This);
   9421 
   9422     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
   9423         IDWriteFontFace5 *This,
   9424         UINT32 glyph_count,
   9425         const UINT16 *indices,
   9426         INT32 *advances,
   9427         WINBOOL is_sideways);
   9428 
   9429     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
   9430         IDWriteFontFace5 *This,
   9431         FLOAT em_size,
   9432         FLOAT pixels_per_dip,
   9433         const DWRITE_MATRIX *transform,
   9434         WINBOOL use_gdi_natural,
   9435         WINBOOL is_sideways,
   9436         UINT32 glyph_count,
   9437         const UINT16 *indices,
   9438         INT32 *advances);
   9439 
   9440     HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
   9441         IDWriteFontFace5 *This,
   9442         UINT32 glyph_count,
   9443         const UINT16 *indices,
   9444         INT32 *adjustments);
   9445 
   9446     WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
   9447         IDWriteFontFace5 *This);
   9448 
   9449     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
   9450         IDWriteFontFace5 *This,
   9451         FLOAT font_emsize,
   9452         FLOAT dpiX,
   9453         FLOAT dpiY,
   9454         const DWRITE_MATRIX *transform,
   9455         WINBOOL is_sideways,
   9456         DWRITE_OUTLINE_THRESHOLD threshold,
   9457         DWRITE_MEASURING_MODE measuring_mode,
   9458         DWRITE_RENDERING_MODE *rendering_mode);
   9459 
   9460     HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
   9461         IDWriteFontFace5 *This,
   9462         UINT32 glyph_count,
   9463         const UINT16 *nominal_indices,
   9464         UINT16 *vertical_indices);
   9465 
   9466     WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
   9467         IDWriteFontFace5 *This);
   9468 
   9469     /*** IDWriteFontFace2 methods ***/
   9470     WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
   9471         IDWriteFontFace5 *This);
   9472 
   9473     UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
   9474         IDWriteFontFace5 *This);
   9475 
   9476     UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
   9477         IDWriteFontFace5 *This);
   9478 
   9479     HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
   9480         IDWriteFontFace5 *This,
   9481         UINT32 palette_index,
   9482         UINT32 first_entry_index,
   9483         UINT32 entry_count,
   9484         DWRITE_COLOR_F *entries);
   9485 
   9486     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
   9487         IDWriteFontFace5 *This,
   9488         FLOAT fontEmSize,
   9489         FLOAT dpiX,
   9490         FLOAT dpiY,
   9491         const DWRITE_MATRIX *transform,
   9492         WINBOOL is_sideways,
   9493         DWRITE_OUTLINE_THRESHOLD threshold,
   9494         DWRITE_MEASURING_MODE measuringmode,
   9495         IDWriteRenderingParams *params,
   9496         DWRITE_RENDERING_MODE *renderingmode,
   9497         DWRITE_GRID_FIT_MODE *gridfitmode);
   9498 
   9499     /*** IDWriteFontFace3 methods ***/
   9500     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
   9501         IDWriteFontFace5 *This,
   9502         IDWriteFontFaceReference **reference);
   9503 
   9504     void (STDMETHODCALLTYPE *GetPanose)(
   9505         IDWriteFontFace5 *This,
   9506         DWRITE_PANOSE *panose);
   9507 
   9508     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
   9509         IDWriteFontFace5 *This);
   9510 
   9511     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
   9512         IDWriteFontFace5 *This);
   9513 
   9514     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
   9515         IDWriteFontFace5 *This);
   9516 
   9517     HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
   9518         IDWriteFontFace5 *This,
   9519         IDWriteLocalizedStrings **names);
   9520 
   9521     HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
   9522         IDWriteFontFace5 *This,
   9523         IDWriteLocalizedStrings **names);
   9524 
   9525     HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
   9526         IDWriteFontFace5 *This,
   9527         DWRITE_INFORMATIONAL_STRING_ID stringid,
   9528         IDWriteLocalizedStrings **strings,
   9529         WINBOOL *exists);
   9530 
   9531     WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
   9532         IDWriteFontFace5 *This,
   9533         UINT32 character);
   9534 
   9535     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
   9536         IDWriteFontFace5 *This,
   9537         FLOAT emsize,
   9538         FLOAT dpi_x,
   9539         FLOAT dpi_y,
   9540         const DWRITE_MATRIX *transform,
   9541         WINBOOL is_sideways,
   9542         DWRITE_OUTLINE_THRESHOLD threshold,
   9543         DWRITE_MEASURING_MODE measuring_mode,
   9544         IDWriteRenderingParams *params,
   9545         DWRITE_RENDERING_MODE1 *rendering_mode,
   9546         DWRITE_GRID_FIT_MODE *gridfit_mode);
   9547 
   9548     WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
   9549         IDWriteFontFace5 *This,
   9550         UINT32 character);
   9551 
   9552     WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
   9553         IDWriteFontFace5 *This,
   9554         UINT16 glyph);
   9555 
   9556     HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
   9557         IDWriteFontFace5 *This,
   9558         const WCHAR *characters,
   9559         UINT32 count,
   9560         WINBOOL enqueue_if_not,
   9561         WINBOOL *are_local);
   9562 
   9563     HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
   9564         IDWriteFontFace5 *This,
   9565         const UINT16 *glyphs,
   9566         UINT32 count,
   9567         WINBOOL enqueue_if_not,
   9568         WINBOOL *are_local);
   9569 
   9570     /*** IDWriteFontFace4 methods ***/
   9571     HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
   9572         IDWriteFontFace5 *This,
   9573         UINT16 glyph,
   9574         UINT32 ppem_first,
   9575         UINT32 ppem_last,
   9576         DWRITE_GLYPH_IMAGE_FORMATS *formats);
   9577 
   9578     DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
   9579         IDWriteFontFace5 *This);
   9580 
   9581     HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
   9582         IDWriteFontFace5 *This,
   9583         UINT16 glyph,
   9584         UINT32 ppem,
   9585         DWRITE_GLYPH_IMAGE_FORMATS format,
   9586         DWRITE_GLYPH_IMAGE_DATA *data,
   9587         void **context);
   9588 
   9589     void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
   9590         IDWriteFontFace5 *This,
   9591         void *context);
   9592 
   9593     /*** IDWriteFontFace5 methods ***/
   9594     UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
   9595         IDWriteFontFace5 *This);
   9596 
   9597     HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
   9598         IDWriteFontFace5 *This,
   9599         DWRITE_FONT_AXIS_VALUE *values,
   9600         UINT32 value_count);
   9601 
   9602     WINBOOL (STDMETHODCALLTYPE *HasVariations)(
   9603         IDWriteFontFace5 *This);
   9604 
   9605     HRESULT (STDMETHODCALLTYPE *GetFontResource)(
   9606         IDWriteFontFace5 *This,
   9607         IDWriteFontResource **resource);
   9608 
   9609     WINBOOL (STDMETHODCALLTYPE *Equals)(
   9610         IDWriteFontFace5 *This,
   9611         IDWriteFontFace *fontface);
   9612 
   9613     END_INTERFACE
   9614 } IDWriteFontFace5Vtbl;
   9615 
   9616 interface IDWriteFontFace5 {
   9617     CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl;
   9618 };
   9619 
   9620 #ifdef COBJMACROS
   9621 #ifndef WIDL_C_INLINE_WRAPPERS
   9622 /*** IUnknown methods ***/
   9623 #define IDWriteFontFace5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9624 #define IDWriteFontFace5_AddRef(This) (This)->lpVtbl->AddRef(This)
   9625 #define IDWriteFontFace5_Release(This) (This)->lpVtbl->Release(This)
   9626 /*** IDWriteFontFace methods ***/
   9627 #define IDWriteFontFace5_GetType(This) (This)->lpVtbl->GetType(This)
   9628 #define IDWriteFontFace5_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
   9629 #define IDWriteFontFace5_GetIndex(This) (This)->lpVtbl->GetIndex(This)
   9630 #define IDWriteFontFace5_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
   9631 #define IDWriteFontFace5_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
   9632 #define IDWriteFontFace5_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
   9633 #define IDWriteFontFace5_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
   9634 #define IDWriteFontFace5_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
   9635 #define IDWriteFontFace5_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
   9636 #define IDWriteFontFace5_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
   9637 #define IDWriteFontFace5_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
   9638 #define IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
   9639 /*** IDWriteFontFace1 methods ***/
   9640 #define IDWriteFontFace5_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
   9641 #define IDWriteFontFace5_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
   9642 #define IDWriteFontFace5_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
   9643 #define IDWriteFontFace5_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
   9644 #define IDWriteFontFace5_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
   9645 #define IDWriteFontFace5_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
   9646 #define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
   9647 #define IDWriteFontFace5_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
   9648 #define IDWriteFontFace5_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
   9649 #define IDWriteFontFace5_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
   9650 #define IDWriteFontFace5_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
   9651 /*** IDWriteFontFace2 methods ***/
   9652 #define IDWriteFontFace5_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
   9653 #define IDWriteFontFace5_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
   9654 #define IDWriteFontFace5_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
   9655 #define IDWriteFontFace5_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
   9656 /*** IDWriteFontFace3 methods ***/
   9657 #define IDWriteFontFace5_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
   9658 #define IDWriteFontFace5_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
   9659 #define IDWriteFontFace5_GetWeight(This) (This)->lpVtbl->GetWeight(This)
   9660 #define IDWriteFontFace5_GetStretch(This) (This)->lpVtbl->GetStretch(This)
   9661 #define IDWriteFontFace5_GetStyle(This) (This)->lpVtbl->GetStyle(This)
   9662 #define IDWriteFontFace5_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
   9663 #define IDWriteFontFace5_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
   9664 #define IDWriteFontFace5_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
   9665 #define IDWriteFontFace5_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
   9666 #define IDWriteFontFace5_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
   9667 #define IDWriteFontFace5_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
   9668 #define IDWriteFontFace5_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
   9669 #define IDWriteFontFace5_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
   9670 #define IDWriteFontFace5_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
   9671 /*** IDWriteFontFace4 methods ***/
   9672 #define IDWriteFontFace5_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
   9673 #define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
   9674 #define IDWriteFontFace5_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
   9675 #define IDWriteFontFace5_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
   9676 /*** IDWriteFontFace5 methods ***/
   9677 #define IDWriteFontFace5_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
   9678 #define IDWriteFontFace5_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
   9679 #define IDWriteFontFace5_HasVariations(This) (This)->lpVtbl->HasVariations(This)
   9680 #define IDWriteFontFace5_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
   9681 #define IDWriteFontFace5_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
   9682 #else
   9683 /*** IUnknown methods ***/
   9684 static inline HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This,REFIID riid,void **ppvObject) {
   9685     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9686 }
   9687 static inline ULONG IDWriteFontFace5_AddRef(IDWriteFontFace5* This) {
   9688     return This->lpVtbl->AddRef(This);
   9689 }
   9690 static inline ULONG IDWriteFontFace5_Release(IDWriteFontFace5* This) {
   9691     return This->lpVtbl->Release(This);
   9692 }
   9693 /*** IDWriteFontFace methods ***/
   9694 static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace5_GetType(IDWriteFontFace5* This) {
   9695     return This->lpVtbl->GetType(This);
   9696 }
   9697 static inline HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
   9698     return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
   9699 }
   9700 static inline UINT32 IDWriteFontFace5_GetIndex(IDWriteFontFace5* This) {
   9701     return This->lpVtbl->GetIndex(This);
   9702 }
   9703 static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace5_GetSimulations(IDWriteFontFace5* This) {
   9704     return This->lpVtbl->GetSimulations(This);
   9705 }
   9706 static inline WINBOOL IDWriteFontFace5_IsSymbolFont(IDWriteFontFace5* This) {
   9707     return This->lpVtbl->IsSymbolFont(This);
   9708 }
   9709 static inline UINT16 IDWriteFontFace5_GetGlyphCount(IDWriteFontFace5* This) {
   9710     return This->lpVtbl->GetGlyphCount(This);
   9711 }
   9712 static inline HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
   9713     return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
   9714 }
   9715 static inline HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
   9716     return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
   9717 }
   9718 static inline HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
   9719     return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
   9720 }
   9721 static inline void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This,void *table_context) {
   9722     This->lpVtbl->ReleaseFontTable(This,table_context);
   9723 }
   9724 static inline HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
   9725     return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
   9726 }
   9727 static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
   9728     return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
   9729 }
   9730 /*** IDWriteFontFace1 methods ***/
   9731 static inline void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This,DWRITE_FONT_METRICS1 *metrics) {
   9732     This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
   9733 }
   9734 static inline HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
   9735     return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
   9736 }
   9737 static inline void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This,DWRITE_CARET_METRICS *metrics) {
   9738     This->lpVtbl->GetCaretMetrics(This,metrics);
   9739 }
   9740 static inline HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
   9741     return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
   9742 }
   9743 static inline WINBOOL IDWriteFontFace5_IsMonospacedFont(IDWriteFontFace5* This) {
   9744     return This->lpVtbl->IsMonospacedFont(This);
   9745 }
   9746 static inline HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
   9747     return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
   9748 }
   9749 static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
   9750     return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
   9751 }
   9752 static inline HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
   9753     return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
   9754 }
   9755 static inline WINBOOL IDWriteFontFace5_HasKerningPairs(IDWriteFontFace5* This) {
   9756     return This->lpVtbl->HasKerningPairs(This);
   9757 }
   9758 static inline HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
   9759     return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
   9760 }
   9761 static inline WINBOOL IDWriteFontFace5_HasVerticalGlyphVariants(IDWriteFontFace5* This) {
   9762     return This->lpVtbl->HasVerticalGlyphVariants(This);
   9763 }
   9764 /*** IDWriteFontFace2 methods ***/
   9765 static inline WINBOOL IDWriteFontFace5_IsColorFont(IDWriteFontFace5* This) {
   9766     return This->lpVtbl->IsColorFont(This);
   9767 }
   9768 static inline UINT32 IDWriteFontFace5_GetColorPaletteCount(IDWriteFontFace5* This) {
   9769     return This->lpVtbl->GetColorPaletteCount(This);
   9770 }
   9771 static inline UINT32 IDWriteFontFace5_GetPaletteEntryCount(IDWriteFontFace5* This) {
   9772     return This->lpVtbl->GetPaletteEntryCount(This);
   9773 }
   9774 static inline HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
   9775     return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
   9776 }
   9777 /*** IDWriteFontFace3 methods ***/
   9778 static inline HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This,IDWriteFontFaceReference **reference) {
   9779     return This->lpVtbl->GetFontFaceReference(This,reference);
   9780 }
   9781 static inline void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This,DWRITE_PANOSE *panose) {
   9782     This->lpVtbl->GetPanose(This,panose);
   9783 }
   9784 static inline DWRITE_FONT_WEIGHT IDWriteFontFace5_GetWeight(IDWriteFontFace5* This) {
   9785     return This->lpVtbl->GetWeight(This);
   9786 }
   9787 static inline DWRITE_FONT_STRETCH IDWriteFontFace5_GetStretch(IDWriteFontFace5* This) {
   9788     return This->lpVtbl->GetStretch(This);
   9789 }
   9790 static inline DWRITE_FONT_STYLE IDWriteFontFace5_GetStyle(IDWriteFontFace5* This) {
   9791     return This->lpVtbl->GetStyle(This);
   9792 }
   9793 static inline HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) {
   9794     return This->lpVtbl->GetFamilyNames(This,names);
   9795 }
   9796 static inline HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) {
   9797     return This->lpVtbl->GetFaceNames(This,names);
   9798 }
   9799 static inline HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
   9800     return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
   9801 }
   9802 static inline WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This,UINT32 character) {
   9803     return This->lpVtbl->HasCharacter(This,character);
   9804 }
   9805 static inline HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
   9806     return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
   9807 }
   9808 static inline WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This,UINT32 character) {
   9809     return This->lpVtbl->IsCharacterLocal(This,character);
   9810 }
   9811 static inline WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This,UINT16 glyph) {
   9812     return This->lpVtbl->IsGlyphLocal(This,glyph);
   9813 }
   9814 static inline HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
   9815     return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
   9816 }
   9817 static inline HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
   9818     return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
   9819 }
   9820 /*** IDWriteFontFace4 methods ***/
   9821 static inline HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
   9822     return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
   9823 }
   9824 static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) {
   9825     return This->lpVtbl->GetGlyphImageFormats(This);
   9826 }
   9827 static inline HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
   9828     return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
   9829 }
   9830 static inline void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This,void *context) {
   9831     This->lpVtbl->ReleaseGlyphImageData(This,context);
   9832 }
   9833 /*** IDWriteFontFace5 methods ***/
   9834 static inline UINT32 IDWriteFontFace5_GetFontAxisValueCount(IDWriteFontFace5* This) {
   9835     return This->lpVtbl->GetFontAxisValueCount(This);
   9836 }
   9837 static inline HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
   9838     return This->lpVtbl->GetFontAxisValues(This,values,value_count);
   9839 }
   9840 static inline WINBOOL IDWriteFontFace5_HasVariations(IDWriteFontFace5* This) {
   9841     return This->lpVtbl->HasVariations(This);
   9842 }
   9843 static inline HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This,IDWriteFontResource **resource) {
   9844     return This->lpVtbl->GetFontResource(This,resource);
   9845 }
   9846 static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWriteFontFace *fontface) {
   9847     return This->lpVtbl->Equals(This,fontface);
   9848 }
   9849 #endif
   9850 #endif
   9851 
   9852 #endif
   9853 
   9854 
   9855 #endif  /* __IDWriteFontFace5_INTERFACE_DEFINED__ */
   9856 
   9857 /*****************************************************************************
   9858  * IDWriteFontFace6 interface
   9859  */
   9860 #ifndef __IDWriteFontFace6_INTERFACE_DEFINED__
   9861 #define __IDWriteFontFace6_INTERFACE_DEFINED__
   9862 
   9863 DEFINE_GUID(IID_IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad);
   9864 #if defined(__cplusplus) && !defined(CINTERFACE)
   9865 MIDL_INTERFACE("c4b1fe1b-6e84-47d5-b54c-a597981b06ad")
   9866 IDWriteFontFace6 : public IDWriteFontFace5
   9867 {
   9868     virtual HRESULT STDMETHODCALLTYPE GetFamilyNames(
   9869         DWRITE_FONT_FAMILY_MODEL font_family_model,
   9870         IDWriteLocalizedStrings **names) = 0;
   9871 
   9872     virtual HRESULT STDMETHODCALLTYPE GetFaceNames(
   9873         DWRITE_FONT_FAMILY_MODEL font_family_model,
   9874         IDWriteLocalizedStrings **names) = 0;
   9875 
   9876 };
   9877 #ifdef __CRT_UUID_DECL
   9878 __CRT_UUID_DECL(IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad)
   9879 #endif
   9880 #else
   9881 typedef struct IDWriteFontFace6Vtbl {
   9882     BEGIN_INTERFACE
   9883 
   9884     /*** IUnknown methods ***/
   9885     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9886         IDWriteFontFace6 *This,
   9887         REFIID riid,
   9888         void **ppvObject);
   9889 
   9890     ULONG (STDMETHODCALLTYPE *AddRef)(
   9891         IDWriteFontFace6 *This);
   9892 
   9893     ULONG (STDMETHODCALLTYPE *Release)(
   9894         IDWriteFontFace6 *This);
   9895 
   9896     /*** IDWriteFontFace methods ***/
   9897     DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
   9898         IDWriteFontFace6 *This);
   9899 
   9900     HRESULT (STDMETHODCALLTYPE *GetFiles)(
   9901         IDWriteFontFace6 *This,
   9902         UINT32 *number_of_files,
   9903         IDWriteFontFile **fontfiles);
   9904 
   9905     UINT32 (STDMETHODCALLTYPE *GetIndex)(
   9906         IDWriteFontFace6 *This);
   9907 
   9908     DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
   9909         IDWriteFontFace6 *This);
   9910 
   9911     WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
   9912         IDWriteFontFace6 *This);
   9913 
   9914     void (STDMETHODCALLTYPE *GetMetrics)(
   9915         IDWriteFontFace6 *This,
   9916         DWRITE_FONT_METRICS *metrics);
   9917 
   9918     UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
   9919         IDWriteFontFace6 *This);
   9920 
   9921     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
   9922         IDWriteFontFace6 *This,
   9923         const UINT16 *glyph_indices,
   9924         UINT32 glyph_count,
   9925         DWRITE_GLYPH_METRICS *metrics,
   9926         WINBOOL is_sideways);
   9927 
   9928     HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
   9929         IDWriteFontFace6 *This,
   9930         const UINT32 *codepoints,
   9931         UINT32 count,
   9932         UINT16 *glyph_indices);
   9933 
   9934     HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
   9935         IDWriteFontFace6 *This,
   9936         UINT32 table_tag,
   9937         const void **table_data,
   9938         UINT32 *table_size,
   9939         void **context,
   9940         WINBOOL *exists);
   9941 
   9942     void (STDMETHODCALLTYPE *ReleaseFontTable)(
   9943         IDWriteFontFace6 *This,
   9944         void *table_context);
   9945 
   9946     HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
   9947         IDWriteFontFace6 *This,
   9948         FLOAT emSize,
   9949         const UINT16 *glyph_indices,
   9950         const FLOAT *glyph_advances,
   9951         const DWRITE_GLYPH_OFFSET *glyph_offsets,
   9952         UINT32 glyph_count,
   9953         WINBOOL is_sideways,
   9954         WINBOOL is_rtl,
   9955         IDWriteGeometrySink *geometrysink);
   9956 
   9957     HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
   9958         IDWriteFontFace6 *This,
   9959         FLOAT emSize,
   9960         FLOAT pixels_per_dip,
   9961         DWRITE_MEASURING_MODE mode,
   9962         IDWriteRenderingParams *params,
   9963         DWRITE_RENDERING_MODE *rendering_mode);
   9964 
   9965     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
   9966         IDWriteFontFace6 *This,
   9967         FLOAT emSize,
   9968         FLOAT pixels_per_dip,
   9969         const DWRITE_MATRIX *transform,
   9970         DWRITE_FONT_METRICS *metrics);
   9971 
   9972     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
   9973         IDWriteFontFace6 *This,
   9974         FLOAT emSize,
   9975         FLOAT pixels_per_dip,
   9976         const DWRITE_MATRIX *transform,
   9977         WINBOOL use_gdi_natural,
   9978         const UINT16 *glyph_indices,
   9979         UINT32 glyph_count,
   9980         DWRITE_GLYPH_METRICS *metrics,
   9981         WINBOOL is_sideways);
   9982 
   9983     /*** IDWriteFontFace1 methods ***/
   9984     void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
   9985         IDWriteFontFace6 *This,
   9986         DWRITE_FONT_METRICS1 *metrics);
   9987 
   9988     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
   9989         IDWriteFontFace6 *This,
   9990         FLOAT em_size,
   9991         FLOAT pixels_per_dip,
   9992         const DWRITE_MATRIX *transform,
   9993         DWRITE_FONT_METRICS1 *metrics);
   9994 
   9995     void (STDMETHODCALLTYPE *GetCaretMetrics)(
   9996         IDWriteFontFace6 *This,
   9997         DWRITE_CARET_METRICS *metrics);
   9998 
   9999     HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
  10000         IDWriteFontFace6 *This,
  10001         UINT32 max_count,
  10002         DWRITE_UNICODE_RANGE *ranges,
  10003         UINT32 *count);
  10004 
  10005     WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
  10006         IDWriteFontFace6 *This);
  10007 
  10008     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
  10009         IDWriteFontFace6 *This,
  10010         UINT32 glyph_count,
  10011         const UINT16 *indices,
  10012         INT32 *advances,
  10013         WINBOOL is_sideways);
  10014 
  10015     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
  10016         IDWriteFontFace6 *This,
  10017         FLOAT em_size,
  10018         FLOAT pixels_per_dip,
  10019         const DWRITE_MATRIX *transform,
  10020         WINBOOL use_gdi_natural,
  10021         WINBOOL is_sideways,
  10022         UINT32 glyph_count,
  10023         const UINT16 *indices,
  10024         INT32 *advances);
  10025 
  10026     HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
  10027         IDWriteFontFace6 *This,
  10028         UINT32 glyph_count,
  10029         const UINT16 *indices,
  10030         INT32 *adjustments);
  10031 
  10032     WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
  10033         IDWriteFontFace6 *This);
  10034 
  10035     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
  10036         IDWriteFontFace6 *This,
  10037         FLOAT font_emsize,
  10038         FLOAT dpiX,
  10039         FLOAT dpiY,
  10040         const DWRITE_MATRIX *transform,
  10041         WINBOOL is_sideways,
  10042         DWRITE_OUTLINE_THRESHOLD threshold,
  10043         DWRITE_MEASURING_MODE measuring_mode,
  10044         DWRITE_RENDERING_MODE *rendering_mode);
  10045 
  10046     HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
  10047         IDWriteFontFace6 *This,
  10048         UINT32 glyph_count,
  10049         const UINT16 *nominal_indices,
  10050         UINT16 *vertical_indices);
  10051 
  10052     WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
  10053         IDWriteFontFace6 *This);
  10054 
  10055     /*** IDWriteFontFace2 methods ***/
  10056     WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
  10057         IDWriteFontFace6 *This);
  10058 
  10059     UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
  10060         IDWriteFontFace6 *This);
  10061 
  10062     UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
  10063         IDWriteFontFace6 *This);
  10064 
  10065     HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
  10066         IDWriteFontFace6 *This,
  10067         UINT32 palette_index,
  10068         UINT32 first_entry_index,
  10069         UINT32 entry_count,
  10070         DWRITE_COLOR_F *entries);
  10071 
  10072     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
  10073         IDWriteFontFace6 *This,
  10074         FLOAT fontEmSize,
  10075         FLOAT dpiX,
  10076         FLOAT dpiY,
  10077         const DWRITE_MATRIX *transform,
  10078         WINBOOL is_sideways,
  10079         DWRITE_OUTLINE_THRESHOLD threshold,
  10080         DWRITE_MEASURING_MODE measuringmode,
  10081         IDWriteRenderingParams *params,
  10082         DWRITE_RENDERING_MODE *renderingmode,
  10083         DWRITE_GRID_FIT_MODE *gridfitmode);
  10084 
  10085     /*** IDWriteFontFace3 methods ***/
  10086     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  10087         IDWriteFontFace6 *This,
  10088         IDWriteFontFaceReference **reference);
  10089 
  10090     void (STDMETHODCALLTYPE *GetPanose)(
  10091         IDWriteFontFace6 *This,
  10092         DWRITE_PANOSE *panose);
  10093 
  10094     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
  10095         IDWriteFontFace6 *This);
  10096 
  10097     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
  10098         IDWriteFontFace6 *This);
  10099 
  10100     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
  10101         IDWriteFontFace6 *This);
  10102 
  10103     HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
  10104         IDWriteFontFace6 *This,
  10105         IDWriteLocalizedStrings **names);
  10106 
  10107     HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
  10108         IDWriteFontFace6 *This,
  10109         IDWriteLocalizedStrings **names);
  10110 
  10111     HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
  10112         IDWriteFontFace6 *This,
  10113         DWRITE_INFORMATIONAL_STRING_ID stringid,
  10114         IDWriteLocalizedStrings **strings,
  10115         WINBOOL *exists);
  10116 
  10117     WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
  10118         IDWriteFontFace6 *This,
  10119         UINT32 character);
  10120 
  10121     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
  10122         IDWriteFontFace6 *This,
  10123         FLOAT emsize,
  10124         FLOAT dpi_x,
  10125         FLOAT dpi_y,
  10126         const DWRITE_MATRIX *transform,
  10127         WINBOOL is_sideways,
  10128         DWRITE_OUTLINE_THRESHOLD threshold,
  10129         DWRITE_MEASURING_MODE measuring_mode,
  10130         IDWriteRenderingParams *params,
  10131         DWRITE_RENDERING_MODE1 *rendering_mode,
  10132         DWRITE_GRID_FIT_MODE *gridfit_mode);
  10133 
  10134     WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
  10135         IDWriteFontFace6 *This,
  10136         UINT32 character);
  10137 
  10138     WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
  10139         IDWriteFontFace6 *This,
  10140         UINT16 glyph);
  10141 
  10142     HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
  10143         IDWriteFontFace6 *This,
  10144         const WCHAR *characters,
  10145         UINT32 count,
  10146         WINBOOL enqueue_if_not,
  10147         WINBOOL *are_local);
  10148 
  10149     HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
  10150         IDWriteFontFace6 *This,
  10151         const UINT16 *glyphs,
  10152         UINT32 count,
  10153         WINBOOL enqueue_if_not,
  10154         WINBOOL *are_local);
  10155 
  10156     /*** IDWriteFontFace4 methods ***/
  10157     HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
  10158         IDWriteFontFace6 *This,
  10159         UINT16 glyph,
  10160         UINT32 ppem_first,
  10161         UINT32 ppem_last,
  10162         DWRITE_GLYPH_IMAGE_FORMATS *formats);
  10163 
  10164     DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
  10165         IDWriteFontFace6 *This);
  10166 
  10167     HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
  10168         IDWriteFontFace6 *This,
  10169         UINT16 glyph,
  10170         UINT32 ppem,
  10171         DWRITE_GLYPH_IMAGE_FORMATS format,
  10172         DWRITE_GLYPH_IMAGE_DATA *data,
  10173         void **context);
  10174 
  10175     void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
  10176         IDWriteFontFace6 *This,
  10177         void *context);
  10178 
  10179     /*** IDWriteFontFace5 methods ***/
  10180     UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
  10181         IDWriteFontFace6 *This);
  10182 
  10183     HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
  10184         IDWriteFontFace6 *This,
  10185         DWRITE_FONT_AXIS_VALUE *values,
  10186         UINT32 value_count);
  10187 
  10188     WINBOOL (STDMETHODCALLTYPE *HasVariations)(
  10189         IDWriteFontFace6 *This);
  10190 
  10191     HRESULT (STDMETHODCALLTYPE *GetFontResource)(
  10192         IDWriteFontFace6 *This,
  10193         IDWriteFontResource **resource);
  10194 
  10195     WINBOOL (STDMETHODCALLTYPE *Equals)(
  10196         IDWriteFontFace6 *This,
  10197         IDWriteFontFace *fontface);
  10198 
  10199     /*** IDWriteFontFace6 methods ***/
  10200     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)(
  10201         IDWriteFontFace6 *This,
  10202         DWRITE_FONT_FAMILY_MODEL font_family_model,
  10203         IDWriteLocalizedStrings **names);
  10204 
  10205     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)(
  10206         IDWriteFontFace6 *This,
  10207         DWRITE_FONT_FAMILY_MODEL font_family_model,
  10208         IDWriteLocalizedStrings **names);
  10209 
  10210     END_INTERFACE
  10211 } IDWriteFontFace6Vtbl;
  10212 
  10213 interface IDWriteFontFace6 {
  10214     CONST_VTBL IDWriteFontFace6Vtbl* lpVtbl;
  10215 };
  10216 
  10217 #ifdef COBJMACROS
  10218 #ifndef WIDL_C_INLINE_WRAPPERS
  10219 /*** IUnknown methods ***/
  10220 #define IDWriteFontFace6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10221 #define IDWriteFontFace6_AddRef(This) (This)->lpVtbl->AddRef(This)
  10222 #define IDWriteFontFace6_Release(This) (This)->lpVtbl->Release(This)
  10223 /*** IDWriteFontFace methods ***/
  10224 #define IDWriteFontFace6_GetType(This) (This)->lpVtbl->GetType(This)
  10225 #define IDWriteFontFace6_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
  10226 #define IDWriteFontFace6_GetIndex(This) (This)->lpVtbl->GetIndex(This)
  10227 #define IDWriteFontFace6_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  10228 #define IDWriteFontFace6_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
  10229 #define IDWriteFontFace6_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
  10230 #define IDWriteFontFace6_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
  10231 #define IDWriteFontFace6_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
  10232 #define IDWriteFontFace6_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
  10233 #define IDWriteFontFace6_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
  10234 #define IDWriteFontFace6_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
  10235 #define IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
  10236 /*** IDWriteFontFace1 methods ***/
  10237 #define IDWriteFontFace6_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
  10238 #define IDWriteFontFace6_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
  10239 #define IDWriteFontFace6_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
  10240 #define IDWriteFontFace6_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
  10241 #define IDWriteFontFace6_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
  10242 #define IDWriteFontFace6_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
  10243 #define IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
  10244 #define IDWriteFontFace6_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
  10245 #define IDWriteFontFace6_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
  10246 #define IDWriteFontFace6_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
  10247 #define IDWriteFontFace6_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
  10248 /*** IDWriteFontFace2 methods ***/
  10249 #define IDWriteFontFace6_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
  10250 #define IDWriteFontFace6_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
  10251 #define IDWriteFontFace6_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
  10252 #define IDWriteFontFace6_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
  10253 /*** IDWriteFontFace3 methods ***/
  10254 #define IDWriteFontFace6_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
  10255 #define IDWriteFontFace6_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
  10256 #define IDWriteFontFace6_GetWeight(This) (This)->lpVtbl->GetWeight(This)
  10257 #define IDWriteFontFace6_GetStretch(This) (This)->lpVtbl->GetStretch(This)
  10258 #define IDWriteFontFace6_GetStyle(This) (This)->lpVtbl->GetStyle(This)
  10259 #define IDWriteFontFace6_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
  10260 #define IDWriteFontFace6_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
  10261 #define IDWriteFontFace6_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
  10262 #define IDWriteFontFace6_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
  10263 #define IDWriteFontFace6_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
  10264 #define IDWriteFontFace6_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
  10265 #define IDWriteFontFace6_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
  10266 /*** IDWriteFontFace4 methods ***/
  10267 #define IDWriteFontFace6_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
  10268 #define IDWriteFontFace6_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
  10269 #define IDWriteFontFace6_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
  10270 #define IDWriteFontFace6_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
  10271 /*** IDWriteFontFace5 methods ***/
  10272 #define IDWriteFontFace6_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
  10273 #define IDWriteFontFace6_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
  10274 #define IDWriteFontFace6_HasVariations(This) (This)->lpVtbl->HasVariations(This)
  10275 #define IDWriteFontFace6_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
  10276 #define IDWriteFontFace6_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
  10277 /*** IDWriteFontFace6 methods ***/
  10278 #define IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names)
  10279 #define IDWriteFontFace6_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names)
  10280 #else
  10281 /*** IUnknown methods ***/
  10282 static inline HRESULT IDWriteFontFace6_QueryInterface(IDWriteFontFace6* This,REFIID riid,void **ppvObject) {
  10283     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10284 }
  10285 static inline ULONG IDWriteFontFace6_AddRef(IDWriteFontFace6* This) {
  10286     return This->lpVtbl->AddRef(This);
  10287 }
  10288 static inline ULONG IDWriteFontFace6_Release(IDWriteFontFace6* This) {
  10289     return This->lpVtbl->Release(This);
  10290 }
  10291 /*** IDWriteFontFace methods ***/
  10292 static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace6_GetType(IDWriteFontFace6* This) {
  10293     return This->lpVtbl->GetType(This);
  10294 }
  10295 static inline HRESULT IDWriteFontFace6_GetFiles(IDWriteFontFace6* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
  10296     return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
  10297 }
  10298 static inline UINT32 IDWriteFontFace6_GetIndex(IDWriteFontFace6* This) {
  10299     return This->lpVtbl->GetIndex(This);
  10300 }
  10301 static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace6_GetSimulations(IDWriteFontFace6* This) {
  10302     return This->lpVtbl->GetSimulations(This);
  10303 }
  10304 static inline WINBOOL IDWriteFontFace6_IsSymbolFont(IDWriteFontFace6* This) {
  10305     return This->lpVtbl->IsSymbolFont(This);
  10306 }
  10307 static inline UINT16 IDWriteFontFace6_GetGlyphCount(IDWriteFontFace6* This) {
  10308     return This->lpVtbl->GetGlyphCount(This);
  10309 }
  10310 static inline HRESULT IDWriteFontFace6_GetDesignGlyphMetrics(IDWriteFontFace6* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
  10311     return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
  10312 }
  10313 static inline HRESULT IDWriteFontFace6_GetGlyphIndices(IDWriteFontFace6* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
  10314     return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
  10315 }
  10316 static inline HRESULT IDWriteFontFace6_TryGetFontTable(IDWriteFontFace6* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
  10317     return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
  10318 }
  10319 static inline void IDWriteFontFace6_ReleaseFontTable(IDWriteFontFace6* This,void *table_context) {
  10320     This->lpVtbl->ReleaseFontTable(This,table_context);
  10321 }
  10322 static inline HRESULT IDWriteFontFace6_GetGlyphRunOutline(IDWriteFontFace6* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
  10323     return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
  10324 }
  10325 static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(IDWriteFontFace6* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
  10326     return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
  10327 }
  10328 /*** IDWriteFontFace1 methods ***/
  10329 static inline void IDWriteFontFace6_GetMetrics(IDWriteFontFace6* This,DWRITE_FONT_METRICS1 *metrics) {
  10330     This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
  10331 }
  10332 static inline HRESULT IDWriteFontFace6_GetGdiCompatibleMetrics(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
  10333     return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
  10334 }
  10335 static inline void IDWriteFontFace6_GetCaretMetrics(IDWriteFontFace6* This,DWRITE_CARET_METRICS *metrics) {
  10336     This->lpVtbl->GetCaretMetrics(This,metrics);
  10337 }
  10338 static inline HRESULT IDWriteFontFace6_GetUnicodeRanges(IDWriteFontFace6* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
  10339     return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
  10340 }
  10341 static inline WINBOOL IDWriteFontFace6_IsMonospacedFont(IDWriteFontFace6* This) {
  10342     return This->lpVtbl->IsMonospacedFont(This);
  10343 }
  10344 static inline HRESULT IDWriteFontFace6_GetDesignGlyphAdvances(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
  10345     return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
  10346 }
  10347 static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
  10348     return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
  10349 }
  10350 static inline HRESULT IDWriteFontFace6_GetKerningPairAdjustments(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
  10351     return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
  10352 }
  10353 static inline WINBOOL IDWriteFontFace6_HasKerningPairs(IDWriteFontFace6* This) {
  10354     return This->lpVtbl->HasKerningPairs(This);
  10355 }
  10356 static inline HRESULT IDWriteFontFace6_GetVerticalGlyphVariants(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
  10357     return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
  10358 }
  10359 static inline WINBOOL IDWriteFontFace6_HasVerticalGlyphVariants(IDWriteFontFace6* This) {
  10360     return This->lpVtbl->HasVerticalGlyphVariants(This);
  10361 }
  10362 /*** IDWriteFontFace2 methods ***/
  10363 static inline WINBOOL IDWriteFontFace6_IsColorFont(IDWriteFontFace6* This) {
  10364     return This->lpVtbl->IsColorFont(This);
  10365 }
  10366 static inline UINT32 IDWriteFontFace6_GetColorPaletteCount(IDWriteFontFace6* This) {
  10367     return This->lpVtbl->GetColorPaletteCount(This);
  10368 }
  10369 static inline UINT32 IDWriteFontFace6_GetPaletteEntryCount(IDWriteFontFace6* This) {
  10370     return This->lpVtbl->GetPaletteEntryCount(This);
  10371 }
  10372 static inline HRESULT IDWriteFontFace6_GetPaletteEntries(IDWriteFontFace6* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
  10373     return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
  10374 }
  10375 /*** IDWriteFontFace3 methods ***/
  10376 static inline HRESULT IDWriteFontFace6_GetFontFaceReference(IDWriteFontFace6* This,IDWriteFontFaceReference **reference) {
  10377     return This->lpVtbl->GetFontFaceReference(This,reference);
  10378 }
  10379 static inline void IDWriteFontFace6_GetPanose(IDWriteFontFace6* This,DWRITE_PANOSE *panose) {
  10380     This->lpVtbl->GetPanose(This,panose);
  10381 }
  10382 static inline DWRITE_FONT_WEIGHT IDWriteFontFace6_GetWeight(IDWriteFontFace6* This) {
  10383     return This->lpVtbl->GetWeight(This);
  10384 }
  10385 static inline DWRITE_FONT_STRETCH IDWriteFontFace6_GetStretch(IDWriteFontFace6* This) {
  10386     return This->lpVtbl->GetStretch(This);
  10387 }
  10388 static inline DWRITE_FONT_STYLE IDWriteFontFace6_GetStyle(IDWriteFontFace6* This) {
  10389     return This->lpVtbl->GetStyle(This);
  10390 }
  10391 static inline HRESULT IDWriteFontFace6_GetInformationalStrings(IDWriteFontFace6* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
  10392     return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
  10393 }
  10394 static inline WINBOOL IDWriteFontFace6_HasCharacter(IDWriteFontFace6* This,UINT32 character) {
  10395     return This->lpVtbl->HasCharacter(This,character);
  10396 }
  10397 static inline HRESULT IDWriteFontFace6_GetRecommendedRenderingMode(IDWriteFontFace6* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
  10398     return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
  10399 }
  10400 static inline WINBOOL IDWriteFontFace6_IsCharacterLocal(IDWriteFontFace6* This,UINT32 character) {
  10401     return This->lpVtbl->IsCharacterLocal(This,character);
  10402 }
  10403 static inline WINBOOL IDWriteFontFace6_IsGlyphLocal(IDWriteFontFace6* This,UINT16 glyph) {
  10404     return This->lpVtbl->IsGlyphLocal(This,glyph);
  10405 }
  10406 static inline HRESULT IDWriteFontFace6_AreCharactersLocal(IDWriteFontFace6* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  10407     return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
  10408 }
  10409 static inline HRESULT IDWriteFontFace6_AreGlyphsLocal(IDWriteFontFace6* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  10410     return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
  10411 }
  10412 /*** IDWriteFontFace4 methods ***/
  10413 static inline HRESULT IDWriteFontFace6_GetGlyphImageFormats_(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
  10414     return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
  10415 }
  10416 static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace6_GetGlyphImageFormats(IDWriteFontFace6* This) {
  10417     return This->lpVtbl->GetGlyphImageFormats(This);
  10418 }
  10419 static inline HRESULT IDWriteFontFace6_GetGlyphImageData(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
  10420     return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
  10421 }
  10422 static inline void IDWriteFontFace6_ReleaseGlyphImageData(IDWriteFontFace6* This,void *context) {
  10423     This->lpVtbl->ReleaseGlyphImageData(This,context);
  10424 }
  10425 /*** IDWriteFontFace5 methods ***/
  10426 static inline UINT32 IDWriteFontFace6_GetFontAxisValueCount(IDWriteFontFace6* This) {
  10427     return This->lpVtbl->GetFontAxisValueCount(This);
  10428 }
  10429 static inline HRESULT IDWriteFontFace6_GetFontAxisValues(IDWriteFontFace6* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
  10430     return This->lpVtbl->GetFontAxisValues(This,values,value_count);
  10431 }
  10432 static inline WINBOOL IDWriteFontFace6_HasVariations(IDWriteFontFace6* This) {
  10433     return This->lpVtbl->HasVariations(This);
  10434 }
  10435 static inline HRESULT IDWriteFontFace6_GetFontResource(IDWriteFontFace6* This,IDWriteFontResource **resource) {
  10436     return This->lpVtbl->GetFontResource(This,resource);
  10437 }
  10438 static inline WINBOOL IDWriteFontFace6_Equals(IDWriteFontFace6* This,IDWriteFontFace *fontface) {
  10439     return This->lpVtbl->Equals(This,fontface);
  10440 }
  10441 /*** IDWriteFontFace6 methods ***/
  10442 static inline HRESULT IDWriteFontFace6_GetFamilyNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
  10443     return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names);
  10444 }
  10445 static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
  10446     return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names);
  10447 }
  10448 #endif
  10449 #endif
  10450 
  10451 #endif
  10452 
  10453 
  10454 #endif  /* __IDWriteFontFace6_INTERFACE_DEFINED__ */
  10455 
  10456 /*****************************************************************************
  10457  * IDWritePaintReader interface
  10458  */
  10459 #ifndef __IDWritePaintReader_INTERFACE_DEFINED__
  10460 #define __IDWritePaintReader_INTERFACE_DEFINED__
  10461 
  10462 DEFINE_GUID(IID_IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54);
  10463 #if defined(__cplusplus) && !defined(CINTERFACE)
  10464 MIDL_INTERFACE("8128e912-3b97-42a5-ab6c-24aad3a86e54")
  10465 IDWritePaintReader : public IUnknown
  10466 {
  10467     virtual HRESULT STDMETHODCALLTYPE SetCurrentGlyph(
  10468         UINT32 glyph_index,
  10469         DWRITE_PAINT_ELEMENT *paint_element,
  10470         UINT32 struct_size,
  10471         D2D_RECT_F *clip_box,
  10472         DWRITE_PAINT_ATTRIBUTES *glyph_attributes = 0) = 0;
  10473 
  10474     virtual HRESULT STDMETHODCALLTYPE SetTextColor(
  10475         const DWRITE_COLOR_F *text_color) = 0;
  10476 
  10477     virtual HRESULT STDMETHODCALLTYPE SetColorPaletteIndex(
  10478         UINT32 color_palette_index) = 0;
  10479 
  10480     virtual HRESULT STDMETHODCALLTYPE SetCustomColorPalette(
  10481         const DWRITE_COLOR_F *palette_entries,
  10482         UINT32 palette_entry_count) = 0;
  10483 
  10484     virtual HRESULT STDMETHODCALLTYPE MoveToFirstChild(
  10485         DWRITE_PAINT_ELEMENT *paint_element,
  10486         UINT32 struct_size) = 0;
  10487 
  10488     virtual HRESULT STDMETHODCALLTYPE MoveToNextSibling(
  10489         DWRITE_PAINT_ELEMENT *paint_element,
  10490         UINT32 struct_size) = 0;
  10491 
  10492     virtual HRESULT STDMETHODCALLTYPE MoveToParent(
  10493         ) = 0;
  10494 
  10495     virtual HRESULT STDMETHODCALLTYPE GetGradientStops(
  10496         UINT32 first_gradient_stop_index,
  10497         UINT32 gradient_stop_count,
  10498         D2D1_GRADIENT_STOP *gradient_stops) = 0;
  10499 
  10500     virtual HRESULT STDMETHODCALLTYPE GetGradientStopColors(
  10501         UINT32 first_gradient_stop_index,
  10502         UINT32 gradient_stop_count,
  10503         DWRITE_PAINT_COLOR *gradient_stop_colors) = 0;
  10504 
  10505 };
  10506 #ifdef __CRT_UUID_DECL
  10507 __CRT_UUID_DECL(IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54)
  10508 #endif
  10509 #else
  10510 typedef struct IDWritePaintReaderVtbl {
  10511     BEGIN_INTERFACE
  10512 
  10513     /*** IUnknown methods ***/
  10514     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10515         IDWritePaintReader *This,
  10516         REFIID riid,
  10517         void **ppvObject);
  10518 
  10519     ULONG (STDMETHODCALLTYPE *AddRef)(
  10520         IDWritePaintReader *This);
  10521 
  10522     ULONG (STDMETHODCALLTYPE *Release)(
  10523         IDWritePaintReader *This);
  10524 
  10525     /*** IDWritePaintReader methods ***/
  10526     HRESULT (STDMETHODCALLTYPE *SetCurrentGlyph)(
  10527         IDWritePaintReader *This,
  10528         UINT32 glyph_index,
  10529         DWRITE_PAINT_ELEMENT *paint_element,
  10530         UINT32 struct_size,
  10531         D2D_RECT_F *clip_box,
  10532         DWRITE_PAINT_ATTRIBUTES *glyph_attributes);
  10533 
  10534     HRESULT (STDMETHODCALLTYPE *SetTextColor)(
  10535         IDWritePaintReader *This,
  10536         const DWRITE_COLOR_F *text_color);
  10537 
  10538     HRESULT (STDMETHODCALLTYPE *SetColorPaletteIndex)(
  10539         IDWritePaintReader *This,
  10540         UINT32 color_palette_index);
  10541 
  10542     HRESULT (STDMETHODCALLTYPE *SetCustomColorPalette)(
  10543         IDWritePaintReader *This,
  10544         const DWRITE_COLOR_F *palette_entries,
  10545         UINT32 palette_entry_count);
  10546 
  10547     HRESULT (STDMETHODCALLTYPE *MoveToFirstChild)(
  10548         IDWritePaintReader *This,
  10549         DWRITE_PAINT_ELEMENT *paint_element,
  10550         UINT32 struct_size);
  10551 
  10552     HRESULT (STDMETHODCALLTYPE *MoveToNextSibling)(
  10553         IDWritePaintReader *This,
  10554         DWRITE_PAINT_ELEMENT *paint_element,
  10555         UINT32 struct_size);
  10556 
  10557     HRESULT (STDMETHODCALLTYPE *MoveToParent)(
  10558         IDWritePaintReader *This);
  10559 
  10560     HRESULT (STDMETHODCALLTYPE *GetGradientStops)(
  10561         IDWritePaintReader *This,
  10562         UINT32 first_gradient_stop_index,
  10563         UINT32 gradient_stop_count,
  10564         D2D1_GRADIENT_STOP *gradient_stops);
  10565 
  10566     HRESULT (STDMETHODCALLTYPE *GetGradientStopColors)(
  10567         IDWritePaintReader *This,
  10568         UINT32 first_gradient_stop_index,
  10569         UINT32 gradient_stop_count,
  10570         DWRITE_PAINT_COLOR *gradient_stop_colors);
  10571 
  10572     END_INTERFACE
  10573 } IDWritePaintReaderVtbl;
  10574 
  10575 interface IDWritePaintReader {
  10576     CONST_VTBL IDWritePaintReaderVtbl* lpVtbl;
  10577 };
  10578 
  10579 #ifdef COBJMACROS
  10580 #ifndef WIDL_C_INLINE_WRAPPERS
  10581 /*** IUnknown methods ***/
  10582 #define IDWritePaintReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10583 #define IDWritePaintReader_AddRef(This) (This)->lpVtbl->AddRef(This)
  10584 #define IDWritePaintReader_Release(This) (This)->lpVtbl->Release(This)
  10585 /*** IDWritePaintReader methods ***/
  10586 #define IDWritePaintReader_SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) (This)->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes)
  10587 #define IDWritePaintReader_SetTextColor(This,text_color) (This)->lpVtbl->SetTextColor(This,text_color)
  10588 #define IDWritePaintReader_SetColorPaletteIndex(This,color_palette_index) (This)->lpVtbl->SetColorPaletteIndex(This,color_palette_index)
  10589 #define IDWritePaintReader_SetCustomColorPalette(This,palette_entries,palette_entry_count) (This)->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count)
  10590 #define IDWritePaintReader_MoveToFirstChild(This,paint_element,struct_size) (This)->lpVtbl->MoveToFirstChild(This,paint_element,struct_size)
  10591 #define IDWritePaintReader_MoveToNextSibling(This,paint_element,struct_size) (This)->lpVtbl->MoveToNextSibling(This,paint_element,struct_size)
  10592 #define IDWritePaintReader_MoveToParent(This) (This)->lpVtbl->MoveToParent(This)
  10593 #define IDWritePaintReader_GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) (This)->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops)
  10594 #define IDWritePaintReader_GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) (This)->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors)
  10595 #else
  10596 /*** IUnknown methods ***/
  10597 static inline HRESULT IDWritePaintReader_QueryInterface(IDWritePaintReader* This,REFIID riid,void **ppvObject) {
  10598     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10599 }
  10600 static inline ULONG IDWritePaintReader_AddRef(IDWritePaintReader* This) {
  10601     return This->lpVtbl->AddRef(This);
  10602 }
  10603 static inline ULONG IDWritePaintReader_Release(IDWritePaintReader* This) {
  10604     return This->lpVtbl->Release(This);
  10605 }
  10606 /*** IDWritePaintReader methods ***/
  10607 static inline HRESULT IDWritePaintReader_SetCurrentGlyph(IDWritePaintReader* This,UINT32 glyph_index,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size,D2D_RECT_F *clip_box,DWRITE_PAINT_ATTRIBUTES *glyph_attributes) {
  10608     return This->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes);
  10609 }
  10610 static inline HRESULT IDWritePaintReader_SetTextColor(IDWritePaintReader* This,const DWRITE_COLOR_F *text_color) {
  10611     return This->lpVtbl->SetTextColor(This,text_color);
  10612 }
  10613 static inline HRESULT IDWritePaintReader_SetColorPaletteIndex(IDWritePaintReader* This,UINT32 color_palette_index) {
  10614     return This->lpVtbl->SetColorPaletteIndex(This,color_palette_index);
  10615 }
  10616 static inline HRESULT IDWritePaintReader_SetCustomColorPalette(IDWritePaintReader* This,const DWRITE_COLOR_F *palette_entries,UINT32 palette_entry_count) {
  10617     return This->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count);
  10618 }
  10619 static inline HRESULT IDWritePaintReader_MoveToFirstChild(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) {
  10620     return This->lpVtbl->MoveToFirstChild(This,paint_element,struct_size);
  10621 }
  10622 static inline HRESULT IDWritePaintReader_MoveToNextSibling(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) {
  10623     return This->lpVtbl->MoveToNextSibling(This,paint_element,struct_size);
  10624 }
  10625 static inline HRESULT IDWritePaintReader_MoveToParent(IDWritePaintReader* This) {
  10626     return This->lpVtbl->MoveToParent(This);
  10627 }
  10628 static inline HRESULT IDWritePaintReader_GetGradientStops(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,D2D1_GRADIENT_STOP *gradient_stops) {
  10629     return This->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops);
  10630 }
  10631 static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,DWRITE_PAINT_COLOR *gradient_stop_colors) {
  10632     return This->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors);
  10633 }
  10634 #endif
  10635 #endif
  10636 
  10637 #endif
  10638 
  10639 
  10640 #endif  /* __IDWritePaintReader_INTERFACE_DEFINED__ */
  10641 
  10642 /*****************************************************************************
  10643  * IDWriteFontFace7 interface
  10644  */
  10645 #ifndef __IDWriteFontFace7_INTERFACE_DEFINED__
  10646 #define __IDWriteFontFace7_INTERFACE_DEFINED__
  10647 
  10648 DEFINE_GUID(IID_IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b);
  10649 #if defined(__cplusplus) && !defined(CINTERFACE)
  10650 MIDL_INTERFACE("3945b85b-bc95-40f7-b72c-8b73bfc7e13b")
  10651 IDWriteFontFace7 : public IDWriteFontFace6
  10652 {
  10653     virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel(
  10654         DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) = 0;
  10655 
  10656     virtual HRESULT STDMETHODCALLTYPE CreatePaintReader(
  10657         DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,
  10658         DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,
  10659         IDWritePaintReader **paint_reader) = 0;
  10660 
  10661 };
  10662 #ifdef __CRT_UUID_DECL
  10663 __CRT_UUID_DECL(IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b)
  10664 #endif
  10665 #else
  10666 typedef struct IDWriteFontFace7Vtbl {
  10667     BEGIN_INTERFACE
  10668 
  10669     /*** IUnknown methods ***/
  10670     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10671         IDWriteFontFace7 *This,
  10672         REFIID riid,
  10673         void **ppvObject);
  10674 
  10675     ULONG (STDMETHODCALLTYPE *AddRef)(
  10676         IDWriteFontFace7 *This);
  10677 
  10678     ULONG (STDMETHODCALLTYPE *Release)(
  10679         IDWriteFontFace7 *This);
  10680 
  10681     /*** IDWriteFontFace methods ***/
  10682     DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
  10683         IDWriteFontFace7 *This);
  10684 
  10685     HRESULT (STDMETHODCALLTYPE *GetFiles)(
  10686         IDWriteFontFace7 *This,
  10687         UINT32 *number_of_files,
  10688         IDWriteFontFile **fontfiles);
  10689 
  10690     UINT32 (STDMETHODCALLTYPE *GetIndex)(
  10691         IDWriteFontFace7 *This);
  10692 
  10693     DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
  10694         IDWriteFontFace7 *This);
  10695 
  10696     WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
  10697         IDWriteFontFace7 *This);
  10698 
  10699     void (STDMETHODCALLTYPE *GetMetrics)(
  10700         IDWriteFontFace7 *This,
  10701         DWRITE_FONT_METRICS *metrics);
  10702 
  10703     UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
  10704         IDWriteFontFace7 *This);
  10705 
  10706     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
  10707         IDWriteFontFace7 *This,
  10708         const UINT16 *glyph_indices,
  10709         UINT32 glyph_count,
  10710         DWRITE_GLYPH_METRICS *metrics,
  10711         WINBOOL is_sideways);
  10712 
  10713     HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
  10714         IDWriteFontFace7 *This,
  10715         const UINT32 *codepoints,
  10716         UINT32 count,
  10717         UINT16 *glyph_indices);
  10718 
  10719     HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
  10720         IDWriteFontFace7 *This,
  10721         UINT32 table_tag,
  10722         const void **table_data,
  10723         UINT32 *table_size,
  10724         void **context,
  10725         WINBOOL *exists);
  10726 
  10727     void (STDMETHODCALLTYPE *ReleaseFontTable)(
  10728         IDWriteFontFace7 *This,
  10729         void *table_context);
  10730 
  10731     HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
  10732         IDWriteFontFace7 *This,
  10733         FLOAT emSize,
  10734         const UINT16 *glyph_indices,
  10735         const FLOAT *glyph_advances,
  10736         const DWRITE_GLYPH_OFFSET *glyph_offsets,
  10737         UINT32 glyph_count,
  10738         WINBOOL is_sideways,
  10739         WINBOOL is_rtl,
  10740         IDWriteGeometrySink *geometrysink);
  10741 
  10742     HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
  10743         IDWriteFontFace7 *This,
  10744         FLOAT emSize,
  10745         FLOAT pixels_per_dip,
  10746         DWRITE_MEASURING_MODE mode,
  10747         IDWriteRenderingParams *params,
  10748         DWRITE_RENDERING_MODE *rendering_mode);
  10749 
  10750     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
  10751         IDWriteFontFace7 *This,
  10752         FLOAT emSize,
  10753         FLOAT pixels_per_dip,
  10754         const DWRITE_MATRIX *transform,
  10755         DWRITE_FONT_METRICS *metrics);
  10756 
  10757     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
  10758         IDWriteFontFace7 *This,
  10759         FLOAT emSize,
  10760         FLOAT pixels_per_dip,
  10761         const DWRITE_MATRIX *transform,
  10762         WINBOOL use_gdi_natural,
  10763         const UINT16 *glyph_indices,
  10764         UINT32 glyph_count,
  10765         DWRITE_GLYPH_METRICS *metrics,
  10766         WINBOOL is_sideways);
  10767 
  10768     /*** IDWriteFontFace1 methods ***/
  10769     void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
  10770         IDWriteFontFace7 *This,
  10771         DWRITE_FONT_METRICS1 *metrics);
  10772 
  10773     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
  10774         IDWriteFontFace7 *This,
  10775         FLOAT em_size,
  10776         FLOAT pixels_per_dip,
  10777         const DWRITE_MATRIX *transform,
  10778         DWRITE_FONT_METRICS1 *metrics);
  10779 
  10780     void (STDMETHODCALLTYPE *GetCaretMetrics)(
  10781         IDWriteFontFace7 *This,
  10782         DWRITE_CARET_METRICS *metrics);
  10783 
  10784     HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
  10785         IDWriteFontFace7 *This,
  10786         UINT32 max_count,
  10787         DWRITE_UNICODE_RANGE *ranges,
  10788         UINT32 *count);
  10789 
  10790     WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
  10791         IDWriteFontFace7 *This);
  10792 
  10793     HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
  10794         IDWriteFontFace7 *This,
  10795         UINT32 glyph_count,
  10796         const UINT16 *indices,
  10797         INT32 *advances,
  10798         WINBOOL is_sideways);
  10799 
  10800     HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
  10801         IDWriteFontFace7 *This,
  10802         FLOAT em_size,
  10803         FLOAT pixels_per_dip,
  10804         const DWRITE_MATRIX *transform,
  10805         WINBOOL use_gdi_natural,
  10806         WINBOOL is_sideways,
  10807         UINT32 glyph_count,
  10808         const UINT16 *indices,
  10809         INT32 *advances);
  10810 
  10811     HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
  10812         IDWriteFontFace7 *This,
  10813         UINT32 glyph_count,
  10814         const UINT16 *indices,
  10815         INT32 *adjustments);
  10816 
  10817     WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
  10818         IDWriteFontFace7 *This);
  10819 
  10820     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
  10821         IDWriteFontFace7 *This,
  10822         FLOAT font_emsize,
  10823         FLOAT dpiX,
  10824         FLOAT dpiY,
  10825         const DWRITE_MATRIX *transform,
  10826         WINBOOL is_sideways,
  10827         DWRITE_OUTLINE_THRESHOLD threshold,
  10828         DWRITE_MEASURING_MODE measuring_mode,
  10829         DWRITE_RENDERING_MODE *rendering_mode);
  10830 
  10831     HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
  10832         IDWriteFontFace7 *This,
  10833         UINT32 glyph_count,
  10834         const UINT16 *nominal_indices,
  10835         UINT16 *vertical_indices);
  10836 
  10837     WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
  10838         IDWriteFontFace7 *This);
  10839 
  10840     /*** IDWriteFontFace2 methods ***/
  10841     WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
  10842         IDWriteFontFace7 *This);
  10843 
  10844     UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
  10845         IDWriteFontFace7 *This);
  10846 
  10847     UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
  10848         IDWriteFontFace7 *This);
  10849 
  10850     HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
  10851         IDWriteFontFace7 *This,
  10852         UINT32 palette_index,
  10853         UINT32 first_entry_index,
  10854         UINT32 entry_count,
  10855         DWRITE_COLOR_F *entries);
  10856 
  10857     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
  10858         IDWriteFontFace7 *This,
  10859         FLOAT fontEmSize,
  10860         FLOAT dpiX,
  10861         FLOAT dpiY,
  10862         const DWRITE_MATRIX *transform,
  10863         WINBOOL is_sideways,
  10864         DWRITE_OUTLINE_THRESHOLD threshold,
  10865         DWRITE_MEASURING_MODE measuringmode,
  10866         IDWriteRenderingParams *params,
  10867         DWRITE_RENDERING_MODE *renderingmode,
  10868         DWRITE_GRID_FIT_MODE *gridfitmode);
  10869 
  10870     /*** IDWriteFontFace3 methods ***/
  10871     HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
  10872         IDWriteFontFace7 *This,
  10873         IDWriteFontFaceReference **reference);
  10874 
  10875     void (STDMETHODCALLTYPE *GetPanose)(
  10876         IDWriteFontFace7 *This,
  10877         DWRITE_PANOSE *panose);
  10878 
  10879     DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
  10880         IDWriteFontFace7 *This);
  10881 
  10882     DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
  10883         IDWriteFontFace7 *This);
  10884 
  10885     DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
  10886         IDWriteFontFace7 *This);
  10887 
  10888     HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
  10889         IDWriteFontFace7 *This,
  10890         IDWriteLocalizedStrings **names);
  10891 
  10892     HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
  10893         IDWriteFontFace7 *This,
  10894         IDWriteLocalizedStrings **names);
  10895 
  10896     HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
  10897         IDWriteFontFace7 *This,
  10898         DWRITE_INFORMATIONAL_STRING_ID stringid,
  10899         IDWriteLocalizedStrings **strings,
  10900         WINBOOL *exists);
  10901 
  10902     WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
  10903         IDWriteFontFace7 *This,
  10904         UINT32 character);
  10905 
  10906     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
  10907         IDWriteFontFace7 *This,
  10908         FLOAT emsize,
  10909         FLOAT dpi_x,
  10910         FLOAT dpi_y,
  10911         const DWRITE_MATRIX *transform,
  10912         WINBOOL is_sideways,
  10913         DWRITE_OUTLINE_THRESHOLD threshold,
  10914         DWRITE_MEASURING_MODE measuring_mode,
  10915         IDWriteRenderingParams *params,
  10916         DWRITE_RENDERING_MODE1 *rendering_mode,
  10917         DWRITE_GRID_FIT_MODE *gridfit_mode);
  10918 
  10919     WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
  10920         IDWriteFontFace7 *This,
  10921         UINT32 character);
  10922 
  10923     WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
  10924         IDWriteFontFace7 *This,
  10925         UINT16 glyph);
  10926 
  10927     HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
  10928         IDWriteFontFace7 *This,
  10929         const WCHAR *characters,
  10930         UINT32 count,
  10931         WINBOOL enqueue_if_not,
  10932         WINBOOL *are_local);
  10933 
  10934     HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
  10935         IDWriteFontFace7 *This,
  10936         const UINT16 *glyphs,
  10937         UINT32 count,
  10938         WINBOOL enqueue_if_not,
  10939         WINBOOL *are_local);
  10940 
  10941     /*** IDWriteFontFace4 methods ***/
  10942     HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
  10943         IDWriteFontFace7 *This,
  10944         UINT16 glyph,
  10945         UINT32 ppem_first,
  10946         UINT32 ppem_last,
  10947         DWRITE_GLYPH_IMAGE_FORMATS *formats);
  10948 
  10949     DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
  10950         IDWriteFontFace7 *This);
  10951 
  10952     HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
  10953         IDWriteFontFace7 *This,
  10954         UINT16 glyph,
  10955         UINT32 ppem,
  10956         DWRITE_GLYPH_IMAGE_FORMATS format,
  10957         DWRITE_GLYPH_IMAGE_DATA *data,
  10958         void **context);
  10959 
  10960     void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
  10961         IDWriteFontFace7 *This,
  10962         void *context);
  10963 
  10964     /*** IDWriteFontFace5 methods ***/
  10965     UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
  10966         IDWriteFontFace7 *This);
  10967 
  10968     HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
  10969         IDWriteFontFace7 *This,
  10970         DWRITE_FONT_AXIS_VALUE *values,
  10971         UINT32 value_count);
  10972 
  10973     WINBOOL (STDMETHODCALLTYPE *HasVariations)(
  10974         IDWriteFontFace7 *This);
  10975 
  10976     HRESULT (STDMETHODCALLTYPE *GetFontResource)(
  10977         IDWriteFontFace7 *This,
  10978         IDWriteFontResource **resource);
  10979 
  10980     WINBOOL (STDMETHODCALLTYPE *Equals)(
  10981         IDWriteFontFace7 *This,
  10982         IDWriteFontFace *fontface);
  10983 
  10984     /*** IDWriteFontFace6 methods ***/
  10985     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)(
  10986         IDWriteFontFace7 *This,
  10987         DWRITE_FONT_FAMILY_MODEL font_family_model,
  10988         IDWriteLocalizedStrings **names);
  10989 
  10990     HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)(
  10991         IDWriteFontFace7 *This,
  10992         DWRITE_FONT_FAMILY_MODEL font_family_model,
  10993         IDWriteLocalizedStrings **names);
  10994 
  10995     /*** IDWriteFontFace7 methods ***/
  10996     DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)(
  10997         IDWriteFontFace7 *This,
  10998         DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format);
  10999 
  11000     HRESULT (STDMETHODCALLTYPE *CreatePaintReader)(
  11001         IDWriteFontFace7 *This,
  11002         DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,
  11003         DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,
  11004         IDWritePaintReader **paint_reader);
  11005 
  11006     END_INTERFACE
  11007 } IDWriteFontFace7Vtbl;
  11008 
  11009 interface IDWriteFontFace7 {
  11010     CONST_VTBL IDWriteFontFace7Vtbl* lpVtbl;
  11011 };
  11012 
  11013 #ifdef COBJMACROS
  11014 #ifndef WIDL_C_INLINE_WRAPPERS
  11015 /*** IUnknown methods ***/
  11016 #define IDWriteFontFace7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11017 #define IDWriteFontFace7_AddRef(This) (This)->lpVtbl->AddRef(This)
  11018 #define IDWriteFontFace7_Release(This) (This)->lpVtbl->Release(This)
  11019 /*** IDWriteFontFace methods ***/
  11020 #define IDWriteFontFace7_GetType(This) (This)->lpVtbl->GetType(This)
  11021 #define IDWriteFontFace7_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
  11022 #define IDWriteFontFace7_GetIndex(This) (This)->lpVtbl->GetIndex(This)
  11023 #define IDWriteFontFace7_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
  11024 #define IDWriteFontFace7_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
  11025 #define IDWriteFontFace7_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
  11026 #define IDWriteFontFace7_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
  11027 #define IDWriteFontFace7_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
  11028 #define IDWriteFontFace7_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
  11029 #define IDWriteFontFace7_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
  11030 #define IDWriteFontFace7_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
  11031 #define IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
  11032 /*** IDWriteFontFace1 methods ***/
  11033 #define IDWriteFontFace7_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
  11034 #define IDWriteFontFace7_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
  11035 #define IDWriteFontFace7_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
  11036 #define IDWriteFontFace7_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
  11037 #define IDWriteFontFace7_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
  11038 #define IDWriteFontFace7_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
  11039 #define IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
  11040 #define IDWriteFontFace7_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
  11041 #define IDWriteFontFace7_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
  11042 #define IDWriteFontFace7_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
  11043 #define IDWriteFontFace7_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
  11044 /*** IDWriteFontFace2 methods ***/
  11045 #define IDWriteFontFace7_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
  11046 #define IDWriteFontFace7_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
  11047 #define IDWriteFontFace7_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
  11048 #define IDWriteFontFace7_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
  11049 /*** IDWriteFontFace3 methods ***/
  11050 #define IDWriteFontFace7_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
  11051 #define IDWriteFontFace7_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
  11052 #define IDWriteFontFace7_GetWeight(This) (This)->lpVtbl->GetWeight(This)
  11053 #define IDWriteFontFace7_GetStretch(This) (This)->lpVtbl->GetStretch(This)
  11054 #define IDWriteFontFace7_GetStyle(This) (This)->lpVtbl->GetStyle(This)
  11055 #define IDWriteFontFace7_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
  11056 #define IDWriteFontFace7_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
  11057 #define IDWriteFontFace7_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
  11058 #define IDWriteFontFace7_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
  11059 #define IDWriteFontFace7_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
  11060 #define IDWriteFontFace7_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
  11061 #define IDWriteFontFace7_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
  11062 /*** IDWriteFontFace4 methods ***/
  11063 #define IDWriteFontFace7_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
  11064 #define IDWriteFontFace7_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
  11065 #define IDWriteFontFace7_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
  11066 #define IDWriteFontFace7_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
  11067 /*** IDWriteFontFace5 methods ***/
  11068 #define IDWriteFontFace7_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
  11069 #define IDWriteFontFace7_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
  11070 #define IDWriteFontFace7_HasVariations(This) (This)->lpVtbl->HasVariations(This)
  11071 #define IDWriteFontFace7_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
  11072 #define IDWriteFontFace7_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
  11073 /*** IDWriteFontFace6 methods ***/
  11074 #define IDWriteFontFace7_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names)
  11075 #define IDWriteFontFace7_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names)
  11076 /*** IDWriteFontFace7 methods ***/
  11077 #define IDWriteFontFace7_GetPaintFeatureLevel(This,glyph_image_format) (This)->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format)
  11078 #define IDWriteFontFace7_CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) (This)->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader)
  11079 #else
  11080 /*** IUnknown methods ***/
  11081 static inline HRESULT IDWriteFontFace7_QueryInterface(IDWriteFontFace7* This,REFIID riid,void **ppvObject) {
  11082     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11083 }
  11084 static inline ULONG IDWriteFontFace7_AddRef(IDWriteFontFace7* This) {
  11085     return This->lpVtbl->AddRef(This);
  11086 }
  11087 static inline ULONG IDWriteFontFace7_Release(IDWriteFontFace7* This) {
  11088     return This->lpVtbl->Release(This);
  11089 }
  11090 /*** IDWriteFontFace methods ***/
  11091 static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace7_GetType(IDWriteFontFace7* This) {
  11092     return This->lpVtbl->GetType(This);
  11093 }
  11094 static inline HRESULT IDWriteFontFace7_GetFiles(IDWriteFontFace7* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
  11095     return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
  11096 }
  11097 static inline UINT32 IDWriteFontFace7_GetIndex(IDWriteFontFace7* This) {
  11098     return This->lpVtbl->GetIndex(This);
  11099 }
  11100 static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace7_GetSimulations(IDWriteFontFace7* This) {
  11101     return This->lpVtbl->GetSimulations(This);
  11102 }
  11103 static inline WINBOOL IDWriteFontFace7_IsSymbolFont(IDWriteFontFace7* This) {
  11104     return This->lpVtbl->IsSymbolFont(This);
  11105 }
  11106 static inline UINT16 IDWriteFontFace7_GetGlyphCount(IDWriteFontFace7* This) {
  11107     return This->lpVtbl->GetGlyphCount(This);
  11108 }
  11109 static inline HRESULT IDWriteFontFace7_GetDesignGlyphMetrics(IDWriteFontFace7* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
  11110     return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
  11111 }
  11112 static inline HRESULT IDWriteFontFace7_GetGlyphIndices(IDWriteFontFace7* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
  11113     return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
  11114 }
  11115 static inline HRESULT IDWriteFontFace7_TryGetFontTable(IDWriteFontFace7* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
  11116     return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
  11117 }
  11118 static inline void IDWriteFontFace7_ReleaseFontTable(IDWriteFontFace7* This,void *table_context) {
  11119     This->lpVtbl->ReleaseFontTable(This,table_context);
  11120 }
  11121 static inline HRESULT IDWriteFontFace7_GetGlyphRunOutline(IDWriteFontFace7* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
  11122     return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
  11123 }
  11124 static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(IDWriteFontFace7* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
  11125     return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
  11126 }
  11127 /*** IDWriteFontFace1 methods ***/
  11128 static inline void IDWriteFontFace7_GetMetrics(IDWriteFontFace7* This,DWRITE_FONT_METRICS1 *metrics) {
  11129     This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
  11130 }
  11131 static inline HRESULT IDWriteFontFace7_GetGdiCompatibleMetrics(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
  11132     return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
  11133 }
  11134 static inline void IDWriteFontFace7_GetCaretMetrics(IDWriteFontFace7* This,DWRITE_CARET_METRICS *metrics) {
  11135     This->lpVtbl->GetCaretMetrics(This,metrics);
  11136 }
  11137 static inline HRESULT IDWriteFontFace7_GetUnicodeRanges(IDWriteFontFace7* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
  11138     return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
  11139 }
  11140 static inline WINBOOL IDWriteFontFace7_IsMonospacedFont(IDWriteFontFace7* This) {
  11141     return This->lpVtbl->IsMonospacedFont(This);
  11142 }
  11143 static inline HRESULT IDWriteFontFace7_GetDesignGlyphAdvances(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
  11144     return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
  11145 }
  11146 static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
  11147     return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
  11148 }
  11149 static inline HRESULT IDWriteFontFace7_GetKerningPairAdjustments(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
  11150     return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
  11151 }
  11152 static inline WINBOOL IDWriteFontFace7_HasKerningPairs(IDWriteFontFace7* This) {
  11153     return This->lpVtbl->HasKerningPairs(This);
  11154 }
  11155 static inline HRESULT IDWriteFontFace7_GetVerticalGlyphVariants(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
  11156     return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
  11157 }
  11158 static inline WINBOOL IDWriteFontFace7_HasVerticalGlyphVariants(IDWriteFontFace7* This) {
  11159     return This->lpVtbl->HasVerticalGlyphVariants(This);
  11160 }
  11161 /*** IDWriteFontFace2 methods ***/
  11162 static inline WINBOOL IDWriteFontFace7_IsColorFont(IDWriteFontFace7* This) {
  11163     return This->lpVtbl->IsColorFont(This);
  11164 }
  11165 static inline UINT32 IDWriteFontFace7_GetColorPaletteCount(IDWriteFontFace7* This) {
  11166     return This->lpVtbl->GetColorPaletteCount(This);
  11167 }
  11168 static inline UINT32 IDWriteFontFace7_GetPaletteEntryCount(IDWriteFontFace7* This) {
  11169     return This->lpVtbl->GetPaletteEntryCount(This);
  11170 }
  11171 static inline HRESULT IDWriteFontFace7_GetPaletteEntries(IDWriteFontFace7* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
  11172     return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
  11173 }
  11174 /*** IDWriteFontFace3 methods ***/
  11175 static inline HRESULT IDWriteFontFace7_GetFontFaceReference(IDWriteFontFace7* This,IDWriteFontFaceReference **reference) {
  11176     return This->lpVtbl->GetFontFaceReference(This,reference);
  11177 }
  11178 static inline void IDWriteFontFace7_GetPanose(IDWriteFontFace7* This,DWRITE_PANOSE *panose) {
  11179     This->lpVtbl->GetPanose(This,panose);
  11180 }
  11181 static inline DWRITE_FONT_WEIGHT IDWriteFontFace7_GetWeight(IDWriteFontFace7* This) {
  11182     return This->lpVtbl->GetWeight(This);
  11183 }
  11184 static inline DWRITE_FONT_STRETCH IDWriteFontFace7_GetStretch(IDWriteFontFace7* This) {
  11185     return This->lpVtbl->GetStretch(This);
  11186 }
  11187 static inline DWRITE_FONT_STYLE IDWriteFontFace7_GetStyle(IDWriteFontFace7* This) {
  11188     return This->lpVtbl->GetStyle(This);
  11189 }
  11190 static inline HRESULT IDWriteFontFace7_GetInformationalStrings(IDWriteFontFace7* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
  11191     return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
  11192 }
  11193 static inline WINBOOL IDWriteFontFace7_HasCharacter(IDWriteFontFace7* This,UINT32 character) {
  11194     return This->lpVtbl->HasCharacter(This,character);
  11195 }
  11196 static inline HRESULT IDWriteFontFace7_GetRecommendedRenderingMode(IDWriteFontFace7* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
  11197     return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
  11198 }
  11199 static inline WINBOOL IDWriteFontFace7_IsCharacterLocal(IDWriteFontFace7* This,UINT32 character) {
  11200     return This->lpVtbl->IsCharacterLocal(This,character);
  11201 }
  11202 static inline WINBOOL IDWriteFontFace7_IsGlyphLocal(IDWriteFontFace7* This,UINT16 glyph) {
  11203     return This->lpVtbl->IsGlyphLocal(This,glyph);
  11204 }
  11205 static inline HRESULT IDWriteFontFace7_AreCharactersLocal(IDWriteFontFace7* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  11206     return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
  11207 }
  11208 static inline HRESULT IDWriteFontFace7_AreGlyphsLocal(IDWriteFontFace7* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
  11209     return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
  11210 }
  11211 /*** IDWriteFontFace4 methods ***/
  11212 static inline HRESULT IDWriteFontFace7_GetGlyphImageFormats_(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
  11213     return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
  11214 }
  11215 static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace7_GetGlyphImageFormats(IDWriteFontFace7* This) {
  11216     return This->lpVtbl->GetGlyphImageFormats(This);
  11217 }
  11218 static inline HRESULT IDWriteFontFace7_GetGlyphImageData(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
  11219     return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
  11220 }
  11221 static inline void IDWriteFontFace7_ReleaseGlyphImageData(IDWriteFontFace7* This,void *context) {
  11222     This->lpVtbl->ReleaseGlyphImageData(This,context);
  11223 }
  11224 /*** IDWriteFontFace5 methods ***/
  11225 static inline UINT32 IDWriteFontFace7_GetFontAxisValueCount(IDWriteFontFace7* This) {
  11226     return This->lpVtbl->GetFontAxisValueCount(This);
  11227 }
  11228 static inline HRESULT IDWriteFontFace7_GetFontAxisValues(IDWriteFontFace7* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
  11229     return This->lpVtbl->GetFontAxisValues(This,values,value_count);
  11230 }
  11231 static inline WINBOOL IDWriteFontFace7_HasVariations(IDWriteFontFace7* This) {
  11232     return This->lpVtbl->HasVariations(This);
  11233 }
  11234 static inline HRESULT IDWriteFontFace7_GetFontResource(IDWriteFontFace7* This,IDWriteFontResource **resource) {
  11235     return This->lpVtbl->GetFontResource(This,resource);
  11236 }
  11237 static inline WINBOOL IDWriteFontFace7_Equals(IDWriteFontFace7* This,IDWriteFontFace *fontface) {
  11238     return This->lpVtbl->Equals(This,fontface);
  11239 }
  11240 /*** IDWriteFontFace6 methods ***/
  11241 static inline HRESULT IDWriteFontFace7_GetFamilyNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
  11242     return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names);
  11243 }
  11244 static inline HRESULT IDWriteFontFace7_GetFaceNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
  11245     return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names);
  11246 }
  11247 /*** IDWriteFontFace7 methods ***/
  11248 static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteFontFace7_GetPaintFeatureLevel(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) {
  11249     return This->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format);
  11250 }
  11251 static inline HRESULT IDWriteFontFace7_CreatePaintReader(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,IDWritePaintReader **paint_reader) {
  11252     return This->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader);
  11253 }
  11254 #endif
  11255 #endif
  11256 
  11257 #endif
  11258 
  11259 
  11260 #endif  /* __IDWriteFontFace7_INTERFACE_DEFINED__ */
  11261 
  11262 typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1;
  11263 struct DWRITE_COLOR_GLYPH_RUN1
  11264 {
  11265     DWRITE_GLYPH_RUN glyphRun;
  11266     DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;
  11267     FLOAT baselineOriginX;
  11268     FLOAT baselineOriginY;
  11269     DWRITE_COLOR_F runColor;
  11270     UINT16 paletteIndex;
  11271 #ifdef _WIN64
  11272     UINT32 _pad;
  11273 #endif
  11274     DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat;
  11275     DWRITE_MEASURING_MODE measuringMode;
  11276 };
  11277 /*****************************************************************************
  11278  * IDWriteColorGlyphRunEnumerator1 interface
  11279  */
  11280 #ifndef __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__
  11281 #define __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__
  11282 
  11283 DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35);
  11284 #if defined(__cplusplus) && !defined(CINTERFACE)
  11285 MIDL_INTERFACE("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35")
  11286 IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator
  11287 {
  11288     virtual HRESULT STDMETHODCALLTYPE GetCurrentRun(
  11289         const DWRITE_COLOR_GLYPH_RUN1 **run) = 0;
  11290 
  11291 };
  11292 #ifdef __CRT_UUID_DECL
  11293 __CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35)
  11294 #endif
  11295 #else
  11296 typedef struct IDWriteColorGlyphRunEnumerator1Vtbl {
  11297     BEGIN_INTERFACE
  11298 
  11299     /*** IUnknown methods ***/
  11300     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11301         IDWriteColorGlyphRunEnumerator1 *This,
  11302         REFIID riid,
  11303         void **ppvObject);
  11304 
  11305     ULONG (STDMETHODCALLTYPE *AddRef)(
  11306         IDWriteColorGlyphRunEnumerator1 *This);
  11307 
  11308     ULONG (STDMETHODCALLTYPE *Release)(
  11309         IDWriteColorGlyphRunEnumerator1 *This);
  11310 
  11311     /*** IDWriteColorGlyphRunEnumerator methods ***/
  11312     HRESULT (STDMETHODCALLTYPE *MoveNext)(
  11313         IDWriteColorGlyphRunEnumerator1 *This,
  11314         WINBOOL *hasRun);
  11315 
  11316     HRESULT (STDMETHODCALLTYPE *GetCurrentRun)(
  11317         IDWriteColorGlyphRunEnumerator1 *This,
  11318         const DWRITE_COLOR_GLYPH_RUN **run);
  11319 
  11320     /*** IDWriteColorGlyphRunEnumerator1 methods ***/
  11321     HRESULT (STDMETHODCALLTYPE *IDWriteColorGlyphRunEnumerator1_GetCurrentRun)(
  11322         IDWriteColorGlyphRunEnumerator1 *This,
  11323         const DWRITE_COLOR_GLYPH_RUN1 **run);
  11324 
  11325     END_INTERFACE
  11326 } IDWriteColorGlyphRunEnumerator1Vtbl;
  11327 
  11328 interface IDWriteColorGlyphRunEnumerator1 {
  11329     CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl;
  11330 };
  11331 
  11332 #ifdef COBJMACROS
  11333 #ifndef WIDL_C_INLINE_WRAPPERS
  11334 /*** IUnknown methods ***/
  11335 #define IDWriteColorGlyphRunEnumerator1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11336 #define IDWriteColorGlyphRunEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This)
  11337 #define IDWriteColorGlyphRunEnumerator1_Release(This) (This)->lpVtbl->Release(This)
  11338 /*** IDWriteColorGlyphRunEnumerator methods ***/
  11339 #define IDWriteColorGlyphRunEnumerator1_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun)
  11340 /*** IDWriteColorGlyphRunEnumerator1 methods ***/
  11341 #define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run)
  11342 #else
  11343 /*** IUnknown methods ***/
  11344 static inline HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This,REFIID riid,void **ppvObject) {
  11345     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11346 }
  11347 static inline ULONG IDWriteColorGlyphRunEnumerator1_AddRef(IDWriteColorGlyphRunEnumerator1* This) {
  11348     return This->lpVtbl->AddRef(This);
  11349 }
  11350 static inline ULONG IDWriteColorGlyphRunEnumerator1_Release(IDWriteColorGlyphRunEnumerator1* This) {
  11351     return This->lpVtbl->Release(This);
  11352 }
  11353 /*** IDWriteColorGlyphRunEnumerator methods ***/
  11354 static inline HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This,WINBOOL *hasRun) {
  11355     return This->lpVtbl->MoveNext(This,hasRun);
  11356 }
  11357 /*** IDWriteColorGlyphRunEnumerator1 methods ***/
  11358 static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This,const DWRITE_COLOR_GLYPH_RUN1 **run) {
  11359     return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run);
  11360 }
  11361 #endif
  11362 #endif
  11363 
  11364 #endif
  11365 
  11366 
  11367 #endif  /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */
  11368 
  11369 /*****************************************************************************
  11370  * IDWriteFactory4 interface
  11371  */
  11372 #ifndef __IDWriteFactory4_INTERFACE_DEFINED__
  11373 #define __IDWriteFactory4_INTERFACE_DEFINED__
  11374 
  11375 DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56);
  11376 #if defined(__cplusplus) && !defined(CINTERFACE)
  11377 MIDL_INTERFACE("4b0b5bd3-0797-4549-8ac5-fe915cc53856")
  11378 IDWriteFactory4 : public IDWriteFactory3
  11379 {
  11380     virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
  11381         D2D1_POINT_2F baseline_origin,
  11382         const DWRITE_GLYPH_RUN *run,
  11383         const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  11384         DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  11385         DWRITE_MEASURING_MODE measuring_mode,
  11386         const DWRITE_MATRIX *transform,
  11387         UINT32 palette,
  11388         IDWriteColorGlyphRunEnumerator1 **layers) = 0;
  11389 
  11390     virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_(
  11391         const DWRITE_GLYPH_RUN *run,
  11392         D2D1_POINT_2F baseline_origin,
  11393         D2D1_POINT_2F *origins) = 0;
  11394 
  11395     virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins(
  11396         const DWRITE_GLYPH_RUN *run,
  11397         DWRITE_MEASURING_MODE measuring_mode,
  11398         D2D1_POINT_2F baseline_origin,
  11399         const DWRITE_MATRIX *transform,
  11400         D2D1_POINT_2F *origins) = 0;
  11401 
  11402 };
  11403 #ifdef __CRT_UUID_DECL
  11404 __CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56)
  11405 #endif
  11406 #else
  11407 typedef struct IDWriteFactory4Vtbl {
  11408     BEGIN_INTERFACE
  11409 
  11410     /*** IUnknown methods ***/
  11411     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11412         IDWriteFactory4 *This,
  11413         REFIID riid,
  11414         void **ppvObject);
  11415 
  11416     ULONG (STDMETHODCALLTYPE *AddRef)(
  11417         IDWriteFactory4 *This);
  11418 
  11419     ULONG (STDMETHODCALLTYPE *Release)(
  11420         IDWriteFactory4 *This);
  11421 
  11422     /*** IDWriteFactory methods ***/
  11423     HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  11424         IDWriteFactory4 *This,
  11425         IDWriteFontCollection **collection,
  11426         WINBOOL check_for_updates);
  11427 
  11428     HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  11429         IDWriteFactory4 *This,
  11430         IDWriteFontCollectionLoader *loader,
  11431         const void *key,
  11432         UINT32 key_size,
  11433         IDWriteFontCollection **collection);
  11434 
  11435     HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  11436         IDWriteFactory4 *This,
  11437         IDWriteFontCollectionLoader *loader);
  11438 
  11439     HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  11440         IDWriteFactory4 *This,
  11441         IDWriteFontCollectionLoader *loader);
  11442 
  11443     HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  11444         IDWriteFactory4 *This,
  11445         const WCHAR *path,
  11446         const FILETIME *writetime,
  11447         IDWriteFontFile **font_file);
  11448 
  11449     HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  11450         IDWriteFactory4 *This,
  11451         const void *reference_key,
  11452         UINT32 key_size,
  11453         IDWriteFontFileLoader *loader,
  11454         IDWriteFontFile **font_file);
  11455 
  11456     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  11457         IDWriteFactory4 *This,
  11458         DWRITE_FONT_FACE_TYPE facetype,
  11459         UINT32 files_number,
  11460         IDWriteFontFile *const *font_files,
  11461         UINT32 index,
  11462         DWRITE_FONT_SIMULATIONS sim_flags,
  11463         IDWriteFontFace **font_face);
  11464 
  11465     HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  11466         IDWriteFactory4 *This,
  11467         IDWriteRenderingParams **params);
  11468 
  11469     HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  11470         IDWriteFactory4 *This,
  11471         HMONITOR monitor,
  11472         IDWriteRenderingParams **params);
  11473 
  11474     HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  11475         IDWriteFactory4 *This,
  11476         FLOAT gamma,
  11477         FLOAT enhancedContrast,
  11478         FLOAT cleartype_level,
  11479         DWRITE_PIXEL_GEOMETRY geometry,
  11480         DWRITE_RENDERING_MODE mode,
  11481         IDWriteRenderingParams **params);
  11482 
  11483     HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  11484         IDWriteFactory4 *This,
  11485         IDWriteFontFileLoader *loader);
  11486 
  11487     HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  11488         IDWriteFactory4 *This,
  11489         IDWriteFontFileLoader *loader);
  11490 
  11491     HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  11492         IDWriteFactory4 *This,
  11493         const WCHAR *family_name,
  11494         IDWriteFontCollection *collection,
  11495         DWRITE_FONT_WEIGHT weight,
  11496         DWRITE_FONT_STYLE style,
  11497         DWRITE_FONT_STRETCH stretch,
  11498         FLOAT size,
  11499         const WCHAR *locale,
  11500         IDWriteTextFormat **format);
  11501 
  11502     HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  11503         IDWriteFactory4 *This,
  11504         IDWriteTypography **typography);
  11505 
  11506     HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  11507         IDWriteFactory4 *This,
  11508         IDWriteGdiInterop **gdi_interop);
  11509 
  11510     HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  11511         IDWriteFactory4 *This,
  11512         const WCHAR *string,
  11513         UINT32 len,
  11514         IDWriteTextFormat *format,
  11515         FLOAT max_width,
  11516         FLOAT max_height,
  11517         IDWriteTextLayout **layout);
  11518 
  11519     HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  11520         IDWriteFactory4 *This,
  11521         const WCHAR *string,
  11522         UINT32 len,
  11523         IDWriteTextFormat *format,
  11524         FLOAT layout_width,
  11525         FLOAT layout_height,
  11526         FLOAT pixels_per_dip,
  11527         const DWRITE_MATRIX *transform,
  11528         WINBOOL use_gdi_natural,
  11529         IDWriteTextLayout **layout);
  11530 
  11531     HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  11532         IDWriteFactory4 *This,
  11533         IDWriteTextFormat *format,
  11534         IDWriteInlineObject **trimming_sign);
  11535 
  11536     HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  11537         IDWriteFactory4 *This,
  11538         IDWriteTextAnalyzer **analyzer);
  11539 
  11540     HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  11541         IDWriteFactory4 *This,
  11542         DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  11543         const WCHAR *locale,
  11544         WINBOOL ignore_user_override,
  11545         IDWriteNumberSubstitution **substitution);
  11546 
  11547     HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  11548         IDWriteFactory4 *This,
  11549         const DWRITE_GLYPH_RUN *glyph_run,
  11550         FLOAT pixels_per_dip,
  11551         const DWRITE_MATRIX *transform,
  11552         DWRITE_RENDERING_MODE rendering_mode,
  11553         DWRITE_MEASURING_MODE measuring_mode,
  11554         FLOAT baseline_x,
  11555         FLOAT baseline_y,
  11556         IDWriteGlyphRunAnalysis **analysis);
  11557 
  11558     /*** IDWriteFactory1 methods ***/
  11559     HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  11560         IDWriteFactory4 *This,
  11561         IDWriteFontCollection **collection,
  11562         WINBOOL check_for_updates);
  11563 
  11564     HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  11565         IDWriteFactory4 *This,
  11566         FLOAT gamma,
  11567         FLOAT enhcontrast,
  11568         FLOAT enhcontrast_grayscale,
  11569         FLOAT cleartype_level,
  11570         DWRITE_PIXEL_GEOMETRY geometry,
  11571         DWRITE_RENDERING_MODE mode,
  11572         IDWriteRenderingParams1 **params);
  11573 
  11574     /*** IDWriteFactory2 methods ***/
  11575     HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  11576         IDWriteFactory4 *This,
  11577         IDWriteFontFallback **fallback);
  11578 
  11579     HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  11580         IDWriteFactory4 *This,
  11581         IDWriteFontFallbackBuilder **fallbackbuilder);
  11582 
  11583     HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  11584         IDWriteFactory4 *This,
  11585         FLOAT originX,
  11586         FLOAT originY,
  11587         const DWRITE_GLYPH_RUN *run,
  11588         const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  11589         DWRITE_MEASURING_MODE mode,
  11590         const DWRITE_MATRIX *transform,
  11591         UINT32 palette_index,
  11592         IDWriteColorGlyphRunEnumerator **colorlayers);
  11593 
  11594     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  11595         IDWriteFactory4 *This,
  11596         FLOAT gamma,
  11597         FLOAT contrast,
  11598         FLOAT grayscalecontrast,
  11599         FLOAT cleartypeLevel,
  11600         DWRITE_PIXEL_GEOMETRY pixelGeometry,
  11601         DWRITE_RENDERING_MODE renderingMode,
  11602         DWRITE_GRID_FIT_MODE gridFitMode,
  11603         IDWriteRenderingParams2 **params);
  11604 
  11605     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  11606         IDWriteFactory4 *This,
  11607         const DWRITE_GLYPH_RUN *run,
  11608         const DWRITE_MATRIX *transform,
  11609         DWRITE_RENDERING_MODE renderingMode,
  11610         DWRITE_MEASURING_MODE measuringMode,
  11611         DWRITE_GRID_FIT_MODE gridFitMode,
  11612         DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  11613         FLOAT originX,
  11614         FLOAT originY,
  11615         IDWriteGlyphRunAnalysis **analysis);
  11616 
  11617     /*** IDWriteFactory3 methods ***/
  11618     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  11619         IDWriteFactory4 *This,
  11620         const DWRITE_GLYPH_RUN *run,
  11621         const DWRITE_MATRIX *transform,
  11622         DWRITE_RENDERING_MODE1 rendering_mode,
  11623         DWRITE_MEASURING_MODE measuring_mode,
  11624         DWRITE_GRID_FIT_MODE gridfit_mode,
  11625         DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  11626         FLOAT origin_x,
  11627         FLOAT origin_y,
  11628         IDWriteGlyphRunAnalysis **analysis);
  11629 
  11630     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  11631         IDWriteFactory4 *This,
  11632         FLOAT gamma,
  11633         FLOAT enhanced_contrast,
  11634         FLOAT grayscale_enhanced_contrast,
  11635         FLOAT cleartype_level,
  11636         DWRITE_PIXEL_GEOMETRY pixel_geometry,
  11637         DWRITE_RENDERING_MODE1 rendering_mode,
  11638         DWRITE_GRID_FIT_MODE gridfit_mode,
  11639         IDWriteRenderingParams3 **params);
  11640 
  11641     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  11642         IDWriteFactory4 *This,
  11643         IDWriteFontFile *file,
  11644         UINT32 index,
  11645         DWRITE_FONT_SIMULATIONS simulations,
  11646         IDWriteFontFaceReference **reference);
  11647 
  11648     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  11649         IDWriteFactory4 *This,
  11650         const WCHAR *path,
  11651         const FILETIME *writetime,
  11652         UINT32 index,
  11653         DWRITE_FONT_SIMULATIONS simulations,
  11654         IDWriteFontFaceReference **reference);
  11655 
  11656     HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  11657         IDWriteFactory4 *This,
  11658         IDWriteFontSet **fontset);
  11659 
  11660     HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  11661         IDWriteFactory4 *This,
  11662         IDWriteFontSetBuilder **builder);
  11663 
  11664     HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  11665         IDWriteFactory4 *This,
  11666         IDWriteFontSet *fontset,
  11667         IDWriteFontCollection1 **collection);
  11668 
  11669     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  11670         IDWriteFactory4 *This,
  11671         WINBOOL include_downloadable,
  11672         IDWriteFontCollection1 **collection,
  11673         WINBOOL check_for_updates);
  11674 
  11675     HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  11676         IDWriteFactory4 *This,
  11677         IDWriteFontDownloadQueue **queue);
  11678 
  11679     /*** IDWriteFactory4 methods ***/
  11680     HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  11681         IDWriteFactory4 *This,
  11682         D2D1_POINT_2F baseline_origin,
  11683         const DWRITE_GLYPH_RUN *run,
  11684         const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  11685         DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  11686         DWRITE_MEASURING_MODE measuring_mode,
  11687         const DWRITE_MATRIX *transform,
  11688         UINT32 palette,
  11689         IDWriteColorGlyphRunEnumerator1 **layers);
  11690 
  11691     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  11692         IDWriteFactory4 *This,
  11693         const DWRITE_GLYPH_RUN *run,
  11694         D2D1_POINT_2F baseline_origin,
  11695         D2D1_POINT_2F *origins);
  11696 
  11697     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  11698         IDWriteFactory4 *This,
  11699         const DWRITE_GLYPH_RUN *run,
  11700         DWRITE_MEASURING_MODE measuring_mode,
  11701         D2D1_POINT_2F baseline_origin,
  11702         const DWRITE_MATRIX *transform,
  11703         D2D1_POINT_2F *origins);
  11704 
  11705     END_INTERFACE
  11706 } IDWriteFactory4Vtbl;
  11707 
  11708 interface IDWriteFactory4 {
  11709     CONST_VTBL IDWriteFactory4Vtbl* lpVtbl;
  11710 };
  11711 
  11712 #ifdef COBJMACROS
  11713 #ifndef WIDL_C_INLINE_WRAPPERS
  11714 /*** IUnknown methods ***/
  11715 #define IDWriteFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11716 #define IDWriteFactory4_AddRef(This) (This)->lpVtbl->AddRef(This)
  11717 #define IDWriteFactory4_Release(This) (This)->lpVtbl->Release(This)
  11718 /*** IDWriteFactory methods ***/
  11719 #define IDWriteFactory4_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  11720 #define IDWriteFactory4_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  11721 #define IDWriteFactory4_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  11722 #define IDWriteFactory4_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  11723 #define IDWriteFactory4_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  11724 #define IDWriteFactory4_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
  11725 #define IDWriteFactory4_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  11726 #define IDWriteFactory4_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  11727 #define IDWriteFactory4_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  11728 #define IDWriteFactory4_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  11729 #define IDWriteFactory4_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
  11730 #define IDWriteFactory4_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  11731 #define IDWriteFactory4_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  11732 #define IDWriteFactory4_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  11733 #define IDWriteFactory4_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
  11734 #define IDWriteFactory4_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  11735 #define IDWriteFactory4_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  11736 #define IDWriteFactory4_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  11737 /*** IDWriteFactory1 methods ***/
  11738 #define IDWriteFactory4_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  11739 /*** IDWriteFactory2 methods ***/
  11740 #define IDWriteFactory4_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  11741 #define IDWriteFactory4_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  11742 /*** IDWriteFactory3 methods ***/
  11743 #define IDWriteFactory4_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  11744 #define IDWriteFactory4_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  11745 #define IDWriteFactory4_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  11746 #define IDWriteFactory4_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
  11747 #define IDWriteFactory4_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
  11748 #define IDWriteFactory4_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder)
  11749 #define IDWriteFactory4_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
  11750 #define IDWriteFactory4_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
  11751 #define IDWriteFactory4_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  11752 /*** IDWriteFactory4 methods ***/
  11753 #define IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
  11754 #define IDWriteFactory4_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  11755 #define IDWriteFactory4_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  11756 #else
  11757 /*** IUnknown methods ***/
  11758 static inline HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This,REFIID riid,void **ppvObject) {
  11759     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11760 }
  11761 static inline ULONG IDWriteFactory4_AddRef(IDWriteFactory4* This) {
  11762     return This->lpVtbl->AddRef(This);
  11763 }
  11764 static inline ULONG IDWriteFactory4_Release(IDWriteFactory4* This) {
  11765     return This->lpVtbl->Release(This);
  11766 }
  11767 /*** IDWriteFactory methods ***/
  11768 static inline HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  11769     return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  11770 }
  11771 static inline HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) {
  11772     return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  11773 }
  11774 static inline HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) {
  11775     return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  11776 }
  11777 static inline HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  11778     return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  11779 }
  11780 static inline HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  11781     return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  11782 }
  11783 static inline HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  11784     return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  11785 }
  11786 static inline HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This,IDWriteRenderingParams **params) {
  11787     return This->lpVtbl->CreateRenderingParams(This,params);
  11788 }
  11789 static inline HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  11790     return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  11791 }
  11792 static inline HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) {
  11793     return This->lpVtbl->RegisterFontFileLoader(This,loader);
  11794 }
  11795 static inline HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) {
  11796     return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  11797 }
  11798 static inline HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
  11799     return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
  11800 }
  11801 static inline HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This,IDWriteTypography **typography) {
  11802     return This->lpVtbl->CreateTypography(This,typography);
  11803 }
  11804 static inline HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This,IDWriteGdiInterop **gdi_interop) {
  11805     return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  11806 }
  11807 static inline HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  11808     return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  11809 }
  11810 static inline HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
  11811     return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  11812 }
  11813 static inline HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  11814     return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  11815 }
  11816 static inline HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This,IDWriteTextAnalyzer **analyzer) {
  11817     return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  11818 }
  11819 static inline HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  11820     return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  11821 }
  11822 /*** IDWriteFactory1 methods ***/
  11823 static inline HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  11824     return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  11825 }
  11826 /*** IDWriteFactory2 methods ***/
  11827 static inline HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This,IDWriteFontFallback **fallback) {
  11828     return This->lpVtbl->GetSystemFontFallback(This,fallback);
  11829 }
  11830 static inline HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  11831     return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  11832 }
  11833 /*** IDWriteFactory3 methods ***/
  11834 static inline HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  11835     return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  11836 }
  11837 static inline HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  11838     return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  11839 }
  11840 static inline HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  11841     return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  11842 }
  11843 static inline HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  11844     return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
  11845 }
  11846 static inline HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This,IDWriteFontSet **fontset) {
  11847     return This->lpVtbl->GetSystemFontSet(This,fontset);
  11848 }
  11849 static inline HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This,IDWriteFontSetBuilder **builder) {
  11850     return This->lpVtbl->CreateFontSetBuilder(This,builder);
  11851 }
  11852 static inline HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
  11853     return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
  11854 }
  11855 static inline HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
  11856     return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
  11857 }
  11858 static inline HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This,IDWriteFontDownloadQueue **queue) {
  11859     return This->lpVtbl->GetFontDownloadQueue(This,queue);
  11860 }
  11861 /*** IDWriteFactory4 methods ***/
  11862 static inline HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
  11863     return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
  11864 }
  11865 static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  11866     return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  11867 }
  11868 static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  11869     return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  11870 }
  11871 #endif
  11872 #endif
  11873 
  11874 #endif
  11875 
  11876 
  11877 #endif  /* __IDWriteFactory4_INTERFACE_DEFINED__ */
  11878 
  11879 /*****************************************************************************
  11880  * IDWriteAsyncResult interface
  11881  */
  11882 #ifndef __IDWriteAsyncResult_INTERFACE_DEFINED__
  11883 #define __IDWriteAsyncResult_INTERFACE_DEFINED__
  11884 
  11885 DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2);
  11886 #if defined(__cplusplus) && !defined(CINTERFACE)
  11887 MIDL_INTERFACE("ce25f8fd-863b-4d13-9651-c1f88dc73fe2")
  11888 IDWriteAsyncResult : public IUnknown
  11889 {
  11890     virtual HANDLE STDMETHODCALLTYPE GetWaitHandle(
  11891         ) = 0;
  11892 
  11893     virtual HRESULT STDMETHODCALLTYPE GetResult(
  11894         ) = 0;
  11895 
  11896 };
  11897 #ifdef __CRT_UUID_DECL
  11898 __CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2)
  11899 #endif
  11900 #else
  11901 typedef struct IDWriteAsyncResultVtbl {
  11902     BEGIN_INTERFACE
  11903 
  11904     /*** IUnknown methods ***/
  11905     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11906         IDWriteAsyncResult *This,
  11907         REFIID riid,
  11908         void **ppvObject);
  11909 
  11910     ULONG (STDMETHODCALLTYPE *AddRef)(
  11911         IDWriteAsyncResult *This);
  11912 
  11913     ULONG (STDMETHODCALLTYPE *Release)(
  11914         IDWriteAsyncResult *This);
  11915 
  11916     /*** IDWriteAsyncResult methods ***/
  11917     HANDLE (STDMETHODCALLTYPE *GetWaitHandle)(
  11918         IDWriteAsyncResult *This);
  11919 
  11920     HRESULT (STDMETHODCALLTYPE *GetResult)(
  11921         IDWriteAsyncResult *This);
  11922 
  11923     END_INTERFACE
  11924 } IDWriteAsyncResultVtbl;
  11925 
  11926 interface IDWriteAsyncResult {
  11927     CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl;
  11928 };
  11929 
  11930 #ifdef COBJMACROS
  11931 #ifndef WIDL_C_INLINE_WRAPPERS
  11932 /*** IUnknown methods ***/
  11933 #define IDWriteAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11934 #define IDWriteAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This)
  11935 #define IDWriteAsyncResult_Release(This) (This)->lpVtbl->Release(This)
  11936 /*** IDWriteAsyncResult methods ***/
  11937 #define IDWriteAsyncResult_GetWaitHandle(This) (This)->lpVtbl->GetWaitHandle(This)
  11938 #define IDWriteAsyncResult_GetResult(This) (This)->lpVtbl->GetResult(This)
  11939 #else
  11940 /*** IUnknown methods ***/
  11941 static inline HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This,REFIID riid,void **ppvObject) {
  11942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11943 }
  11944 static inline ULONG IDWriteAsyncResult_AddRef(IDWriteAsyncResult* This) {
  11945     return This->lpVtbl->AddRef(This);
  11946 }
  11947 static inline ULONG IDWriteAsyncResult_Release(IDWriteAsyncResult* This) {
  11948     return This->lpVtbl->Release(This);
  11949 }
  11950 /*** IDWriteAsyncResult methods ***/
  11951 static inline HANDLE IDWriteAsyncResult_GetWaitHandle(IDWriteAsyncResult* This) {
  11952     return This->lpVtbl->GetWaitHandle(This);
  11953 }
  11954 static inline HRESULT IDWriteAsyncResult_GetResult(IDWriteAsyncResult* This) {
  11955     return This->lpVtbl->GetResult(This);
  11956 }
  11957 #endif
  11958 #endif
  11959 
  11960 #endif
  11961 
  11962 
  11963 #endif  /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */
  11964 
  11965 typedef struct DWRITE_FILE_FRAGMENT {
  11966     UINT64 fileOffset;
  11967     UINT64 fragmentSize;
  11968 } DWRITE_FILE_FRAGMENT;
  11969 /*****************************************************************************
  11970  * IDWriteRemoteFontFileStream interface
  11971  */
  11972 #ifndef __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__
  11973 #define __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__
  11974 
  11975 DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c);
  11976 #if defined(__cplusplus) && !defined(CINTERFACE)
  11977 MIDL_INTERFACE("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c")
  11978 IDWriteRemoteFontFileStream : public IDWriteFontFileStream
  11979 {
  11980     virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize(
  11981         UINT64 *size) = 0;
  11982 
  11983     virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality(
  11984         UINT64 offset,
  11985         UINT64 size,
  11986         WINBOOL *is_local,
  11987         UINT64 *partial_size) = 0;
  11988 
  11989     virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
  11990         ) = 0;
  11991 
  11992     virtual HRESULT STDMETHODCALLTYPE BeginDownload(
  11993         const GUID *operation_id,
  11994         const DWRITE_FILE_FRAGMENT *fragments,
  11995         UINT32 fragment_count,
  11996         IDWriteAsyncResult **async_result) = 0;
  11997 
  11998 };
  11999 #ifdef __CRT_UUID_DECL
  12000 __CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c)
  12001 #endif
  12002 #else
  12003 typedef struct IDWriteRemoteFontFileStreamVtbl {
  12004     BEGIN_INTERFACE
  12005 
  12006     /*** IUnknown methods ***/
  12007     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12008         IDWriteRemoteFontFileStream *This,
  12009         REFIID riid,
  12010         void **ppvObject);
  12011 
  12012     ULONG (STDMETHODCALLTYPE *AddRef)(
  12013         IDWriteRemoteFontFileStream *This);
  12014 
  12015     ULONG (STDMETHODCALLTYPE *Release)(
  12016         IDWriteRemoteFontFileStream *This);
  12017 
  12018     /*** IDWriteFontFileStream methods ***/
  12019     HRESULT (STDMETHODCALLTYPE *ReadFileFragment)(
  12020         IDWriteRemoteFontFileStream *This,
  12021         const void **fragment_start,
  12022         UINT64 offset,
  12023         UINT64 fragment_size,
  12024         void **fragment_context);
  12025 
  12026     void (STDMETHODCALLTYPE *ReleaseFileFragment)(
  12027         IDWriteRemoteFontFileStream *This,
  12028         void *fragment_context);
  12029 
  12030     HRESULT (STDMETHODCALLTYPE *GetFileSize)(
  12031         IDWriteRemoteFontFileStream *This,
  12032         UINT64 *size);
  12033 
  12034     HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)(
  12035         IDWriteRemoteFontFileStream *This,
  12036         UINT64 *last_writetime);
  12037 
  12038     /*** IDWriteRemoteFontFileStream methods ***/
  12039     HRESULT (STDMETHODCALLTYPE *GetLocalFileSize)(
  12040         IDWriteRemoteFontFileStream *This,
  12041         UINT64 *size);
  12042 
  12043     HRESULT (STDMETHODCALLTYPE *GetFileFragmentLocality)(
  12044         IDWriteRemoteFontFileStream *This,
  12045         UINT64 offset,
  12046         UINT64 size,
  12047         WINBOOL *is_local,
  12048         UINT64 *partial_size);
  12049 
  12050     DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
  12051         IDWriteRemoteFontFileStream *This);
  12052 
  12053     HRESULT (STDMETHODCALLTYPE *BeginDownload)(
  12054         IDWriteRemoteFontFileStream *This,
  12055         const GUID *operation_id,
  12056         const DWRITE_FILE_FRAGMENT *fragments,
  12057         UINT32 fragment_count,
  12058         IDWriteAsyncResult **async_result);
  12059 
  12060     END_INTERFACE
  12061 } IDWriteRemoteFontFileStreamVtbl;
  12062 
  12063 interface IDWriteRemoteFontFileStream {
  12064     CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl;
  12065 };
  12066 
  12067 #ifdef COBJMACROS
  12068 #ifndef WIDL_C_INLINE_WRAPPERS
  12069 /*** IUnknown methods ***/
  12070 #define IDWriteRemoteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12071 #define IDWriteRemoteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  12072 #define IDWriteRemoteFontFileStream_Release(This) (This)->lpVtbl->Release(This)
  12073 /*** IDWriteFontFileStream methods ***/
  12074 #define IDWriteRemoteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context)
  12075 #define IDWriteRemoteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context)
  12076 #define IDWriteRemoteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size)
  12077 #define IDWriteRemoteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime)
  12078 /*** IDWriteRemoteFontFileStream methods ***/
  12079 #define IDWriteRemoteFontFileStream_GetLocalFileSize(This,size) (This)->lpVtbl->GetLocalFileSize(This,size)
  12080 #define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This,offset,size,is_local,partial_size) (This)->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size)
  12081 #define IDWriteRemoteFontFileStream_GetLocality(This) (This)->lpVtbl->GetLocality(This)
  12082 #define IDWriteRemoteFontFileStream_BeginDownload(This,operation_id,fragments,fragment_count,async_result) (This)->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result)
  12083 #else
  12084 /*** IUnknown methods ***/
  12085 static inline HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This,REFIID riid,void **ppvObject) {
  12086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12087 }
  12088 static inline ULONG IDWriteRemoteFontFileStream_AddRef(IDWriteRemoteFontFileStream* This) {
  12089     return This->lpVtbl->AddRef(This);
  12090 }
  12091 static inline ULONG IDWriteRemoteFontFileStream_Release(IDWriteRemoteFontFileStream* This) {
  12092     return This->lpVtbl->Release(This);
  12093 }
  12094 /*** IDWriteFontFileStream methods ***/
  12095 static inline HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) {
  12096     return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context);
  12097 }
  12098 static inline void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This,void *fragment_context) {
  12099     This->lpVtbl->ReleaseFileFragment(This,fragment_context);
  12100 }
  12101 static inline HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) {
  12102     return This->lpVtbl->GetFileSize(This,size);
  12103 }
  12104 static inline HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This,UINT64 *last_writetime) {
  12105     return This->lpVtbl->GetLastWriteTime(This,last_writetime);
  12106 }
  12107 /*** IDWriteRemoteFontFileStream methods ***/
  12108 static inline HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) {
  12109     return This->lpVtbl->GetLocalFileSize(This,size);
  12110 }
  12111 static inline HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This,UINT64 offset,UINT64 size,WINBOOL *is_local,UINT64 *partial_size) {
  12112     return This->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size);
  12113 }
  12114 static inline DWRITE_LOCALITY IDWriteRemoteFontFileStream_GetLocality(IDWriteRemoteFontFileStream* This) {
  12115     return This->lpVtbl->GetLocality(This);
  12116 }
  12117 static inline HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This,const GUID *operation_id,const DWRITE_FILE_FRAGMENT *fragments,UINT32 fragment_count,IDWriteAsyncResult **async_result) {
  12118     return This->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result);
  12119 }
  12120 #endif
  12121 #endif
  12122 
  12123 #endif
  12124 
  12125 
  12126 #endif  /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */
  12127 
  12128 typedef enum DWRITE_CONTAINER_TYPE {
  12129     DWRITE_CONTAINER_TYPE_UNKNOWN = 0,
  12130     DWRITE_CONTAINER_TYPE_WOFF = 1,
  12131     DWRITE_CONTAINER_TYPE_WOFF2 = 2
  12132 } DWRITE_CONTAINER_TYPE;
  12133 /*****************************************************************************
  12134  * IDWriteRemoteFontFileLoader interface
  12135  */
  12136 #ifndef __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__
  12137 #define __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__
  12138 
  12139 DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde);
  12140 #if defined(__cplusplus) && !defined(CINTERFACE)
  12141 MIDL_INTERFACE("68648c83-6ede-46c0-ab46-20083a887fde")
  12142 IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader
  12143 {
  12144     virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey(
  12145         const void *key,
  12146         UINT32 key_size,
  12147         IDWriteRemoteFontFileStream **stream) = 0;
  12148 
  12149     virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey(
  12150         const void *key,
  12151         UINT32 key_size,
  12152         DWRITE_LOCALITY *locality) = 0;
  12153 
  12154     virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl(
  12155         IDWriteFactory *factory,
  12156         const WCHAR *base_url,
  12157         const WCHAR *file_url,
  12158         IDWriteFontFile **fontfile) = 0;
  12159 
  12160 };
  12161 #ifdef __CRT_UUID_DECL
  12162 __CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde)
  12163 #endif
  12164 #else
  12165 typedef struct IDWriteRemoteFontFileLoaderVtbl {
  12166     BEGIN_INTERFACE
  12167 
  12168     /*** IUnknown methods ***/
  12169     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12170         IDWriteRemoteFontFileLoader *This,
  12171         REFIID riid,
  12172         void **ppvObject);
  12173 
  12174     ULONG (STDMETHODCALLTYPE *AddRef)(
  12175         IDWriteRemoteFontFileLoader *This);
  12176 
  12177     ULONG (STDMETHODCALLTYPE *Release)(
  12178         IDWriteRemoteFontFileLoader *This);
  12179 
  12180     /*** IDWriteFontFileLoader methods ***/
  12181     HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
  12182         IDWriteRemoteFontFileLoader *This,
  12183         const void *key,
  12184         UINT32 key_size,
  12185         IDWriteFontFileStream **stream);
  12186 
  12187     /*** IDWriteRemoteFontFileLoader methods ***/
  12188     HRESULT (STDMETHODCALLTYPE *CreateRemoteStreamFromKey)(
  12189         IDWriteRemoteFontFileLoader *This,
  12190         const void *key,
  12191         UINT32 key_size,
  12192         IDWriteRemoteFontFileStream **stream);
  12193 
  12194     HRESULT (STDMETHODCALLTYPE *GetLocalityFromKey)(
  12195         IDWriteRemoteFontFileLoader *This,
  12196         const void *key,
  12197         UINT32 key_size,
  12198         DWRITE_LOCALITY *locality);
  12199 
  12200     HRESULT (STDMETHODCALLTYPE *CreateFontFileReferenceFromUrl)(
  12201         IDWriteRemoteFontFileLoader *This,
  12202         IDWriteFactory *factory,
  12203         const WCHAR *base_url,
  12204         const WCHAR *file_url,
  12205         IDWriteFontFile **fontfile);
  12206 
  12207     END_INTERFACE
  12208 } IDWriteRemoteFontFileLoaderVtbl;
  12209 
  12210 interface IDWriteRemoteFontFileLoader {
  12211     CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl;
  12212 };
  12213 
  12214 #ifdef COBJMACROS
  12215 #ifndef WIDL_C_INLINE_WRAPPERS
  12216 /*** IUnknown methods ***/
  12217 #define IDWriteRemoteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12218 #define IDWriteRemoteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
  12219 #define IDWriteRemoteFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
  12220 /*** IDWriteFontFileLoader methods ***/
  12221 #define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
  12222 /*** IDWriteRemoteFontFileLoader methods ***/
  12223 #define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream)
  12224 #define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This,key,key_size,locality) (This)->lpVtbl->GetLocalityFromKey(This,key,key_size,locality)
  12225 #define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile)
  12226 #else
  12227 /*** IUnknown methods ***/
  12228 static inline HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This,REFIID riid,void **ppvObject) {
  12229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12230 }
  12231 static inline ULONG IDWriteRemoteFontFileLoader_AddRef(IDWriteRemoteFontFileLoader* This) {
  12232     return This->lpVtbl->AddRef(This);
  12233 }
  12234 static inline ULONG IDWriteRemoteFontFileLoader_Release(IDWriteRemoteFontFileLoader* This) {
  12235     return This->lpVtbl->Release(This);
  12236 }
  12237 /*** IDWriteFontFileLoader methods ***/
  12238 static inline HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
  12239     return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
  12240 }
  12241 /*** IDWriteRemoteFontFileLoader methods ***/
  12242 static inline HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteRemoteFontFileStream **stream) {
  12243     return This->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream);
  12244 }
  12245 static inline HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,DWRITE_LOCALITY *locality) {
  12246     return This->lpVtbl->GetLocalityFromKey(This,key,key_size,locality);
  12247 }
  12248 static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This,IDWriteFactory *factory,const WCHAR *base_url,const WCHAR *file_url,IDWriteFontFile **fontfile) {
  12249     return This->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile);
  12250 }
  12251 #endif
  12252 #endif
  12253 
  12254 #endif
  12255 
  12256 
  12257 #endif  /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */
  12258 
  12259 /*****************************************************************************
  12260  * IDWriteInMemoryFontFileLoader interface
  12261  */
  12262 #ifndef __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__
  12263 #define __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__
  12264 
  12265 DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f);
  12266 #if defined(__cplusplus) && !defined(CINTERFACE)
  12267 MIDL_INTERFACE("dc102f47-a12d-4b1c-822d-9e117e33043f")
  12268 IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader
  12269 {
  12270     virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference(
  12271         IDWriteFactory *factory,
  12272         const void *data,
  12273         UINT32 data_size,
  12274         IUnknown *owner,
  12275         IDWriteFontFile **fontfile) = 0;
  12276 
  12277     virtual UINT32 STDMETHODCALLTYPE GetFileCount(
  12278         ) = 0;
  12279 
  12280 };
  12281 #ifdef __CRT_UUID_DECL
  12282 __CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f)
  12283 #endif
  12284 #else
  12285 typedef struct IDWriteInMemoryFontFileLoaderVtbl {
  12286     BEGIN_INTERFACE
  12287 
  12288     /*** IUnknown methods ***/
  12289     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12290         IDWriteInMemoryFontFileLoader *This,
  12291         REFIID riid,
  12292         void **ppvObject);
  12293 
  12294     ULONG (STDMETHODCALLTYPE *AddRef)(
  12295         IDWriteInMemoryFontFileLoader *This);
  12296 
  12297     ULONG (STDMETHODCALLTYPE *Release)(
  12298         IDWriteInMemoryFontFileLoader *This);
  12299 
  12300     /*** IDWriteFontFileLoader methods ***/
  12301     HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
  12302         IDWriteInMemoryFontFileLoader *This,
  12303         const void *key,
  12304         UINT32 key_size,
  12305         IDWriteFontFileStream **stream);
  12306 
  12307     /*** IDWriteInMemoryFontFileLoader methods ***/
  12308     HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileReference)(
  12309         IDWriteInMemoryFontFileLoader *This,
  12310         IDWriteFactory *factory,
  12311         const void *data,
  12312         UINT32 data_size,
  12313         IUnknown *owner,
  12314         IDWriteFontFile **fontfile);
  12315 
  12316     UINT32 (STDMETHODCALLTYPE *GetFileCount)(
  12317         IDWriteInMemoryFontFileLoader *This);
  12318 
  12319     END_INTERFACE
  12320 } IDWriteInMemoryFontFileLoaderVtbl;
  12321 
  12322 interface IDWriteInMemoryFontFileLoader {
  12323     CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl;
  12324 };
  12325 
  12326 #ifdef COBJMACROS
  12327 #ifndef WIDL_C_INLINE_WRAPPERS
  12328 /*** IUnknown methods ***/
  12329 #define IDWriteInMemoryFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12330 #define IDWriteInMemoryFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
  12331 #define IDWriteInMemoryFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
  12332 /*** IDWriteFontFileLoader methods ***/
  12333 #define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
  12334 /*** IDWriteInMemoryFontFileLoader methods ***/
  12335 #define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile)
  12336 #define IDWriteInMemoryFontFileLoader_GetFileCount(This) (This)->lpVtbl->GetFileCount(This)
  12337 #else
  12338 /*** IUnknown methods ***/
  12339 static inline HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This,REFIID riid,void **ppvObject) {
  12340     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12341 }
  12342 static inline ULONG IDWriteInMemoryFontFileLoader_AddRef(IDWriteInMemoryFontFileLoader* This) {
  12343     return This->lpVtbl->AddRef(This);
  12344 }
  12345 static inline ULONG IDWriteInMemoryFontFileLoader_Release(IDWriteInMemoryFontFileLoader* This) {
  12346     return This->lpVtbl->Release(This);
  12347 }
  12348 /*** IDWriteFontFileLoader methods ***/
  12349 static inline HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
  12350     return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
  12351 }
  12352 /*** IDWriteInMemoryFontFileLoader methods ***/
  12353 static inline HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This,IDWriteFactory *factory,const void *data,UINT32 data_size,IUnknown *owner,IDWriteFontFile **fontfile) {
  12354     return This->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile);
  12355 }
  12356 static inline UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryFontFileLoader* This) {
  12357     return This->lpVtbl->GetFileCount(This);
  12358 }
  12359 #endif
  12360 #endif
  12361 
  12362 #endif
  12363 
  12364 
  12365 #endif  /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */
  12366 
  12367 /*****************************************************************************
  12368  * IDWriteFactory5 interface
  12369  */
  12370 #ifndef __IDWriteFactory5_INTERFACE_DEFINED__
  12371 #define __IDWriteFactory5_INTERFACE_DEFINED__
  12372 
  12373 DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3);
  12374 #if defined(__cplusplus) && !defined(CINTERFACE)
  12375 MIDL_INTERFACE("958db99a-be2a-4f09-af7d-65189803d1d3")
  12376 IDWriteFactory5 : public IDWriteFactory4
  12377 {
  12378     virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
  12379         IDWriteFontSetBuilder1 **fontset_builder) = 0;
  12380 
  12381     virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader(
  12382         IDWriteInMemoryFontFileLoader **loader) = 0;
  12383 
  12384     virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader(
  12385         const WCHAR *referrer_url,
  12386         const WCHAR *extra_headers,
  12387         IDWriteRemoteFontFileLoader **loader) = 0;
  12388 
  12389     virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType(
  12390         const void *data,
  12391         UINT32 data_size) = 0;
  12392 
  12393     virtual HRESULT STDMETHODCALLTYPE UnpackFontFile(
  12394         DWRITE_CONTAINER_TYPE container_type,
  12395         const void *data,
  12396         UINT32 data_size,
  12397         IDWriteFontFileStream **stream) = 0;
  12398 
  12399 };
  12400 #ifdef __CRT_UUID_DECL
  12401 __CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3)
  12402 #endif
  12403 #else
  12404 typedef struct IDWriteFactory5Vtbl {
  12405     BEGIN_INTERFACE
  12406 
  12407     /*** IUnknown methods ***/
  12408     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12409         IDWriteFactory5 *This,
  12410         REFIID riid,
  12411         void **ppvObject);
  12412 
  12413     ULONG (STDMETHODCALLTYPE *AddRef)(
  12414         IDWriteFactory5 *This);
  12415 
  12416     ULONG (STDMETHODCALLTYPE *Release)(
  12417         IDWriteFactory5 *This);
  12418 
  12419     /*** IDWriteFactory methods ***/
  12420     HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  12421         IDWriteFactory5 *This,
  12422         IDWriteFontCollection **collection,
  12423         WINBOOL check_for_updates);
  12424 
  12425     HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  12426         IDWriteFactory5 *This,
  12427         IDWriteFontCollectionLoader *loader,
  12428         const void *key,
  12429         UINT32 key_size,
  12430         IDWriteFontCollection **collection);
  12431 
  12432     HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  12433         IDWriteFactory5 *This,
  12434         IDWriteFontCollectionLoader *loader);
  12435 
  12436     HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  12437         IDWriteFactory5 *This,
  12438         IDWriteFontCollectionLoader *loader);
  12439 
  12440     HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  12441         IDWriteFactory5 *This,
  12442         const WCHAR *path,
  12443         const FILETIME *writetime,
  12444         IDWriteFontFile **font_file);
  12445 
  12446     HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  12447         IDWriteFactory5 *This,
  12448         const void *reference_key,
  12449         UINT32 key_size,
  12450         IDWriteFontFileLoader *loader,
  12451         IDWriteFontFile **font_file);
  12452 
  12453     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  12454         IDWriteFactory5 *This,
  12455         DWRITE_FONT_FACE_TYPE facetype,
  12456         UINT32 files_number,
  12457         IDWriteFontFile *const *font_files,
  12458         UINT32 index,
  12459         DWRITE_FONT_SIMULATIONS sim_flags,
  12460         IDWriteFontFace **font_face);
  12461 
  12462     HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  12463         IDWriteFactory5 *This,
  12464         IDWriteRenderingParams **params);
  12465 
  12466     HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  12467         IDWriteFactory5 *This,
  12468         HMONITOR monitor,
  12469         IDWriteRenderingParams **params);
  12470 
  12471     HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  12472         IDWriteFactory5 *This,
  12473         FLOAT gamma,
  12474         FLOAT enhancedContrast,
  12475         FLOAT cleartype_level,
  12476         DWRITE_PIXEL_GEOMETRY geometry,
  12477         DWRITE_RENDERING_MODE mode,
  12478         IDWriteRenderingParams **params);
  12479 
  12480     HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  12481         IDWriteFactory5 *This,
  12482         IDWriteFontFileLoader *loader);
  12483 
  12484     HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  12485         IDWriteFactory5 *This,
  12486         IDWriteFontFileLoader *loader);
  12487 
  12488     HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  12489         IDWriteFactory5 *This,
  12490         const WCHAR *family_name,
  12491         IDWriteFontCollection *collection,
  12492         DWRITE_FONT_WEIGHT weight,
  12493         DWRITE_FONT_STYLE style,
  12494         DWRITE_FONT_STRETCH stretch,
  12495         FLOAT size,
  12496         const WCHAR *locale,
  12497         IDWriteTextFormat **format);
  12498 
  12499     HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  12500         IDWriteFactory5 *This,
  12501         IDWriteTypography **typography);
  12502 
  12503     HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  12504         IDWriteFactory5 *This,
  12505         IDWriteGdiInterop **gdi_interop);
  12506 
  12507     HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  12508         IDWriteFactory5 *This,
  12509         const WCHAR *string,
  12510         UINT32 len,
  12511         IDWriteTextFormat *format,
  12512         FLOAT max_width,
  12513         FLOAT max_height,
  12514         IDWriteTextLayout **layout);
  12515 
  12516     HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  12517         IDWriteFactory5 *This,
  12518         const WCHAR *string,
  12519         UINT32 len,
  12520         IDWriteTextFormat *format,
  12521         FLOAT layout_width,
  12522         FLOAT layout_height,
  12523         FLOAT pixels_per_dip,
  12524         const DWRITE_MATRIX *transform,
  12525         WINBOOL use_gdi_natural,
  12526         IDWriteTextLayout **layout);
  12527 
  12528     HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  12529         IDWriteFactory5 *This,
  12530         IDWriteTextFormat *format,
  12531         IDWriteInlineObject **trimming_sign);
  12532 
  12533     HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  12534         IDWriteFactory5 *This,
  12535         IDWriteTextAnalyzer **analyzer);
  12536 
  12537     HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  12538         IDWriteFactory5 *This,
  12539         DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  12540         const WCHAR *locale,
  12541         WINBOOL ignore_user_override,
  12542         IDWriteNumberSubstitution **substitution);
  12543 
  12544     HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  12545         IDWriteFactory5 *This,
  12546         const DWRITE_GLYPH_RUN *glyph_run,
  12547         FLOAT pixels_per_dip,
  12548         const DWRITE_MATRIX *transform,
  12549         DWRITE_RENDERING_MODE rendering_mode,
  12550         DWRITE_MEASURING_MODE measuring_mode,
  12551         FLOAT baseline_x,
  12552         FLOAT baseline_y,
  12553         IDWriteGlyphRunAnalysis **analysis);
  12554 
  12555     /*** IDWriteFactory1 methods ***/
  12556     HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  12557         IDWriteFactory5 *This,
  12558         IDWriteFontCollection **collection,
  12559         WINBOOL check_for_updates);
  12560 
  12561     HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  12562         IDWriteFactory5 *This,
  12563         FLOAT gamma,
  12564         FLOAT enhcontrast,
  12565         FLOAT enhcontrast_grayscale,
  12566         FLOAT cleartype_level,
  12567         DWRITE_PIXEL_GEOMETRY geometry,
  12568         DWRITE_RENDERING_MODE mode,
  12569         IDWriteRenderingParams1 **params);
  12570 
  12571     /*** IDWriteFactory2 methods ***/
  12572     HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  12573         IDWriteFactory5 *This,
  12574         IDWriteFontFallback **fallback);
  12575 
  12576     HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  12577         IDWriteFactory5 *This,
  12578         IDWriteFontFallbackBuilder **fallbackbuilder);
  12579 
  12580     HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  12581         IDWriteFactory5 *This,
  12582         FLOAT originX,
  12583         FLOAT originY,
  12584         const DWRITE_GLYPH_RUN *run,
  12585         const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  12586         DWRITE_MEASURING_MODE mode,
  12587         const DWRITE_MATRIX *transform,
  12588         UINT32 palette_index,
  12589         IDWriteColorGlyphRunEnumerator **colorlayers);
  12590 
  12591     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  12592         IDWriteFactory5 *This,
  12593         FLOAT gamma,
  12594         FLOAT contrast,
  12595         FLOAT grayscalecontrast,
  12596         FLOAT cleartypeLevel,
  12597         DWRITE_PIXEL_GEOMETRY pixelGeometry,
  12598         DWRITE_RENDERING_MODE renderingMode,
  12599         DWRITE_GRID_FIT_MODE gridFitMode,
  12600         IDWriteRenderingParams2 **params);
  12601 
  12602     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  12603         IDWriteFactory5 *This,
  12604         const DWRITE_GLYPH_RUN *run,
  12605         const DWRITE_MATRIX *transform,
  12606         DWRITE_RENDERING_MODE renderingMode,
  12607         DWRITE_MEASURING_MODE measuringMode,
  12608         DWRITE_GRID_FIT_MODE gridFitMode,
  12609         DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  12610         FLOAT originX,
  12611         FLOAT originY,
  12612         IDWriteGlyphRunAnalysis **analysis);
  12613 
  12614     /*** IDWriteFactory3 methods ***/
  12615     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  12616         IDWriteFactory5 *This,
  12617         const DWRITE_GLYPH_RUN *run,
  12618         const DWRITE_MATRIX *transform,
  12619         DWRITE_RENDERING_MODE1 rendering_mode,
  12620         DWRITE_MEASURING_MODE measuring_mode,
  12621         DWRITE_GRID_FIT_MODE gridfit_mode,
  12622         DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  12623         FLOAT origin_x,
  12624         FLOAT origin_y,
  12625         IDWriteGlyphRunAnalysis **analysis);
  12626 
  12627     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  12628         IDWriteFactory5 *This,
  12629         FLOAT gamma,
  12630         FLOAT enhanced_contrast,
  12631         FLOAT grayscale_enhanced_contrast,
  12632         FLOAT cleartype_level,
  12633         DWRITE_PIXEL_GEOMETRY pixel_geometry,
  12634         DWRITE_RENDERING_MODE1 rendering_mode,
  12635         DWRITE_GRID_FIT_MODE gridfit_mode,
  12636         IDWriteRenderingParams3 **params);
  12637 
  12638     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  12639         IDWriteFactory5 *This,
  12640         IDWriteFontFile *file,
  12641         UINT32 index,
  12642         DWRITE_FONT_SIMULATIONS simulations,
  12643         IDWriteFontFaceReference **reference);
  12644 
  12645     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  12646         IDWriteFactory5 *This,
  12647         const WCHAR *path,
  12648         const FILETIME *writetime,
  12649         UINT32 index,
  12650         DWRITE_FONT_SIMULATIONS simulations,
  12651         IDWriteFontFaceReference **reference);
  12652 
  12653     HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  12654         IDWriteFactory5 *This,
  12655         IDWriteFontSet **fontset);
  12656 
  12657     HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  12658         IDWriteFactory5 *This,
  12659         IDWriteFontSetBuilder **builder);
  12660 
  12661     HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  12662         IDWriteFactory5 *This,
  12663         IDWriteFontSet *fontset,
  12664         IDWriteFontCollection1 **collection);
  12665 
  12666     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  12667         IDWriteFactory5 *This,
  12668         WINBOOL include_downloadable,
  12669         IDWriteFontCollection1 **collection,
  12670         WINBOOL check_for_updates);
  12671 
  12672     HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  12673         IDWriteFactory5 *This,
  12674         IDWriteFontDownloadQueue **queue);
  12675 
  12676     /*** IDWriteFactory4 methods ***/
  12677     HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  12678         IDWriteFactory5 *This,
  12679         D2D1_POINT_2F baseline_origin,
  12680         const DWRITE_GLYPH_RUN *run,
  12681         const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  12682         DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  12683         DWRITE_MEASURING_MODE measuring_mode,
  12684         const DWRITE_MATRIX *transform,
  12685         UINT32 palette,
  12686         IDWriteColorGlyphRunEnumerator1 **layers);
  12687 
  12688     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  12689         IDWriteFactory5 *This,
  12690         const DWRITE_GLYPH_RUN *run,
  12691         D2D1_POINT_2F baseline_origin,
  12692         D2D1_POINT_2F *origins);
  12693 
  12694     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  12695         IDWriteFactory5 *This,
  12696         const DWRITE_GLYPH_RUN *run,
  12697         DWRITE_MEASURING_MODE measuring_mode,
  12698         D2D1_POINT_2F baseline_origin,
  12699         const DWRITE_MATRIX *transform,
  12700         D2D1_POINT_2F *origins);
  12701 
  12702     /*** IDWriteFactory5 methods ***/
  12703     HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
  12704         IDWriteFactory5 *This,
  12705         IDWriteFontSetBuilder1 **fontset_builder);
  12706 
  12707     HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
  12708         IDWriteFactory5 *This,
  12709         IDWriteInMemoryFontFileLoader **loader);
  12710 
  12711     HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
  12712         IDWriteFactory5 *This,
  12713         const WCHAR *referrer_url,
  12714         const WCHAR *extra_headers,
  12715         IDWriteRemoteFontFileLoader **loader);
  12716 
  12717     DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
  12718         IDWriteFactory5 *This,
  12719         const void *data,
  12720         UINT32 data_size);
  12721 
  12722     HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
  12723         IDWriteFactory5 *This,
  12724         DWRITE_CONTAINER_TYPE container_type,
  12725         const void *data,
  12726         UINT32 data_size,
  12727         IDWriteFontFileStream **stream);
  12728 
  12729     END_INTERFACE
  12730 } IDWriteFactory5Vtbl;
  12731 
  12732 interface IDWriteFactory5 {
  12733     CONST_VTBL IDWriteFactory5Vtbl* lpVtbl;
  12734 };
  12735 
  12736 #ifdef COBJMACROS
  12737 #ifndef WIDL_C_INLINE_WRAPPERS
  12738 /*** IUnknown methods ***/
  12739 #define IDWriteFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12740 #define IDWriteFactory5_AddRef(This) (This)->lpVtbl->AddRef(This)
  12741 #define IDWriteFactory5_Release(This) (This)->lpVtbl->Release(This)
  12742 /*** IDWriteFactory methods ***/
  12743 #define IDWriteFactory5_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  12744 #define IDWriteFactory5_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  12745 #define IDWriteFactory5_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  12746 #define IDWriteFactory5_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  12747 #define IDWriteFactory5_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  12748 #define IDWriteFactory5_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
  12749 #define IDWriteFactory5_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  12750 #define IDWriteFactory5_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  12751 #define IDWriteFactory5_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  12752 #define IDWriteFactory5_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  12753 #define IDWriteFactory5_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
  12754 #define IDWriteFactory5_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  12755 #define IDWriteFactory5_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  12756 #define IDWriteFactory5_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  12757 #define IDWriteFactory5_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
  12758 #define IDWriteFactory5_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  12759 #define IDWriteFactory5_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  12760 #define IDWriteFactory5_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  12761 /*** IDWriteFactory1 methods ***/
  12762 #define IDWriteFactory5_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  12763 /*** IDWriteFactory2 methods ***/
  12764 #define IDWriteFactory5_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  12765 #define IDWriteFactory5_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  12766 /*** IDWriteFactory3 methods ***/
  12767 #define IDWriteFactory5_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  12768 #define IDWriteFactory5_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  12769 #define IDWriteFactory5_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  12770 #define IDWriteFactory5_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
  12771 #define IDWriteFactory5_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
  12772 #define IDWriteFactory5_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
  12773 #define IDWriteFactory5_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
  12774 #define IDWriteFactory5_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  12775 /*** IDWriteFactory4 methods ***/
  12776 #define IDWriteFactory5_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
  12777 #define IDWriteFactory5_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  12778 #define IDWriteFactory5_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  12779 /*** IDWriteFactory5 methods ***/
  12780 #define IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder)
  12781 #define IDWriteFactory5_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
  12782 #define IDWriteFactory5_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
  12783 #define IDWriteFactory5_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
  12784 #define IDWriteFactory5_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
  12785 #else
  12786 /*** IUnknown methods ***/
  12787 static inline HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This,REFIID riid,void **ppvObject) {
  12788     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12789 }
  12790 static inline ULONG IDWriteFactory5_AddRef(IDWriteFactory5* This) {
  12791     return This->lpVtbl->AddRef(This);
  12792 }
  12793 static inline ULONG IDWriteFactory5_Release(IDWriteFactory5* This) {
  12794     return This->lpVtbl->Release(This);
  12795 }
  12796 /*** IDWriteFactory methods ***/
  12797 static inline HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  12798     return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  12799 }
  12800 static inline HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) {
  12801     return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  12802 }
  12803 static inline HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) {
  12804     return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  12805 }
  12806 static inline HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  12807     return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  12808 }
  12809 static inline HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  12810     return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  12811 }
  12812 static inline HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  12813     return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  12814 }
  12815 static inline HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This,IDWriteRenderingParams **params) {
  12816     return This->lpVtbl->CreateRenderingParams(This,params);
  12817 }
  12818 static inline HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  12819     return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  12820 }
  12821 static inline HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) {
  12822     return This->lpVtbl->RegisterFontFileLoader(This,loader);
  12823 }
  12824 static inline HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) {
  12825     return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  12826 }
  12827 static inline HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
  12828     return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
  12829 }
  12830 static inline HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This,IDWriteTypography **typography) {
  12831     return This->lpVtbl->CreateTypography(This,typography);
  12832 }
  12833 static inline HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This,IDWriteGdiInterop **gdi_interop) {
  12834     return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  12835 }
  12836 static inline HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  12837     return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  12838 }
  12839 static inline HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
  12840     return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  12841 }
  12842 static inline HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  12843     return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  12844 }
  12845 static inline HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This,IDWriteTextAnalyzer **analyzer) {
  12846     return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  12847 }
  12848 static inline HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  12849     return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  12850 }
  12851 /*** IDWriteFactory1 methods ***/
  12852 static inline HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  12853     return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  12854 }
  12855 /*** IDWriteFactory2 methods ***/
  12856 static inline HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This,IDWriteFontFallback **fallback) {
  12857     return This->lpVtbl->GetSystemFontFallback(This,fallback);
  12858 }
  12859 static inline HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  12860     return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  12861 }
  12862 /*** IDWriteFactory3 methods ***/
  12863 static inline HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  12864     return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  12865 }
  12866 static inline HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  12867     return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  12868 }
  12869 static inline HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  12870     return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  12871 }
  12872 static inline HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  12873     return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
  12874 }
  12875 static inline HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This,IDWriteFontSet **fontset) {
  12876     return This->lpVtbl->GetSystemFontSet(This,fontset);
  12877 }
  12878 static inline HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
  12879     return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
  12880 }
  12881 static inline HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
  12882     return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
  12883 }
  12884 static inline HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This,IDWriteFontDownloadQueue **queue) {
  12885     return This->lpVtbl->GetFontDownloadQueue(This,queue);
  12886 }
  12887 /*** IDWriteFactory4 methods ***/
  12888 static inline HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
  12889     return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
  12890 }
  12891 static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  12892     return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  12893 }
  12894 static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  12895     return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  12896 }
  12897 /*** IDWriteFactory5 methods ***/
  12898 static inline HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This,IDWriteFontSetBuilder1 **fontset_builder) {
  12899     return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder);
  12900 }
  12901 static inline HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This,IDWriteInMemoryFontFileLoader **loader) {
  12902     return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
  12903 }
  12904 static inline HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
  12905     return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
  12906 }
  12907 static inline DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This,const void *data,UINT32 data_size) {
  12908     return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
  12909 }
  12910 static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
  12911     return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
  12912 }
  12913 #endif
  12914 #endif
  12915 
  12916 #endif
  12917 
  12918 
  12919 #endif  /* __IDWriteFactory5_INTERFACE_DEFINED__ */
  12920 
  12921 /*****************************************************************************
  12922  * IDWriteFactory6 interface
  12923  */
  12924 #ifndef __IDWriteFactory6_INTERFACE_DEFINED__
  12925 #define __IDWriteFactory6_INTERFACE_DEFINED__
  12926 
  12927 DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23);
  12928 #if defined(__cplusplus) && !defined(CINTERFACE)
  12929 MIDL_INTERFACE("f3744d80-21f7-42eb-b35d-995bc72fc223")
  12930 IDWriteFactory6 : public IDWriteFactory5
  12931 {
  12932     virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
  12933         IDWriteFontFile *file,
  12934         UINT32 face_index,
  12935         DWRITE_FONT_SIMULATIONS simulations,
  12936         const DWRITE_FONT_AXIS_VALUE *axis_values,
  12937         UINT32 num_axis,
  12938         IDWriteFontFaceReference1 **face_ref) = 0;
  12939 
  12940     virtual HRESULT STDMETHODCALLTYPE CreateFontResource(
  12941         IDWriteFontFile *file,
  12942         UINT32 face_index,
  12943         IDWriteFontResource **resource) = 0;
  12944 
  12945     virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
  12946         WINBOOL include_downloadable,
  12947         IDWriteFontSet1 **fontset) = 0;
  12948 
  12949     virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
  12950         WINBOOL include_downloadable,
  12951         DWRITE_FONT_FAMILY_MODEL family_model,
  12952         IDWriteFontCollection2 **collection) = 0;
  12953 
  12954     virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet(
  12955         IDWriteFontSet *fontset,
  12956         DWRITE_FONT_FAMILY_MODEL family_model,
  12957         IDWriteFontCollection2 **collection) = 0;
  12958 
  12959     virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
  12960         IDWriteFontSetBuilder2 **builder) = 0;
  12961 
  12962     virtual HRESULT STDMETHODCALLTYPE CreateTextFormat(
  12963         const WCHAR *familyname,
  12964         IDWriteFontCollection *collection,
  12965         const DWRITE_FONT_AXIS_VALUE *axis_values,
  12966         UINT32 num_axis,
  12967         FLOAT fontsize,
  12968         const WCHAR *localename,
  12969         IDWriteTextFormat3 **format) = 0;
  12970 
  12971 };
  12972 #ifdef __CRT_UUID_DECL
  12973 __CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23)
  12974 #endif
  12975 #else
  12976 typedef struct IDWriteFactory6Vtbl {
  12977     BEGIN_INTERFACE
  12978 
  12979     /*** IUnknown methods ***/
  12980     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12981         IDWriteFactory6 *This,
  12982         REFIID riid,
  12983         void **ppvObject);
  12984 
  12985     ULONG (STDMETHODCALLTYPE *AddRef)(
  12986         IDWriteFactory6 *This);
  12987 
  12988     ULONG (STDMETHODCALLTYPE *Release)(
  12989         IDWriteFactory6 *This);
  12990 
  12991     /*** IDWriteFactory methods ***/
  12992     HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  12993         IDWriteFactory6 *This,
  12994         IDWriteFontCollection **collection,
  12995         WINBOOL check_for_updates);
  12996 
  12997     HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  12998         IDWriteFactory6 *This,
  12999         IDWriteFontCollectionLoader *loader,
  13000         const void *key,
  13001         UINT32 key_size,
  13002         IDWriteFontCollection **collection);
  13003 
  13004     HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  13005         IDWriteFactory6 *This,
  13006         IDWriteFontCollectionLoader *loader);
  13007 
  13008     HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  13009         IDWriteFactory6 *This,
  13010         IDWriteFontCollectionLoader *loader);
  13011 
  13012     HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  13013         IDWriteFactory6 *This,
  13014         const WCHAR *path,
  13015         const FILETIME *writetime,
  13016         IDWriteFontFile **font_file);
  13017 
  13018     HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  13019         IDWriteFactory6 *This,
  13020         const void *reference_key,
  13021         UINT32 key_size,
  13022         IDWriteFontFileLoader *loader,
  13023         IDWriteFontFile **font_file);
  13024 
  13025     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  13026         IDWriteFactory6 *This,
  13027         DWRITE_FONT_FACE_TYPE facetype,
  13028         UINT32 files_number,
  13029         IDWriteFontFile *const *font_files,
  13030         UINT32 index,
  13031         DWRITE_FONT_SIMULATIONS sim_flags,
  13032         IDWriteFontFace **font_face);
  13033 
  13034     HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  13035         IDWriteFactory6 *This,
  13036         IDWriteRenderingParams **params);
  13037 
  13038     HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  13039         IDWriteFactory6 *This,
  13040         HMONITOR monitor,
  13041         IDWriteRenderingParams **params);
  13042 
  13043     HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  13044         IDWriteFactory6 *This,
  13045         FLOAT gamma,
  13046         FLOAT enhancedContrast,
  13047         FLOAT cleartype_level,
  13048         DWRITE_PIXEL_GEOMETRY geometry,
  13049         DWRITE_RENDERING_MODE mode,
  13050         IDWriteRenderingParams **params);
  13051 
  13052     HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  13053         IDWriteFactory6 *This,
  13054         IDWriteFontFileLoader *loader);
  13055 
  13056     HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  13057         IDWriteFactory6 *This,
  13058         IDWriteFontFileLoader *loader);
  13059 
  13060     HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  13061         IDWriteFactory6 *This,
  13062         const WCHAR *family_name,
  13063         IDWriteFontCollection *collection,
  13064         DWRITE_FONT_WEIGHT weight,
  13065         DWRITE_FONT_STYLE style,
  13066         DWRITE_FONT_STRETCH stretch,
  13067         FLOAT size,
  13068         const WCHAR *locale,
  13069         IDWriteTextFormat **format);
  13070 
  13071     HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  13072         IDWriteFactory6 *This,
  13073         IDWriteTypography **typography);
  13074 
  13075     HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  13076         IDWriteFactory6 *This,
  13077         IDWriteGdiInterop **gdi_interop);
  13078 
  13079     HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  13080         IDWriteFactory6 *This,
  13081         const WCHAR *string,
  13082         UINT32 len,
  13083         IDWriteTextFormat *format,
  13084         FLOAT max_width,
  13085         FLOAT max_height,
  13086         IDWriteTextLayout **layout);
  13087 
  13088     HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  13089         IDWriteFactory6 *This,
  13090         const WCHAR *string,
  13091         UINT32 len,
  13092         IDWriteTextFormat *format,
  13093         FLOAT layout_width,
  13094         FLOAT layout_height,
  13095         FLOAT pixels_per_dip,
  13096         const DWRITE_MATRIX *transform,
  13097         WINBOOL use_gdi_natural,
  13098         IDWriteTextLayout **layout);
  13099 
  13100     HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  13101         IDWriteFactory6 *This,
  13102         IDWriteTextFormat *format,
  13103         IDWriteInlineObject **trimming_sign);
  13104 
  13105     HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  13106         IDWriteFactory6 *This,
  13107         IDWriteTextAnalyzer **analyzer);
  13108 
  13109     HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  13110         IDWriteFactory6 *This,
  13111         DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  13112         const WCHAR *locale,
  13113         WINBOOL ignore_user_override,
  13114         IDWriteNumberSubstitution **substitution);
  13115 
  13116     HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  13117         IDWriteFactory6 *This,
  13118         const DWRITE_GLYPH_RUN *glyph_run,
  13119         FLOAT pixels_per_dip,
  13120         const DWRITE_MATRIX *transform,
  13121         DWRITE_RENDERING_MODE rendering_mode,
  13122         DWRITE_MEASURING_MODE measuring_mode,
  13123         FLOAT baseline_x,
  13124         FLOAT baseline_y,
  13125         IDWriteGlyphRunAnalysis **analysis);
  13126 
  13127     /*** IDWriteFactory1 methods ***/
  13128     HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  13129         IDWriteFactory6 *This,
  13130         IDWriteFontCollection **collection,
  13131         WINBOOL check_for_updates);
  13132 
  13133     HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  13134         IDWriteFactory6 *This,
  13135         FLOAT gamma,
  13136         FLOAT enhcontrast,
  13137         FLOAT enhcontrast_grayscale,
  13138         FLOAT cleartype_level,
  13139         DWRITE_PIXEL_GEOMETRY geometry,
  13140         DWRITE_RENDERING_MODE mode,
  13141         IDWriteRenderingParams1 **params);
  13142 
  13143     /*** IDWriteFactory2 methods ***/
  13144     HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  13145         IDWriteFactory6 *This,
  13146         IDWriteFontFallback **fallback);
  13147 
  13148     HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  13149         IDWriteFactory6 *This,
  13150         IDWriteFontFallbackBuilder **fallbackbuilder);
  13151 
  13152     HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  13153         IDWriteFactory6 *This,
  13154         FLOAT originX,
  13155         FLOAT originY,
  13156         const DWRITE_GLYPH_RUN *run,
  13157         const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  13158         DWRITE_MEASURING_MODE mode,
  13159         const DWRITE_MATRIX *transform,
  13160         UINT32 palette_index,
  13161         IDWriteColorGlyphRunEnumerator **colorlayers);
  13162 
  13163     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  13164         IDWriteFactory6 *This,
  13165         FLOAT gamma,
  13166         FLOAT contrast,
  13167         FLOAT grayscalecontrast,
  13168         FLOAT cleartypeLevel,
  13169         DWRITE_PIXEL_GEOMETRY pixelGeometry,
  13170         DWRITE_RENDERING_MODE renderingMode,
  13171         DWRITE_GRID_FIT_MODE gridFitMode,
  13172         IDWriteRenderingParams2 **params);
  13173 
  13174     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  13175         IDWriteFactory6 *This,
  13176         const DWRITE_GLYPH_RUN *run,
  13177         const DWRITE_MATRIX *transform,
  13178         DWRITE_RENDERING_MODE renderingMode,
  13179         DWRITE_MEASURING_MODE measuringMode,
  13180         DWRITE_GRID_FIT_MODE gridFitMode,
  13181         DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  13182         FLOAT originX,
  13183         FLOAT originY,
  13184         IDWriteGlyphRunAnalysis **analysis);
  13185 
  13186     /*** IDWriteFactory3 methods ***/
  13187     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  13188         IDWriteFactory6 *This,
  13189         const DWRITE_GLYPH_RUN *run,
  13190         const DWRITE_MATRIX *transform,
  13191         DWRITE_RENDERING_MODE1 rendering_mode,
  13192         DWRITE_MEASURING_MODE measuring_mode,
  13193         DWRITE_GRID_FIT_MODE gridfit_mode,
  13194         DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  13195         FLOAT origin_x,
  13196         FLOAT origin_y,
  13197         IDWriteGlyphRunAnalysis **analysis);
  13198 
  13199     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  13200         IDWriteFactory6 *This,
  13201         FLOAT gamma,
  13202         FLOAT enhanced_contrast,
  13203         FLOAT grayscale_enhanced_contrast,
  13204         FLOAT cleartype_level,
  13205         DWRITE_PIXEL_GEOMETRY pixel_geometry,
  13206         DWRITE_RENDERING_MODE1 rendering_mode,
  13207         DWRITE_GRID_FIT_MODE gridfit_mode,
  13208         IDWriteRenderingParams3 **params);
  13209 
  13210     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  13211         IDWriteFactory6 *This,
  13212         IDWriteFontFile *file,
  13213         UINT32 index,
  13214         DWRITE_FONT_SIMULATIONS simulations,
  13215         IDWriteFontFaceReference **reference);
  13216 
  13217     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  13218         IDWriteFactory6 *This,
  13219         const WCHAR *path,
  13220         const FILETIME *writetime,
  13221         UINT32 index,
  13222         DWRITE_FONT_SIMULATIONS simulations,
  13223         IDWriteFontFaceReference **reference);
  13224 
  13225     HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  13226         IDWriteFactory6 *This,
  13227         IDWriteFontSet **fontset);
  13228 
  13229     HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  13230         IDWriteFactory6 *This,
  13231         IDWriteFontSetBuilder **builder);
  13232 
  13233     HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  13234         IDWriteFactory6 *This,
  13235         IDWriteFontSet *fontset,
  13236         IDWriteFontCollection1 **collection);
  13237 
  13238     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  13239         IDWriteFactory6 *This,
  13240         WINBOOL include_downloadable,
  13241         IDWriteFontCollection1 **collection,
  13242         WINBOOL check_for_updates);
  13243 
  13244     HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  13245         IDWriteFactory6 *This,
  13246         IDWriteFontDownloadQueue **queue);
  13247 
  13248     /*** IDWriteFactory4 methods ***/
  13249     HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  13250         IDWriteFactory6 *This,
  13251         D2D1_POINT_2F baseline_origin,
  13252         const DWRITE_GLYPH_RUN *run,
  13253         const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  13254         DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  13255         DWRITE_MEASURING_MODE measuring_mode,
  13256         const DWRITE_MATRIX *transform,
  13257         UINT32 palette,
  13258         IDWriteColorGlyphRunEnumerator1 **layers);
  13259 
  13260     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  13261         IDWriteFactory6 *This,
  13262         const DWRITE_GLYPH_RUN *run,
  13263         D2D1_POINT_2F baseline_origin,
  13264         D2D1_POINT_2F *origins);
  13265 
  13266     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  13267         IDWriteFactory6 *This,
  13268         const DWRITE_GLYPH_RUN *run,
  13269         DWRITE_MEASURING_MODE measuring_mode,
  13270         D2D1_POINT_2F baseline_origin,
  13271         const DWRITE_MATRIX *transform,
  13272         D2D1_POINT_2F *origins);
  13273 
  13274     /*** IDWriteFactory5 methods ***/
  13275     HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
  13276         IDWriteFactory6 *This,
  13277         IDWriteFontSetBuilder1 **fontset_builder);
  13278 
  13279     HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
  13280         IDWriteFactory6 *This,
  13281         IDWriteInMemoryFontFileLoader **loader);
  13282 
  13283     HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
  13284         IDWriteFactory6 *This,
  13285         const WCHAR *referrer_url,
  13286         const WCHAR *extra_headers,
  13287         IDWriteRemoteFontFileLoader **loader);
  13288 
  13289     DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
  13290         IDWriteFactory6 *This,
  13291         const void *data,
  13292         UINT32 data_size);
  13293 
  13294     HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
  13295         IDWriteFactory6 *This,
  13296         DWRITE_CONTAINER_TYPE container_type,
  13297         const void *data,
  13298         UINT32 data_size,
  13299         IDWriteFontFileStream **stream);
  13300 
  13301     /*** IDWriteFactory6 methods ***/
  13302     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
  13303         IDWriteFactory6 *This,
  13304         IDWriteFontFile *file,
  13305         UINT32 face_index,
  13306         DWRITE_FONT_SIMULATIONS simulations,
  13307         const DWRITE_FONT_AXIS_VALUE *axis_values,
  13308         UINT32 num_axis,
  13309         IDWriteFontFaceReference1 **face_ref);
  13310 
  13311     HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
  13312         IDWriteFactory6 *This,
  13313         IDWriteFontFile *file,
  13314         UINT32 face_index,
  13315         IDWriteFontResource **resource);
  13316 
  13317     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
  13318         IDWriteFactory6 *This,
  13319         WINBOOL include_downloadable,
  13320         IDWriteFontSet1 **fontset);
  13321 
  13322     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
  13323         IDWriteFactory6 *This,
  13324         WINBOOL include_downloadable,
  13325         DWRITE_FONT_FAMILY_MODEL family_model,
  13326         IDWriteFontCollection2 **collection);
  13327 
  13328     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
  13329         IDWriteFactory6 *This,
  13330         IDWriteFontSet *fontset,
  13331         DWRITE_FONT_FAMILY_MODEL family_model,
  13332         IDWriteFontCollection2 **collection);
  13333 
  13334     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
  13335         IDWriteFactory6 *This,
  13336         IDWriteFontSetBuilder2 **builder);
  13337 
  13338     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
  13339         IDWriteFactory6 *This,
  13340         const WCHAR *familyname,
  13341         IDWriteFontCollection *collection,
  13342         const DWRITE_FONT_AXIS_VALUE *axis_values,
  13343         UINT32 num_axis,
  13344         FLOAT fontsize,
  13345         const WCHAR *localename,
  13346         IDWriteTextFormat3 **format);
  13347 
  13348     END_INTERFACE
  13349 } IDWriteFactory6Vtbl;
  13350 
  13351 interface IDWriteFactory6 {
  13352     CONST_VTBL IDWriteFactory6Vtbl* lpVtbl;
  13353 };
  13354 
  13355 #ifdef COBJMACROS
  13356 #ifndef WIDL_C_INLINE_WRAPPERS
  13357 /*** IUnknown methods ***/
  13358 #define IDWriteFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13359 #define IDWriteFactory6_AddRef(This) (This)->lpVtbl->AddRef(This)
  13360 #define IDWriteFactory6_Release(This) (This)->lpVtbl->Release(This)
  13361 /*** IDWriteFactory methods ***/
  13362 #define IDWriteFactory6_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  13363 #define IDWriteFactory6_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  13364 #define IDWriteFactory6_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  13365 #define IDWriteFactory6_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  13366 #define IDWriteFactory6_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  13367 #define IDWriteFactory6_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
  13368 #define IDWriteFactory6_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  13369 #define IDWriteFactory6_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  13370 #define IDWriteFactory6_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  13371 #define IDWriteFactory6_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  13372 #define IDWriteFactory6_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  13373 #define IDWriteFactory6_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  13374 #define IDWriteFactory6_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  13375 #define IDWriteFactory6_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
  13376 #define IDWriteFactory6_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  13377 #define IDWriteFactory6_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  13378 #define IDWriteFactory6_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  13379 /*** IDWriteFactory1 methods ***/
  13380 #define IDWriteFactory6_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  13381 /*** IDWriteFactory2 methods ***/
  13382 #define IDWriteFactory6_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  13383 #define IDWriteFactory6_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  13384 /*** IDWriteFactory3 methods ***/
  13385 #define IDWriteFactory6_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  13386 #define IDWriteFactory6_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  13387 #define IDWriteFactory6_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  13388 #define IDWriteFactory6_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  13389 /*** IDWriteFactory4 methods ***/
  13390 #define IDWriteFactory6_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
  13391 #define IDWriteFactory6_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  13392 #define IDWriteFactory6_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  13393 /*** IDWriteFactory5 methods ***/
  13394 #define IDWriteFactory6_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
  13395 #define IDWriteFactory6_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
  13396 #define IDWriteFactory6_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
  13397 #define IDWriteFactory6_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
  13398 /*** IDWriteFactory6 methods ***/
  13399 #define IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
  13400 #define IDWriteFactory6_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
  13401 #define IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset)
  13402 #define IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection)
  13403 #define IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
  13404 #define IDWriteFactory6_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
  13405 #define IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
  13406 #else
  13407 /*** IUnknown methods ***/
  13408 static inline HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This,REFIID riid,void **ppvObject) {
  13409     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13410 }
  13411 static inline ULONG IDWriteFactory6_AddRef(IDWriteFactory6* This) {
  13412     return This->lpVtbl->AddRef(This);
  13413 }
  13414 static inline ULONG IDWriteFactory6_Release(IDWriteFactory6* This) {
  13415     return This->lpVtbl->Release(This);
  13416 }
  13417 /*** IDWriteFactory methods ***/
  13418 static inline HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  13419     return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  13420 }
  13421 static inline HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) {
  13422     return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  13423 }
  13424 static inline HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) {
  13425     return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  13426 }
  13427 static inline HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  13428     return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  13429 }
  13430 static inline HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  13431     return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  13432 }
  13433 static inline HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  13434     return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  13435 }
  13436 static inline HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This,IDWriteRenderingParams **params) {
  13437     return This->lpVtbl->CreateRenderingParams(This,params);
  13438 }
  13439 static inline HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  13440     return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  13441 }
  13442 static inline HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) {
  13443     return This->lpVtbl->RegisterFontFileLoader(This,loader);
  13444 }
  13445 static inline HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) {
  13446     return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  13447 }
  13448 static inline HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This,IDWriteTypography **typography) {
  13449     return This->lpVtbl->CreateTypography(This,typography);
  13450 }
  13451 static inline HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This,IDWriteGdiInterop **gdi_interop) {
  13452     return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  13453 }
  13454 static inline HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  13455     return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  13456 }
  13457 static inline HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
  13458     return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  13459 }
  13460 static inline HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  13461     return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  13462 }
  13463 static inline HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This,IDWriteTextAnalyzer **analyzer) {
  13464     return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  13465 }
  13466 static inline HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  13467     return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  13468 }
  13469 /*** IDWriteFactory1 methods ***/
  13470 static inline HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  13471     return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  13472 }
  13473 /*** IDWriteFactory2 methods ***/
  13474 static inline HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This,IDWriteFontFallback **fallback) {
  13475     return This->lpVtbl->GetSystemFontFallback(This,fallback);
  13476 }
  13477 static inline HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  13478     return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  13479 }
  13480 /*** IDWriteFactory3 methods ***/
  13481 static inline HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  13482     return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  13483 }
  13484 static inline HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  13485     return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  13486 }
  13487 static inline HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  13488     return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  13489 }
  13490 static inline HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This,IDWriteFontDownloadQueue **queue) {
  13491     return This->lpVtbl->GetFontDownloadQueue(This,queue);
  13492 }
  13493 /*** IDWriteFactory4 methods ***/
  13494 static inline HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
  13495     return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
  13496 }
  13497 static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  13498     return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  13499 }
  13500 static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  13501     return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  13502 }
  13503 /*** IDWriteFactory5 methods ***/
  13504 static inline HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This,IDWriteInMemoryFontFileLoader **loader) {
  13505     return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
  13506 }
  13507 static inline HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
  13508     return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
  13509 }
  13510 static inline DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This,const void *data,UINT32 data_size) {
  13511     return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
  13512 }
  13513 static inline HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
  13514     return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
  13515 }
  13516 /*** IDWriteFactory6 methods ***/
  13517 static inline HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
  13518     return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
  13519 }
  13520 static inline HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
  13521     return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
  13522 }
  13523 static inline HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This,WINBOOL include_downloadable,IDWriteFontSet1 **fontset) {
  13524     return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset);
  13525 }
  13526 static inline HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
  13527     return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection);
  13528 }
  13529 static inline HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
  13530     return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
  13531 }
  13532 static inline HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This,IDWriteFontSetBuilder2 **builder) {
  13533     return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
  13534 }
  13535 static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
  13536     return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
  13537 }
  13538 #endif
  13539 #endif
  13540 
  13541 #endif
  13542 
  13543 
  13544 #endif  /* __IDWriteFactory6_INTERFACE_DEFINED__ */
  13545 
  13546 /*****************************************************************************
  13547  * IDWriteFactory7 interface
  13548  */
  13549 #ifndef __IDWriteFactory7_INTERFACE_DEFINED__
  13550 #define __IDWriteFactory7_INTERFACE_DEFINED__
  13551 
  13552 DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4);
  13553 #if defined(__cplusplus) && !defined(CINTERFACE)
  13554 MIDL_INTERFACE("35d0e0b3-9076-4d2e-a016-a91b568a06b4")
  13555 IDWriteFactory7 : public IDWriteFactory6
  13556 {
  13557     virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
  13558         WINBOOL include_downloadable,
  13559         IDWriteFontSet2 **fontset) = 0;
  13560 
  13561     virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
  13562         WINBOOL include_downloadable,
  13563         DWRITE_FONT_FAMILY_MODEL family_model,
  13564         IDWriteFontCollection3 **collection) = 0;
  13565 
  13566 };
  13567 #ifdef __CRT_UUID_DECL
  13568 __CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4)
  13569 #endif
  13570 #else
  13571 typedef struct IDWriteFactory7Vtbl {
  13572     BEGIN_INTERFACE
  13573 
  13574     /*** IUnknown methods ***/
  13575     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13576         IDWriteFactory7 *This,
  13577         REFIID riid,
  13578         void **ppvObject);
  13579 
  13580     ULONG (STDMETHODCALLTYPE *AddRef)(
  13581         IDWriteFactory7 *This);
  13582 
  13583     ULONG (STDMETHODCALLTYPE *Release)(
  13584         IDWriteFactory7 *This);
  13585 
  13586     /*** IDWriteFactory methods ***/
  13587     HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  13588         IDWriteFactory7 *This,
  13589         IDWriteFontCollection **collection,
  13590         WINBOOL check_for_updates);
  13591 
  13592     HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  13593         IDWriteFactory7 *This,
  13594         IDWriteFontCollectionLoader *loader,
  13595         const void *key,
  13596         UINT32 key_size,
  13597         IDWriteFontCollection **collection);
  13598 
  13599     HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  13600         IDWriteFactory7 *This,
  13601         IDWriteFontCollectionLoader *loader);
  13602 
  13603     HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  13604         IDWriteFactory7 *This,
  13605         IDWriteFontCollectionLoader *loader);
  13606 
  13607     HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  13608         IDWriteFactory7 *This,
  13609         const WCHAR *path,
  13610         const FILETIME *writetime,
  13611         IDWriteFontFile **font_file);
  13612 
  13613     HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  13614         IDWriteFactory7 *This,
  13615         const void *reference_key,
  13616         UINT32 key_size,
  13617         IDWriteFontFileLoader *loader,
  13618         IDWriteFontFile **font_file);
  13619 
  13620     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  13621         IDWriteFactory7 *This,
  13622         DWRITE_FONT_FACE_TYPE facetype,
  13623         UINT32 files_number,
  13624         IDWriteFontFile *const *font_files,
  13625         UINT32 index,
  13626         DWRITE_FONT_SIMULATIONS sim_flags,
  13627         IDWriteFontFace **font_face);
  13628 
  13629     HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  13630         IDWriteFactory7 *This,
  13631         IDWriteRenderingParams **params);
  13632 
  13633     HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  13634         IDWriteFactory7 *This,
  13635         HMONITOR monitor,
  13636         IDWriteRenderingParams **params);
  13637 
  13638     HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  13639         IDWriteFactory7 *This,
  13640         FLOAT gamma,
  13641         FLOAT enhancedContrast,
  13642         FLOAT cleartype_level,
  13643         DWRITE_PIXEL_GEOMETRY geometry,
  13644         DWRITE_RENDERING_MODE mode,
  13645         IDWriteRenderingParams **params);
  13646 
  13647     HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  13648         IDWriteFactory7 *This,
  13649         IDWriteFontFileLoader *loader);
  13650 
  13651     HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  13652         IDWriteFactory7 *This,
  13653         IDWriteFontFileLoader *loader);
  13654 
  13655     HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  13656         IDWriteFactory7 *This,
  13657         const WCHAR *family_name,
  13658         IDWriteFontCollection *collection,
  13659         DWRITE_FONT_WEIGHT weight,
  13660         DWRITE_FONT_STYLE style,
  13661         DWRITE_FONT_STRETCH stretch,
  13662         FLOAT size,
  13663         const WCHAR *locale,
  13664         IDWriteTextFormat **format);
  13665 
  13666     HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  13667         IDWriteFactory7 *This,
  13668         IDWriteTypography **typography);
  13669 
  13670     HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  13671         IDWriteFactory7 *This,
  13672         IDWriteGdiInterop **gdi_interop);
  13673 
  13674     HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  13675         IDWriteFactory7 *This,
  13676         const WCHAR *string,
  13677         UINT32 len,
  13678         IDWriteTextFormat *format,
  13679         FLOAT max_width,
  13680         FLOAT max_height,
  13681         IDWriteTextLayout **layout);
  13682 
  13683     HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  13684         IDWriteFactory7 *This,
  13685         const WCHAR *string,
  13686         UINT32 len,
  13687         IDWriteTextFormat *format,
  13688         FLOAT layout_width,
  13689         FLOAT layout_height,
  13690         FLOAT pixels_per_dip,
  13691         const DWRITE_MATRIX *transform,
  13692         WINBOOL use_gdi_natural,
  13693         IDWriteTextLayout **layout);
  13694 
  13695     HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  13696         IDWriteFactory7 *This,
  13697         IDWriteTextFormat *format,
  13698         IDWriteInlineObject **trimming_sign);
  13699 
  13700     HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  13701         IDWriteFactory7 *This,
  13702         IDWriteTextAnalyzer **analyzer);
  13703 
  13704     HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  13705         IDWriteFactory7 *This,
  13706         DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  13707         const WCHAR *locale,
  13708         WINBOOL ignore_user_override,
  13709         IDWriteNumberSubstitution **substitution);
  13710 
  13711     HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  13712         IDWriteFactory7 *This,
  13713         const DWRITE_GLYPH_RUN *glyph_run,
  13714         FLOAT pixels_per_dip,
  13715         const DWRITE_MATRIX *transform,
  13716         DWRITE_RENDERING_MODE rendering_mode,
  13717         DWRITE_MEASURING_MODE measuring_mode,
  13718         FLOAT baseline_x,
  13719         FLOAT baseline_y,
  13720         IDWriteGlyphRunAnalysis **analysis);
  13721 
  13722     /*** IDWriteFactory1 methods ***/
  13723     HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  13724         IDWriteFactory7 *This,
  13725         IDWriteFontCollection **collection,
  13726         WINBOOL check_for_updates);
  13727 
  13728     HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  13729         IDWriteFactory7 *This,
  13730         FLOAT gamma,
  13731         FLOAT enhcontrast,
  13732         FLOAT enhcontrast_grayscale,
  13733         FLOAT cleartype_level,
  13734         DWRITE_PIXEL_GEOMETRY geometry,
  13735         DWRITE_RENDERING_MODE mode,
  13736         IDWriteRenderingParams1 **params);
  13737 
  13738     /*** IDWriteFactory2 methods ***/
  13739     HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  13740         IDWriteFactory7 *This,
  13741         IDWriteFontFallback **fallback);
  13742 
  13743     HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  13744         IDWriteFactory7 *This,
  13745         IDWriteFontFallbackBuilder **fallbackbuilder);
  13746 
  13747     HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  13748         IDWriteFactory7 *This,
  13749         FLOAT originX,
  13750         FLOAT originY,
  13751         const DWRITE_GLYPH_RUN *run,
  13752         const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  13753         DWRITE_MEASURING_MODE mode,
  13754         const DWRITE_MATRIX *transform,
  13755         UINT32 palette_index,
  13756         IDWriteColorGlyphRunEnumerator **colorlayers);
  13757 
  13758     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  13759         IDWriteFactory7 *This,
  13760         FLOAT gamma,
  13761         FLOAT contrast,
  13762         FLOAT grayscalecontrast,
  13763         FLOAT cleartypeLevel,
  13764         DWRITE_PIXEL_GEOMETRY pixelGeometry,
  13765         DWRITE_RENDERING_MODE renderingMode,
  13766         DWRITE_GRID_FIT_MODE gridFitMode,
  13767         IDWriteRenderingParams2 **params);
  13768 
  13769     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  13770         IDWriteFactory7 *This,
  13771         const DWRITE_GLYPH_RUN *run,
  13772         const DWRITE_MATRIX *transform,
  13773         DWRITE_RENDERING_MODE renderingMode,
  13774         DWRITE_MEASURING_MODE measuringMode,
  13775         DWRITE_GRID_FIT_MODE gridFitMode,
  13776         DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  13777         FLOAT originX,
  13778         FLOAT originY,
  13779         IDWriteGlyphRunAnalysis **analysis);
  13780 
  13781     /*** IDWriteFactory3 methods ***/
  13782     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  13783         IDWriteFactory7 *This,
  13784         const DWRITE_GLYPH_RUN *run,
  13785         const DWRITE_MATRIX *transform,
  13786         DWRITE_RENDERING_MODE1 rendering_mode,
  13787         DWRITE_MEASURING_MODE measuring_mode,
  13788         DWRITE_GRID_FIT_MODE gridfit_mode,
  13789         DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  13790         FLOAT origin_x,
  13791         FLOAT origin_y,
  13792         IDWriteGlyphRunAnalysis **analysis);
  13793 
  13794     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  13795         IDWriteFactory7 *This,
  13796         FLOAT gamma,
  13797         FLOAT enhanced_contrast,
  13798         FLOAT grayscale_enhanced_contrast,
  13799         FLOAT cleartype_level,
  13800         DWRITE_PIXEL_GEOMETRY pixel_geometry,
  13801         DWRITE_RENDERING_MODE1 rendering_mode,
  13802         DWRITE_GRID_FIT_MODE gridfit_mode,
  13803         IDWriteRenderingParams3 **params);
  13804 
  13805     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  13806         IDWriteFactory7 *This,
  13807         IDWriteFontFile *file,
  13808         UINT32 index,
  13809         DWRITE_FONT_SIMULATIONS simulations,
  13810         IDWriteFontFaceReference **reference);
  13811 
  13812     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  13813         IDWriteFactory7 *This,
  13814         const WCHAR *path,
  13815         const FILETIME *writetime,
  13816         UINT32 index,
  13817         DWRITE_FONT_SIMULATIONS simulations,
  13818         IDWriteFontFaceReference **reference);
  13819 
  13820     HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  13821         IDWriteFactory7 *This,
  13822         IDWriteFontSet **fontset);
  13823 
  13824     HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  13825         IDWriteFactory7 *This,
  13826         IDWriteFontSetBuilder **builder);
  13827 
  13828     HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  13829         IDWriteFactory7 *This,
  13830         IDWriteFontSet *fontset,
  13831         IDWriteFontCollection1 **collection);
  13832 
  13833     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  13834         IDWriteFactory7 *This,
  13835         WINBOOL include_downloadable,
  13836         IDWriteFontCollection1 **collection,
  13837         WINBOOL check_for_updates);
  13838 
  13839     HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  13840         IDWriteFactory7 *This,
  13841         IDWriteFontDownloadQueue **queue);
  13842 
  13843     /*** IDWriteFactory4 methods ***/
  13844     HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  13845         IDWriteFactory7 *This,
  13846         D2D1_POINT_2F baseline_origin,
  13847         const DWRITE_GLYPH_RUN *run,
  13848         const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  13849         DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  13850         DWRITE_MEASURING_MODE measuring_mode,
  13851         const DWRITE_MATRIX *transform,
  13852         UINT32 palette,
  13853         IDWriteColorGlyphRunEnumerator1 **layers);
  13854 
  13855     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  13856         IDWriteFactory7 *This,
  13857         const DWRITE_GLYPH_RUN *run,
  13858         D2D1_POINT_2F baseline_origin,
  13859         D2D1_POINT_2F *origins);
  13860 
  13861     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  13862         IDWriteFactory7 *This,
  13863         const DWRITE_GLYPH_RUN *run,
  13864         DWRITE_MEASURING_MODE measuring_mode,
  13865         D2D1_POINT_2F baseline_origin,
  13866         const DWRITE_MATRIX *transform,
  13867         D2D1_POINT_2F *origins);
  13868 
  13869     /*** IDWriteFactory5 methods ***/
  13870     HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
  13871         IDWriteFactory7 *This,
  13872         IDWriteFontSetBuilder1 **fontset_builder);
  13873 
  13874     HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
  13875         IDWriteFactory7 *This,
  13876         IDWriteInMemoryFontFileLoader **loader);
  13877 
  13878     HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
  13879         IDWriteFactory7 *This,
  13880         const WCHAR *referrer_url,
  13881         const WCHAR *extra_headers,
  13882         IDWriteRemoteFontFileLoader **loader);
  13883 
  13884     DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
  13885         IDWriteFactory7 *This,
  13886         const void *data,
  13887         UINT32 data_size);
  13888 
  13889     HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
  13890         IDWriteFactory7 *This,
  13891         DWRITE_CONTAINER_TYPE container_type,
  13892         const void *data,
  13893         UINT32 data_size,
  13894         IDWriteFontFileStream **stream);
  13895 
  13896     /*** IDWriteFactory6 methods ***/
  13897     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
  13898         IDWriteFactory7 *This,
  13899         IDWriteFontFile *file,
  13900         UINT32 face_index,
  13901         DWRITE_FONT_SIMULATIONS simulations,
  13902         const DWRITE_FONT_AXIS_VALUE *axis_values,
  13903         UINT32 num_axis,
  13904         IDWriteFontFaceReference1 **face_ref);
  13905 
  13906     HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
  13907         IDWriteFactory7 *This,
  13908         IDWriteFontFile *file,
  13909         UINT32 face_index,
  13910         IDWriteFontResource **resource);
  13911 
  13912     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
  13913         IDWriteFactory7 *This,
  13914         WINBOOL include_downloadable,
  13915         IDWriteFontSet1 **fontset);
  13916 
  13917     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
  13918         IDWriteFactory7 *This,
  13919         WINBOOL include_downloadable,
  13920         DWRITE_FONT_FAMILY_MODEL family_model,
  13921         IDWriteFontCollection2 **collection);
  13922 
  13923     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
  13924         IDWriteFactory7 *This,
  13925         IDWriteFontSet *fontset,
  13926         DWRITE_FONT_FAMILY_MODEL family_model,
  13927         IDWriteFontCollection2 **collection);
  13928 
  13929     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
  13930         IDWriteFactory7 *This,
  13931         IDWriteFontSetBuilder2 **builder);
  13932 
  13933     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
  13934         IDWriteFactory7 *This,
  13935         const WCHAR *familyname,
  13936         IDWriteFontCollection *collection,
  13937         const DWRITE_FONT_AXIS_VALUE *axis_values,
  13938         UINT32 num_axis,
  13939         FLOAT fontsize,
  13940         const WCHAR *localename,
  13941         IDWriteTextFormat3 **format);
  13942 
  13943     /*** IDWriteFactory7 methods ***/
  13944     HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
  13945         IDWriteFactory7 *This,
  13946         WINBOOL include_downloadable,
  13947         IDWriteFontSet2 **fontset);
  13948 
  13949     HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
  13950         IDWriteFactory7 *This,
  13951         WINBOOL include_downloadable,
  13952         DWRITE_FONT_FAMILY_MODEL family_model,
  13953         IDWriteFontCollection3 **collection);
  13954 
  13955     END_INTERFACE
  13956 } IDWriteFactory7Vtbl;
  13957 
  13958 interface IDWriteFactory7 {
  13959     CONST_VTBL IDWriteFactory7Vtbl* lpVtbl;
  13960 };
  13961 
  13962 #ifdef COBJMACROS
  13963 #ifndef WIDL_C_INLINE_WRAPPERS
  13964 /*** IUnknown methods ***/
  13965 #define IDWriteFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13966 #define IDWriteFactory7_AddRef(This) (This)->lpVtbl->AddRef(This)
  13967 #define IDWriteFactory7_Release(This) (This)->lpVtbl->Release(This)
  13968 /*** IDWriteFactory methods ***/
  13969 #define IDWriteFactory7_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  13970 #define IDWriteFactory7_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  13971 #define IDWriteFactory7_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  13972 #define IDWriteFactory7_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  13973 #define IDWriteFactory7_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  13974 #define IDWriteFactory7_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
  13975 #define IDWriteFactory7_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  13976 #define IDWriteFactory7_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  13977 #define IDWriteFactory7_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  13978 #define IDWriteFactory7_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  13979 #define IDWriteFactory7_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  13980 #define IDWriteFactory7_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  13981 #define IDWriteFactory7_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  13982 #define IDWriteFactory7_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
  13983 #define IDWriteFactory7_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  13984 #define IDWriteFactory7_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  13985 #define IDWriteFactory7_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  13986 /*** IDWriteFactory1 methods ***/
  13987 #define IDWriteFactory7_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  13988 /*** IDWriteFactory2 methods ***/
  13989 #define IDWriteFactory7_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  13990 #define IDWriteFactory7_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  13991 /*** IDWriteFactory3 methods ***/
  13992 #define IDWriteFactory7_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  13993 #define IDWriteFactory7_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  13994 #define IDWriteFactory7_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  13995 #define IDWriteFactory7_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  13996 /*** IDWriteFactory4 methods ***/
  13997 #define IDWriteFactory7_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
  13998 #define IDWriteFactory7_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  13999 #define IDWriteFactory7_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  14000 /*** IDWriteFactory5 methods ***/
  14001 #define IDWriteFactory7_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
  14002 #define IDWriteFactory7_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
  14003 #define IDWriteFactory7_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
  14004 #define IDWriteFactory7_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
  14005 /*** IDWriteFactory6 methods ***/
  14006 #define IDWriteFactory7_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
  14007 #define IDWriteFactory7_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
  14008 #define IDWriteFactory7_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
  14009 #define IDWriteFactory7_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
  14010 #define IDWriteFactory7_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
  14011 /*** IDWriteFactory7 methods ***/
  14012 #define IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
  14013 #define IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
  14014 #else
  14015 /*** IUnknown methods ***/
  14016 static inline HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This,REFIID riid,void **ppvObject) {
  14017     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14018 }
  14019 static inline ULONG IDWriteFactory7_AddRef(IDWriteFactory7* This) {
  14020     return This->lpVtbl->AddRef(This);
  14021 }
  14022 static inline ULONG IDWriteFactory7_Release(IDWriteFactory7* This) {
  14023     return This->lpVtbl->Release(This);
  14024 }
  14025 /*** IDWriteFactory methods ***/
  14026 static inline HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  14027     return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  14028 }
  14029 static inline HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) {
  14030     return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  14031 }
  14032 static inline HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) {
  14033     return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  14034 }
  14035 static inline HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  14036     return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  14037 }
  14038 static inline HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  14039     return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  14040 }
  14041 static inline HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  14042     return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  14043 }
  14044 static inline HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This,IDWriteRenderingParams **params) {
  14045     return This->lpVtbl->CreateRenderingParams(This,params);
  14046 }
  14047 static inline HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  14048     return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  14049 }
  14050 static inline HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) {
  14051     return This->lpVtbl->RegisterFontFileLoader(This,loader);
  14052 }
  14053 static inline HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) {
  14054     return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  14055 }
  14056 static inline HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This,IDWriteTypography **typography) {
  14057     return This->lpVtbl->CreateTypography(This,typography);
  14058 }
  14059 static inline HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This,IDWriteGdiInterop **gdi_interop) {
  14060     return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  14061 }
  14062 static inline HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  14063     return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  14064 }
  14065 static inline HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
  14066     return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  14067 }
  14068 static inline HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  14069     return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  14070 }
  14071 static inline HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This,IDWriteTextAnalyzer **analyzer) {
  14072     return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  14073 }
  14074 static inline HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  14075     return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  14076 }
  14077 /*** IDWriteFactory1 methods ***/
  14078 static inline HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  14079     return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  14080 }
  14081 /*** IDWriteFactory2 methods ***/
  14082 static inline HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This,IDWriteFontFallback **fallback) {
  14083     return This->lpVtbl->GetSystemFontFallback(This,fallback);
  14084 }
  14085 static inline HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  14086     return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  14087 }
  14088 /*** IDWriteFactory3 methods ***/
  14089 static inline HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  14090     return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  14091 }
  14092 static inline HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  14093     return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  14094 }
  14095 static inline HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  14096     return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  14097 }
  14098 static inline HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This,IDWriteFontDownloadQueue **queue) {
  14099     return This->lpVtbl->GetFontDownloadQueue(This,queue);
  14100 }
  14101 /*** IDWriteFactory4 methods ***/
  14102 static inline HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
  14103     return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
  14104 }
  14105 static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  14106     return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  14107 }
  14108 static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  14109     return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  14110 }
  14111 /*** IDWriteFactory5 methods ***/
  14112 static inline HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This,IDWriteInMemoryFontFileLoader **loader) {
  14113     return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
  14114 }
  14115 static inline HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
  14116     return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
  14117 }
  14118 static inline DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This,const void *data,UINT32 data_size) {
  14119     return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
  14120 }
  14121 static inline HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
  14122     return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
  14123 }
  14124 /*** IDWriteFactory6 methods ***/
  14125 static inline HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
  14126     return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
  14127 }
  14128 static inline HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
  14129     return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
  14130 }
  14131 static inline HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
  14132     return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
  14133 }
  14134 static inline HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This,IDWriteFontSetBuilder2 **builder) {
  14135     return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
  14136 }
  14137 static inline HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
  14138     return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
  14139 }
  14140 /*** IDWriteFactory7 methods ***/
  14141 static inline HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
  14142     return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
  14143 }
  14144 static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
  14145     return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
  14146 }
  14147 #endif
  14148 #endif
  14149 
  14150 #endif
  14151 
  14152 
  14153 #endif  /* __IDWriteFactory7_INTERFACE_DEFINED__ */
  14154 
  14155 /*****************************************************************************
  14156  * IDWriteFactory8 interface
  14157  */
  14158 #ifndef __IDWriteFactory8_INTERFACE_DEFINED__
  14159 #define __IDWriteFactory8_INTERFACE_DEFINED__
  14160 
  14161 DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98);
  14162 #if defined(__cplusplus) && !defined(CINTERFACE)
  14163 MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398")
  14164 IDWriteFactory8 : public IDWriteFactory7
  14165 {
  14166     virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
  14167         D2D1_POINT_2F origin,
  14168         const DWRITE_GLYPH_RUN *glyph_run,
  14169         const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
  14170         DWRITE_GLYPH_IMAGE_FORMATS image_formats,
  14171         DWRITE_PAINT_FEATURE_LEVEL feature_level,
  14172         DWRITE_MEASURING_MODE measuring_mode,
  14173         const DWRITE_MATRIX *world_and_dpi_transform,
  14174         UINT32 palette_index,
  14175         IDWriteColorGlyphRunEnumerator1 **enumerator) = 0;
  14176 
  14177 };
  14178 #ifdef __CRT_UUID_DECL
  14179 __CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98)
  14180 #endif
  14181 #else
  14182 typedef struct IDWriteFactory8Vtbl {
  14183     BEGIN_INTERFACE
  14184 
  14185     /*** IUnknown methods ***/
  14186     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14187         IDWriteFactory8 *This,
  14188         REFIID riid,
  14189         void **ppvObject);
  14190 
  14191     ULONG (STDMETHODCALLTYPE *AddRef)(
  14192         IDWriteFactory8 *This);
  14193 
  14194     ULONG (STDMETHODCALLTYPE *Release)(
  14195         IDWriteFactory8 *This);
  14196 
  14197     /*** IDWriteFactory methods ***/
  14198     HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
  14199         IDWriteFactory8 *This,
  14200         IDWriteFontCollection **collection,
  14201         WINBOOL check_for_updates);
  14202 
  14203     HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
  14204         IDWriteFactory8 *This,
  14205         IDWriteFontCollectionLoader *loader,
  14206         const void *key,
  14207         UINT32 key_size,
  14208         IDWriteFontCollection **collection);
  14209 
  14210     HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
  14211         IDWriteFactory8 *This,
  14212         IDWriteFontCollectionLoader *loader);
  14213 
  14214     HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
  14215         IDWriteFactory8 *This,
  14216         IDWriteFontCollectionLoader *loader);
  14217 
  14218     HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
  14219         IDWriteFactory8 *This,
  14220         const WCHAR *path,
  14221         const FILETIME *writetime,
  14222         IDWriteFontFile **font_file);
  14223 
  14224     HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
  14225         IDWriteFactory8 *This,
  14226         const void *reference_key,
  14227         UINT32 key_size,
  14228         IDWriteFontFileLoader *loader,
  14229         IDWriteFontFile **font_file);
  14230 
  14231     HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
  14232         IDWriteFactory8 *This,
  14233         DWRITE_FONT_FACE_TYPE facetype,
  14234         UINT32 files_number,
  14235         IDWriteFontFile *const *font_files,
  14236         UINT32 index,
  14237         DWRITE_FONT_SIMULATIONS sim_flags,
  14238         IDWriteFontFace **font_face);
  14239 
  14240     HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
  14241         IDWriteFactory8 *This,
  14242         IDWriteRenderingParams **params);
  14243 
  14244     HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
  14245         IDWriteFactory8 *This,
  14246         HMONITOR monitor,
  14247         IDWriteRenderingParams **params);
  14248 
  14249     HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
  14250         IDWriteFactory8 *This,
  14251         FLOAT gamma,
  14252         FLOAT enhancedContrast,
  14253         FLOAT cleartype_level,
  14254         DWRITE_PIXEL_GEOMETRY geometry,
  14255         DWRITE_RENDERING_MODE mode,
  14256         IDWriteRenderingParams **params);
  14257 
  14258     HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
  14259         IDWriteFactory8 *This,
  14260         IDWriteFontFileLoader *loader);
  14261 
  14262     HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
  14263         IDWriteFactory8 *This,
  14264         IDWriteFontFileLoader *loader);
  14265 
  14266     HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
  14267         IDWriteFactory8 *This,
  14268         const WCHAR *family_name,
  14269         IDWriteFontCollection *collection,
  14270         DWRITE_FONT_WEIGHT weight,
  14271         DWRITE_FONT_STYLE style,
  14272         DWRITE_FONT_STRETCH stretch,
  14273         FLOAT size,
  14274         const WCHAR *locale,
  14275         IDWriteTextFormat **format);
  14276 
  14277     HRESULT (STDMETHODCALLTYPE *CreateTypography)(
  14278         IDWriteFactory8 *This,
  14279         IDWriteTypography **typography);
  14280 
  14281     HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
  14282         IDWriteFactory8 *This,
  14283         IDWriteGdiInterop **gdi_interop);
  14284 
  14285     HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
  14286         IDWriteFactory8 *This,
  14287         const WCHAR *string,
  14288         UINT32 len,
  14289         IDWriteTextFormat *format,
  14290         FLOAT max_width,
  14291         FLOAT max_height,
  14292         IDWriteTextLayout **layout);
  14293 
  14294     HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
  14295         IDWriteFactory8 *This,
  14296         const WCHAR *string,
  14297         UINT32 len,
  14298         IDWriteTextFormat *format,
  14299         FLOAT layout_width,
  14300         FLOAT layout_height,
  14301         FLOAT pixels_per_dip,
  14302         const DWRITE_MATRIX *transform,
  14303         WINBOOL use_gdi_natural,
  14304         IDWriteTextLayout **layout);
  14305 
  14306     HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
  14307         IDWriteFactory8 *This,
  14308         IDWriteTextFormat *format,
  14309         IDWriteInlineObject **trimming_sign);
  14310 
  14311     HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
  14312         IDWriteFactory8 *This,
  14313         IDWriteTextAnalyzer **analyzer);
  14314 
  14315     HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
  14316         IDWriteFactory8 *This,
  14317         DWRITE_NUMBER_SUBSTITUTION_METHOD method,
  14318         const WCHAR *locale,
  14319         WINBOOL ignore_user_override,
  14320         IDWriteNumberSubstitution **substitution);
  14321 
  14322     HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
  14323         IDWriteFactory8 *This,
  14324         const DWRITE_GLYPH_RUN *glyph_run,
  14325         FLOAT pixels_per_dip,
  14326         const DWRITE_MATRIX *transform,
  14327         DWRITE_RENDERING_MODE rendering_mode,
  14328         DWRITE_MEASURING_MODE measuring_mode,
  14329         FLOAT baseline_x,
  14330         FLOAT baseline_y,
  14331         IDWriteGlyphRunAnalysis **analysis);
  14332 
  14333     /*** IDWriteFactory1 methods ***/
  14334     HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
  14335         IDWriteFactory8 *This,
  14336         IDWriteFontCollection **collection,
  14337         WINBOOL check_for_updates);
  14338 
  14339     HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
  14340         IDWriteFactory8 *This,
  14341         FLOAT gamma,
  14342         FLOAT enhcontrast,
  14343         FLOAT enhcontrast_grayscale,
  14344         FLOAT cleartype_level,
  14345         DWRITE_PIXEL_GEOMETRY geometry,
  14346         DWRITE_RENDERING_MODE mode,
  14347         IDWriteRenderingParams1 **params);
  14348 
  14349     /*** IDWriteFactory2 methods ***/
  14350     HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
  14351         IDWriteFactory8 *This,
  14352         IDWriteFontFallback **fallback);
  14353 
  14354     HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
  14355         IDWriteFactory8 *This,
  14356         IDWriteFontFallbackBuilder **fallbackbuilder);
  14357 
  14358     HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
  14359         IDWriteFactory8 *This,
  14360         FLOAT originX,
  14361         FLOAT originY,
  14362         const DWRITE_GLYPH_RUN *run,
  14363         const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
  14364         DWRITE_MEASURING_MODE mode,
  14365         const DWRITE_MATRIX *transform,
  14366         UINT32 palette_index,
  14367         IDWriteColorGlyphRunEnumerator **colorlayers);
  14368 
  14369     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
  14370         IDWriteFactory8 *This,
  14371         FLOAT gamma,
  14372         FLOAT contrast,
  14373         FLOAT grayscalecontrast,
  14374         FLOAT cleartypeLevel,
  14375         DWRITE_PIXEL_GEOMETRY pixelGeometry,
  14376         DWRITE_RENDERING_MODE renderingMode,
  14377         DWRITE_GRID_FIT_MODE gridFitMode,
  14378         IDWriteRenderingParams2 **params);
  14379 
  14380     HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
  14381         IDWriteFactory8 *This,
  14382         const DWRITE_GLYPH_RUN *run,
  14383         const DWRITE_MATRIX *transform,
  14384         DWRITE_RENDERING_MODE renderingMode,
  14385         DWRITE_MEASURING_MODE measuringMode,
  14386         DWRITE_GRID_FIT_MODE gridFitMode,
  14387         DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
  14388         FLOAT originX,
  14389         FLOAT originY,
  14390         IDWriteGlyphRunAnalysis **analysis);
  14391 
  14392     /*** IDWriteFactory3 methods ***/
  14393     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
  14394         IDWriteFactory8 *This,
  14395         const DWRITE_GLYPH_RUN *run,
  14396         const DWRITE_MATRIX *transform,
  14397         DWRITE_RENDERING_MODE1 rendering_mode,
  14398         DWRITE_MEASURING_MODE measuring_mode,
  14399         DWRITE_GRID_FIT_MODE gridfit_mode,
  14400         DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
  14401         FLOAT origin_x,
  14402         FLOAT origin_y,
  14403         IDWriteGlyphRunAnalysis **analysis);
  14404 
  14405     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
  14406         IDWriteFactory8 *This,
  14407         FLOAT gamma,
  14408         FLOAT enhanced_contrast,
  14409         FLOAT grayscale_enhanced_contrast,
  14410         FLOAT cleartype_level,
  14411         DWRITE_PIXEL_GEOMETRY pixel_geometry,
  14412         DWRITE_RENDERING_MODE1 rendering_mode,
  14413         DWRITE_GRID_FIT_MODE gridfit_mode,
  14414         IDWriteRenderingParams3 **params);
  14415 
  14416     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
  14417         IDWriteFactory8 *This,
  14418         IDWriteFontFile *file,
  14419         UINT32 index,
  14420         DWRITE_FONT_SIMULATIONS simulations,
  14421         IDWriteFontFaceReference **reference);
  14422 
  14423     HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
  14424         IDWriteFactory8 *This,
  14425         const WCHAR *path,
  14426         const FILETIME *writetime,
  14427         UINT32 index,
  14428         DWRITE_FONT_SIMULATIONS simulations,
  14429         IDWriteFontFaceReference **reference);
  14430 
  14431     HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
  14432         IDWriteFactory8 *This,
  14433         IDWriteFontSet **fontset);
  14434 
  14435     HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
  14436         IDWriteFactory8 *This,
  14437         IDWriteFontSetBuilder **builder);
  14438 
  14439     HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
  14440         IDWriteFactory8 *This,
  14441         IDWriteFontSet *fontset,
  14442         IDWriteFontCollection1 **collection);
  14443 
  14444     HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
  14445         IDWriteFactory8 *This,
  14446         WINBOOL include_downloadable,
  14447         IDWriteFontCollection1 **collection,
  14448         WINBOOL check_for_updates);
  14449 
  14450     HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
  14451         IDWriteFactory8 *This,
  14452         IDWriteFontDownloadQueue **queue);
  14453 
  14454     /*** IDWriteFactory4 methods ***/
  14455     HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
  14456         IDWriteFactory8 *This,
  14457         D2D1_POINT_2F baseline_origin,
  14458         const DWRITE_GLYPH_RUN *run,
  14459         const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
  14460         DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
  14461         DWRITE_MEASURING_MODE measuring_mode,
  14462         const DWRITE_MATRIX *transform,
  14463         UINT32 palette,
  14464         IDWriteColorGlyphRunEnumerator1 **layers);
  14465 
  14466     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
  14467         IDWriteFactory8 *This,
  14468         const DWRITE_GLYPH_RUN *run,
  14469         D2D1_POINT_2F baseline_origin,
  14470         D2D1_POINT_2F *origins);
  14471 
  14472     HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
  14473         IDWriteFactory8 *This,
  14474         const DWRITE_GLYPH_RUN *run,
  14475         DWRITE_MEASURING_MODE measuring_mode,
  14476         D2D1_POINT_2F baseline_origin,
  14477         const DWRITE_MATRIX *transform,
  14478         D2D1_POINT_2F *origins);
  14479 
  14480     /*** IDWriteFactory5 methods ***/
  14481     HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
  14482         IDWriteFactory8 *This,
  14483         IDWriteFontSetBuilder1 **fontset_builder);
  14484 
  14485     HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
  14486         IDWriteFactory8 *This,
  14487         IDWriteInMemoryFontFileLoader **loader);
  14488 
  14489     HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
  14490         IDWriteFactory8 *This,
  14491         const WCHAR *referrer_url,
  14492         const WCHAR *extra_headers,
  14493         IDWriteRemoteFontFileLoader **loader);
  14494 
  14495     DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
  14496         IDWriteFactory8 *This,
  14497         const void *data,
  14498         UINT32 data_size);
  14499 
  14500     HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
  14501         IDWriteFactory8 *This,
  14502         DWRITE_CONTAINER_TYPE container_type,
  14503         const void *data,
  14504         UINT32 data_size,
  14505         IDWriteFontFileStream **stream);
  14506 
  14507     /*** IDWriteFactory6 methods ***/
  14508     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
  14509         IDWriteFactory8 *This,
  14510         IDWriteFontFile *file,
  14511         UINT32 face_index,
  14512         DWRITE_FONT_SIMULATIONS simulations,
  14513         const DWRITE_FONT_AXIS_VALUE *axis_values,
  14514         UINT32 num_axis,
  14515         IDWriteFontFaceReference1 **face_ref);
  14516 
  14517     HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
  14518         IDWriteFactory8 *This,
  14519         IDWriteFontFile *file,
  14520         UINT32 face_index,
  14521         IDWriteFontResource **resource);
  14522 
  14523     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
  14524         IDWriteFactory8 *This,
  14525         WINBOOL include_downloadable,
  14526         IDWriteFontSet1 **fontset);
  14527 
  14528     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
  14529         IDWriteFactory8 *This,
  14530         WINBOOL include_downloadable,
  14531         DWRITE_FONT_FAMILY_MODEL family_model,
  14532         IDWriteFontCollection2 **collection);
  14533 
  14534     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
  14535         IDWriteFactory8 *This,
  14536         IDWriteFontSet *fontset,
  14537         DWRITE_FONT_FAMILY_MODEL family_model,
  14538         IDWriteFontCollection2 **collection);
  14539 
  14540     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
  14541         IDWriteFactory8 *This,
  14542         IDWriteFontSetBuilder2 **builder);
  14543 
  14544     HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
  14545         IDWriteFactory8 *This,
  14546         const WCHAR *familyname,
  14547         IDWriteFontCollection *collection,
  14548         const DWRITE_FONT_AXIS_VALUE *axis_values,
  14549         UINT32 num_axis,
  14550         FLOAT fontsize,
  14551         const WCHAR *localename,
  14552         IDWriteTextFormat3 **format);
  14553 
  14554     /*** IDWriteFactory7 methods ***/
  14555     HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
  14556         IDWriteFactory8 *This,
  14557         WINBOOL include_downloadable,
  14558         IDWriteFontSet2 **fontset);
  14559 
  14560     HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
  14561         IDWriteFactory8 *This,
  14562         WINBOOL include_downloadable,
  14563         DWRITE_FONT_FAMILY_MODEL family_model,
  14564         IDWriteFontCollection3 **collection);
  14565 
  14566     /*** IDWriteFactory8 methods ***/
  14567     HRESULT (STDMETHODCALLTYPE *IDWriteFactory8_TranslateColorGlyphRun)(
  14568         IDWriteFactory8 *This,
  14569         D2D1_POINT_2F origin,
  14570         const DWRITE_GLYPH_RUN *glyph_run,
  14571         const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
  14572         DWRITE_GLYPH_IMAGE_FORMATS image_formats,
  14573         DWRITE_PAINT_FEATURE_LEVEL feature_level,
  14574         DWRITE_MEASURING_MODE measuring_mode,
  14575         const DWRITE_MATRIX *world_and_dpi_transform,
  14576         UINT32 palette_index,
  14577         IDWriteColorGlyphRunEnumerator1 **enumerator);
  14578 
  14579     END_INTERFACE
  14580 } IDWriteFactory8Vtbl;
  14581 
  14582 interface IDWriteFactory8 {
  14583     CONST_VTBL IDWriteFactory8Vtbl* lpVtbl;
  14584 };
  14585 
  14586 #ifdef COBJMACROS
  14587 #ifndef WIDL_C_INLINE_WRAPPERS
  14588 /*** IUnknown methods ***/
  14589 #define IDWriteFactory8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14590 #define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This)
  14591 #define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This)
  14592 /*** IDWriteFactory methods ***/
  14593 #define IDWriteFactory8_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
  14594 #define IDWriteFactory8_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
  14595 #define IDWriteFactory8_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
  14596 #define IDWriteFactory8_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
  14597 #define IDWriteFactory8_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
  14598 #define IDWriteFactory8_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
  14599 #define IDWriteFactory8_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
  14600 #define IDWriteFactory8_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
  14601 #define IDWriteFactory8_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
  14602 #define IDWriteFactory8_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
  14603 #define IDWriteFactory8_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
  14604 #define IDWriteFactory8_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
  14605 #define IDWriteFactory8_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
  14606 #define IDWriteFactory8_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
  14607 #define IDWriteFactory8_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
  14608 #define IDWriteFactory8_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
  14609 #define IDWriteFactory8_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
  14610 /*** IDWriteFactory1 methods ***/
  14611 #define IDWriteFactory8_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
  14612 /*** IDWriteFactory2 methods ***/
  14613 #define IDWriteFactory8_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
  14614 #define IDWriteFactory8_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
  14615 /*** IDWriteFactory3 methods ***/
  14616 #define IDWriteFactory8_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
  14617 #define IDWriteFactory8_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
  14618 #define IDWriteFactory8_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
  14619 #define IDWriteFactory8_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
  14620 /*** IDWriteFactory4 methods ***/
  14621 #define IDWriteFactory8_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
  14622 #define IDWriteFactory8_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
  14623 /*** IDWriteFactory5 methods ***/
  14624 #define IDWriteFactory8_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
  14625 #define IDWriteFactory8_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
  14626 #define IDWriteFactory8_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
  14627 #define IDWriteFactory8_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
  14628 /*** IDWriteFactory6 methods ***/
  14629 #define IDWriteFactory8_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
  14630 #define IDWriteFactory8_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
  14631 #define IDWriteFactory8_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
  14632 #define IDWriteFactory8_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
  14633 #define IDWriteFactory8_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
  14634 /*** IDWriteFactory7 methods ***/
  14635 #define IDWriteFactory8_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
  14636 #define IDWriteFactory8_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
  14637 /*** IDWriteFactory8 methods ***/
  14638 #define IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator)
  14639 #else
  14640 /*** IUnknown methods ***/
  14641 static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) {
  14642     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14643 }
  14644 static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) {
  14645     return This->lpVtbl->AddRef(This);
  14646 }
  14647 static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) {
  14648     return This->lpVtbl->Release(This);
  14649 }
  14650 /*** IDWriteFactory methods ***/
  14651 static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
  14652     return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
  14653 }
  14654 static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
  14655     return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
  14656 }
  14657 static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
  14658     return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
  14659 }
  14660 static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
  14661     return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
  14662 }
  14663 static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
  14664     return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
  14665 }
  14666 static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
  14667     return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
  14668 }
  14669 static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) {
  14670     return This->lpVtbl->CreateRenderingParams(This,params);
  14671 }
  14672 static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) {
  14673     return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
  14674 }
  14675 static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
  14676     return This->lpVtbl->RegisterFontFileLoader(This,loader);
  14677 }
  14678 static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
  14679     return This->lpVtbl->UnregisterFontFileLoader(This,loader);
  14680 }
  14681 static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) {
  14682     return This->lpVtbl->CreateTypography(This,typography);
  14683 }
  14684 static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) {
  14685     return This->lpVtbl->GetGdiInterop(This,gdi_interop);
  14686 }
  14687 static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
  14688     return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
  14689 }
  14690 static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
  14691     return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
  14692 }
  14693 static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
  14694     return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
  14695 }
  14696 static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) {
  14697     return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
  14698 }
  14699 static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
  14700     return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
  14701 }
  14702 /*** IDWriteFactory1 methods ***/
  14703 static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
  14704     return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
  14705 }
  14706 /*** IDWriteFactory2 methods ***/
  14707 static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) {
  14708     return This->lpVtbl->GetSystemFontFallback(This,fallback);
  14709 }
  14710 static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
  14711     return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
  14712 }
  14713 /*** IDWriteFactory3 methods ***/
  14714 static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
  14715     return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
  14716 }
  14717 static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
  14718     return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
  14719 }
  14720 static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
  14721     return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
  14722 }
  14723 static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) {
  14724     return This->lpVtbl->GetFontDownloadQueue(This,queue);
  14725 }
  14726 /*** IDWriteFactory4 methods ***/
  14727 static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
  14728     return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
  14729 }
  14730 static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
  14731     return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
  14732 }
  14733 /*** IDWriteFactory5 methods ***/
  14734 static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) {
  14735     return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
  14736 }
  14737 static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
  14738     return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
  14739 }
  14740 static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) {
  14741     return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
  14742 }
  14743 static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
  14744     return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
  14745 }
  14746 /*** IDWriteFactory6 methods ***/
  14747 static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
  14748     return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
  14749 }
  14750 static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
  14751     return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
  14752 }
  14753 static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
  14754     return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
  14755 }
  14756 static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) {
  14757     return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
  14758 }
  14759 static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
  14760     return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
  14761 }
  14762 /*** IDWriteFactory7 methods ***/
  14763 static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
  14764     return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
  14765 }
  14766 static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
  14767     return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
  14768 }
  14769 /*** IDWriteFactory8 methods ***/
  14770 static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This,D2D1_POINT_2F origin,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,DWRITE_GLYPH_IMAGE_FORMATS image_formats,DWRITE_PAINT_FEATURE_LEVEL feature_level,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *world_and_dpi_transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator1 **enumerator) {
  14771     return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator);
  14772 }
  14773 #endif
  14774 #endif
  14775 
  14776 #endif
  14777 
  14778 
  14779 #endif  /* __IDWriteFactory8_INTERFACE_DEFINED__ */
  14780 
  14781 typedef struct DWRITE_BITMAP_DATA_BGRA32 {
  14782     UINT32 width;
  14783     UINT32 height;
  14784     UINT32 *pixels;
  14785 } DWRITE_BITMAP_DATA_BGRA32;
  14786 /*****************************************************************************
  14787  * IDWriteBitmapRenderTarget2 interface
  14788  */
  14789 #ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
  14790 #define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
  14791 
  14792 DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95);
  14793 #if defined(__cplusplus) && !defined(CINTERFACE)
  14794 MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995")
  14795 IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1
  14796 {
  14797     virtual HRESULT STDMETHODCALLTYPE GetBitmapData(
  14798         DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) = 0;
  14799 
  14800 };
  14801 #ifdef __CRT_UUID_DECL
  14802 __CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95)
  14803 #endif
  14804 #else
  14805 typedef struct IDWriteBitmapRenderTarget2Vtbl {
  14806     BEGIN_INTERFACE
  14807 
  14808     /*** IUnknown methods ***/
  14809     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14810         IDWriteBitmapRenderTarget2 *This,
  14811         REFIID riid,
  14812         void **ppvObject);
  14813 
  14814     ULONG (STDMETHODCALLTYPE *AddRef)(
  14815         IDWriteBitmapRenderTarget2 *This);
  14816 
  14817     ULONG (STDMETHODCALLTYPE *Release)(
  14818         IDWriteBitmapRenderTarget2 *This);
  14819 
  14820     /*** IDWriteBitmapRenderTarget methods ***/
  14821     HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
  14822         IDWriteBitmapRenderTarget2 *This,
  14823         FLOAT baselineOriginX,
  14824         FLOAT baselineOriginY,
  14825         DWRITE_MEASURING_MODE measuring_mode,
  14826         const DWRITE_GLYPH_RUN *glyph_run,
  14827         IDWriteRenderingParams *params,
  14828         COLORREF textColor,
  14829         RECT *blackbox_rect);
  14830 
  14831     HDC (STDMETHODCALLTYPE *GetMemoryDC)(
  14832         IDWriteBitmapRenderTarget2 *This);
  14833 
  14834     FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
  14835         IDWriteBitmapRenderTarget2 *This);
  14836 
  14837     HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
  14838         IDWriteBitmapRenderTarget2 *This,
  14839         FLOAT pixels_per_dip);
  14840 
  14841     HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
  14842         IDWriteBitmapRenderTarget2 *This,
  14843         DWRITE_MATRIX *transform);
  14844 
  14845     HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
  14846         IDWriteBitmapRenderTarget2 *This,
  14847         const DWRITE_MATRIX *transform);
  14848 
  14849     HRESULT (STDMETHODCALLTYPE *GetSize)(
  14850         IDWriteBitmapRenderTarget2 *This,
  14851         SIZE *size);
  14852 
  14853     HRESULT (STDMETHODCALLTYPE *Resize)(
  14854         IDWriteBitmapRenderTarget2 *This,
  14855         UINT32 width,
  14856         UINT32 height);
  14857 
  14858     /*** IDWriteBitmapRenderTarget1 methods ***/
  14859     DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
  14860         IDWriteBitmapRenderTarget2 *This);
  14861 
  14862     HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
  14863         IDWriteBitmapRenderTarget2 *This,
  14864         DWRITE_TEXT_ANTIALIAS_MODE mode);
  14865 
  14866     /*** IDWriteBitmapRenderTarget2 methods ***/
  14867     HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
  14868         IDWriteBitmapRenderTarget2 *This,
  14869         DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
  14870 
  14871     END_INTERFACE
  14872 } IDWriteBitmapRenderTarget2Vtbl;
  14873 
  14874 interface IDWriteBitmapRenderTarget2 {
  14875     CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl;
  14876 };
  14877 
  14878 #ifdef COBJMACROS
  14879 #ifndef WIDL_C_INLINE_WRAPPERS
  14880 /*** IUnknown methods ***/
  14881 #define IDWriteBitmapRenderTarget2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14882 #define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This)
  14883 #define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This)
  14884 /*** IDWriteBitmapRenderTarget methods ***/
  14885 #define IDWriteBitmapRenderTarget2_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
  14886 #define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
  14887 #define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
  14888 #define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
  14889 #define IDWriteBitmapRenderTarget2_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
  14890 #define IDWriteBitmapRenderTarget2_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
  14891 #define IDWriteBitmapRenderTarget2_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
  14892 #define IDWriteBitmapRenderTarget2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
  14893 /*** IDWriteBitmapRenderTarget1 methods ***/
  14894 #define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
  14895 #define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
  14896 /*** IDWriteBitmapRenderTarget2 methods ***/
  14897 #define IDWriteBitmapRenderTarget2_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
  14898 #else
  14899 /*** IUnknown methods ***/
  14900 static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) {
  14901     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14902 }
  14903 static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) {
  14904     return This->lpVtbl->AddRef(This);
  14905 }
  14906 static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) {
  14907     return This->lpVtbl->Release(This);
  14908 }
  14909 /*** IDWriteBitmapRenderTarget methods ***/
  14910 static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
  14911     return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
  14912 }
  14913 static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) {
  14914     return This->lpVtbl->GetMemoryDC(This);
  14915 }
  14916 static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) {
  14917     return This->lpVtbl->GetPixelsPerDip(This);
  14918 }
  14919 static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) {
  14920     return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
  14921 }
  14922 static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) {
  14923     return This->lpVtbl->GetCurrentTransform(This,transform);
  14924 }
  14925 static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) {
  14926     return This->lpVtbl->SetCurrentTransform(This,transform);
  14927 }
  14928 static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) {
  14929     return This->lpVtbl->GetSize(This,size);
  14930 }
  14931 static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) {
  14932     return This->lpVtbl->Resize(This,width,height);
  14933 }
  14934 /*** IDWriteBitmapRenderTarget1 methods ***/
  14935 static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) {
  14936     return This->lpVtbl->GetTextAntialiasMode(This);
  14937 }
  14938 static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
  14939     return This->lpVtbl->SetTextAntialiasMode(This,mode);
  14940 }
  14941 /*** IDWriteBitmapRenderTarget2 methods ***/
  14942 static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
  14943     return This->lpVtbl->GetBitmapData(This,bitmap_data);
  14944 }
  14945 #endif
  14946 #endif
  14947 
  14948 #endif
  14949 
  14950 
  14951 #endif  /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */
  14952 
  14953 /*****************************************************************************
  14954  * IDWriteBitmapRenderTarget3 interface
  14955  */
  14956 #ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
  14957 #define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
  14958 
  14959 DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38);
  14960 #if defined(__cplusplus) && !defined(CINTERFACE)
  14961 MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238")
  14962 IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2
  14963 {
  14964     virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel(
  14965         ) = 0;
  14966 
  14967     virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun(
  14968         FLOAT origin_x,
  14969         FLOAT origin_y,
  14970         DWRITE_MEASURING_MODE measuring_mode,
  14971         const DWRITE_GLYPH_RUN *run,
  14972         DWRITE_GLYPH_IMAGE_FORMATS image_format,
  14973         COLORREF text_color,
  14974         UINT32 palette_index,
  14975         RECT *black_box) = 0;
  14976 
  14977     virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport(
  14978         FLOAT origin_x,
  14979         FLOAT origin_y,
  14980         DWRITE_MEASURING_MODE measuring_mode,
  14981         const DWRITE_GLYPH_RUN *run,
  14982         IDWriteRenderingParams *params,
  14983         COLORREF text_color,
  14984         UINT32 palette_index,
  14985         RECT *black_box) = 0;
  14986 
  14987 };
  14988 #ifdef __CRT_UUID_DECL
  14989 __CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38)
  14990 #endif
  14991 #else
  14992 typedef struct IDWriteBitmapRenderTarget3Vtbl {
  14993     BEGIN_INTERFACE
  14994 
  14995     /*** IUnknown methods ***/
  14996     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14997         IDWriteBitmapRenderTarget3 *This,
  14998         REFIID riid,
  14999         void **ppvObject);
  15000 
  15001     ULONG (STDMETHODCALLTYPE *AddRef)(
  15002         IDWriteBitmapRenderTarget3 *This);
  15003 
  15004     ULONG (STDMETHODCALLTYPE *Release)(
  15005         IDWriteBitmapRenderTarget3 *This);
  15006 
  15007     /*** IDWriteBitmapRenderTarget methods ***/
  15008     HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
  15009         IDWriteBitmapRenderTarget3 *This,
  15010         FLOAT baselineOriginX,
  15011         FLOAT baselineOriginY,
  15012         DWRITE_MEASURING_MODE measuring_mode,
  15013         const DWRITE_GLYPH_RUN *glyph_run,
  15014         IDWriteRenderingParams *params,
  15015         COLORREF textColor,
  15016         RECT *blackbox_rect);
  15017 
  15018     HDC (STDMETHODCALLTYPE *GetMemoryDC)(
  15019         IDWriteBitmapRenderTarget3 *This);
  15020 
  15021     FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
  15022         IDWriteBitmapRenderTarget3 *This);
  15023 
  15024     HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
  15025         IDWriteBitmapRenderTarget3 *This,
  15026         FLOAT pixels_per_dip);
  15027 
  15028     HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
  15029         IDWriteBitmapRenderTarget3 *This,
  15030         DWRITE_MATRIX *transform);
  15031 
  15032     HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
  15033         IDWriteBitmapRenderTarget3 *This,
  15034         const DWRITE_MATRIX *transform);
  15035 
  15036     HRESULT (STDMETHODCALLTYPE *GetSize)(
  15037         IDWriteBitmapRenderTarget3 *This,
  15038         SIZE *size);
  15039 
  15040     HRESULT (STDMETHODCALLTYPE *Resize)(
  15041         IDWriteBitmapRenderTarget3 *This,
  15042         UINT32 width,
  15043         UINT32 height);
  15044 
  15045     /*** IDWriteBitmapRenderTarget1 methods ***/
  15046     DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
  15047         IDWriteBitmapRenderTarget3 *This);
  15048 
  15049     HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
  15050         IDWriteBitmapRenderTarget3 *This,
  15051         DWRITE_TEXT_ANTIALIAS_MODE mode);
  15052 
  15053     /*** IDWriteBitmapRenderTarget2 methods ***/
  15054     HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
  15055         IDWriteBitmapRenderTarget3 *This,
  15056         DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
  15057 
  15058     /*** IDWriteBitmapRenderTarget3 methods ***/
  15059     DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)(
  15060         IDWriteBitmapRenderTarget3 *This);
  15061 
  15062     HRESULT (STDMETHODCALLTYPE *DrawPaintGlyphRun)(
  15063         IDWriteBitmapRenderTarget3 *This,
  15064         FLOAT origin_x,
  15065         FLOAT origin_y,
  15066         DWRITE_MEASURING_MODE measuring_mode,
  15067         const DWRITE_GLYPH_RUN *run,
  15068         DWRITE_GLYPH_IMAGE_FORMATS image_format,
  15069         COLORREF text_color,
  15070         UINT32 palette_index,
  15071         RECT *black_box);
  15072 
  15073     HRESULT (STDMETHODCALLTYPE *DrawGlyphRunWithColorSupport)(
  15074         IDWriteBitmapRenderTarget3 *This,
  15075         FLOAT origin_x,
  15076         FLOAT origin_y,
  15077         DWRITE_MEASURING_MODE measuring_mode,
  15078         const DWRITE_GLYPH_RUN *run,
  15079         IDWriteRenderingParams *params,
  15080         COLORREF text_color,
  15081         UINT32 palette_index,
  15082         RECT *black_box);
  15083 
  15084     END_INTERFACE
  15085 } IDWriteBitmapRenderTarget3Vtbl;
  15086 
  15087 interface IDWriteBitmapRenderTarget3 {
  15088     CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl;
  15089 };
  15090 
  15091 #ifdef COBJMACROS
  15092 #ifndef WIDL_C_INLINE_WRAPPERS
  15093 /*** IUnknown methods ***/
  15094 #define IDWriteBitmapRenderTarget3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15095 #define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This)
  15096 #define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This)
  15097 /*** IDWriteBitmapRenderTarget methods ***/
  15098 #define IDWriteBitmapRenderTarget3_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
  15099 #define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
  15100 #define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
  15101 #define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
  15102 #define IDWriteBitmapRenderTarget3_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
  15103 #define IDWriteBitmapRenderTarget3_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
  15104 #define IDWriteBitmapRenderTarget3_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
  15105 #define IDWriteBitmapRenderTarget3_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
  15106 /*** IDWriteBitmapRenderTarget1 methods ***/
  15107 #define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
  15108 #define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
  15109 /*** IDWriteBitmapRenderTarget2 methods ***/
  15110 #define IDWriteBitmapRenderTarget3_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
  15111 /*** IDWriteBitmapRenderTarget3 methods ***/
  15112 #define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This)
  15113 #define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) (This)->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box)
  15114 #define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box)
  15115 #else
  15116 /*** IUnknown methods ***/
  15117 static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) {
  15118     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15119 }
  15120 static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) {
  15121     return This->lpVtbl->AddRef(This);
  15122 }
  15123 static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) {
  15124     return This->lpVtbl->Release(This);
  15125 }
  15126 /*** IDWriteBitmapRenderTarget methods ***/
  15127 static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
  15128     return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
  15129 }
  15130 static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) {
  15131     return This->lpVtbl->GetMemoryDC(This);
  15132 }
  15133 static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) {
  15134     return This->lpVtbl->GetPixelsPerDip(This);
  15135 }
  15136 static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) {
  15137     return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
  15138 }
  15139 static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) {
  15140     return This->lpVtbl->GetCurrentTransform(This,transform);
  15141 }
  15142 static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) {
  15143     return This->lpVtbl->SetCurrentTransform(This,transform);
  15144 }
  15145 static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) {
  15146     return This->lpVtbl->GetSize(This,size);
  15147 }
  15148 static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) {
  15149     return This->lpVtbl->Resize(This,width,height);
  15150 }
  15151 /*** IDWriteBitmapRenderTarget1 methods ***/
  15152 static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) {
  15153     return This->lpVtbl->GetTextAntialiasMode(This);
  15154 }
  15155 static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
  15156     return This->lpVtbl->SetTextAntialiasMode(This,mode);
  15157 }
  15158 /*** IDWriteBitmapRenderTarget2 methods ***/
  15159 static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
  15160     return This->lpVtbl->GetBitmapData(This,bitmap_data);
  15161 }
  15162 /*** IDWriteBitmapRenderTarget3 methods ***/
  15163 static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) {
  15164     return This->lpVtbl->GetPaintFeatureLevel(This);
  15165 }
  15166 static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,DWRITE_GLYPH_IMAGE_FORMATS image_format,COLORREF text_color,UINT32 palette_index,RECT *black_box) {
  15167     return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box);
  15168 }
  15169 static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,IDWriteRenderingParams *params,COLORREF text_color,UINT32 palette_index,RECT *black_box) {
  15170     return This->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box);
  15171 }
  15172 #endif
  15173 #endif
  15174 
  15175 #endif
  15176 
  15177 
  15178 #endif  /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */
  15179 
  15180 /* Begin additional prototypes for all interfaces */
  15181 
  15182 
  15183 /* End additional prototypes */
  15184 
  15185 #ifdef __cplusplus
  15186 }
  15187 #endif
  15188 
  15189 #endif /* __dwrite_3_h__ */