master
    1/*** Autogenerated by WIDL 10.4 from include/dwrite_3.idl - Do not edit ***/
    2
    3#ifdef _WIN32
    4#ifndef __REQUIRED_RPCNDR_H_VERSION__
    5#define __REQUIRED_RPCNDR_H_VERSION__ 475
    6#endif
    7#include <rpc.h>
    8#include <rpcndr.h>
    9#endif
   10
   11#ifndef COM_NO_WINDOWS_H
   12#include <windows.h>
   13#include <ole2.h>
   14#endif
   15
   16#ifndef __dwrite_3_h__
   17#define __dwrite_3_h__
   18
   19/* Forward declarations */
   20
   21#ifndef __IDWriteFontDownloadListener_FWD_DEFINED__
   22#define __IDWriteFontDownloadListener_FWD_DEFINED__
   23typedef interface IDWriteFontDownloadListener IDWriteFontDownloadListener;
   24#ifdef __cplusplus
   25interface IDWriteFontDownloadListener;
   26#endif /* __cplusplus */
   27#endif
   28
   29#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__
   30#define __IDWriteFontDownloadQueue_FWD_DEFINED__
   31typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue;
   32#ifdef __cplusplus
   33interface IDWriteFontDownloadQueue;
   34#endif /* __cplusplus */
   35#endif
   36
   37#ifndef __IDWriteRenderingParams3_FWD_DEFINED__
   38#define __IDWriteRenderingParams3_FWD_DEFINED__
   39typedef interface IDWriteRenderingParams3 IDWriteRenderingParams3;
   40#ifdef __cplusplus
   41interface IDWriteRenderingParams3;
   42#endif /* __cplusplus */
   43#endif
   44
   45#ifndef __IDWriteStringList_FWD_DEFINED__
   46#define __IDWriteStringList_FWD_DEFINED__
   47typedef interface IDWriteStringList IDWriteStringList;
   48#ifdef __cplusplus
   49interface IDWriteStringList;
   50#endif /* __cplusplus */
   51#endif
   52
   53#ifndef __IDWriteFontSet_FWD_DEFINED__
   54#define __IDWriteFontSet_FWD_DEFINED__
   55typedef interface IDWriteFontSet IDWriteFontSet;
   56#ifdef __cplusplus
   57interface IDWriteFontSet;
   58#endif /* __cplusplus */
   59#endif
   60
   61#ifndef __IDWriteFontResource_FWD_DEFINED__
   62#define __IDWriteFontResource_FWD_DEFINED__
   63typedef interface IDWriteFontResource IDWriteFontResource;
   64#ifdef __cplusplus
   65interface IDWriteFontResource;
   66#endif /* __cplusplus */
   67#endif
   68
   69#ifndef __IDWriteFontSet1_FWD_DEFINED__
   70#define __IDWriteFontSet1_FWD_DEFINED__
   71typedef interface IDWriteFontSet1 IDWriteFontSet1;
   72#ifdef __cplusplus
   73interface IDWriteFontSet1;
   74#endif /* __cplusplus */
   75#endif
   76
   77#ifndef __IDWriteFont3_FWD_DEFINED__
   78#define __IDWriteFont3_FWD_DEFINED__
   79typedef interface IDWriteFont3 IDWriteFont3;
   80#ifdef __cplusplus
   81interface IDWriteFont3;
   82#endif /* __cplusplus */
   83#endif
   84
   85#ifndef __IDWriteFontFamily1_FWD_DEFINED__
   86#define __IDWriteFontFamily1_FWD_DEFINED__
   87typedef interface IDWriteFontFamily1 IDWriteFontFamily1;
   88#ifdef __cplusplus
   89interface IDWriteFontFamily1;
   90#endif /* __cplusplus */
   91#endif
   92
   93#ifndef __IDWriteFontFamily2_FWD_DEFINED__
   94#define __IDWriteFontFamily2_FWD_DEFINED__
   95typedef interface IDWriteFontFamily2 IDWriteFontFamily2;
   96#ifdef __cplusplus
   97interface IDWriteFontFamily2;
   98#endif /* __cplusplus */
   99#endif
  100
  101#ifndef __IDWriteFontCollection1_FWD_DEFINED__
  102#define __IDWriteFontCollection1_FWD_DEFINED__
  103typedef interface IDWriteFontCollection1 IDWriteFontCollection1;
  104#ifdef __cplusplus
  105interface IDWriteFontCollection1;
  106#endif /* __cplusplus */
  107#endif
  108
  109#ifndef __IDWriteFontCollection2_FWD_DEFINED__
  110#define __IDWriteFontCollection2_FWD_DEFINED__
  111typedef interface IDWriteFontCollection2 IDWriteFontCollection2;
  112#ifdef __cplusplus
  113interface IDWriteFontCollection2;
  114#endif /* __cplusplus */
  115#endif
  116
  117#ifndef __IDWriteFontCollection3_FWD_DEFINED__
  118#define __IDWriteFontCollection3_FWD_DEFINED__
  119typedef interface IDWriteFontCollection3 IDWriteFontCollection3;
  120#ifdef __cplusplus
  121interface IDWriteFontCollection3;
  122#endif /* __cplusplus */
  123#endif
  124
  125#ifndef __IDWriteFontFaceReference_FWD_DEFINED__
  126#define __IDWriteFontFaceReference_FWD_DEFINED__
  127typedef interface IDWriteFontFaceReference IDWriteFontFaceReference;
  128#ifdef __cplusplus
  129interface IDWriteFontFaceReference;
  130#endif /* __cplusplus */
  131#endif
  132
  133#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__
  134#define __IDWriteFontFaceReference1_FWD_DEFINED__
  135typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1;
  136#ifdef __cplusplus
  137interface IDWriteFontFaceReference1;
  138#endif /* __cplusplus */
  139#endif
  140
  141#ifndef __IDWriteFontList1_FWD_DEFINED__
  142#define __IDWriteFontList1_FWD_DEFINED__
  143typedef interface IDWriteFontList1 IDWriteFontList1;
  144#ifdef __cplusplus
  145interface IDWriteFontList1;
  146#endif /* __cplusplus */
  147#endif
  148
  149#ifndef __IDWriteFontList2_FWD_DEFINED__
  150#define __IDWriteFontList2_FWD_DEFINED__
  151typedef interface IDWriteFontList2 IDWriteFontList2;
  152#ifdef __cplusplus
  153interface IDWriteFontList2;
  154#endif /* __cplusplus */
  155#endif
  156
  157#ifndef __IDWriteFontSet2_FWD_DEFINED__
  158#define __IDWriteFontSet2_FWD_DEFINED__
  159typedef interface IDWriteFontSet2 IDWriteFontSet2;
  160#ifdef __cplusplus
  161interface IDWriteFontSet2;
  162#endif /* __cplusplus */
  163#endif
  164
  165#ifndef __IDWriteFontSet3_FWD_DEFINED__
  166#define __IDWriteFontSet3_FWD_DEFINED__
  167typedef interface IDWriteFontSet3 IDWriteFontSet3;
  168#ifdef __cplusplus
  169interface IDWriteFontSet3;
  170#endif /* __cplusplus */
  171#endif
  172
  173#ifndef __IDWriteFontSet4_FWD_DEFINED__
  174#define __IDWriteFontSet4_FWD_DEFINED__
  175typedef interface IDWriteFontSet4 IDWriteFontSet4;
  176#ifdef __cplusplus
  177interface IDWriteFontSet4;
  178#endif /* __cplusplus */
  179#endif
  180
  181#ifndef __IDWriteFontFace3_FWD_DEFINED__
  182#define __IDWriteFontFace3_FWD_DEFINED__
  183typedef interface IDWriteFontFace3 IDWriteFontFace3;
  184#ifdef __cplusplus
  185interface IDWriteFontFace3;
  186#endif /* __cplusplus */
  187#endif
  188
  189#ifndef __IDWriteTextFormat2_FWD_DEFINED__
  190#define __IDWriteTextFormat2_FWD_DEFINED__
  191typedef interface IDWriteTextFormat2 IDWriteTextFormat2;
  192#ifdef __cplusplus
  193interface IDWriteTextFormat2;
  194#endif /* __cplusplus */
  195#endif
  196
  197#ifndef __IDWriteTextFormat3_FWD_DEFINED__
  198#define __IDWriteTextFormat3_FWD_DEFINED__
  199typedef interface IDWriteTextFormat3 IDWriteTextFormat3;
  200#ifdef __cplusplus
  201interface IDWriteTextFormat3;
  202#endif /* __cplusplus */
  203#endif
  204
  205#ifndef __IDWriteTextLayout3_FWD_DEFINED__
  206#define __IDWriteTextLayout3_FWD_DEFINED__
  207typedef interface IDWriteTextLayout3 IDWriteTextLayout3;
  208#ifdef __cplusplus
  209interface IDWriteTextLayout3;
  210#endif /* __cplusplus */
  211#endif
  212
  213#ifndef __IDWriteTextLayout4_FWD_DEFINED__
  214#define __IDWriteTextLayout4_FWD_DEFINED__
  215typedef interface IDWriteTextLayout4 IDWriteTextLayout4;
  216#ifdef __cplusplus
  217interface IDWriteTextLayout4;
  218#endif /* __cplusplus */
  219#endif
  220
  221#ifndef __IDWriteFontFallback1_FWD_DEFINED__
  222#define __IDWriteFontFallback1_FWD_DEFINED__
  223typedef interface IDWriteFontFallback1 IDWriteFontFallback1;
  224#ifdef __cplusplus
  225interface IDWriteFontFallback1;
  226#endif /* __cplusplus */
  227#endif
  228
  229#ifndef __IDWriteGdiInterop1_FWD_DEFINED__
  230#define __IDWriteGdiInterop1_FWD_DEFINED__
  231typedef interface IDWriteGdiInterop1 IDWriteGdiInterop1;
  232#ifdef __cplusplus
  233interface IDWriteGdiInterop1;
  234#endif /* __cplusplus */
  235#endif
  236
  237#ifndef __IDWriteFontSetBuilder_FWD_DEFINED__
  238#define __IDWriteFontSetBuilder_FWD_DEFINED__
  239typedef interface IDWriteFontSetBuilder IDWriteFontSetBuilder;
  240#ifdef __cplusplus
  241interface IDWriteFontSetBuilder;
  242#endif /* __cplusplus */
  243#endif
  244
  245#ifndef __IDWriteFontSetBuilder1_FWD_DEFINED__
  246#define __IDWriteFontSetBuilder1_FWD_DEFINED__
  247typedef interface IDWriteFontSetBuilder1 IDWriteFontSetBuilder1;
  248#ifdef __cplusplus
  249interface IDWriteFontSetBuilder1;
  250#endif /* __cplusplus */
  251#endif
  252
  253#ifndef __IDWriteFontSetBuilder2_FWD_DEFINED__
  254#define __IDWriteFontSetBuilder2_FWD_DEFINED__
  255typedef interface IDWriteFontSetBuilder2 IDWriteFontSetBuilder2;
  256#ifdef __cplusplus
  257interface IDWriteFontSetBuilder2;
  258#endif /* __cplusplus */
  259#endif
  260
  261#ifndef __IDWriteFactory3_FWD_DEFINED__
  262#define __IDWriteFactory3_FWD_DEFINED__
  263typedef interface IDWriteFactory3 IDWriteFactory3;
  264#ifdef __cplusplus
  265interface IDWriteFactory3;
  266#endif /* __cplusplus */
  267#endif
  268
  269#ifndef __IDWriteFontFace4_FWD_DEFINED__
  270#define __IDWriteFontFace4_FWD_DEFINED__
  271typedef interface IDWriteFontFace4 IDWriteFontFace4;
  272#ifdef __cplusplus
  273interface IDWriteFontFace4;
  274#endif /* __cplusplus */
  275#endif
  276
  277#ifndef __IDWriteFontFace5_FWD_DEFINED__
  278#define __IDWriteFontFace5_FWD_DEFINED__
  279typedef interface IDWriteFontFace5 IDWriteFontFace5;
  280#ifdef __cplusplus
  281interface IDWriteFontFace5;
  282#endif /* __cplusplus */
  283#endif
  284
  285#ifndef __IDWriteFontFace6_FWD_DEFINED__
  286#define __IDWriteFontFace6_FWD_DEFINED__
  287typedef interface IDWriteFontFace6 IDWriteFontFace6;
  288#ifdef __cplusplus
  289interface IDWriteFontFace6;
  290#endif /* __cplusplus */
  291#endif
  292
  293#ifndef __IDWritePaintReader_FWD_DEFINED__
  294#define __IDWritePaintReader_FWD_DEFINED__
  295typedef interface IDWritePaintReader IDWritePaintReader;
  296#ifdef __cplusplus
  297interface IDWritePaintReader;
  298#endif /* __cplusplus */
  299#endif
  300
  301#ifndef __IDWriteFontFace7_FWD_DEFINED__
  302#define __IDWriteFontFace7_FWD_DEFINED__
  303typedef interface IDWriteFontFace7 IDWriteFontFace7;
  304#ifdef __cplusplus
  305interface IDWriteFontFace7;
  306#endif /* __cplusplus */
  307#endif
  308
  309#ifndef __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__
  310#define __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__
  311typedef interface IDWriteColorGlyphRunEnumerator1 IDWriteColorGlyphRunEnumerator1;
  312#ifdef __cplusplus
  313interface IDWriteColorGlyphRunEnumerator1;
  314#endif /* __cplusplus */
  315#endif
  316
  317#ifndef __IDWriteFactory4_FWD_DEFINED__
  318#define __IDWriteFactory4_FWD_DEFINED__
  319typedef interface IDWriteFactory4 IDWriteFactory4;
  320#ifdef __cplusplus
  321interface IDWriteFactory4;
  322#endif /* __cplusplus */
  323#endif
  324
  325#ifndef __IDWriteAsyncResult_FWD_DEFINED__
  326#define __IDWriteAsyncResult_FWD_DEFINED__
  327typedef interface IDWriteAsyncResult IDWriteAsyncResult;
  328#ifdef __cplusplus
  329interface IDWriteAsyncResult;
  330#endif /* __cplusplus */
  331#endif
  332
  333#ifndef __IDWriteRemoteFontFileStream_FWD_DEFINED__
  334#define __IDWriteRemoteFontFileStream_FWD_DEFINED__
  335typedef interface IDWriteRemoteFontFileStream IDWriteRemoteFontFileStream;
  336#ifdef __cplusplus
  337interface IDWriteRemoteFontFileStream;
  338#endif /* __cplusplus */
  339#endif
  340
  341#ifndef __IDWriteRemoteFontFileLoader_FWD_DEFINED__
  342#define __IDWriteRemoteFontFileLoader_FWD_DEFINED__
  343typedef interface IDWriteRemoteFontFileLoader IDWriteRemoteFontFileLoader;
  344#ifdef __cplusplus
  345interface IDWriteRemoteFontFileLoader;
  346#endif /* __cplusplus */
  347#endif
  348
  349#ifndef __IDWriteInMemoryFontFileLoader_FWD_DEFINED__
  350#define __IDWriteInMemoryFontFileLoader_FWD_DEFINED__
  351typedef interface IDWriteInMemoryFontFileLoader IDWriteInMemoryFontFileLoader;
  352#ifdef __cplusplus
  353interface IDWriteInMemoryFontFileLoader;
  354#endif /* __cplusplus */
  355#endif
  356
  357#ifndef __IDWriteFactory5_FWD_DEFINED__
  358#define __IDWriteFactory5_FWD_DEFINED__
  359typedef interface IDWriteFactory5 IDWriteFactory5;
  360#ifdef __cplusplus
  361interface IDWriteFactory5;
  362#endif /* __cplusplus */
  363#endif
  364
  365#ifndef __IDWriteFactory6_FWD_DEFINED__
  366#define __IDWriteFactory6_FWD_DEFINED__
  367typedef interface IDWriteFactory6 IDWriteFactory6;
  368#ifdef __cplusplus
  369interface IDWriteFactory6;
  370#endif /* __cplusplus */
  371#endif
  372
  373#ifndef __IDWriteFactory7_FWD_DEFINED__
  374#define __IDWriteFactory7_FWD_DEFINED__
  375typedef interface IDWriteFactory7 IDWriteFactory7;
  376#ifdef __cplusplus
  377interface IDWriteFactory7;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __IDWriteFactory8_FWD_DEFINED__
  382#define __IDWriteFactory8_FWD_DEFINED__
  383typedef interface IDWriteFactory8 IDWriteFactory8;
  384#ifdef __cplusplus
  385interface IDWriteFactory8;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__
  390#define __IDWriteBitmapRenderTarget2_FWD_DEFINED__
  391typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2;
  392#ifdef __cplusplus
  393interface IDWriteBitmapRenderTarget2;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__
  398#define __IDWriteBitmapRenderTarget3_FWD_DEFINED__
  399typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3;
  400#ifdef __cplusplus
  401interface IDWriteBitmapRenderTarget3;
  402#endif /* __cplusplus */
  403#endif
  404
  405/* Headers for imported files */
  406
  407#include <dwrite_2.h>
  408
  409#ifdef __cplusplus
  410extern "C" {
  411#endif
  412
  413#ifndef __IDWriteFontFaceReference_FWD_DEFINED__
  414#define __IDWriteFontFaceReference_FWD_DEFINED__
  415typedef interface IDWriteFontFaceReference IDWriteFontFaceReference;
  416#ifdef __cplusplus
  417interface IDWriteFontFaceReference;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__
  422#define __IDWriteFontFaceReference1_FWD_DEFINED__
  423typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1;
  424#ifdef __cplusplus
  425interface IDWriteFontFaceReference1;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __IDWriteFontFace3_FWD_DEFINED__
  430#define __IDWriteFontFace3_FWD_DEFINED__
  431typedef interface IDWriteFontFace3 IDWriteFontFace3;
  432#ifdef __cplusplus
  433interface IDWriteFontFace3;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef __IDWriteFontSet_FWD_DEFINED__
  438#define __IDWriteFontSet_FWD_DEFINED__
  439typedef interface IDWriteFontSet IDWriteFontSet;
  440#ifdef __cplusplus
  441interface IDWriteFontSet;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__
  446#define __IDWriteFontDownloadQueue_FWD_DEFINED__
  447typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue;
  448#ifdef __cplusplus
  449interface IDWriteFontDownloadQueue;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __IDWriteFontFace5_FWD_DEFINED__
  454#define __IDWriteFontFace5_FWD_DEFINED__
  455typedef interface IDWriteFontFace5 IDWriteFontFace5;
  456#ifdef __cplusplus
  457interface IDWriteFontFace5;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __IDWriteFontList2_FWD_DEFINED__
  462#define __IDWriteFontList2_FWD_DEFINED__
  463typedef interface IDWriteFontList2 IDWriteFontList2;
  464#ifdef __cplusplus
  465interface IDWriteFontList2;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef _WINGDI_
  470typedef struct FONTSIGNATURE FONTSIGNATURE;
  471#endif /* _WINGDI_ */
  472typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP;
  473typedef enum DWRITE_COLOR_COMPOSITE_MODE {
  474    DWRITE_COLOR_COMPOSITE_CLEAR = 0,
  475    DWRITE_COLOR_COMPOSITE_SRC = 1,
  476    DWRITE_COLOR_COMPOSITE_DEST = 2,
  477    DWRITE_COLOR_COMPOSITE_SRC_OVER = 3,
  478    DWRITE_COLOR_COMPOSITE_DEST_OVER = 4,
  479    DWRITE_COLOR_COMPOSITE_SRC_IN = 5,
  480    DWRITE_COLOR_COMPOSITE_DEST_IN = 6,
  481    DWRITE_COLOR_COMPOSITE_SRC_OUT = 7,
  482    DWRITE_COLOR_COMPOSITE_DEST_OUT = 8,
  483    DWRITE_COLOR_COMPOSITE_SRC_ATOP = 9,
  484    DWRITE_COLOR_COMPOSITE_DEST_ATOP = 10,
  485    DWRITE_COLOR_COMPOSITE_XOR = 11,
  486    DWRITE_COLOR_COMPOSITE_PLUS = 12,
  487    DWRITE_COLOR_COMPOSITE_SCREEN = 13,
  488    DWRITE_COLOR_COMPOSITE_OVERLAY = 14,
  489    DWRITE_COLOR_COMPOSITE_DARKEN = 15,
  490    DWRITE_COLOR_COMPOSITE_LIGHTEN = 16,
  491    DWRITE_COLOR_COMPOSITE_COLOR_DODGE = 17,
  492    DWRITE_COLOR_COMPOSITE_COLOR_BURN = 18,
  493    DWRITE_COLOR_COMPOSITE_HARD_LIGHT = 19,
  494    DWRITE_COLOR_COMPOSITE_SOFT_LIGHT = 20,
  495    DWRITE_COLOR_COMPOSITE_DIFFERENCE = 21,
  496    DWRITE_COLOR_COMPOSITE_EXCLUSION = 22,
  497    DWRITE_COLOR_COMPOSITE_MULTIPLY = 23,
  498    DWRITE_COLOR_COMPOSITE_HSL_HUE = 24,
  499    DWRITE_COLOR_COMPOSITE_HSL_SATURATION = 25,
  500    DWRITE_COLOR_COMPOSITE_HSL_COLOR = 26,
  501    DWRITE_COLOR_COMPOSITE_HSL_LUMINOSITY = 27
  502} DWRITE_COLOR_COMPOSITE_MODE;
  503typedef enum DWRITE_LOCALITY {
  504    DWRITE_LOCALITY_REMOTE = 0,
  505    DWRITE_LOCALITY_PARTIAL = 1,
  506    DWRITE_LOCALITY_LOCAL = 2
  507} DWRITE_LOCALITY;
  508typedef enum DWRITE_RENDERING_MODE1 {
  509    DWRITE_RENDERING_MODE1_DEFAULT = 0,
  510    DWRITE_RENDERING_MODE1_ALIASED = 1,
  511    DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2,
  512    DWRITE_RENDERING_MODE1_GDI_NATURAL = 3,
  513    DWRITE_RENDERING_MODE1_NATURAL = 4,
  514    DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5,
  515    DWRITE_RENDERING_MODE1_OUTLINE = 6,
  516    DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7
  517} DWRITE_RENDERING_MODE1;
  518typedef enum DWRITE_FONT_PROPERTY_ID {
  519    DWRITE_FONT_PROPERTY_ID_NONE = 0,
  520    DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1,
  521    DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2,
  522    DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3,
  523    DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4,
  524    DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5,
  525    DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6,
  526    DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7,
  527    DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8,
  528    DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9,
  529    DWRITE_FONT_PROPERTY_ID_WEIGHT = 10,
  530    DWRITE_FONT_PROPERTY_ID_STRETCH = 11,
  531    DWRITE_FONT_PROPERTY_ID_STYLE = 12,
  532    DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13,
  533    DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1,
  534    DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1,
  535    DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME,
  536    DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
  537    DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME
  538} DWRITE_FONT_PROPERTY_ID;
  539typedef struct DWRITE_FONT_PROPERTY {
  540    DWRITE_FONT_PROPERTY_ID propertyId;
  541    const WCHAR *propertyValue;
  542    const WCHAR *localeName;
  543} DWRITE_FONT_PROPERTY;
  544#ifdef __cplusplus
  545#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
  546#else
  547#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))
  548#endif
  549typedef enum DWRITE_FONT_AXIS_TAG {
  550    DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777,
  551    DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477,
  552    DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73,
  553    DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f,
  554    DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469
  555} DWRITE_FONT_AXIS_TAG;
  556typedef enum DWRITE_FONT_SOURCE_TYPE {
  557    DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0,
  558    DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1,
  559    DWRITE_FONT_SOURCE_TYPE_PER_USER = 2,
  560    DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3,
  561    DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4
  562} DWRITE_FONT_SOURCE_TYPE;
  563typedef struct DWRITE_FONT_AXIS_VALUE {
  564    DWRITE_FONT_AXIS_TAG axisTag;
  565    FLOAT value;
  566} DWRITE_FONT_AXIS_VALUE;
  567typedef struct DWRITE_FONT_AXIS_RANGE {
  568    DWRITE_FONT_AXIS_TAG axisTag;
  569    FLOAT minValue;
  570    FLOAT maxValue;
  571} DWRITE_FONT_AXIS_RANGE;
  572typedef enum DWRITE_AUTOMATIC_FONT_AXES {
  573    DWRITE_AUTOMATIC_FONT_AXES_NONE = 0,
  574    DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1
  575} DWRITE_AUTOMATIC_FONT_AXES;
  576typedef enum DWRITE_FONT_AXIS_ATTRIBUTES {
  577    DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0,
  578    DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1,
  579    DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2
  580} DWRITE_FONT_AXIS_ATTRIBUTES;
  581typedef enum DWRITE_FONT_FAMILY_MODEL {
  582    DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0,
  583    DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1
  584} DWRITE_FONT_FAMILY_MODEL;
  585typedef enum DWRITE_PAINT_TYPE {
  586    DWRITE_PAINT_TYPE_NONE = 0,
  587    DWRITE_PAINT_TYPE_LAYERS = 1,
  588    DWRITE_PAINT_TYPE_SOLID_GLYPH = 2,
  589    DWRITE_PAINT_TYPE_SOLID = 3,
  590    DWRITE_PAINT_TYPE_LINEAR_GRADIENT = 4,
  591    DWRITE_PAINT_TYPE_RADIAL_GRADIENT = 5,
  592    DWRITE_PAINT_TYPE_SWEEP_GRADIENT = 6,
  593    DWRITE_PAINT_TYPE_GLYPH = 7,
  594    DWRITE_PAINT_TYPE_COLOR_GLYPH = 8,
  595    DWRITE_PAINT_TYPE_TRANSFORM = 9,
  596    DWRITE_PAINT_TYPE_COMPOSITE = 10
  597} DWRITE_PAINT_TYPE;
  598#ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED
  599#define DWRITE_PAINT_FEATURE_LEVEL_DEFINED
  600typedef enum DWRITE_PAINT_FEATURE_LEVEL {
  601    DWRITE_PAINT_FEATURE_LEVEL_NONE = 0,
  602    DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1,
  603    DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2
  604} DWRITE_PAINT_FEATURE_LEVEL;
  605#endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */
  606typedef enum DWRITE_PAINT_ATTRIBUTES {
  607    DWRITE_PAINT_ATTRIBUTES_NONE = 0,
  608    DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1,
  609    DWRITE_PAINT_ATTRIBUTES_USES_TEXT_COLOR = 0x2
  610} DWRITE_PAINT_ATTRIBUTES;
  611DEFINE_ENUM_FLAG_OPERATORS(DWRITE_PAINT_ATTRIBUTES)
  612typedef struct DWRITE_PAINT_COLOR {
  613    DWRITE_COLOR_F value;
  614    UINT16 paletteEntryIndex;
  615    float alphaMultiplier;
  616    DWRITE_PAINT_ATTRIBUTES colorAttributes;
  617} DWRITE_PAINT_COLOR;
  618typedef struct DWRITE_PAINT_ELEMENT {
  619    DWRITE_PAINT_TYPE paintType;
  620    union PAINT_UNION {
  621        struct PAINT_LAYERS {
  622            UINT32 childCount;
  623        } layers;
  624        struct PAINT_SOLID_GLYPH {
  625            UINT32 glyphIndex;
  626            DWRITE_PAINT_COLOR color;
  627        } solidGlyph;
  628        DWRITE_PAINT_COLOR solid;
  629        struct PAINT_LINEAR_GRADIENT {
  630            UINT32 extendMode;
  631            UINT32 gradientStopCount;
  632            float x0;
  633            float y0;
  634            float x1;
  635            float y1;
  636            float x2;
  637            float y2;
  638        } linearGradient;
  639        struct PAINT_RADIAL_GRADIENT {
  640            UINT32 extendMode;
  641            UINT32 gradientStopCount;
  642            float x0;
  643            float y0;
  644            float radius0;
  645            float x1;
  646            float y1;
  647            float radius1;
  648        } radialGradient;
  649        struct PAINT_SWEEP_GRADIENT {
  650            UINT32 extendMode;
  651            UINT32 gradientStopCount;
  652            float centerX;
  653            float centerY;
  654            float startAngle;
  655            float endAngle;
  656        } sweepGradient;
  657        struct PAINT_GLYPH {
  658            UINT32 glyphIndex;
  659        } glyph;
  660        struct PAINT_COLOR_GLYPH {
  661            UINT32 glyphIndex;
  662            D2D_RECT_F clipBox;
  663        } colorGlyph;
  664        DWRITE_MATRIX transform;
  665        struct PAINT_COMPOSITE {
  666            DWRITE_COLOR_COMPOSITE_MODE mode;
  667        } composite;
  668    } paint;
  669} DWRITE_PAINT_ELEMENT;
  670/*****************************************************************************
  671 * IDWriteFontDownloadListener interface
  672 */
  673#ifndef __IDWriteFontDownloadListener_INTERFACE_DEFINED__
  674#define __IDWriteFontDownloadListener_INTERFACE_DEFINED__
  675
  676DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7);
  677#if defined(__cplusplus) && !defined(CINTERFACE)
  678MIDL_INTERFACE("b06fe5b9-43ec-4393-881b-dbe4dc72fda7")
  679IDWriteFontDownloadListener : public IUnknown
  680{
  681    virtual void STDMETHODCALLTYPE DownloadCompleted(
  682        IDWriteFontDownloadQueue *queue,
  683        IUnknown *context,
  684        HRESULT result) = 0;
  685
  686};
  687#ifdef __CRT_UUID_DECL
  688__CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7)
  689#endif
  690#else
  691typedef struct IDWriteFontDownloadListenerVtbl {
  692    BEGIN_INTERFACE
  693
  694    /*** IUnknown methods ***/
  695    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  696        IDWriteFontDownloadListener *This,
  697        REFIID riid,
  698        void **ppvObject);
  699
  700    ULONG (STDMETHODCALLTYPE *AddRef)(
  701        IDWriteFontDownloadListener *This);
  702
  703    ULONG (STDMETHODCALLTYPE *Release)(
  704        IDWriteFontDownloadListener *This);
  705
  706    /*** IDWriteFontDownloadListener methods ***/
  707    void (STDMETHODCALLTYPE *DownloadCompleted)(
  708        IDWriteFontDownloadListener *This,
  709        IDWriteFontDownloadQueue *queue,
  710        IUnknown *context,
  711        HRESULT result);
  712
  713    END_INTERFACE
  714} IDWriteFontDownloadListenerVtbl;
  715
  716interface IDWriteFontDownloadListener {
  717    CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl;
  718};
  719
  720#ifdef COBJMACROS
  721#ifndef WIDL_C_INLINE_WRAPPERS
  722/*** IUnknown methods ***/
  723#define IDWriteFontDownloadListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  724#define IDWriteFontDownloadListener_AddRef(This) (This)->lpVtbl->AddRef(This)
  725#define IDWriteFontDownloadListener_Release(This) (This)->lpVtbl->Release(This)
  726/*** IDWriteFontDownloadListener methods ***/
  727#define IDWriteFontDownloadListener_DownloadCompleted(This,queue,context,result) (This)->lpVtbl->DownloadCompleted(This,queue,context,result)
  728#else
  729/*** IUnknown methods ***/
  730static inline HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This,REFIID riid,void **ppvObject) {
  731    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  732}
  733static inline ULONG IDWriteFontDownloadListener_AddRef(IDWriteFontDownloadListener* This) {
  734    return This->lpVtbl->AddRef(This);
  735}
  736static inline ULONG IDWriteFontDownloadListener_Release(IDWriteFontDownloadListener* This) {
  737    return This->lpVtbl->Release(This);
  738}
  739/*** IDWriteFontDownloadListener methods ***/
  740static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This,IDWriteFontDownloadQueue *queue,IUnknown *context,HRESULT result) {
  741    This->lpVtbl->DownloadCompleted(This,queue,context,result);
  742}
  743#endif
  744#endif
  745
  746#endif
  747
  748
  749#endif  /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */
  750
  751/*****************************************************************************
  752 * IDWriteFontDownloadQueue interface
  753 */
  754#ifndef __IDWriteFontDownloadQueue_INTERFACE_DEFINED__
  755#define __IDWriteFontDownloadQueue_INTERFACE_DEFINED__
  756
  757DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91);
  758#if defined(__cplusplus) && !defined(CINTERFACE)
  759MIDL_INTERFACE("b71e6052-5aea-4fa3-832e-f60d431f7e91")
  760IDWriteFontDownloadQueue : public IUnknown
  761{
  762    virtual HRESULT STDMETHODCALLTYPE AddListener(
  763        IDWriteFontDownloadListener *listener,
  764        UINT32 *token) = 0;
  765
  766    virtual HRESULT STDMETHODCALLTYPE RemoveListener(
  767        UINT32 token) = 0;
  768
  769    virtual WINBOOL STDMETHODCALLTYPE IsEmpty(
  770        ) = 0;
  771
  772    virtual HRESULT STDMETHODCALLTYPE BeginDownload(
  773        IUnknown *context) = 0;
  774
  775    virtual HRESULT STDMETHODCALLTYPE CancelDownload(
  776        ) = 0;
  777
  778    virtual UINT64 STDMETHODCALLTYPE GetGenerationCount(
  779        ) = 0;
  780
  781};
  782#ifdef __CRT_UUID_DECL
  783__CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91)
  784#endif
  785#else
  786typedef struct IDWriteFontDownloadQueueVtbl {
  787    BEGIN_INTERFACE
  788
  789    /*** IUnknown methods ***/
  790    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  791        IDWriteFontDownloadQueue *This,
  792        REFIID riid,
  793        void **ppvObject);
  794
  795    ULONG (STDMETHODCALLTYPE *AddRef)(
  796        IDWriteFontDownloadQueue *This);
  797
  798    ULONG (STDMETHODCALLTYPE *Release)(
  799        IDWriteFontDownloadQueue *This);
  800
  801    /*** IDWriteFontDownloadQueue methods ***/
  802    HRESULT (STDMETHODCALLTYPE *AddListener)(
  803        IDWriteFontDownloadQueue *This,
  804        IDWriteFontDownloadListener *listener,
  805        UINT32 *token);
  806
  807    HRESULT (STDMETHODCALLTYPE *RemoveListener)(
  808        IDWriteFontDownloadQueue *This,
  809        UINT32 token);
  810
  811    WINBOOL (STDMETHODCALLTYPE *IsEmpty)(
  812        IDWriteFontDownloadQueue *This);
  813
  814    HRESULT (STDMETHODCALLTYPE *BeginDownload)(
  815        IDWriteFontDownloadQueue *This,
  816        IUnknown *context);
  817
  818    HRESULT (STDMETHODCALLTYPE *CancelDownload)(
  819        IDWriteFontDownloadQueue *This);
  820
  821    UINT64 (STDMETHODCALLTYPE *GetGenerationCount)(
  822        IDWriteFontDownloadQueue *This);
  823
  824    END_INTERFACE
  825} IDWriteFontDownloadQueueVtbl;
  826
  827interface IDWriteFontDownloadQueue {
  828    CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl;
  829};
  830
  831#ifdef COBJMACROS
  832#ifndef WIDL_C_INLINE_WRAPPERS
  833/*** IUnknown methods ***/
  834#define IDWriteFontDownloadQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  835#define IDWriteFontDownloadQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
  836#define IDWriteFontDownloadQueue_Release(This) (This)->lpVtbl->Release(This)
  837/*** IDWriteFontDownloadQueue methods ***/
  838#define IDWriteFontDownloadQueue_AddListener(This,listener,token) (This)->lpVtbl->AddListener(This,listener,token)
  839#define IDWriteFontDownloadQueue_RemoveListener(This,token) (This)->lpVtbl->RemoveListener(This,token)
  840#define IDWriteFontDownloadQueue_IsEmpty(This) (This)->lpVtbl->IsEmpty(This)
  841#define IDWriteFontDownloadQueue_BeginDownload(This,context) (This)->lpVtbl->BeginDownload(This,context)
  842#define IDWriteFontDownloadQueue_CancelDownload(This) (This)->lpVtbl->CancelDownload(This)
  843#define IDWriteFontDownloadQueue_GetGenerationCount(This) (This)->lpVtbl->GetGenerationCount(This)
  844#else
  845/*** IUnknown methods ***/
  846static inline HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This,REFIID riid,void **ppvObject) {
  847    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  848}
  849static inline ULONG IDWriteFontDownloadQueue_AddRef(IDWriteFontDownloadQueue* This) {
  850    return This->lpVtbl->AddRef(This);
  851}
  852static inline ULONG IDWriteFontDownloadQueue_Release(IDWriteFontDownloadQueue* This) {
  853    return This->lpVtbl->Release(This);
  854}
  855/*** IDWriteFontDownloadQueue methods ***/
  856static inline HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This,IDWriteFontDownloadListener *listener,UINT32 *token) {
  857    return This->lpVtbl->AddListener(This,listener,token);
  858}
  859static inline HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This,UINT32 token) {
  860    return This->lpVtbl->RemoveListener(This,token);
  861}
  862static inline WINBOOL IDWriteFontDownloadQueue_IsEmpty(IDWriteFontDownloadQueue* This) {
  863    return This->lpVtbl->IsEmpty(This);
  864}
  865static inline HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This,IUnknown *context) {
  866    return This->lpVtbl->BeginDownload(This,context);
  867}
  868static inline HRESULT IDWriteFontDownloadQueue_CancelDownload(IDWriteFontDownloadQueue* This) {
  869    return This->lpVtbl->CancelDownload(This);
  870}
  871static inline UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDownloadQueue* This) {
  872    return This->lpVtbl->GetGenerationCount(This);
  873}
  874#endif
  875#endif
  876
  877#endif
  878
  879
  880#endif  /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */
  881
  882/*****************************************************************************
  883 * IDWriteRenderingParams3 interface
  884 */
  885#ifndef __IDWriteRenderingParams3_INTERFACE_DEFINED__
  886#define __IDWriteRenderingParams3_INTERFACE_DEFINED__
  887
  888DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc);
  889#if defined(__cplusplus) && !defined(CINTERFACE)
  890MIDL_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc")
  891IDWriteRenderingParams3 : public IDWriteRenderingParams2
  892{
  893    virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1(
  894        ) = 0;
  895
  896};
  897#ifdef __CRT_UUID_DECL
  898__CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc)
  899#endif
  900#else
  901typedef struct IDWriteRenderingParams3Vtbl {
  902    BEGIN_INTERFACE
  903
  904    /*** IUnknown methods ***/
  905    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  906        IDWriteRenderingParams3 *This,
  907        REFIID riid,
  908        void **ppvObject);
  909
  910    ULONG (STDMETHODCALLTYPE *AddRef)(
  911        IDWriteRenderingParams3 *This);
  912
  913    ULONG (STDMETHODCALLTYPE *Release)(
  914        IDWriteRenderingParams3 *This);
  915
  916    /*** IDWriteRenderingParams methods ***/
  917    FLOAT (STDMETHODCALLTYPE *GetGamma)(
  918        IDWriteRenderingParams3 *This);
  919
  920    FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)(
  921        IDWriteRenderingParams3 *This);
  922
  923    FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)(
  924        IDWriteRenderingParams3 *This);
  925
  926    DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)(
  927        IDWriteRenderingParams3 *This);
  928
  929    DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)(
  930        IDWriteRenderingParams3 *This);
  931
  932    /*** IDWriteRenderingParams1 methods ***/
  933    FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)(
  934        IDWriteRenderingParams3 *This);
  935
  936    /*** IDWriteRenderingParams2 methods ***/
  937    DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)(
  938        IDWriteRenderingParams3 *This);
  939
  940    /*** IDWriteRenderingParams3 methods ***/
  941    DWRITE_RENDERING_MODE1 (STDMETHODCALLTYPE *GetRenderingMode1)(
  942        IDWriteRenderingParams3 *This);
  943
  944    END_INTERFACE
  945} IDWriteRenderingParams3Vtbl;
  946
  947interface IDWriteRenderingParams3 {
  948    CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl;
  949};
  950
  951#ifdef COBJMACROS
  952#ifndef WIDL_C_INLINE_WRAPPERS
  953/*** IUnknown methods ***/
  954#define IDWriteRenderingParams3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  955#define IDWriteRenderingParams3_AddRef(This) (This)->lpVtbl->AddRef(This)
  956#define IDWriteRenderingParams3_Release(This) (This)->lpVtbl->Release(This)
  957/*** IDWriteRenderingParams methods ***/
  958#define IDWriteRenderingParams3_GetGamma(This) (This)->lpVtbl->GetGamma(This)
  959#define IDWriteRenderingParams3_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This)
  960#define IDWriteRenderingParams3_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This)
  961#define IDWriteRenderingParams3_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This)
  962#define IDWriteRenderingParams3_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This)
  963/*** IDWriteRenderingParams1 methods ***/
  964#define IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This)
  965/*** IDWriteRenderingParams2 methods ***/
  966#define IDWriteRenderingParams3_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This)
  967/*** IDWriteRenderingParams3 methods ***/
  968#define IDWriteRenderingParams3_GetRenderingMode1(This) (This)->lpVtbl->GetRenderingMode1(This)
  969#else
  970/*** IUnknown methods ***/
  971static inline HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This,REFIID riid,void **ppvObject) {
  972    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  973}
  974static inline ULONG IDWriteRenderingParams3_AddRef(IDWriteRenderingParams3* This) {
  975    return This->lpVtbl->AddRef(This);
  976}
  977static inline ULONG IDWriteRenderingParams3_Release(IDWriteRenderingParams3* This) {
  978    return This->lpVtbl->Release(This);
  979}
  980/*** IDWriteRenderingParams methods ***/
  981static inline FLOAT IDWriteRenderingParams3_GetGamma(IDWriteRenderingParams3* This) {
  982    return This->lpVtbl->GetGamma(This);
  983}
  984static inline FLOAT IDWriteRenderingParams3_GetEnhancedContrast(IDWriteRenderingParams3* This) {
  985    return This->lpVtbl->GetEnhancedContrast(This);
  986}
  987static inline FLOAT IDWriteRenderingParams3_GetClearTypeLevel(IDWriteRenderingParams3* This) {
  988    return This->lpVtbl->GetClearTypeLevel(This);
  989}
  990static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams3_GetPixelGeometry(IDWriteRenderingParams3* This) {
  991    return This->lpVtbl->GetPixelGeometry(This);
  992}
  993static inline DWRITE_RENDERING_MODE IDWriteRenderingParams3_GetRenderingMode(IDWriteRenderingParams3* This) {
  994    return This->lpVtbl->GetRenderingMode(This);
  995}
  996/*** IDWriteRenderingParams1 methods ***/
  997static inline FLOAT IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(IDWriteRenderingParams3* This) {
  998    return This->lpVtbl->GetGrayscaleEnhancedContrast(This);
  999}
 1000/*** IDWriteRenderingParams2 methods ***/
 1001static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams3_GetGridFitMode(IDWriteRenderingParams3* This) {
 1002    return This->lpVtbl->GetGridFitMode(This);
 1003}
 1004/*** IDWriteRenderingParams3 methods ***/
 1005static inline DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(IDWriteRenderingParams3* This) {
 1006    return This->lpVtbl->GetRenderingMode1(This);
 1007}
 1008#endif
 1009#endif
 1010
 1011#endif
 1012
 1013
 1014#endif  /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */
 1015
 1016/*****************************************************************************
 1017 * IDWriteStringList interface
 1018 */
 1019#ifndef __IDWriteStringList_INTERFACE_DEFINED__
 1020#define __IDWriteStringList_INTERFACE_DEFINED__
 1021
 1022DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e);
 1023#if defined(__cplusplus) && !defined(CINTERFACE)
 1024MIDL_INTERFACE("cfee3140-1157-47ca-8b85-31bfcf3f2d0e")
 1025IDWriteStringList : public IUnknown
 1026{
 1027    virtual UINT32 STDMETHODCALLTYPE GetCount(
 1028        ) = 0;
 1029
 1030    virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength(
 1031        UINT32 index,
 1032        UINT32 *length) = 0;
 1033
 1034    virtual HRESULT STDMETHODCALLTYPE GetLocaleName(
 1035        UINT32 index,
 1036        WCHAR *name,
 1037        UINT32 size) = 0;
 1038
 1039    virtual HRESULT STDMETHODCALLTYPE GetStringLength(
 1040        UINT32 index,
 1041        UINT32 *length) = 0;
 1042
 1043    virtual HRESULT STDMETHODCALLTYPE GetString(
 1044        UINT32 index,
 1045        WCHAR *string,
 1046        UINT32 size) = 0;
 1047
 1048};
 1049#ifdef __CRT_UUID_DECL
 1050__CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e)
 1051#endif
 1052#else
 1053typedef struct IDWriteStringListVtbl {
 1054    BEGIN_INTERFACE
 1055
 1056    /*** IUnknown methods ***/
 1057    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1058        IDWriteStringList *This,
 1059        REFIID riid,
 1060        void **ppvObject);
 1061
 1062    ULONG (STDMETHODCALLTYPE *AddRef)(
 1063        IDWriteStringList *This);
 1064
 1065    ULONG (STDMETHODCALLTYPE *Release)(
 1066        IDWriteStringList *This);
 1067
 1068    /*** IDWriteStringList methods ***/
 1069    UINT32 (STDMETHODCALLTYPE *GetCount)(
 1070        IDWriteStringList *This);
 1071
 1072    HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)(
 1073        IDWriteStringList *This,
 1074        UINT32 index,
 1075        UINT32 *length);
 1076
 1077    HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
 1078        IDWriteStringList *This,
 1079        UINT32 index,
 1080        WCHAR *name,
 1081        UINT32 size);
 1082
 1083    HRESULT (STDMETHODCALLTYPE *GetStringLength)(
 1084        IDWriteStringList *This,
 1085        UINT32 index,
 1086        UINT32 *length);
 1087
 1088    HRESULT (STDMETHODCALLTYPE *GetString)(
 1089        IDWriteStringList *This,
 1090        UINT32 index,
 1091        WCHAR *string,
 1092        UINT32 size);
 1093
 1094    END_INTERFACE
 1095} IDWriteStringListVtbl;
 1096
 1097interface IDWriteStringList {
 1098    CONST_VTBL IDWriteStringListVtbl* lpVtbl;
 1099};
 1100
 1101#ifdef COBJMACROS
 1102#ifndef WIDL_C_INLINE_WRAPPERS
 1103/*** IUnknown methods ***/
 1104#define IDWriteStringList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1105#define IDWriteStringList_AddRef(This) (This)->lpVtbl->AddRef(This)
 1106#define IDWriteStringList_Release(This) (This)->lpVtbl->Release(This)
 1107/*** IDWriteStringList methods ***/
 1108#define IDWriteStringList_GetCount(This) (This)->lpVtbl->GetCount(This)
 1109#define IDWriteStringList_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length)
 1110#define IDWriteStringList_GetLocaleName(This,index,name,size) (This)->lpVtbl->GetLocaleName(This,index,name,size)
 1111#define IDWriteStringList_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length)
 1112#define IDWriteStringList_GetString(This,index,string,size) (This)->lpVtbl->GetString(This,index,string,size)
 1113#else
 1114/*** IUnknown methods ***/
 1115static inline HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This,REFIID riid,void **ppvObject) {
 1116    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1117}
 1118static inline ULONG IDWriteStringList_AddRef(IDWriteStringList* This) {
 1119    return This->lpVtbl->AddRef(This);
 1120}
 1121static inline ULONG IDWriteStringList_Release(IDWriteStringList* This) {
 1122    return This->lpVtbl->Release(This);
 1123}
 1124/*** IDWriteStringList methods ***/
 1125static inline UINT32 IDWriteStringList_GetCount(IDWriteStringList* This) {
 1126    return This->lpVtbl->GetCount(This);
 1127}
 1128static inline HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This,UINT32 index,UINT32 *length) {
 1129    return This->lpVtbl->GetLocaleNameLength(This,index,length);
 1130}
 1131static inline HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This,UINT32 index,WCHAR *name,UINT32 size) {
 1132    return This->lpVtbl->GetLocaleName(This,index,name,size);
 1133}
 1134static inline HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This,UINT32 index,UINT32 *length) {
 1135    return This->lpVtbl->GetStringLength(This,index,length);
 1136}
 1137static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This,UINT32 index,WCHAR *string,UINT32 size) {
 1138    return This->lpVtbl->GetString(This,index,string,size);
 1139}
 1140#endif
 1141#endif
 1142
 1143#endif
 1144
 1145
 1146#endif  /* __IDWriteStringList_INTERFACE_DEFINED__ */
 1147
 1148/*****************************************************************************
 1149 * IDWriteFontSet interface
 1150 */
 1151#ifndef __IDWriteFontSet_INTERFACE_DEFINED__
 1152#define __IDWriteFontSet_INTERFACE_DEFINED__
 1153
 1154DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b);
 1155#if defined(__cplusplus) && !defined(CINTERFACE)
 1156MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116b")
 1157IDWriteFontSet : public IUnknown
 1158{
 1159    virtual UINT32 STDMETHODCALLTYPE GetFontCount(
 1160        ) = 0;
 1161
 1162    virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
 1163        UINT32 index,
 1164        IDWriteFontFaceReference **reference) = 0;
 1165
 1166    virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference(
 1167        IDWriteFontFaceReference *reference,
 1168        UINT32 *index,
 1169        WINBOOL *exists) = 0;
 1170
 1171    virtual HRESULT STDMETHODCALLTYPE FindFontFace(
 1172        IDWriteFontFace *fontface,
 1173        UINT32 *index,
 1174        WINBOOL *exists) = 0;
 1175
 1176    virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__(
 1177        DWRITE_FONT_PROPERTY_ID id,
 1178        IDWriteStringList **values) = 0;
 1179
 1180    virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_(
 1181        DWRITE_FONT_PROPERTY_ID id,
 1182        const WCHAR *preferred_locales,
 1183        IDWriteStringList **values) = 0;
 1184
 1185    virtual HRESULT STDMETHODCALLTYPE GetPropertyValues(
 1186        UINT32 index,
 1187        DWRITE_FONT_PROPERTY_ID id,
 1188        WINBOOL *exists,
 1189        IDWriteLocalizedStrings **values) = 0;
 1190
 1191    virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount(
 1192        const DWRITE_FONT_PROPERTY *property,
 1193        UINT32 *count) = 0;
 1194
 1195    virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_(
 1196        const WCHAR *family,
 1197        DWRITE_FONT_WEIGHT weight,
 1198        DWRITE_FONT_STRETCH stretch,
 1199        DWRITE_FONT_STYLE style,
 1200        IDWriteFontSet **fontset) = 0;
 1201
 1202    virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
 1203        const DWRITE_FONT_PROPERTY *props,
 1204        UINT32 count,
 1205        IDWriteFontSet **fontset) = 0;
 1206
 1207};
 1208#ifdef __CRT_UUID_DECL
 1209__CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b)
 1210#endif
 1211#else
 1212typedef struct IDWriteFontSetVtbl {
 1213    BEGIN_INTERFACE
 1214
 1215    /*** IUnknown methods ***/
 1216    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1217        IDWriteFontSet *This,
 1218        REFIID riid,
 1219        void **ppvObject);
 1220
 1221    ULONG (STDMETHODCALLTYPE *AddRef)(
 1222        IDWriteFontSet *This);
 1223
 1224    ULONG (STDMETHODCALLTYPE *Release)(
 1225        IDWriteFontSet *This);
 1226
 1227    /*** IDWriteFontSet methods ***/
 1228    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 1229        IDWriteFontSet *This);
 1230
 1231    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 1232        IDWriteFontSet *This,
 1233        UINT32 index,
 1234        IDWriteFontFaceReference **reference);
 1235
 1236    HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
 1237        IDWriteFontSet *This,
 1238        IDWriteFontFaceReference *reference,
 1239        UINT32 *index,
 1240        WINBOOL *exists);
 1241
 1242    HRESULT (STDMETHODCALLTYPE *FindFontFace)(
 1243        IDWriteFontSet *This,
 1244        IDWriteFontFace *fontface,
 1245        UINT32 *index,
 1246        WINBOOL *exists);
 1247
 1248    HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
 1249        IDWriteFontSet *This,
 1250        DWRITE_FONT_PROPERTY_ID id,
 1251        IDWriteStringList **values);
 1252
 1253    HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
 1254        IDWriteFontSet *This,
 1255        DWRITE_FONT_PROPERTY_ID id,
 1256        const WCHAR *preferred_locales,
 1257        IDWriteStringList **values);
 1258
 1259    HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
 1260        IDWriteFontSet *This,
 1261        UINT32 index,
 1262        DWRITE_FONT_PROPERTY_ID id,
 1263        WINBOOL *exists,
 1264        IDWriteLocalizedStrings **values);
 1265
 1266    HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
 1267        IDWriteFontSet *This,
 1268        const DWRITE_FONT_PROPERTY *property,
 1269        UINT32 *count);
 1270
 1271    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
 1272        IDWriteFontSet *This,
 1273        const WCHAR *family,
 1274        DWRITE_FONT_WEIGHT weight,
 1275        DWRITE_FONT_STRETCH stretch,
 1276        DWRITE_FONT_STYLE style,
 1277        IDWriteFontSet **fontset);
 1278
 1279    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 1280        IDWriteFontSet *This,
 1281        const DWRITE_FONT_PROPERTY *props,
 1282        UINT32 count,
 1283        IDWriteFontSet **fontset);
 1284
 1285    END_INTERFACE
 1286} IDWriteFontSetVtbl;
 1287
 1288interface IDWriteFontSet {
 1289    CONST_VTBL IDWriteFontSetVtbl* lpVtbl;
 1290};
 1291
 1292#ifdef COBJMACROS
 1293#ifndef WIDL_C_INLINE_WRAPPERS
 1294/*** IUnknown methods ***/
 1295#define IDWriteFontSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1296#define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This)
 1297#define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This)
 1298/*** IDWriteFontSet methods ***/
 1299#define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 1300#define IDWriteFontSet_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
 1301#define IDWriteFontSet_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
 1302#define IDWriteFontSet_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
 1303#define IDWriteFontSet_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
 1304#define IDWriteFontSet_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
 1305#define IDWriteFontSet_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
 1306#define IDWriteFontSet_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
 1307#define IDWriteFontSet_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
 1308#define IDWriteFontSet_GetMatchingFonts(This,props,count,fontset) (This)->lpVtbl->GetMatchingFonts(This,props,count,fontset)
 1309#else
 1310/*** IUnknown methods ***/
 1311static inline HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This,REFIID riid,void **ppvObject) {
 1312    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1313}
 1314static inline ULONG IDWriteFontSet_AddRef(IDWriteFontSet* This) {
 1315    return This->lpVtbl->AddRef(This);
 1316}
 1317static inline ULONG IDWriteFontSet_Release(IDWriteFontSet* This) {
 1318    return This->lpVtbl->Release(This);
 1319}
 1320/*** IDWriteFontSet methods ***/
 1321static inline UINT32 IDWriteFontSet_GetFontCount(IDWriteFontSet* This) {
 1322    return This->lpVtbl->GetFontCount(This);
 1323}
 1324static inline HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This,UINT32 index,IDWriteFontFaceReference **reference) {
 1325    return This->lpVtbl->GetFontFaceReference(This,index,reference);
 1326}
 1327static inline HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
 1328    return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
 1329}
 1330static inline HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
 1331    return This->lpVtbl->FindFontFace(This,fontface,index,exists);
 1332}
 1333static inline HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
 1334    return This->lpVtbl->GetPropertyValues__(This,id,values);
 1335}
 1336static inline HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
 1337    return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
 1338}
 1339static inline HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
 1340    return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
 1341}
 1342static inline HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
 1343    return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
 1344}
 1345static inline HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
 1346    return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
 1347}
 1348static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *props,UINT32 count,IDWriteFontSet **fontset) {
 1349    return This->lpVtbl->GetMatchingFonts(This,props,count,fontset);
 1350}
 1351#endif
 1352#endif
 1353
 1354#endif
 1355
 1356
 1357#endif  /* __IDWriteFontSet_INTERFACE_DEFINED__ */
 1358
 1359/*****************************************************************************
 1360 * IDWriteFontResource interface
 1361 */
 1362#ifndef __IDWriteFontResource_INTERFACE_DEFINED__
 1363#define __IDWriteFontResource_INTERFACE_DEFINED__
 1364
 1365DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2);
 1366#if defined(__cplusplus) && !defined(CINTERFACE)
 1367MIDL_INTERFACE("1f803a76-6871-48e8-987f-b975551c50f2")
 1368IDWriteFontResource : public IUnknown
 1369{
 1370    virtual HRESULT STDMETHODCALLTYPE GetFontFile(
 1371        IDWriteFontFile **fontfile) = 0;
 1372
 1373    virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex(
 1374        ) = 0;
 1375
 1376    virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount(
 1377        ) = 0;
 1378
 1379    virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues(
 1380        DWRITE_FONT_AXIS_VALUE *values,
 1381        UINT32 num_values) = 0;
 1382
 1383    virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges(
 1384        DWRITE_FONT_AXIS_RANGE *ranges,
 1385        UINT32 num_ranges) = 0;
 1386
 1387    virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes(
 1388        UINT32 axis) = 0;
 1389
 1390    virtual HRESULT STDMETHODCALLTYPE GetAxisNames(
 1391        UINT32 axis,
 1392        IDWriteLocalizedStrings **names) = 0;
 1393
 1394    virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount(
 1395        UINT32 axis) = 0;
 1396
 1397    virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames(
 1398        UINT32 axis,
 1399        UINT32 axis_value,
 1400        DWRITE_FONT_AXIS_RANGE *axis_range,
 1401        IDWriteLocalizedStrings **names) = 0;
 1402
 1403    virtual WINBOOL STDMETHODCALLTYPE HasVariations(
 1404        ) = 0;
 1405
 1406    virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
 1407        DWRITE_FONT_SIMULATIONS simulations,
 1408        const DWRITE_FONT_AXIS_VALUE *axis_values,
 1409        UINT32 num_values,
 1410        IDWriteFontFace5 **fontface) = 0;
 1411
 1412    virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
 1413        DWRITE_FONT_SIMULATIONS simulations,
 1414        const DWRITE_FONT_AXIS_VALUE *axis_values,
 1415        UINT32 num_values,
 1416        IDWriteFontFaceReference1 **reference) = 0;
 1417
 1418};
 1419#ifdef __CRT_UUID_DECL
 1420__CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2)
 1421#endif
 1422#else
 1423typedef struct IDWriteFontResourceVtbl {
 1424    BEGIN_INTERFACE
 1425
 1426    /*** IUnknown methods ***/
 1427    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1428        IDWriteFontResource *This,
 1429        REFIID riid,
 1430        void **ppvObject);
 1431
 1432    ULONG (STDMETHODCALLTYPE *AddRef)(
 1433        IDWriteFontResource *This);
 1434
 1435    ULONG (STDMETHODCALLTYPE *Release)(
 1436        IDWriteFontResource *This);
 1437
 1438    /*** IDWriteFontResource methods ***/
 1439    HRESULT (STDMETHODCALLTYPE *GetFontFile)(
 1440        IDWriteFontResource *This,
 1441        IDWriteFontFile **fontfile);
 1442
 1443    UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
 1444        IDWriteFontResource *This);
 1445
 1446    UINT32 (STDMETHODCALLTYPE *GetFontAxisCount)(
 1447        IDWriteFontResource *This);
 1448
 1449    HRESULT (STDMETHODCALLTYPE *GetDefaultFontAxisValues)(
 1450        IDWriteFontResource *This,
 1451        DWRITE_FONT_AXIS_VALUE *values,
 1452        UINT32 num_values);
 1453
 1454    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
 1455        IDWriteFontResource *This,
 1456        DWRITE_FONT_AXIS_RANGE *ranges,
 1457        UINT32 num_ranges);
 1458
 1459    DWRITE_FONT_AXIS_ATTRIBUTES (STDMETHODCALLTYPE *GetFontAxisAttributes)(
 1460        IDWriteFontResource *This,
 1461        UINT32 axis);
 1462
 1463    HRESULT (STDMETHODCALLTYPE *GetAxisNames)(
 1464        IDWriteFontResource *This,
 1465        UINT32 axis,
 1466        IDWriteLocalizedStrings **names);
 1467
 1468    UINT32 (STDMETHODCALLTYPE *GetAxisValueNameCount)(
 1469        IDWriteFontResource *This,
 1470        UINT32 axis);
 1471
 1472    HRESULT (STDMETHODCALLTYPE *GetAxisValueNames)(
 1473        IDWriteFontResource *This,
 1474        UINT32 axis,
 1475        UINT32 axis_value,
 1476        DWRITE_FONT_AXIS_RANGE *axis_range,
 1477        IDWriteLocalizedStrings **names);
 1478
 1479    WINBOOL (STDMETHODCALLTYPE *HasVariations)(
 1480        IDWriteFontResource *This);
 1481
 1482    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 1483        IDWriteFontResource *This,
 1484        DWRITE_FONT_SIMULATIONS simulations,
 1485        const DWRITE_FONT_AXIS_VALUE *axis_values,
 1486        UINT32 num_values,
 1487        IDWriteFontFace5 **fontface);
 1488
 1489    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
 1490        IDWriteFontResource *This,
 1491        DWRITE_FONT_SIMULATIONS simulations,
 1492        const DWRITE_FONT_AXIS_VALUE *axis_values,
 1493        UINT32 num_values,
 1494        IDWriteFontFaceReference1 **reference);
 1495
 1496    END_INTERFACE
 1497} IDWriteFontResourceVtbl;
 1498
 1499interface IDWriteFontResource {
 1500    CONST_VTBL IDWriteFontResourceVtbl* lpVtbl;
 1501};
 1502
 1503#ifdef COBJMACROS
 1504#ifndef WIDL_C_INLINE_WRAPPERS
 1505/*** IUnknown methods ***/
 1506#define IDWriteFontResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1507#define IDWriteFontResource_AddRef(This) (This)->lpVtbl->AddRef(This)
 1508#define IDWriteFontResource_Release(This) (This)->lpVtbl->Release(This)
 1509/*** IDWriteFontResource methods ***/
 1510#define IDWriteFontResource_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
 1511#define IDWriteFontResource_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
 1512#define IDWriteFontResource_GetFontAxisCount(This) (This)->lpVtbl->GetFontAxisCount(This)
 1513#define IDWriteFontResource_GetDefaultFontAxisValues(This,values,num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This,values,num_values)
 1514#define IDWriteFontResource_GetFontAxisRanges(This,ranges,num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges)
 1515#define IDWriteFontResource_GetFontAxisAttributes(This,axis) (This)->lpVtbl->GetFontAxisAttributes(This,axis)
 1516#define IDWriteFontResource_GetAxisNames(This,axis,names) (This)->lpVtbl->GetAxisNames(This,axis,names)
 1517#define IDWriteFontResource_GetAxisValueNameCount(This,axis) (This)->lpVtbl->GetAxisValueNameCount(This,axis)
 1518#define IDWriteFontResource_GetAxisValueNames(This,axis,axis_value,axis_range,names) (This)->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names)
 1519#define IDWriteFontResource_HasVariations(This) (This)->lpVtbl->HasVariations(This)
 1520#define IDWriteFontResource_CreateFontFace(This,simulations,axis_values,num_values,fontface) (This)->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface)
 1521#define IDWriteFontResource_CreateFontFaceReference(This,simulations,axis_values,num_values,reference) (This)->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference)
 1522#else
 1523/*** IUnknown methods ***/
 1524static inline HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This,REFIID riid,void **ppvObject) {
 1525    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1526}
 1527static inline ULONG IDWriteFontResource_AddRef(IDWriteFontResource* This) {
 1528    return This->lpVtbl->AddRef(This);
 1529}
 1530static inline ULONG IDWriteFontResource_Release(IDWriteFontResource* This) {
 1531    return This->lpVtbl->Release(This);
 1532}
 1533/*** IDWriteFontResource methods ***/
 1534static inline HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This,IDWriteFontFile **fontfile) {
 1535    return This->lpVtbl->GetFontFile(This,fontfile);
 1536}
 1537static inline UINT32 IDWriteFontResource_GetFontFaceIndex(IDWriteFontResource* This) {
 1538    return This->lpVtbl->GetFontFaceIndex(This);
 1539}
 1540static inline UINT32 IDWriteFontResource_GetFontAxisCount(IDWriteFontResource* This) {
 1541    return This->lpVtbl->GetFontAxisCount(This);
 1542}
 1543static inline HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) {
 1544    return This->lpVtbl->GetDefaultFontAxisValues(This,values,num_values);
 1545}
 1546static inline HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This,DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges) {
 1547    return This->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges);
 1548}
 1549static inline DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This,UINT32 axis) {
 1550    return This->lpVtbl->GetFontAxisAttributes(This,axis);
 1551}
 1552static inline HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This,UINT32 axis,IDWriteLocalizedStrings **names) {
 1553    return This->lpVtbl->GetAxisNames(This,axis,names);
 1554}
 1555static inline UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This,UINT32 axis) {
 1556    return This->lpVtbl->GetAxisValueNameCount(This,axis);
 1557}
 1558static inline HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This,UINT32 axis,UINT32 axis_value,DWRITE_FONT_AXIS_RANGE *axis_range,IDWriteLocalizedStrings **names) {
 1559    return This->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names);
 1560}
 1561static inline WINBOOL IDWriteFontResource_HasVariations(IDWriteFontResource* This) {
 1562    return This->lpVtbl->HasVariations(This);
 1563}
 1564static inline HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFace5 **fontface) {
 1565    return This->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface);
 1566}
 1567static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFaceReference1 **reference) {
 1568    return This->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference);
 1569}
 1570#endif
 1571#endif
 1572
 1573#endif
 1574
 1575
 1576#endif  /* __IDWriteFontResource_INTERFACE_DEFINED__ */
 1577
 1578/*****************************************************************************
 1579 * IDWriteFontSet1 interface
 1580 */
 1581#ifndef __IDWriteFontSet1_INTERFACE_DEFINED__
 1582#define __IDWriteFontSet1_INTERFACE_DEFINED__
 1583
 1584DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3);
 1585#if defined(__cplusplus) && !defined(CINTERFACE)
 1586MIDL_INTERFACE("7e9fda85-6c92-4053-bc47-7ae3530db4d3")
 1587IDWriteFontSet1 : public IDWriteFontSet
 1588{
 1589    virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
 1590        const DWRITE_FONT_PROPERTY *property,
 1591        const DWRITE_FONT_AXIS_VALUE *axis_values,
 1592        UINT32 num_values,
 1593        IDWriteFontSet1 **fontset) = 0;
 1594
 1595    virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources(
 1596        IDWriteFontSet1 **fontset) = 0;
 1597
 1598    virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__(
 1599        const UINT32 *indices,
 1600        UINT32 num_indices,
 1601        IDWriteFontSet1 **fontset) = 0;
 1602
 1603    virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_(
 1604        const DWRITE_FONT_AXIS_RANGE *axis_ranges,
 1605        UINT32 num_ranges,
 1606        WINBOOL select_any_range,
 1607        IDWriteFontSet1 **fontset) = 0;
 1608
 1609    virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts(
 1610        const DWRITE_FONT_PROPERTY *props,
 1611        UINT32 num_properties,
 1612        WINBOOL select_any_property,
 1613        IDWriteFontSet1 **fontset) = 0;
 1614
 1615    virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_(
 1616        const DWRITE_FONT_AXIS_RANGE *ranges,
 1617        UINT32 num_ranges,
 1618        WINBOOL select_any_range,
 1619        UINT32 *indices,
 1620        UINT32 num_indices,
 1621        UINT32 *actual_num_indices) = 0;
 1622
 1623    virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices(
 1624        const DWRITE_FONT_PROPERTY *props,
 1625        UINT32 num_properties,
 1626        WINBOOL select_any_range,
 1627        UINT32 *indices,
 1628        UINT32 num_indices,
 1629        UINT32 *actual_num_indices) = 0;
 1630
 1631    virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_(
 1632        UINT32 font_index,
 1633        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 1634        UINT32 num_ranges,
 1635        UINT32 *actual_num_ranges) = 0;
 1636
 1637    virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges(
 1638        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 1639        UINT32 num_ranges,
 1640        UINT32 *actual_num_ranges) = 0;
 1641
 1642    virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
 1643        UINT32 index,
 1644        IDWriteFontFaceReference1 **reference) = 0;
 1645
 1646    virtual HRESULT STDMETHODCALLTYPE CreateFontResource(
 1647        UINT32 index,
 1648        IDWriteFontResource **resource) = 0;
 1649
 1650    virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
 1651        UINT32 index,
 1652        IDWriteFontFace5 **fontface) = 0;
 1653
 1654    virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
 1655        UINT32 index) = 0;
 1656
 1657};
 1658#ifdef __CRT_UUID_DECL
 1659__CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3)
 1660#endif
 1661#else
 1662typedef struct IDWriteFontSet1Vtbl {
 1663    BEGIN_INTERFACE
 1664
 1665    /*** IUnknown methods ***/
 1666    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1667        IDWriteFontSet1 *This,
 1668        REFIID riid,
 1669        void **ppvObject);
 1670
 1671    ULONG (STDMETHODCALLTYPE *AddRef)(
 1672        IDWriteFontSet1 *This);
 1673
 1674    ULONG (STDMETHODCALLTYPE *Release)(
 1675        IDWriteFontSet1 *This);
 1676
 1677    /*** IDWriteFontSet methods ***/
 1678    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 1679        IDWriteFontSet1 *This);
 1680
 1681    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 1682        IDWriteFontSet1 *This,
 1683        UINT32 index,
 1684        IDWriteFontFaceReference **reference);
 1685
 1686    HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
 1687        IDWriteFontSet1 *This,
 1688        IDWriteFontFaceReference *reference,
 1689        UINT32 *index,
 1690        WINBOOL *exists);
 1691
 1692    HRESULT (STDMETHODCALLTYPE *FindFontFace)(
 1693        IDWriteFontSet1 *This,
 1694        IDWriteFontFace *fontface,
 1695        UINT32 *index,
 1696        WINBOOL *exists);
 1697
 1698    HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
 1699        IDWriteFontSet1 *This,
 1700        DWRITE_FONT_PROPERTY_ID id,
 1701        IDWriteStringList **values);
 1702
 1703    HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
 1704        IDWriteFontSet1 *This,
 1705        DWRITE_FONT_PROPERTY_ID id,
 1706        const WCHAR *preferred_locales,
 1707        IDWriteStringList **values);
 1708
 1709    HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
 1710        IDWriteFontSet1 *This,
 1711        UINT32 index,
 1712        DWRITE_FONT_PROPERTY_ID id,
 1713        WINBOOL *exists,
 1714        IDWriteLocalizedStrings **values);
 1715
 1716    HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
 1717        IDWriteFontSet1 *This,
 1718        const DWRITE_FONT_PROPERTY *property,
 1719        UINT32 *count);
 1720
 1721    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
 1722        IDWriteFontSet1 *This,
 1723        const WCHAR *family,
 1724        DWRITE_FONT_WEIGHT weight,
 1725        DWRITE_FONT_STRETCH stretch,
 1726        DWRITE_FONT_STYLE style,
 1727        IDWriteFontSet **fontset);
 1728
 1729    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 1730        IDWriteFontSet1 *This,
 1731        const DWRITE_FONT_PROPERTY *props,
 1732        UINT32 count,
 1733        IDWriteFontSet **fontset);
 1734
 1735    /*** IDWriteFontSet1 methods ***/
 1736    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
 1737        IDWriteFontSet1 *This,
 1738        const DWRITE_FONT_PROPERTY *property,
 1739        const DWRITE_FONT_AXIS_VALUE *axis_values,
 1740        UINT32 num_values,
 1741        IDWriteFontSet1 **fontset);
 1742
 1743    HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
 1744        IDWriteFontSet1 *This,
 1745        IDWriteFontSet1 **fontset);
 1746
 1747    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
 1748        IDWriteFontSet1 *This,
 1749        const UINT32 *indices,
 1750        UINT32 num_indices,
 1751        IDWriteFontSet1 **fontset);
 1752
 1753    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
 1754        IDWriteFontSet1 *This,
 1755        const DWRITE_FONT_AXIS_RANGE *axis_ranges,
 1756        UINT32 num_ranges,
 1757        WINBOOL select_any_range,
 1758        IDWriteFontSet1 **fontset);
 1759
 1760    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
 1761        IDWriteFontSet1 *This,
 1762        const DWRITE_FONT_PROPERTY *props,
 1763        UINT32 num_properties,
 1764        WINBOOL select_any_property,
 1765        IDWriteFontSet1 **fontset);
 1766
 1767    HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
 1768        IDWriteFontSet1 *This,
 1769        const DWRITE_FONT_AXIS_RANGE *ranges,
 1770        UINT32 num_ranges,
 1771        WINBOOL select_any_range,
 1772        UINT32 *indices,
 1773        UINT32 num_indices,
 1774        UINT32 *actual_num_indices);
 1775
 1776    HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
 1777        IDWriteFontSet1 *This,
 1778        const DWRITE_FONT_PROPERTY *props,
 1779        UINT32 num_properties,
 1780        WINBOOL select_any_range,
 1781        UINT32 *indices,
 1782        UINT32 num_indices,
 1783        UINT32 *actual_num_indices);
 1784
 1785    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
 1786        IDWriteFontSet1 *This,
 1787        UINT32 font_index,
 1788        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 1789        UINT32 num_ranges,
 1790        UINT32 *actual_num_ranges);
 1791
 1792    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
 1793        IDWriteFontSet1 *This,
 1794        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 1795        UINT32 num_ranges,
 1796        UINT32 *actual_num_ranges);
 1797
 1798    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
 1799        IDWriteFontSet1 *This,
 1800        UINT32 index,
 1801        IDWriteFontFaceReference1 **reference);
 1802
 1803    HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
 1804        IDWriteFontSet1 *This,
 1805        UINT32 index,
 1806        IDWriteFontResource **resource);
 1807
 1808    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 1809        IDWriteFontSet1 *This,
 1810        UINT32 index,
 1811        IDWriteFontFace5 **fontface);
 1812
 1813    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
 1814        IDWriteFontSet1 *This,
 1815        UINT32 index);
 1816
 1817    END_INTERFACE
 1818} IDWriteFontSet1Vtbl;
 1819
 1820interface IDWriteFontSet1 {
 1821    CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl;
 1822};
 1823
 1824#ifdef COBJMACROS
 1825#ifndef WIDL_C_INLINE_WRAPPERS
 1826/*** IUnknown methods ***/
 1827#define IDWriteFontSet1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1828#define IDWriteFontSet1_AddRef(This) (This)->lpVtbl->AddRef(This)
 1829#define IDWriteFontSet1_Release(This) (This)->lpVtbl->Release(This)
 1830/*** IDWriteFontSet methods ***/
 1831#define IDWriteFontSet1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 1832#define IDWriteFontSet1_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
 1833#define IDWriteFontSet1_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
 1834#define IDWriteFontSet1_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
 1835#define IDWriteFontSet1_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
 1836#define IDWriteFontSet1_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
 1837#define IDWriteFontSet1_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
 1838#define IDWriteFontSet1_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
 1839/*** IDWriteFontSet1 methods ***/
 1840#define IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
 1841#define IDWriteFontSet1_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
 1842#define IDWriteFontSet1_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
 1843#define IDWriteFontSet1_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
 1844#define IDWriteFontSet1_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
 1845#define IDWriteFontSet1_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
 1846#define IDWriteFontSet1_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
 1847#define IDWriteFontSet1_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
 1848#define IDWriteFontSet1_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
 1849#define IDWriteFontSet1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
 1850#define IDWriteFontSet1_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
 1851#define IDWriteFontSet1_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
 1852#define IDWriteFontSet1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
 1853#else
 1854/*** IUnknown methods ***/
 1855static inline HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This,REFIID riid,void **ppvObject) {
 1856    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1857}
 1858static inline ULONG IDWriteFontSet1_AddRef(IDWriteFontSet1* This) {
 1859    return This->lpVtbl->AddRef(This);
 1860}
 1861static inline ULONG IDWriteFontSet1_Release(IDWriteFontSet1* This) {
 1862    return This->lpVtbl->Release(This);
 1863}
 1864/*** IDWriteFontSet methods ***/
 1865static inline UINT32 IDWriteFontSet1_GetFontCount(IDWriteFontSet1* This) {
 1866    return This->lpVtbl->GetFontCount(This);
 1867}
 1868static inline HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
 1869    return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
 1870}
 1871static inline HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
 1872    return This->lpVtbl->FindFontFace(This,fontface,index,exists);
 1873}
 1874static inline HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
 1875    return This->lpVtbl->GetPropertyValues__(This,id,values);
 1876}
 1877static inline HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
 1878    return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
 1879}
 1880static inline HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
 1881    return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
 1882}
 1883static inline HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
 1884    return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
 1885}
 1886static inline HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
 1887    return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
 1888}
 1889/*** IDWriteFontSet1 methods ***/
 1890static inline HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
 1891    return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
 1892}
 1893static inline HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This,IDWriteFontSet1 **fontset) {
 1894    return This->lpVtbl->GetFirstFontResources(This,fontset);
 1895}
 1896static inline HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
 1897    return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
 1898}
 1899static inline HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
 1900    return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
 1901}
 1902static inline HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
 1903    return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
 1904}
 1905static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
 1906    return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
 1907}
 1908static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
 1909    return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
 1910}
 1911static inline HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
 1912    return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
 1913}
 1914static inline HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
 1915    return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
 1916}
 1917static inline HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
 1918    return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
 1919}
 1920static inline HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This,UINT32 index,IDWriteFontResource **resource) {
 1921    return This->lpVtbl->CreateFontResource(This,index,resource);
 1922}
 1923static inline HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This,UINT32 index,IDWriteFontFace5 **fontface) {
 1924    return This->lpVtbl->CreateFontFace(This,index,fontface);
 1925}
 1926static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This,UINT32 index) {
 1927    return This->lpVtbl->GetFontLocality(This,index);
 1928}
 1929#endif
 1930#endif
 1931
 1932#endif
 1933
 1934
 1935#endif  /* __IDWriteFontSet1_INTERFACE_DEFINED__ */
 1936
 1937/*****************************************************************************
 1938 * IDWriteFont3 interface
 1939 */
 1940#ifndef __IDWriteFont3_INTERFACE_DEFINED__
 1941#define __IDWriteFont3_INTERFACE_DEFINED__
 1942
 1943DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44);
 1944#if defined(__cplusplus) && !defined(CINTERFACE)
 1945MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944")
 1946IDWriteFont3 : public IDWriteFont2
 1947{
 1948    virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
 1949        IDWriteFontFace3 **fontface) = 0;
 1950
 1951    virtual WINBOOL STDMETHODCALLTYPE Equals(
 1952        IDWriteFont *font) = 0;
 1953
 1954    virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
 1955        IDWriteFontFaceReference **reference) = 0;
 1956
 1957    virtual WINBOOL STDMETHODCALLTYPE HasCharacter(
 1958        UINT32 character) = 0;
 1959
 1960    virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
 1961        ) = 0;
 1962
 1963};
 1964#ifdef __CRT_UUID_DECL
 1965__CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44)
 1966#endif
 1967#else
 1968typedef struct IDWriteFont3Vtbl {
 1969    BEGIN_INTERFACE
 1970
 1971    /*** IUnknown methods ***/
 1972    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1973        IDWriteFont3 *This,
 1974        REFIID riid,
 1975        void **ppvObject);
 1976
 1977    ULONG (STDMETHODCALLTYPE *AddRef)(
 1978        IDWriteFont3 *This);
 1979
 1980    ULONG (STDMETHODCALLTYPE *Release)(
 1981        IDWriteFont3 *This);
 1982
 1983    /*** IDWriteFont methods ***/
 1984    HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
 1985        IDWriteFont3 *This,
 1986        IDWriteFontFamily **family);
 1987
 1988    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
 1989        IDWriteFont3 *This);
 1990
 1991    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
 1992        IDWriteFont3 *This);
 1993
 1994    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
 1995        IDWriteFont3 *This);
 1996
 1997    WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
 1998        IDWriteFont3 *This);
 1999
 2000    HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
 2001        IDWriteFont3 *This,
 2002        IDWriteLocalizedStrings **names);
 2003
 2004    HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
 2005        IDWriteFont3 *This,
 2006        DWRITE_INFORMATIONAL_STRING_ID stringid,
 2007        IDWriteLocalizedStrings **strings,
 2008        WINBOOL *exists);
 2009
 2010    DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
 2011        IDWriteFont3 *This);
 2012
 2013    void (STDMETHODCALLTYPE *GetMetrics)(
 2014        IDWriteFont3 *This,
 2015        DWRITE_FONT_METRICS *metrics);
 2016
 2017    HRESULT (STDMETHODCALLTYPE *HasCharacter)(
 2018        IDWriteFont3 *This,
 2019        UINT32 value,
 2020        WINBOOL *exists);
 2021
 2022    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 2023        IDWriteFont3 *This,
 2024        IDWriteFontFace **face);
 2025
 2026    /*** IDWriteFont1 methods ***/
 2027    void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)(
 2028        IDWriteFont3 *This,
 2029        DWRITE_FONT_METRICS1 *metrics);
 2030
 2031    void (STDMETHODCALLTYPE *GetPanose)(
 2032        IDWriteFont3 *This,
 2033        DWRITE_PANOSE *panose);
 2034
 2035    HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
 2036        IDWriteFont3 *This,
 2037        UINT32 max_count,
 2038        DWRITE_UNICODE_RANGE *ranges,
 2039        UINT32 *count);
 2040
 2041    WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
 2042        IDWriteFont3 *This);
 2043
 2044    /*** IDWriteFont2 methods ***/
 2045    WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
 2046        IDWriteFont3 *This);
 2047
 2048    /*** IDWriteFont3 methods ***/
 2049    HRESULT (STDMETHODCALLTYPE *IDWriteFont3_CreateFontFace)(
 2050        IDWriteFont3 *This,
 2051        IDWriteFontFace3 **fontface);
 2052
 2053    WINBOOL (STDMETHODCALLTYPE *Equals)(
 2054        IDWriteFont3 *This,
 2055        IDWriteFont *font);
 2056
 2057    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 2058        IDWriteFont3 *This,
 2059        IDWriteFontFaceReference **reference);
 2060
 2061    WINBOOL (STDMETHODCALLTYPE *IDWriteFont3_HasCharacter)(
 2062        IDWriteFont3 *This,
 2063        UINT32 character);
 2064
 2065    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
 2066        IDWriteFont3 *This);
 2067
 2068    END_INTERFACE
 2069} IDWriteFont3Vtbl;
 2070
 2071interface IDWriteFont3 {
 2072    CONST_VTBL IDWriteFont3Vtbl* lpVtbl;
 2073};
 2074
 2075#ifdef COBJMACROS
 2076#ifndef WIDL_C_INLINE_WRAPPERS
 2077/*** IUnknown methods ***/
 2078#define IDWriteFont3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2079#define IDWriteFont3_AddRef(This) (This)->lpVtbl->AddRef(This)
 2080#define IDWriteFont3_Release(This) (This)->lpVtbl->Release(This)
 2081/*** IDWriteFont methods ***/
 2082#define IDWriteFont3_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family)
 2083#define IDWriteFont3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
 2084#define IDWriteFont3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
 2085#define IDWriteFont3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
 2086#define IDWriteFont3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
 2087#define IDWriteFont3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
 2088#define IDWriteFont3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
 2089#define IDWriteFont3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
 2090/*** IDWriteFont1 methods ***/
 2091#define IDWriteFont3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics)
 2092#define IDWriteFont3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
 2093#define IDWriteFont3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
 2094#define IDWriteFont3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
 2095/*** IDWriteFont2 methods ***/
 2096#define IDWriteFont3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
 2097/*** IDWriteFont3 methods ***/
 2098#define IDWriteFont3_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface)
 2099#define IDWriteFont3_Equals(This,font) (This)->lpVtbl->Equals(This,font)
 2100#define IDWriteFont3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
 2101#define IDWriteFont3_HasCharacter(This,character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This,character)
 2102#define IDWriteFont3_GetLocality(This) (This)->lpVtbl->GetLocality(This)
 2103#else
 2104/*** IUnknown methods ***/
 2105static inline HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This,REFIID riid,void **ppvObject) {
 2106    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2107}
 2108static inline ULONG IDWriteFont3_AddRef(IDWriteFont3* This) {
 2109    return This->lpVtbl->AddRef(This);
 2110}
 2111static inline ULONG IDWriteFont3_Release(IDWriteFont3* This) {
 2112    return This->lpVtbl->Release(This);
 2113}
 2114/*** IDWriteFont methods ***/
 2115static inline HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This,IDWriteFontFamily **family) {
 2116    return This->lpVtbl->GetFontFamily(This,family);
 2117}
 2118static inline DWRITE_FONT_WEIGHT IDWriteFont3_GetWeight(IDWriteFont3* This) {
 2119    return This->lpVtbl->GetWeight(This);
 2120}
 2121static inline DWRITE_FONT_STRETCH IDWriteFont3_GetStretch(IDWriteFont3* This) {
 2122    return This->lpVtbl->GetStretch(This);
 2123}
 2124static inline DWRITE_FONT_STYLE IDWriteFont3_GetStyle(IDWriteFont3* This) {
 2125    return This->lpVtbl->GetStyle(This);
 2126}
 2127static inline WINBOOL IDWriteFont3_IsSymbolFont(IDWriteFont3* This) {
 2128    return This->lpVtbl->IsSymbolFont(This);
 2129}
 2130static inline HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This,IDWriteLocalizedStrings **names) {
 2131    return This->lpVtbl->GetFaceNames(This,names);
 2132}
 2133static inline HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
 2134    return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
 2135}
 2136static inline DWRITE_FONT_SIMULATIONS IDWriteFont3_GetSimulations(IDWriteFont3* This) {
 2137    return This->lpVtbl->GetSimulations(This);
 2138}
 2139/*** IDWriteFont1 methods ***/
 2140static inline void IDWriteFont3_GetMetrics(IDWriteFont3* This,DWRITE_FONT_METRICS1 *metrics) {
 2141    This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics);
 2142}
 2143static inline void IDWriteFont3_GetPanose(IDWriteFont3* This,DWRITE_PANOSE *panose) {
 2144    This->lpVtbl->GetPanose(This,panose);
 2145}
 2146static inline HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
 2147    return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
 2148}
 2149static inline WINBOOL IDWriteFont3_IsMonospacedFont(IDWriteFont3* This) {
 2150    return This->lpVtbl->IsMonospacedFont(This);
 2151}
 2152/*** IDWriteFont2 methods ***/
 2153static inline WINBOOL IDWriteFont3_IsColorFont(IDWriteFont3* This) {
 2154    return This->lpVtbl->IsColorFont(This);
 2155}
 2156/*** IDWriteFont3 methods ***/
 2157static inline HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This,IDWriteFontFace3 **fontface) {
 2158    return This->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface);
 2159}
 2160static inline WINBOOL IDWriteFont3_Equals(IDWriteFont3* This,IDWriteFont *font) {
 2161    return This->lpVtbl->Equals(This,font);
 2162}
 2163static inline HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This,IDWriteFontFaceReference **reference) {
 2164    return This->lpVtbl->GetFontFaceReference(This,reference);
 2165}
 2166static inline WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This,UINT32 character) {
 2167    return This->lpVtbl->IDWriteFont3_HasCharacter(This,character);
 2168}
 2169static inline DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) {
 2170    return This->lpVtbl->GetLocality(This);
 2171}
 2172#endif
 2173#endif
 2174
 2175#endif
 2176
 2177
 2178#endif  /* __IDWriteFont3_INTERFACE_DEFINED__ */
 2179
 2180/*****************************************************************************
 2181 * IDWriteFontFamily1 interface
 2182 */
 2183#ifndef __IDWriteFontFamily1_INTERFACE_DEFINED__
 2184#define __IDWriteFontFamily1_INTERFACE_DEFINED__
 2185
 2186DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf);
 2187#if defined(__cplusplus) && !defined(CINTERFACE)
 2188MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7adf")
 2189IDWriteFontFamily1 : public IDWriteFontFamily
 2190{
 2191    virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
 2192        UINT32 index) = 0;
 2193
 2194    virtual HRESULT STDMETHODCALLTYPE GetFont(
 2195        UINT32 index,
 2196        IDWriteFont3 **font) = 0;
 2197
 2198    virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
 2199        UINT32 index,
 2200        IDWriteFontFaceReference **reference) = 0;
 2201
 2202};
 2203#ifdef __CRT_UUID_DECL
 2204__CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf)
 2205#endif
 2206#else
 2207typedef struct IDWriteFontFamily1Vtbl {
 2208    BEGIN_INTERFACE
 2209
 2210    /*** IUnknown methods ***/
 2211    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2212        IDWriteFontFamily1 *This,
 2213        REFIID riid,
 2214        void **ppvObject);
 2215
 2216    ULONG (STDMETHODCALLTYPE *AddRef)(
 2217        IDWriteFontFamily1 *This);
 2218
 2219    ULONG (STDMETHODCALLTYPE *Release)(
 2220        IDWriteFontFamily1 *This);
 2221
 2222    /*** IDWriteFontList methods ***/
 2223    HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
 2224        IDWriteFontFamily1 *This,
 2225        IDWriteFontCollection **collection);
 2226
 2227    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 2228        IDWriteFontFamily1 *This);
 2229
 2230    HRESULT (STDMETHODCALLTYPE *GetFont)(
 2231        IDWriteFontFamily1 *This,
 2232        UINT32 index,
 2233        IDWriteFont **font);
 2234
 2235    /*** IDWriteFontFamily methods ***/
 2236    HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
 2237        IDWriteFontFamily1 *This,
 2238        IDWriteLocalizedStrings **names);
 2239
 2240    HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
 2241        IDWriteFontFamily1 *This,
 2242        DWRITE_FONT_WEIGHT weight,
 2243        DWRITE_FONT_STRETCH stretch,
 2244        DWRITE_FONT_STYLE style,
 2245        IDWriteFont **font);
 2246
 2247    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 2248        IDWriteFontFamily1 *This,
 2249        DWRITE_FONT_WEIGHT weight,
 2250        DWRITE_FONT_STRETCH stretch,
 2251        DWRITE_FONT_STYLE style,
 2252        IDWriteFontList **fonts);
 2253
 2254    /*** IDWriteFontFamily1 methods ***/
 2255    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
 2256        IDWriteFontFamily1 *This,
 2257        UINT32 index);
 2258
 2259    HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)(
 2260        IDWriteFontFamily1 *This,
 2261        UINT32 index,
 2262        IDWriteFont3 **font);
 2263
 2264    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 2265        IDWriteFontFamily1 *This,
 2266        UINT32 index,
 2267        IDWriteFontFaceReference **reference);
 2268
 2269    END_INTERFACE
 2270} IDWriteFontFamily1Vtbl;
 2271
 2272interface IDWriteFontFamily1 {
 2273    CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl;
 2274};
 2275
 2276#ifdef COBJMACROS
 2277#ifndef WIDL_C_INLINE_WRAPPERS
 2278/*** IUnknown methods ***/
 2279#define IDWriteFontFamily1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2280#define IDWriteFontFamily1_AddRef(This) (This)->lpVtbl->AddRef(This)
 2281#define IDWriteFontFamily1_Release(This) (This)->lpVtbl->Release(This)
 2282/*** IDWriteFontList methods ***/
 2283#define IDWriteFontFamily1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
 2284#define IDWriteFontFamily1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 2285/*** IDWriteFontFamily methods ***/
 2286#define IDWriteFontFamily1_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
 2287#define IDWriteFontFamily1_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
 2288#define IDWriteFontFamily1_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts)
 2289/*** IDWriteFontFamily1 methods ***/
 2290#define IDWriteFontFamily1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
 2291#define IDWriteFontFamily1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font)
 2292#define IDWriteFontFamily1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
 2293#else
 2294/*** IUnknown methods ***/
 2295static inline HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This,REFIID riid,void **ppvObject) {
 2296    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2297}
 2298static inline ULONG IDWriteFontFamily1_AddRef(IDWriteFontFamily1* This) {
 2299    return This->lpVtbl->AddRef(This);
 2300}
 2301static inline ULONG IDWriteFontFamily1_Release(IDWriteFontFamily1* This) {
 2302    return This->lpVtbl->Release(This);
 2303}
 2304/*** IDWriteFontList methods ***/
 2305static inline HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This,IDWriteFontCollection **collection) {
 2306    return This->lpVtbl->GetFontCollection(This,collection);
 2307}
 2308static inline UINT32 IDWriteFontFamily1_GetFontCount(IDWriteFontFamily1* This) {
 2309    return This->lpVtbl->GetFontCount(This);
 2310}
 2311/*** IDWriteFontFamily methods ***/
 2312static inline HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This,IDWriteLocalizedStrings **names) {
 2313    return This->lpVtbl->GetFamilyNames(This,names);
 2314}
 2315static inline HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
 2316    return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
 2317}
 2318static inline HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) {
 2319    return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts);
 2320}
 2321/*** IDWriteFontFamily1 methods ***/
 2322static inline DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This,UINT32 index) {
 2323    return This->lpVtbl->GetFontLocality(This,index);
 2324}
 2325static inline HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This,UINT32 index,IDWriteFont3 **font) {
 2326    return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font);
 2327}
 2328static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This,UINT32 index,IDWriteFontFaceReference **reference) {
 2329    return This->lpVtbl->GetFontFaceReference(This,index,reference);
 2330}
 2331#endif
 2332#endif
 2333
 2334#endif
 2335
 2336
 2337#endif  /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */
 2338
 2339/*****************************************************************************
 2340 * IDWriteFontFamily2 interface
 2341 */
 2342#ifndef __IDWriteFontFamily2_INTERFACE_DEFINED__
 2343#define __IDWriteFontFamily2_INTERFACE_DEFINED__
 2344
 2345DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3);
 2346#if defined(__cplusplus) && !defined(CINTERFACE)
 2347MIDL_INTERFACE("3ed49e77-a398-4261-b9cf-c126c2131ef3")
 2348IDWriteFontFamily2 : public IDWriteFontFamily1
 2349{
 2350    virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
 2351        const DWRITE_FONT_AXIS_VALUE *axis_values,
 2352        UINT32 num_values,
 2353        IDWriteFontList2 **fontlist) = 0;
 2354
 2355    virtual HRESULT STDMETHODCALLTYPE GetFontSet(
 2356        IDWriteFontSet1 **fontset) = 0;
 2357
 2358};
 2359#ifdef __CRT_UUID_DECL
 2360__CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3)
 2361#endif
 2362#else
 2363typedef struct IDWriteFontFamily2Vtbl {
 2364    BEGIN_INTERFACE
 2365
 2366    /*** IUnknown methods ***/
 2367    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2368        IDWriteFontFamily2 *This,
 2369        REFIID riid,
 2370        void **ppvObject);
 2371
 2372    ULONG (STDMETHODCALLTYPE *AddRef)(
 2373        IDWriteFontFamily2 *This);
 2374
 2375    ULONG (STDMETHODCALLTYPE *Release)(
 2376        IDWriteFontFamily2 *This);
 2377
 2378    /*** IDWriteFontList methods ***/
 2379    HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
 2380        IDWriteFontFamily2 *This,
 2381        IDWriteFontCollection **collection);
 2382
 2383    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 2384        IDWriteFontFamily2 *This);
 2385
 2386    HRESULT (STDMETHODCALLTYPE *GetFont)(
 2387        IDWriteFontFamily2 *This,
 2388        UINT32 index,
 2389        IDWriteFont **font);
 2390
 2391    /*** IDWriteFontFamily methods ***/
 2392    HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
 2393        IDWriteFontFamily2 *This,
 2394        IDWriteLocalizedStrings **names);
 2395
 2396    HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)(
 2397        IDWriteFontFamily2 *This,
 2398        DWRITE_FONT_WEIGHT weight,
 2399        DWRITE_FONT_STRETCH stretch,
 2400        DWRITE_FONT_STYLE style,
 2401        IDWriteFont **font);
 2402
 2403    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 2404        IDWriteFontFamily2 *This,
 2405        DWRITE_FONT_WEIGHT weight,
 2406        DWRITE_FONT_STRETCH stretch,
 2407        DWRITE_FONT_STYLE style,
 2408        IDWriteFontList **fonts);
 2409
 2410    /*** IDWriteFontFamily1 methods ***/
 2411    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
 2412        IDWriteFontFamily2 *This,
 2413        UINT32 index);
 2414
 2415    HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)(
 2416        IDWriteFontFamily2 *This,
 2417        UINT32 index,
 2418        IDWriteFont3 **font);
 2419
 2420    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 2421        IDWriteFontFamily2 *This,
 2422        UINT32 index,
 2423        IDWriteFontFaceReference **reference);
 2424
 2425    /*** IDWriteFontFamily2 methods ***/
 2426    HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily2_GetMatchingFonts)(
 2427        IDWriteFontFamily2 *This,
 2428        const DWRITE_FONT_AXIS_VALUE *axis_values,
 2429        UINT32 num_values,
 2430        IDWriteFontList2 **fontlist);
 2431
 2432    HRESULT (STDMETHODCALLTYPE *GetFontSet)(
 2433        IDWriteFontFamily2 *This,
 2434        IDWriteFontSet1 **fontset);
 2435
 2436    END_INTERFACE
 2437} IDWriteFontFamily2Vtbl;
 2438
 2439interface IDWriteFontFamily2 {
 2440    CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl;
 2441};
 2442
 2443#ifdef COBJMACROS
 2444#ifndef WIDL_C_INLINE_WRAPPERS
 2445/*** IUnknown methods ***/
 2446#define IDWriteFontFamily2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2447#define IDWriteFontFamily2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2448#define IDWriteFontFamily2_Release(This) (This)->lpVtbl->Release(This)
 2449/*** IDWriteFontList methods ***/
 2450#define IDWriteFontFamily2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
 2451#define IDWriteFontFamily2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 2452/*** IDWriteFontFamily methods ***/
 2453#define IDWriteFontFamily2_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
 2454#define IDWriteFontFamily2_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font)
 2455/*** IDWriteFontFamily1 methods ***/
 2456#define IDWriteFontFamily2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
 2457#define IDWriteFontFamily2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font)
 2458#define IDWriteFontFamily2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
 2459/*** IDWriteFontFamily2 methods ***/
 2460#define IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist)
 2461#define IDWriteFontFamily2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
 2462#else
 2463/*** IUnknown methods ***/
 2464static inline HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This,REFIID riid,void **ppvObject) {
 2465    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2466}
 2467static inline ULONG IDWriteFontFamily2_AddRef(IDWriteFontFamily2* This) {
 2468    return This->lpVtbl->AddRef(This);
 2469}
 2470static inline ULONG IDWriteFontFamily2_Release(IDWriteFontFamily2* This) {
 2471    return This->lpVtbl->Release(This);
 2472}
 2473/*** IDWriteFontList methods ***/
 2474static inline HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This,IDWriteFontCollection **collection) {
 2475    return This->lpVtbl->GetFontCollection(This,collection);
 2476}
 2477static inline UINT32 IDWriteFontFamily2_GetFontCount(IDWriteFontFamily2* This) {
 2478    return This->lpVtbl->GetFontCount(This);
 2479}
 2480/*** IDWriteFontFamily methods ***/
 2481static inline HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This,IDWriteLocalizedStrings **names) {
 2482    return This->lpVtbl->GetFamilyNames(This,names);
 2483}
 2484static inline HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) {
 2485    return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font);
 2486}
 2487/*** IDWriteFontFamily1 methods ***/
 2488static inline DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This,UINT32 index) {
 2489    return This->lpVtbl->GetFontLocality(This,index);
 2490}
 2491static inline HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This,UINT32 index,IDWriteFont3 **font) {
 2492    return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font);
 2493}
 2494static inline HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This,UINT32 index,IDWriteFontFaceReference **reference) {
 2495    return This->lpVtbl->GetFontFaceReference(This,index,reference);
 2496}
 2497/*** IDWriteFontFamily2 methods ***/
 2498static inline HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
 2499    return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist);
 2500}
 2501static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This,IDWriteFontSet1 **fontset) {
 2502    return This->lpVtbl->GetFontSet(This,fontset);
 2503}
 2504#endif
 2505#endif
 2506
 2507#endif
 2508
 2509
 2510#endif  /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */
 2511
 2512/*****************************************************************************
 2513 * IDWriteFontCollection1 interface
 2514 */
 2515#ifndef __IDWriteFontCollection1_INTERFACE_DEFINED__
 2516#define __IDWriteFontCollection1_INTERFACE_DEFINED__
 2517
 2518DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c);
 2519#if defined(__cplusplus) && !defined(CINTERFACE)
 2520MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116c")
 2521IDWriteFontCollection1 : public IDWriteFontCollection
 2522{
 2523    virtual HRESULT STDMETHODCALLTYPE GetFontSet(
 2524        IDWriteFontSet **fontset) = 0;
 2525
 2526    virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
 2527        UINT32 index,
 2528        IDWriteFontFamily1 **family) = 0;
 2529
 2530};
 2531#ifdef __CRT_UUID_DECL
 2532__CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c)
 2533#endif
 2534#else
 2535typedef struct IDWriteFontCollection1Vtbl {
 2536    BEGIN_INTERFACE
 2537
 2538    /*** IUnknown methods ***/
 2539    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2540        IDWriteFontCollection1 *This,
 2541        REFIID riid,
 2542        void **ppvObject);
 2543
 2544    ULONG (STDMETHODCALLTYPE *AddRef)(
 2545        IDWriteFontCollection1 *This);
 2546
 2547    ULONG (STDMETHODCALLTYPE *Release)(
 2548        IDWriteFontCollection1 *This);
 2549
 2550    /*** IDWriteFontCollection methods ***/
 2551    UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
 2552        IDWriteFontCollection1 *This);
 2553
 2554    HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
 2555        IDWriteFontCollection1 *This,
 2556        UINT32 index,
 2557        IDWriteFontFamily **family);
 2558
 2559    HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
 2560        IDWriteFontCollection1 *This,
 2561        const WCHAR *name,
 2562        UINT32 *index,
 2563        WINBOOL *exists);
 2564
 2565    HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
 2566        IDWriteFontCollection1 *This,
 2567        IDWriteFontFace *face,
 2568        IDWriteFont **font);
 2569
 2570    /*** IDWriteFontCollection1 methods ***/
 2571    HRESULT (STDMETHODCALLTYPE *GetFontSet)(
 2572        IDWriteFontCollection1 *This,
 2573        IDWriteFontSet **fontset);
 2574
 2575    HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
 2576        IDWriteFontCollection1 *This,
 2577        UINT32 index,
 2578        IDWriteFontFamily1 **family);
 2579
 2580    END_INTERFACE
 2581} IDWriteFontCollection1Vtbl;
 2582
 2583interface IDWriteFontCollection1 {
 2584    CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl;
 2585};
 2586
 2587#ifdef COBJMACROS
 2588#ifndef WIDL_C_INLINE_WRAPPERS
 2589/*** IUnknown methods ***/
 2590#define IDWriteFontCollection1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2591#define IDWriteFontCollection1_AddRef(This) (This)->lpVtbl->AddRef(This)
 2592#define IDWriteFontCollection1_Release(This) (This)->lpVtbl->Release(This)
 2593/*** IDWriteFontCollection methods ***/
 2594#define IDWriteFontCollection1_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
 2595#define IDWriteFontCollection1_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
 2596#define IDWriteFontCollection1_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
 2597/*** IDWriteFontCollection1 methods ***/
 2598#define IDWriteFontCollection1_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
 2599#define IDWriteFontCollection1_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family)
 2600#else
 2601/*** IUnknown methods ***/
 2602static inline HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This,REFIID riid,void **ppvObject) {
 2603    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2604}
 2605static inline ULONG IDWriteFontCollection1_AddRef(IDWriteFontCollection1* This) {
 2606    return This->lpVtbl->AddRef(This);
 2607}
 2608static inline ULONG IDWriteFontCollection1_Release(IDWriteFontCollection1* This) {
 2609    return This->lpVtbl->Release(This);
 2610}
 2611/*** IDWriteFontCollection methods ***/
 2612static inline UINT32 IDWriteFontCollection1_GetFontFamilyCount(IDWriteFontCollection1* This) {
 2613    return This->lpVtbl->GetFontFamilyCount(This);
 2614}
 2615static inline HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
 2616    return This->lpVtbl->FindFamilyName(This,name,index,exists);
 2617}
 2618static inline HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This,IDWriteFontFace *face,IDWriteFont **font) {
 2619    return This->lpVtbl->GetFontFromFontFace(This,face,font);
 2620}
 2621/*** IDWriteFontCollection1 methods ***/
 2622static inline HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This,IDWriteFontSet **fontset) {
 2623    return This->lpVtbl->GetFontSet(This,fontset);
 2624}
 2625static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This,UINT32 index,IDWriteFontFamily1 **family) {
 2626    return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family);
 2627}
 2628#endif
 2629#endif
 2630
 2631#endif
 2632
 2633
 2634#endif  /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */
 2635
 2636/*****************************************************************************
 2637 * IDWriteFontCollection2 interface
 2638 */
 2639#ifndef __IDWriteFontCollection2_INTERFACE_DEFINED__
 2640#define __IDWriteFontCollection2_INTERFACE_DEFINED__
 2641
 2642DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0);
 2643#if defined(__cplusplus) && !defined(CINTERFACE)
 2644MIDL_INTERFACE("514039c6-4617-4064-bf8b-92ea83e506e0")
 2645IDWriteFontCollection2 : public IDWriteFontCollection1
 2646{
 2647    virtual HRESULT STDMETHODCALLTYPE GetFontFamily(
 2648        UINT32 index,
 2649        IDWriteFontFamily2 **family) = 0;
 2650
 2651    virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
 2652        const WCHAR *familyname,
 2653        const DWRITE_FONT_AXIS_VALUE *axis_values,
 2654        UINT32 num_values,
 2655        IDWriteFontList2 **fontlist) = 0;
 2656
 2657    virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel(
 2658        ) = 0;
 2659
 2660    virtual HRESULT STDMETHODCALLTYPE GetFontSet(
 2661        IDWriteFontSet1 **fontset) = 0;
 2662
 2663};
 2664#ifdef __CRT_UUID_DECL
 2665__CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0)
 2666#endif
 2667#else
 2668typedef struct IDWriteFontCollection2Vtbl {
 2669    BEGIN_INTERFACE
 2670
 2671    /*** IUnknown methods ***/
 2672    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2673        IDWriteFontCollection2 *This,
 2674        REFIID riid,
 2675        void **ppvObject);
 2676
 2677    ULONG (STDMETHODCALLTYPE *AddRef)(
 2678        IDWriteFontCollection2 *This);
 2679
 2680    ULONG (STDMETHODCALLTYPE *Release)(
 2681        IDWriteFontCollection2 *This);
 2682
 2683    /*** IDWriteFontCollection methods ***/
 2684    UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
 2685        IDWriteFontCollection2 *This);
 2686
 2687    HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
 2688        IDWriteFontCollection2 *This,
 2689        UINT32 index,
 2690        IDWriteFontFamily **family);
 2691
 2692    HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
 2693        IDWriteFontCollection2 *This,
 2694        const WCHAR *name,
 2695        UINT32 *index,
 2696        WINBOOL *exists);
 2697
 2698    HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
 2699        IDWriteFontCollection2 *This,
 2700        IDWriteFontFace *face,
 2701        IDWriteFont **font);
 2702
 2703    /*** IDWriteFontCollection1 methods ***/
 2704    HRESULT (STDMETHODCALLTYPE *GetFontSet)(
 2705        IDWriteFontCollection2 *This,
 2706        IDWriteFontSet **fontset);
 2707
 2708    HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
 2709        IDWriteFontCollection2 *This,
 2710        UINT32 index,
 2711        IDWriteFontFamily1 **family);
 2712
 2713    /*** IDWriteFontCollection2 methods ***/
 2714    HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)(
 2715        IDWriteFontCollection2 *This,
 2716        UINT32 index,
 2717        IDWriteFontFamily2 **family);
 2718
 2719    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 2720        IDWriteFontCollection2 *This,
 2721        const WCHAR *familyname,
 2722        const DWRITE_FONT_AXIS_VALUE *axis_values,
 2723        UINT32 num_values,
 2724        IDWriteFontList2 **fontlist);
 2725
 2726    DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)(
 2727        IDWriteFontCollection2 *This);
 2728
 2729    HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)(
 2730        IDWriteFontCollection2 *This,
 2731        IDWriteFontSet1 **fontset);
 2732
 2733    END_INTERFACE
 2734} IDWriteFontCollection2Vtbl;
 2735
 2736interface IDWriteFontCollection2 {
 2737    CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl;
 2738};
 2739
 2740#ifdef COBJMACROS
 2741#ifndef WIDL_C_INLINE_WRAPPERS
 2742/*** IUnknown methods ***/
 2743#define IDWriteFontCollection2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2744#define IDWriteFontCollection2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2745#define IDWriteFontCollection2_Release(This) (This)->lpVtbl->Release(This)
 2746/*** IDWriteFontCollection methods ***/
 2747#define IDWriteFontCollection2_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
 2748#define IDWriteFontCollection2_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
 2749#define IDWriteFontCollection2_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
 2750/*** IDWriteFontCollection1 methods ***/
 2751/*** IDWriteFontCollection2 methods ***/
 2752#define IDWriteFontCollection2_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family)
 2753#define IDWriteFontCollection2_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist)
 2754#define IDWriteFontCollection2_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This)
 2755#define IDWriteFontCollection2_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset)
 2756#else
 2757/*** IUnknown methods ***/
 2758static inline HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This,REFIID riid,void **ppvObject) {
 2759    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2760}
 2761static inline ULONG IDWriteFontCollection2_AddRef(IDWriteFontCollection2* This) {
 2762    return This->lpVtbl->AddRef(This);
 2763}
 2764static inline ULONG IDWriteFontCollection2_Release(IDWriteFontCollection2* This) {
 2765    return This->lpVtbl->Release(This);
 2766}
 2767/*** IDWriteFontCollection methods ***/
 2768static inline UINT32 IDWriteFontCollection2_GetFontFamilyCount(IDWriteFontCollection2* This) {
 2769    return This->lpVtbl->GetFontFamilyCount(This);
 2770}
 2771static inline HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
 2772    return This->lpVtbl->FindFamilyName(This,name,index,exists);
 2773}
 2774static inline HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This,IDWriteFontFace *face,IDWriteFont **font) {
 2775    return This->lpVtbl->GetFontFromFontFace(This,face,font);
 2776}
 2777/*** IDWriteFontCollection1 methods ***/
 2778/*** IDWriteFontCollection2 methods ***/
 2779static inline HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This,UINT32 index,IDWriteFontFamily2 **family) {
 2780    return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family);
 2781}
 2782static inline HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
 2783    return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist);
 2784}
 2785static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection2_GetFontFamilyModel(IDWriteFontCollection2* This) {
 2786    return This->lpVtbl->GetFontFamilyModel(This);
 2787}
 2788static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This,IDWriteFontSet1 **fontset) {
 2789    return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset);
 2790}
 2791#endif
 2792#endif
 2793
 2794#endif
 2795
 2796
 2797#endif  /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */
 2798
 2799/*****************************************************************************
 2800 * IDWriteFontCollection3 interface
 2801 */
 2802#ifndef __IDWriteFontCollection3_INTERFACE_DEFINED__
 2803#define __IDWriteFontCollection3_INTERFACE_DEFINED__
 2804
 2805DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9);
 2806#if defined(__cplusplus) && !defined(CINTERFACE)
 2807MIDL_INTERFACE("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9")
 2808IDWriteFontCollection3 : public IDWriteFontCollection2
 2809{
 2810    virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent(
 2811        ) = 0;
 2812
 2813};
 2814#ifdef __CRT_UUID_DECL
 2815__CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9)
 2816#endif
 2817#else
 2818typedef struct IDWriteFontCollection3Vtbl {
 2819    BEGIN_INTERFACE
 2820
 2821    /*** IUnknown methods ***/
 2822    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2823        IDWriteFontCollection3 *This,
 2824        REFIID riid,
 2825        void **ppvObject);
 2826
 2827    ULONG (STDMETHODCALLTYPE *AddRef)(
 2828        IDWriteFontCollection3 *This);
 2829
 2830    ULONG (STDMETHODCALLTYPE *Release)(
 2831        IDWriteFontCollection3 *This);
 2832
 2833    /*** IDWriteFontCollection methods ***/
 2834    UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)(
 2835        IDWriteFontCollection3 *This);
 2836
 2837    HRESULT (STDMETHODCALLTYPE *GetFontFamily)(
 2838        IDWriteFontCollection3 *This,
 2839        UINT32 index,
 2840        IDWriteFontFamily **family);
 2841
 2842    HRESULT (STDMETHODCALLTYPE *FindFamilyName)(
 2843        IDWriteFontCollection3 *This,
 2844        const WCHAR *name,
 2845        UINT32 *index,
 2846        WINBOOL *exists);
 2847
 2848    HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)(
 2849        IDWriteFontCollection3 *This,
 2850        IDWriteFontFace *face,
 2851        IDWriteFont **font);
 2852
 2853    /*** IDWriteFontCollection1 methods ***/
 2854    HRESULT (STDMETHODCALLTYPE *GetFontSet)(
 2855        IDWriteFontCollection3 *This,
 2856        IDWriteFontSet **fontset);
 2857
 2858    HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)(
 2859        IDWriteFontCollection3 *This,
 2860        UINT32 index,
 2861        IDWriteFontFamily1 **family);
 2862
 2863    /*** IDWriteFontCollection2 methods ***/
 2864    HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)(
 2865        IDWriteFontCollection3 *This,
 2866        UINT32 index,
 2867        IDWriteFontFamily2 **family);
 2868
 2869    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 2870        IDWriteFontCollection3 *This,
 2871        const WCHAR *familyname,
 2872        const DWRITE_FONT_AXIS_VALUE *axis_values,
 2873        UINT32 num_values,
 2874        IDWriteFontList2 **fontlist);
 2875
 2876    DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)(
 2877        IDWriteFontCollection3 *This);
 2878
 2879    HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)(
 2880        IDWriteFontCollection3 *This,
 2881        IDWriteFontSet1 **fontset);
 2882
 2883    /*** IDWriteFontCollection3 methods ***/
 2884    HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
 2885        IDWriteFontCollection3 *This);
 2886
 2887    END_INTERFACE
 2888} IDWriteFontCollection3Vtbl;
 2889
 2890interface IDWriteFontCollection3 {
 2891    CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl;
 2892};
 2893
 2894#ifdef COBJMACROS
 2895#ifndef WIDL_C_INLINE_WRAPPERS
 2896/*** IUnknown methods ***/
 2897#define IDWriteFontCollection3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2898#define IDWriteFontCollection3_AddRef(This) (This)->lpVtbl->AddRef(This)
 2899#define IDWriteFontCollection3_Release(This) (This)->lpVtbl->Release(This)
 2900/*** IDWriteFontCollection methods ***/
 2901#define IDWriteFontCollection3_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This)
 2902#define IDWriteFontCollection3_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists)
 2903#define IDWriteFontCollection3_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font)
 2904/*** IDWriteFontCollection1 methods ***/
 2905/*** IDWriteFontCollection2 methods ***/
 2906#define IDWriteFontCollection3_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family)
 2907#define IDWriteFontCollection3_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist)
 2908#define IDWriteFontCollection3_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This)
 2909#define IDWriteFontCollection3_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset)
 2910/*** IDWriteFontCollection3 methods ***/
 2911#define IDWriteFontCollection3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
 2912#else
 2913/*** IUnknown methods ***/
 2914static inline HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This,REFIID riid,void **ppvObject) {
 2915    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2916}
 2917static inline ULONG IDWriteFontCollection3_AddRef(IDWriteFontCollection3* This) {
 2918    return This->lpVtbl->AddRef(This);
 2919}
 2920static inline ULONG IDWriteFontCollection3_Release(IDWriteFontCollection3* This) {
 2921    return This->lpVtbl->Release(This);
 2922}
 2923/*** IDWriteFontCollection methods ***/
 2924static inline UINT32 IDWriteFontCollection3_GetFontFamilyCount(IDWriteFontCollection3* This) {
 2925    return This->lpVtbl->GetFontFamilyCount(This);
 2926}
 2927static inline HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) {
 2928    return This->lpVtbl->FindFamilyName(This,name,index,exists);
 2929}
 2930static inline HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This,IDWriteFontFace *face,IDWriteFont **font) {
 2931    return This->lpVtbl->GetFontFromFontFace(This,face,font);
 2932}
 2933/*** IDWriteFontCollection1 methods ***/
 2934/*** IDWriteFontCollection2 methods ***/
 2935static inline HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This,UINT32 index,IDWriteFontFamily2 **family) {
 2936    return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family);
 2937}
 2938static inline HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) {
 2939    return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist);
 2940}
 2941static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection3_GetFontFamilyModel(IDWriteFontCollection3* This) {
 2942    return This->lpVtbl->GetFontFamilyModel(This);
 2943}
 2944static inline HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This,IDWriteFontSet1 **fontset) {
 2945    return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset);
 2946}
 2947/*** IDWriteFontCollection3 methods ***/
 2948static inline HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollection3* This) {
 2949    return This->lpVtbl->GetExpirationEvent(This);
 2950}
 2951#endif
 2952#endif
 2953
 2954#endif
 2955
 2956
 2957#endif  /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */
 2958
 2959/*****************************************************************************
 2960 * IDWriteFontFaceReference interface
 2961 */
 2962#ifndef __IDWriteFontFaceReference_INTERFACE_DEFINED__
 2963#define __IDWriteFontFaceReference_INTERFACE_DEFINED__
 2964
 2965DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd);
 2966#if defined(__cplusplus) && !defined(CINTERFACE)
 2967MIDL_INTERFACE("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd")
 2968IDWriteFontFaceReference : public IUnknown
 2969{
 2970    virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
 2971        IDWriteFontFace3 **fontface) = 0;
 2972
 2973    virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations(
 2974        DWRITE_FONT_SIMULATIONS simulations,
 2975        IDWriteFontFace3 **fontface) = 0;
 2976
 2977    virtual WINBOOL STDMETHODCALLTYPE Equals(
 2978        IDWriteFontFaceReference *reference) = 0;
 2979
 2980    virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex(
 2981        ) = 0;
 2982
 2983    virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations(
 2984        ) = 0;
 2985
 2986    virtual HRESULT STDMETHODCALLTYPE GetFontFile(
 2987        IDWriteFontFile **fontfile) = 0;
 2988
 2989    virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize(
 2990        ) = 0;
 2991
 2992    virtual UINT64 STDMETHODCALLTYPE GetFileSize(
 2993        ) = 0;
 2994
 2995    virtual HRESULT STDMETHODCALLTYPE GetFileTime(
 2996        FILETIME *writetime) = 0;
 2997
 2998    virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
 2999        ) = 0;
 3000
 3001    virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest(
 3002        ) = 0;
 3003
 3004    virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest(
 3005        const WCHAR *chars,
 3006        UINT32 count) = 0;
 3007
 3008    virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest(
 3009        const UINT16 *glyphs,
 3010        UINT32 count) = 0;
 3011
 3012    virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest(
 3013        UINT64 offset,
 3014        UINT64 size) = 0;
 3015
 3016};
 3017#ifdef __CRT_UUID_DECL
 3018__CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd)
 3019#endif
 3020#else
 3021typedef struct IDWriteFontFaceReferenceVtbl {
 3022    BEGIN_INTERFACE
 3023
 3024    /*** IUnknown methods ***/
 3025    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3026        IDWriteFontFaceReference *This,
 3027        REFIID riid,
 3028        void **ppvObject);
 3029
 3030    ULONG (STDMETHODCALLTYPE *AddRef)(
 3031        IDWriteFontFaceReference *This);
 3032
 3033    ULONG (STDMETHODCALLTYPE *Release)(
 3034        IDWriteFontFaceReference *This);
 3035
 3036    /*** IDWriteFontFaceReference methods ***/
 3037    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 3038        IDWriteFontFaceReference *This,
 3039        IDWriteFontFace3 **fontface);
 3040
 3041    HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)(
 3042        IDWriteFontFaceReference *This,
 3043        DWRITE_FONT_SIMULATIONS simulations,
 3044        IDWriteFontFace3 **fontface);
 3045
 3046    WINBOOL (STDMETHODCALLTYPE *Equals)(
 3047        IDWriteFontFaceReference *This,
 3048        IDWriteFontFaceReference *reference);
 3049
 3050    UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
 3051        IDWriteFontFaceReference *This);
 3052
 3053    DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
 3054        IDWriteFontFaceReference *This);
 3055
 3056    HRESULT (STDMETHODCALLTYPE *GetFontFile)(
 3057        IDWriteFontFaceReference *This,
 3058        IDWriteFontFile **fontfile);
 3059
 3060    UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)(
 3061        IDWriteFontFaceReference *This);
 3062
 3063    UINT64 (STDMETHODCALLTYPE *GetFileSize)(
 3064        IDWriteFontFaceReference *This);
 3065
 3066    HRESULT (STDMETHODCALLTYPE *GetFileTime)(
 3067        IDWriteFontFaceReference *This,
 3068        FILETIME *writetime);
 3069
 3070    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
 3071        IDWriteFontFaceReference *This);
 3072
 3073    HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)(
 3074        IDWriteFontFaceReference *This);
 3075
 3076    HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)(
 3077        IDWriteFontFaceReference *This,
 3078        const WCHAR *chars,
 3079        UINT32 count);
 3080
 3081    HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)(
 3082        IDWriteFontFaceReference *This,
 3083        const UINT16 *glyphs,
 3084        UINT32 count);
 3085
 3086    HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)(
 3087        IDWriteFontFaceReference *This,
 3088        UINT64 offset,
 3089        UINT64 size);
 3090
 3091    END_INTERFACE
 3092} IDWriteFontFaceReferenceVtbl;
 3093
 3094interface IDWriteFontFaceReference {
 3095    CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl;
 3096};
 3097
 3098#ifdef COBJMACROS
 3099#ifndef WIDL_C_INLINE_WRAPPERS
 3100/*** IUnknown methods ***/
 3101#define IDWriteFontFaceReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3102#define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This)
 3103#define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This)
 3104/*** IDWriteFontFaceReference methods ***/
 3105#define IDWriteFontFaceReference_CreateFontFace(This,fontface) (This)->lpVtbl->CreateFontFace(This,fontface)
 3106#define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface)
 3107#define IDWriteFontFaceReference_Equals(This,reference) (This)->lpVtbl->Equals(This,reference)
 3108#define IDWriteFontFaceReference_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
 3109#define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
 3110#define IDWriteFontFaceReference_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
 3111#define IDWriteFontFaceReference_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This)
 3112#define IDWriteFontFaceReference_GetFileSize(This) (This)->lpVtbl->GetFileSize(This)
 3113#define IDWriteFontFaceReference_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime)
 3114#define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This)
 3115#define IDWriteFontFaceReference_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This)
 3116#define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count)
 3117#define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count)
 3118#define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size)
 3119#else
 3120/*** IUnknown methods ***/
 3121static inline HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This,REFIID riid,void **ppvObject) {
 3122    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3123}
 3124static inline ULONG IDWriteFontFaceReference_AddRef(IDWriteFontFaceReference* This) {
 3125    return This->lpVtbl->AddRef(This);
 3126}
 3127static inline ULONG IDWriteFontFaceReference_Release(IDWriteFontFaceReference* This) {
 3128    return This->lpVtbl->Release(This);
 3129}
 3130/*** IDWriteFontFaceReference methods ***/
 3131static inline HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This,IDWriteFontFace3 **fontface) {
 3132    return This->lpVtbl->CreateFontFace(This,fontface);
 3133}
 3134static inline HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) {
 3135    return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface);
 3136}
 3137static inline WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This,IDWriteFontFaceReference *reference) {
 3138    return This->lpVtbl->Equals(This,reference);
 3139}
 3140static inline UINT32 IDWriteFontFaceReference_GetFontFaceIndex(IDWriteFontFaceReference* This) {
 3141    return This->lpVtbl->GetFontFaceIndex(This);
 3142}
 3143static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference_GetSimulations(IDWriteFontFaceReference* This) {
 3144    return This->lpVtbl->GetSimulations(This);
 3145}
 3146static inline HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This,IDWriteFontFile **fontfile) {
 3147    return This->lpVtbl->GetFontFile(This,fontfile);
 3148}
 3149static inline UINT64 IDWriteFontFaceReference_GetLocalFileSize(IDWriteFontFaceReference* This) {
 3150    return This->lpVtbl->GetLocalFileSize(This);
 3151}
 3152static inline UINT64 IDWriteFontFaceReference_GetFileSize(IDWriteFontFaceReference* This) {
 3153    return This->lpVtbl->GetFileSize(This);
 3154}
 3155static inline HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This,FILETIME *writetime) {
 3156    return This->lpVtbl->GetFileTime(This,writetime);
 3157}
 3158static inline DWRITE_LOCALITY IDWriteFontFaceReference_GetLocality(IDWriteFontFaceReference* This) {
 3159    return This->lpVtbl->GetLocality(This);
 3160}
 3161static inline HRESULT IDWriteFontFaceReference_EnqueueFontDownloadRequest(IDWriteFontFaceReference* This) {
 3162    return This->lpVtbl->EnqueueFontDownloadRequest(This);
 3163}
 3164static inline HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This,const WCHAR *chars,UINT32 count) {
 3165    return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count);
 3166}
 3167static inline HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This,const UINT16 *glyphs,UINT32 count) {
 3168    return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count);
 3169}
 3170static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This,UINT64 offset,UINT64 size) {
 3171    return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size);
 3172}
 3173#endif
 3174#endif
 3175
 3176#endif
 3177
 3178
 3179#endif  /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */
 3180
 3181/*****************************************************************************
 3182 * IDWriteFontFaceReference1 interface
 3183 */
 3184#ifndef __IDWriteFontFaceReference1_INTERFACE_DEFINED__
 3185#define __IDWriteFontFaceReference1_INTERFACE_DEFINED__
 3186
 3187DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a);
 3188#if defined(__cplusplus) && !defined(CINTERFACE)
 3189MIDL_INTERFACE("c081fe77-2fd1-41ac-a5a3-34983c4ba61a")
 3190IDWriteFontFaceReference1 : public IDWriteFontFaceReference
 3191{
 3192    virtual HRESULT STDMETHODCALLTYPE CreateFontFace(
 3193        IDWriteFontFace5 **fontface) = 0;
 3194
 3195    virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
 3196        ) = 0;
 3197
 3198    virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
 3199        DWRITE_FONT_AXIS_VALUE *values,
 3200        UINT32 num_values) = 0;
 3201
 3202};
 3203#ifdef __CRT_UUID_DECL
 3204__CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a)
 3205#endif
 3206#else
 3207typedef struct IDWriteFontFaceReference1Vtbl {
 3208    BEGIN_INTERFACE
 3209
 3210    /*** IUnknown methods ***/
 3211    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3212        IDWriteFontFaceReference1 *This,
 3213        REFIID riid,
 3214        void **ppvObject);
 3215
 3216    ULONG (STDMETHODCALLTYPE *AddRef)(
 3217        IDWriteFontFaceReference1 *This);
 3218
 3219    ULONG (STDMETHODCALLTYPE *Release)(
 3220        IDWriteFontFaceReference1 *This);
 3221
 3222    /*** IDWriteFontFaceReference methods ***/
 3223    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 3224        IDWriteFontFaceReference1 *This,
 3225        IDWriteFontFace3 **fontface);
 3226
 3227    HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)(
 3228        IDWriteFontFaceReference1 *This,
 3229        DWRITE_FONT_SIMULATIONS simulations,
 3230        IDWriteFontFace3 **fontface);
 3231
 3232    WINBOOL (STDMETHODCALLTYPE *Equals)(
 3233        IDWriteFontFaceReference1 *This,
 3234        IDWriteFontFaceReference *reference);
 3235
 3236    UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)(
 3237        IDWriteFontFaceReference1 *This);
 3238
 3239    DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
 3240        IDWriteFontFaceReference1 *This);
 3241
 3242    HRESULT (STDMETHODCALLTYPE *GetFontFile)(
 3243        IDWriteFontFaceReference1 *This,
 3244        IDWriteFontFile **fontfile);
 3245
 3246    UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)(
 3247        IDWriteFontFaceReference1 *This);
 3248
 3249    UINT64 (STDMETHODCALLTYPE *GetFileSize)(
 3250        IDWriteFontFaceReference1 *This);
 3251
 3252    HRESULT (STDMETHODCALLTYPE *GetFileTime)(
 3253        IDWriteFontFaceReference1 *This,
 3254        FILETIME *writetime);
 3255
 3256    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
 3257        IDWriteFontFaceReference1 *This);
 3258
 3259    HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)(
 3260        IDWriteFontFaceReference1 *This);
 3261
 3262    HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)(
 3263        IDWriteFontFaceReference1 *This,
 3264        const WCHAR *chars,
 3265        UINT32 count);
 3266
 3267    HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)(
 3268        IDWriteFontFaceReference1 *This,
 3269        const UINT16 *glyphs,
 3270        UINT32 count);
 3271
 3272    HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)(
 3273        IDWriteFontFaceReference1 *This,
 3274        UINT64 offset,
 3275        UINT64 size);
 3276
 3277    /*** IDWriteFontFaceReference1 methods ***/
 3278    HRESULT (STDMETHODCALLTYPE *IDWriteFontFaceReference1_CreateFontFace)(
 3279        IDWriteFontFaceReference1 *This,
 3280        IDWriteFontFace5 **fontface);
 3281
 3282    UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
 3283        IDWriteFontFaceReference1 *This);
 3284
 3285    HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
 3286        IDWriteFontFaceReference1 *This,
 3287        DWRITE_FONT_AXIS_VALUE *values,
 3288        UINT32 num_values);
 3289
 3290    END_INTERFACE
 3291} IDWriteFontFaceReference1Vtbl;
 3292
 3293interface IDWriteFontFaceReference1 {
 3294    CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl;
 3295};
 3296
 3297#ifdef COBJMACROS
 3298#ifndef WIDL_C_INLINE_WRAPPERS
 3299/*** IUnknown methods ***/
 3300#define IDWriteFontFaceReference1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3301#define IDWriteFontFaceReference1_AddRef(This) (This)->lpVtbl->AddRef(This)
 3302#define IDWriteFontFaceReference1_Release(This) (This)->lpVtbl->Release(This)
 3303/*** IDWriteFontFaceReference methods ***/
 3304#define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface)
 3305#define IDWriteFontFaceReference1_Equals(This,reference) (This)->lpVtbl->Equals(This,reference)
 3306#define IDWriteFontFaceReference1_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This)
 3307#define IDWriteFontFaceReference1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
 3308#define IDWriteFontFaceReference1_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile)
 3309#define IDWriteFontFaceReference1_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This)
 3310#define IDWriteFontFaceReference1_GetFileSize(This) (This)->lpVtbl->GetFileSize(This)
 3311#define IDWriteFontFaceReference1_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime)
 3312#define IDWriteFontFaceReference1_GetLocality(This) (This)->lpVtbl->GetLocality(This)
 3313#define IDWriteFontFaceReference1_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This)
 3314#define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count)
 3315#define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count)
 3316#define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size)
 3317/*** IDWriteFontFaceReference1 methods ***/
 3318#define IDWriteFontFaceReference1_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface)
 3319#define IDWriteFontFaceReference1_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
 3320#define IDWriteFontFaceReference1_GetFontAxisValues(This,values,num_values) (This)->lpVtbl->GetFontAxisValues(This,values,num_values)
 3321#else
 3322/*** IUnknown methods ***/
 3323static inline HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This,REFIID riid,void **ppvObject) {
 3324    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3325}
 3326static inline ULONG IDWriteFontFaceReference1_AddRef(IDWriteFontFaceReference1* This) {
 3327    return This->lpVtbl->AddRef(This);
 3328}
 3329static inline ULONG IDWriteFontFaceReference1_Release(IDWriteFontFaceReference1* This) {
 3330    return This->lpVtbl->Release(This);
 3331}
 3332/*** IDWriteFontFaceReference methods ***/
 3333static inline HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) {
 3334    return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface);
 3335}
 3336static inline WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This,IDWriteFontFaceReference *reference) {
 3337    return This->lpVtbl->Equals(This,reference);
 3338}
 3339static inline UINT32 IDWriteFontFaceReference1_GetFontFaceIndex(IDWriteFontFaceReference1* This) {
 3340    return This->lpVtbl->GetFontFaceIndex(This);
 3341}
 3342static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference1_GetSimulations(IDWriteFontFaceReference1* This) {
 3343    return This->lpVtbl->GetSimulations(This);
 3344}
 3345static inline HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This,IDWriteFontFile **fontfile) {
 3346    return This->lpVtbl->GetFontFile(This,fontfile);
 3347}
 3348static inline UINT64 IDWriteFontFaceReference1_GetLocalFileSize(IDWriteFontFaceReference1* This) {
 3349    return This->lpVtbl->GetLocalFileSize(This);
 3350}
 3351static inline UINT64 IDWriteFontFaceReference1_GetFileSize(IDWriteFontFaceReference1* This) {
 3352    return This->lpVtbl->GetFileSize(This);
 3353}
 3354static inline HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This,FILETIME *writetime) {
 3355    return This->lpVtbl->GetFileTime(This,writetime);
 3356}
 3357static inline DWRITE_LOCALITY IDWriteFontFaceReference1_GetLocality(IDWriteFontFaceReference1* This) {
 3358    return This->lpVtbl->GetLocality(This);
 3359}
 3360static inline HRESULT IDWriteFontFaceReference1_EnqueueFontDownloadRequest(IDWriteFontFaceReference1* This) {
 3361    return This->lpVtbl->EnqueueFontDownloadRequest(This);
 3362}
 3363static inline HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This,const WCHAR *chars,UINT32 count) {
 3364    return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count);
 3365}
 3366static inline HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This,const UINT16 *glyphs,UINT32 count) {
 3367    return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count);
 3368}
 3369static inline HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This,UINT64 offset,UINT64 size) {
 3370    return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size);
 3371}
 3372/*** IDWriteFontFaceReference1 methods ***/
 3373static inline HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This,IDWriteFontFace5 **fontface) {
 3374    return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface);
 3375}
 3376static inline UINT32 IDWriteFontFaceReference1_GetFontAxisValueCount(IDWriteFontFaceReference1* This) {
 3377    return This->lpVtbl->GetFontAxisValueCount(This);
 3378}
 3379static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) {
 3380    return This->lpVtbl->GetFontAxisValues(This,values,num_values);
 3381}
 3382#endif
 3383#endif
 3384
 3385#endif
 3386
 3387
 3388#endif  /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */
 3389
 3390/*****************************************************************************
 3391 * IDWriteFontList1 interface
 3392 */
 3393#ifndef __IDWriteFontList1_INTERFACE_DEFINED__
 3394#define __IDWriteFontList1_INTERFACE_DEFINED__
 3395
 3396DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde);
 3397#if defined(__cplusplus) && !defined(CINTERFACE)
 3398MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7ade")
 3399IDWriteFontList1 : public IDWriteFontList
 3400{
 3401    virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality(
 3402        UINT32 index) = 0;
 3403
 3404    virtual HRESULT STDMETHODCALLTYPE GetFont(
 3405        UINT32 index,
 3406        IDWriteFont3 **font) = 0;
 3407
 3408    virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
 3409        UINT32 index,
 3410        IDWriteFontFaceReference **reference) = 0;
 3411
 3412};
 3413#ifdef __CRT_UUID_DECL
 3414__CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde)
 3415#endif
 3416#else
 3417typedef struct IDWriteFontList1Vtbl {
 3418    BEGIN_INTERFACE
 3419
 3420    /*** IUnknown methods ***/
 3421    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3422        IDWriteFontList1 *This,
 3423        REFIID riid,
 3424        void **ppvObject);
 3425
 3426    ULONG (STDMETHODCALLTYPE *AddRef)(
 3427        IDWriteFontList1 *This);
 3428
 3429    ULONG (STDMETHODCALLTYPE *Release)(
 3430        IDWriteFontList1 *This);
 3431
 3432    /*** IDWriteFontList methods ***/
 3433    HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
 3434        IDWriteFontList1 *This,
 3435        IDWriteFontCollection **collection);
 3436
 3437    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 3438        IDWriteFontList1 *This);
 3439
 3440    HRESULT (STDMETHODCALLTYPE *GetFont)(
 3441        IDWriteFontList1 *This,
 3442        UINT32 index,
 3443        IDWriteFont **font);
 3444
 3445    /*** IDWriteFontList1 methods ***/
 3446    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
 3447        IDWriteFontList1 *This,
 3448        UINT32 index);
 3449
 3450    HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)(
 3451        IDWriteFontList1 *This,
 3452        UINT32 index,
 3453        IDWriteFont3 **font);
 3454
 3455    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 3456        IDWriteFontList1 *This,
 3457        UINT32 index,
 3458        IDWriteFontFaceReference **reference);
 3459
 3460    END_INTERFACE
 3461} IDWriteFontList1Vtbl;
 3462
 3463interface IDWriteFontList1 {
 3464    CONST_VTBL IDWriteFontList1Vtbl* lpVtbl;
 3465};
 3466
 3467#ifdef COBJMACROS
 3468#ifndef WIDL_C_INLINE_WRAPPERS
 3469/*** IUnknown methods ***/
 3470#define IDWriteFontList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3471#define IDWriteFontList1_AddRef(This) (This)->lpVtbl->AddRef(This)
 3472#define IDWriteFontList1_Release(This) (This)->lpVtbl->Release(This)
 3473/*** IDWriteFontList methods ***/
 3474#define IDWriteFontList1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
 3475#define IDWriteFontList1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 3476/*** IDWriteFontList1 methods ***/
 3477#define IDWriteFontList1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
 3478#define IDWriteFontList1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font)
 3479#define IDWriteFontList1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
 3480#else
 3481/*** IUnknown methods ***/
 3482static inline HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This,REFIID riid,void **ppvObject) {
 3483    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3484}
 3485static inline ULONG IDWriteFontList1_AddRef(IDWriteFontList1* This) {
 3486    return This->lpVtbl->AddRef(This);
 3487}
 3488static inline ULONG IDWriteFontList1_Release(IDWriteFontList1* This) {
 3489    return This->lpVtbl->Release(This);
 3490}
 3491/*** IDWriteFontList methods ***/
 3492static inline HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This,IDWriteFontCollection **collection) {
 3493    return This->lpVtbl->GetFontCollection(This,collection);
 3494}
 3495static inline UINT32 IDWriteFontList1_GetFontCount(IDWriteFontList1* This) {
 3496    return This->lpVtbl->GetFontCount(This);
 3497}
 3498/*** IDWriteFontList1 methods ***/
 3499static inline DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This,UINT32 index) {
 3500    return This->lpVtbl->GetFontLocality(This,index);
 3501}
 3502static inline HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This,UINT32 index,IDWriteFont3 **font) {
 3503    return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font);
 3504}
 3505static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This,UINT32 index,IDWriteFontFaceReference **reference) {
 3506    return This->lpVtbl->GetFontFaceReference(This,index,reference);
 3507}
 3508#endif
 3509#endif
 3510
 3511#endif
 3512
 3513
 3514#endif  /* __IDWriteFontList1_INTERFACE_DEFINED__ */
 3515
 3516/*****************************************************************************
 3517 * IDWriteFontList2 interface
 3518 */
 3519#ifndef __IDWriteFontList2_INTERFACE_DEFINED__
 3520#define __IDWriteFontList2_INTERFACE_DEFINED__
 3521
 3522DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5);
 3523#if defined(__cplusplus) && !defined(CINTERFACE)
 3524MIDL_INTERFACE("c0763a34-77af-445a-b735-08c37b0a5bf5")
 3525IDWriteFontList2 : public IDWriteFontList1
 3526{
 3527    virtual HRESULT STDMETHODCALLTYPE GetFontSet(
 3528        IDWriteFontSet1 **fontset) = 0;
 3529
 3530};
 3531#ifdef __CRT_UUID_DECL
 3532__CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5)
 3533#endif
 3534#else
 3535typedef struct IDWriteFontList2Vtbl {
 3536    BEGIN_INTERFACE
 3537
 3538    /*** IUnknown methods ***/
 3539    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3540        IDWriteFontList2 *This,
 3541        REFIID riid,
 3542        void **ppvObject);
 3543
 3544    ULONG (STDMETHODCALLTYPE *AddRef)(
 3545        IDWriteFontList2 *This);
 3546
 3547    ULONG (STDMETHODCALLTYPE *Release)(
 3548        IDWriteFontList2 *This);
 3549
 3550    /*** IDWriteFontList methods ***/
 3551    HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
 3552        IDWriteFontList2 *This,
 3553        IDWriteFontCollection **collection);
 3554
 3555    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 3556        IDWriteFontList2 *This);
 3557
 3558    HRESULT (STDMETHODCALLTYPE *GetFont)(
 3559        IDWriteFontList2 *This,
 3560        UINT32 index,
 3561        IDWriteFont **font);
 3562
 3563    /*** IDWriteFontList1 methods ***/
 3564    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
 3565        IDWriteFontList2 *This,
 3566        UINT32 index);
 3567
 3568    HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)(
 3569        IDWriteFontList2 *This,
 3570        UINT32 index,
 3571        IDWriteFont3 **font);
 3572
 3573    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 3574        IDWriteFontList2 *This,
 3575        UINT32 index,
 3576        IDWriteFontFaceReference **reference);
 3577
 3578    /*** IDWriteFontList2 methods ***/
 3579    HRESULT (STDMETHODCALLTYPE *GetFontSet)(
 3580        IDWriteFontList2 *This,
 3581        IDWriteFontSet1 **fontset);
 3582
 3583    END_INTERFACE
 3584} IDWriteFontList2Vtbl;
 3585
 3586interface IDWriteFontList2 {
 3587    CONST_VTBL IDWriteFontList2Vtbl* lpVtbl;
 3588};
 3589
 3590#ifdef COBJMACROS
 3591#ifndef WIDL_C_INLINE_WRAPPERS
 3592/*** IUnknown methods ***/
 3593#define IDWriteFontList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3594#define IDWriteFontList2_AddRef(This) (This)->lpVtbl->AddRef(This)
 3595#define IDWriteFontList2_Release(This) (This)->lpVtbl->Release(This)
 3596/*** IDWriteFontList methods ***/
 3597#define IDWriteFontList2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
 3598#define IDWriteFontList2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 3599/*** IDWriteFontList1 methods ***/
 3600#define IDWriteFontList2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
 3601#define IDWriteFontList2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font)
 3602#define IDWriteFontList2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference)
 3603/*** IDWriteFontList2 methods ***/
 3604#define IDWriteFontList2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset)
 3605#else
 3606/*** IUnknown methods ***/
 3607static inline HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This,REFIID riid,void **ppvObject) {
 3608    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3609}
 3610static inline ULONG IDWriteFontList2_AddRef(IDWriteFontList2* This) {
 3611    return This->lpVtbl->AddRef(This);
 3612}
 3613static inline ULONG IDWriteFontList2_Release(IDWriteFontList2* This) {
 3614    return This->lpVtbl->Release(This);
 3615}
 3616/*** IDWriteFontList methods ***/
 3617static inline HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This,IDWriteFontCollection **collection) {
 3618    return This->lpVtbl->GetFontCollection(This,collection);
 3619}
 3620static inline UINT32 IDWriteFontList2_GetFontCount(IDWriteFontList2* This) {
 3621    return This->lpVtbl->GetFontCount(This);
 3622}
 3623/*** IDWriteFontList1 methods ***/
 3624static inline DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This,UINT32 index) {
 3625    return This->lpVtbl->GetFontLocality(This,index);
 3626}
 3627static inline HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This,UINT32 index,IDWriteFont3 **font) {
 3628    return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font);
 3629}
 3630static inline HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This,UINT32 index,IDWriteFontFaceReference **reference) {
 3631    return This->lpVtbl->GetFontFaceReference(This,index,reference);
 3632}
 3633/*** IDWriteFontList2 methods ***/
 3634static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This,IDWriteFontSet1 **fontset) {
 3635    return This->lpVtbl->GetFontSet(This,fontset);
 3636}
 3637#endif
 3638#endif
 3639
 3640#endif
 3641
 3642
 3643#endif  /* __IDWriteFontList2_INTERFACE_DEFINED__ */
 3644
 3645/*****************************************************************************
 3646 * IDWriteFontSet2 interface
 3647 */
 3648#ifndef __IDWriteFontSet2_INTERFACE_DEFINED__
 3649#define __IDWriteFontSet2_INTERFACE_DEFINED__
 3650
 3651DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f);
 3652#if defined(__cplusplus) && !defined(CINTERFACE)
 3653MIDL_INTERFACE("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f")
 3654IDWriteFontSet2 : public IDWriteFontSet1
 3655{
 3656    virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent(
 3657        ) = 0;
 3658
 3659};
 3660#ifdef __CRT_UUID_DECL
 3661__CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f)
 3662#endif
 3663#else
 3664typedef struct IDWriteFontSet2Vtbl {
 3665    BEGIN_INTERFACE
 3666
 3667    /*** IUnknown methods ***/
 3668    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3669        IDWriteFontSet2 *This,
 3670        REFIID riid,
 3671        void **ppvObject);
 3672
 3673    ULONG (STDMETHODCALLTYPE *AddRef)(
 3674        IDWriteFontSet2 *This);
 3675
 3676    ULONG (STDMETHODCALLTYPE *Release)(
 3677        IDWriteFontSet2 *This);
 3678
 3679    /*** IDWriteFontSet methods ***/
 3680    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 3681        IDWriteFontSet2 *This);
 3682
 3683    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 3684        IDWriteFontSet2 *This,
 3685        UINT32 index,
 3686        IDWriteFontFaceReference **reference);
 3687
 3688    HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
 3689        IDWriteFontSet2 *This,
 3690        IDWriteFontFaceReference *reference,
 3691        UINT32 *index,
 3692        WINBOOL *exists);
 3693
 3694    HRESULT (STDMETHODCALLTYPE *FindFontFace)(
 3695        IDWriteFontSet2 *This,
 3696        IDWriteFontFace *fontface,
 3697        UINT32 *index,
 3698        WINBOOL *exists);
 3699
 3700    HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
 3701        IDWriteFontSet2 *This,
 3702        DWRITE_FONT_PROPERTY_ID id,
 3703        IDWriteStringList **values);
 3704
 3705    HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
 3706        IDWriteFontSet2 *This,
 3707        DWRITE_FONT_PROPERTY_ID id,
 3708        const WCHAR *preferred_locales,
 3709        IDWriteStringList **values);
 3710
 3711    HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
 3712        IDWriteFontSet2 *This,
 3713        UINT32 index,
 3714        DWRITE_FONT_PROPERTY_ID id,
 3715        WINBOOL *exists,
 3716        IDWriteLocalizedStrings **values);
 3717
 3718    HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
 3719        IDWriteFontSet2 *This,
 3720        const DWRITE_FONT_PROPERTY *property,
 3721        UINT32 *count);
 3722
 3723    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
 3724        IDWriteFontSet2 *This,
 3725        const WCHAR *family,
 3726        DWRITE_FONT_WEIGHT weight,
 3727        DWRITE_FONT_STRETCH stretch,
 3728        DWRITE_FONT_STYLE style,
 3729        IDWriteFontSet **fontset);
 3730
 3731    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 3732        IDWriteFontSet2 *This,
 3733        const DWRITE_FONT_PROPERTY *props,
 3734        UINT32 count,
 3735        IDWriteFontSet **fontset);
 3736
 3737    /*** IDWriteFontSet1 methods ***/
 3738    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
 3739        IDWriteFontSet2 *This,
 3740        const DWRITE_FONT_PROPERTY *property,
 3741        const DWRITE_FONT_AXIS_VALUE *axis_values,
 3742        UINT32 num_values,
 3743        IDWriteFontSet1 **fontset);
 3744
 3745    HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
 3746        IDWriteFontSet2 *This,
 3747        IDWriteFontSet1 **fontset);
 3748
 3749    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
 3750        IDWriteFontSet2 *This,
 3751        const UINT32 *indices,
 3752        UINT32 num_indices,
 3753        IDWriteFontSet1 **fontset);
 3754
 3755    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
 3756        IDWriteFontSet2 *This,
 3757        const DWRITE_FONT_AXIS_RANGE *axis_ranges,
 3758        UINT32 num_ranges,
 3759        WINBOOL select_any_range,
 3760        IDWriteFontSet1 **fontset);
 3761
 3762    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
 3763        IDWriteFontSet2 *This,
 3764        const DWRITE_FONT_PROPERTY *props,
 3765        UINT32 num_properties,
 3766        WINBOOL select_any_property,
 3767        IDWriteFontSet1 **fontset);
 3768
 3769    HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
 3770        IDWriteFontSet2 *This,
 3771        const DWRITE_FONT_AXIS_RANGE *ranges,
 3772        UINT32 num_ranges,
 3773        WINBOOL select_any_range,
 3774        UINT32 *indices,
 3775        UINT32 num_indices,
 3776        UINT32 *actual_num_indices);
 3777
 3778    HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
 3779        IDWriteFontSet2 *This,
 3780        const DWRITE_FONT_PROPERTY *props,
 3781        UINT32 num_properties,
 3782        WINBOOL select_any_range,
 3783        UINT32 *indices,
 3784        UINT32 num_indices,
 3785        UINT32 *actual_num_indices);
 3786
 3787    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
 3788        IDWriteFontSet2 *This,
 3789        UINT32 font_index,
 3790        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 3791        UINT32 num_ranges,
 3792        UINT32 *actual_num_ranges);
 3793
 3794    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
 3795        IDWriteFontSet2 *This,
 3796        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 3797        UINT32 num_ranges,
 3798        UINT32 *actual_num_ranges);
 3799
 3800    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
 3801        IDWriteFontSet2 *This,
 3802        UINT32 index,
 3803        IDWriteFontFaceReference1 **reference);
 3804
 3805    HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
 3806        IDWriteFontSet2 *This,
 3807        UINT32 index,
 3808        IDWriteFontResource **resource);
 3809
 3810    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 3811        IDWriteFontSet2 *This,
 3812        UINT32 index,
 3813        IDWriteFontFace5 **fontface);
 3814
 3815    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
 3816        IDWriteFontSet2 *This,
 3817        UINT32 index);
 3818
 3819    /*** IDWriteFontSet2 methods ***/
 3820    HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
 3821        IDWriteFontSet2 *This);
 3822
 3823    END_INTERFACE
 3824} IDWriteFontSet2Vtbl;
 3825
 3826interface IDWriteFontSet2 {
 3827    CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl;
 3828};
 3829
 3830#ifdef COBJMACROS
 3831#ifndef WIDL_C_INLINE_WRAPPERS
 3832/*** IUnknown methods ***/
 3833#define IDWriteFontSet2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3834#define IDWriteFontSet2_AddRef(This) (This)->lpVtbl->AddRef(This)
 3835#define IDWriteFontSet2_Release(This) (This)->lpVtbl->Release(This)
 3836/*** IDWriteFontSet methods ***/
 3837#define IDWriteFontSet2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 3838#define IDWriteFontSet2_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
 3839#define IDWriteFontSet2_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
 3840#define IDWriteFontSet2_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
 3841#define IDWriteFontSet2_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
 3842#define IDWriteFontSet2_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
 3843#define IDWriteFontSet2_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
 3844#define IDWriteFontSet2_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
 3845/*** IDWriteFontSet1 methods ***/
 3846#define IDWriteFontSet2_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
 3847#define IDWriteFontSet2_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
 3848#define IDWriteFontSet2_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
 3849#define IDWriteFontSet2_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
 3850#define IDWriteFontSet2_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
 3851#define IDWriteFontSet2_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
 3852#define IDWriteFontSet2_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
 3853#define IDWriteFontSet2_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
 3854#define IDWriteFontSet2_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
 3855#define IDWriteFontSet2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
 3856#define IDWriteFontSet2_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
 3857#define IDWriteFontSet2_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
 3858#define IDWriteFontSet2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
 3859/*** IDWriteFontSet2 methods ***/
 3860#define IDWriteFontSet2_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
 3861#else
 3862/*** IUnknown methods ***/
 3863static inline HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This,REFIID riid,void **ppvObject) {
 3864    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3865}
 3866static inline ULONG IDWriteFontSet2_AddRef(IDWriteFontSet2* This) {
 3867    return This->lpVtbl->AddRef(This);
 3868}
 3869static inline ULONG IDWriteFontSet2_Release(IDWriteFontSet2* This) {
 3870    return This->lpVtbl->Release(This);
 3871}
 3872/*** IDWriteFontSet methods ***/
 3873static inline UINT32 IDWriteFontSet2_GetFontCount(IDWriteFontSet2* This) {
 3874    return This->lpVtbl->GetFontCount(This);
 3875}
 3876static inline HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
 3877    return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
 3878}
 3879static inline HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
 3880    return This->lpVtbl->FindFontFace(This,fontface,index,exists);
 3881}
 3882static inline HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
 3883    return This->lpVtbl->GetPropertyValues__(This,id,values);
 3884}
 3885static inline HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
 3886    return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
 3887}
 3888static inline HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
 3889    return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
 3890}
 3891static inline HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
 3892    return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
 3893}
 3894static inline HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
 3895    return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
 3896}
 3897/*** IDWriteFontSet1 methods ***/
 3898static inline HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
 3899    return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
 3900}
 3901static inline HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This,IDWriteFontSet1 **fontset) {
 3902    return This->lpVtbl->GetFirstFontResources(This,fontset);
 3903}
 3904static inline HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
 3905    return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
 3906}
 3907static inline HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
 3908    return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
 3909}
 3910static inline HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
 3911    return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
 3912}
 3913static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
 3914    return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
 3915}
 3916static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
 3917    return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
 3918}
 3919static inline HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
 3920    return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
 3921}
 3922static inline HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
 3923    return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
 3924}
 3925static inline HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
 3926    return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
 3927}
 3928static inline HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This,UINT32 index,IDWriteFontResource **resource) {
 3929    return This->lpVtbl->CreateFontResource(This,index,resource);
 3930}
 3931static inline HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This,UINT32 index,IDWriteFontFace5 **fontface) {
 3932    return This->lpVtbl->CreateFontFace(This,index,fontface);
 3933}
 3934static inline DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This,UINT32 index) {
 3935    return This->lpVtbl->GetFontLocality(This,index);
 3936}
 3937/*** IDWriteFontSet2 methods ***/
 3938static inline HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) {
 3939    return This->lpVtbl->GetExpirationEvent(This);
 3940}
 3941#endif
 3942#endif
 3943
 3944#endif
 3945
 3946
 3947#endif  /* __IDWriteFontSet2_INTERFACE_DEFINED__ */
 3948
 3949/*****************************************************************************
 3950 * IDWriteFontSet3 interface
 3951 */
 3952#ifndef __IDWriteFontSet3_INTERFACE_DEFINED__
 3953#define __IDWriteFontSet3_INTERFACE_DEFINED__
 3954
 3955DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90);
 3956#if defined(__cplusplus) && !defined(CINTERFACE)
 3957MIDL_INTERFACE("7c073ef2-a7f4-4045-8c32-8ab8ae640f90")
 3958IDWriteFontSet3 : public IDWriteFontSet2
 3959{
 3960    virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType(
 3961        UINT32 index) = 0;
 3962
 3963    virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength(
 3964        UINT32 index) = 0;
 3965
 3966    virtual HRESULT STDMETHODCALLTYPE GetFontSourceName(
 3967        UINT32 index,
 3968        WCHAR *buffer,
 3969        UINT32 buffer_size) = 0;
 3970
 3971};
 3972#ifdef __CRT_UUID_DECL
 3973__CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90)
 3974#endif
 3975#else
 3976typedef struct IDWriteFontSet3Vtbl {
 3977    BEGIN_INTERFACE
 3978
 3979    /*** IUnknown methods ***/
 3980    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3981        IDWriteFontSet3 *This,
 3982        REFIID riid,
 3983        void **ppvObject);
 3984
 3985    ULONG (STDMETHODCALLTYPE *AddRef)(
 3986        IDWriteFontSet3 *This);
 3987
 3988    ULONG (STDMETHODCALLTYPE *Release)(
 3989        IDWriteFontSet3 *This);
 3990
 3991    /*** IDWriteFontSet methods ***/
 3992    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 3993        IDWriteFontSet3 *This);
 3994
 3995    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 3996        IDWriteFontSet3 *This,
 3997        UINT32 index,
 3998        IDWriteFontFaceReference **reference);
 3999
 4000    HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
 4001        IDWriteFontSet3 *This,
 4002        IDWriteFontFaceReference *reference,
 4003        UINT32 *index,
 4004        WINBOOL *exists);
 4005
 4006    HRESULT (STDMETHODCALLTYPE *FindFontFace)(
 4007        IDWriteFontSet3 *This,
 4008        IDWriteFontFace *fontface,
 4009        UINT32 *index,
 4010        WINBOOL *exists);
 4011
 4012    HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
 4013        IDWriteFontSet3 *This,
 4014        DWRITE_FONT_PROPERTY_ID id,
 4015        IDWriteStringList **values);
 4016
 4017    HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
 4018        IDWriteFontSet3 *This,
 4019        DWRITE_FONT_PROPERTY_ID id,
 4020        const WCHAR *preferred_locales,
 4021        IDWriteStringList **values);
 4022
 4023    HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
 4024        IDWriteFontSet3 *This,
 4025        UINT32 index,
 4026        DWRITE_FONT_PROPERTY_ID id,
 4027        WINBOOL *exists,
 4028        IDWriteLocalizedStrings **values);
 4029
 4030    HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
 4031        IDWriteFontSet3 *This,
 4032        const DWRITE_FONT_PROPERTY *property,
 4033        UINT32 *count);
 4034
 4035    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
 4036        IDWriteFontSet3 *This,
 4037        const WCHAR *family,
 4038        DWRITE_FONT_WEIGHT weight,
 4039        DWRITE_FONT_STRETCH stretch,
 4040        DWRITE_FONT_STYLE style,
 4041        IDWriteFontSet **fontset);
 4042
 4043    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 4044        IDWriteFontSet3 *This,
 4045        const DWRITE_FONT_PROPERTY *props,
 4046        UINT32 count,
 4047        IDWriteFontSet **fontset);
 4048
 4049    /*** IDWriteFontSet1 methods ***/
 4050    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
 4051        IDWriteFontSet3 *This,
 4052        const DWRITE_FONT_PROPERTY *property,
 4053        const DWRITE_FONT_AXIS_VALUE *axis_values,
 4054        UINT32 num_values,
 4055        IDWriteFontSet1 **fontset);
 4056
 4057    HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
 4058        IDWriteFontSet3 *This,
 4059        IDWriteFontSet1 **fontset);
 4060
 4061    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
 4062        IDWriteFontSet3 *This,
 4063        const UINT32 *indices,
 4064        UINT32 num_indices,
 4065        IDWriteFontSet1 **fontset);
 4066
 4067    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
 4068        IDWriteFontSet3 *This,
 4069        const DWRITE_FONT_AXIS_RANGE *axis_ranges,
 4070        UINT32 num_ranges,
 4071        WINBOOL select_any_range,
 4072        IDWriteFontSet1 **fontset);
 4073
 4074    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
 4075        IDWriteFontSet3 *This,
 4076        const DWRITE_FONT_PROPERTY *props,
 4077        UINT32 num_properties,
 4078        WINBOOL select_any_property,
 4079        IDWriteFontSet1 **fontset);
 4080
 4081    HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
 4082        IDWriteFontSet3 *This,
 4083        const DWRITE_FONT_AXIS_RANGE *ranges,
 4084        UINT32 num_ranges,
 4085        WINBOOL select_any_range,
 4086        UINT32 *indices,
 4087        UINT32 num_indices,
 4088        UINT32 *actual_num_indices);
 4089
 4090    HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
 4091        IDWriteFontSet3 *This,
 4092        const DWRITE_FONT_PROPERTY *props,
 4093        UINT32 num_properties,
 4094        WINBOOL select_any_range,
 4095        UINT32 *indices,
 4096        UINT32 num_indices,
 4097        UINT32 *actual_num_indices);
 4098
 4099    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
 4100        IDWriteFontSet3 *This,
 4101        UINT32 font_index,
 4102        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 4103        UINT32 num_ranges,
 4104        UINT32 *actual_num_ranges);
 4105
 4106    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
 4107        IDWriteFontSet3 *This,
 4108        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 4109        UINT32 num_ranges,
 4110        UINT32 *actual_num_ranges);
 4111
 4112    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
 4113        IDWriteFontSet3 *This,
 4114        UINT32 index,
 4115        IDWriteFontFaceReference1 **reference);
 4116
 4117    HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
 4118        IDWriteFontSet3 *This,
 4119        UINT32 index,
 4120        IDWriteFontResource **resource);
 4121
 4122    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 4123        IDWriteFontSet3 *This,
 4124        UINT32 index,
 4125        IDWriteFontFace5 **fontface);
 4126
 4127    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
 4128        IDWriteFontSet3 *This,
 4129        UINT32 index);
 4130
 4131    /*** IDWriteFontSet2 methods ***/
 4132    HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
 4133        IDWriteFontSet3 *This);
 4134
 4135    /*** IDWriteFontSet3 methods ***/
 4136    DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)(
 4137        IDWriteFontSet3 *This,
 4138        UINT32 index);
 4139
 4140    UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)(
 4141        IDWriteFontSet3 *This,
 4142        UINT32 index);
 4143
 4144    HRESULT (STDMETHODCALLTYPE *GetFontSourceName)(
 4145        IDWriteFontSet3 *This,
 4146        UINT32 index,
 4147        WCHAR *buffer,
 4148        UINT32 buffer_size);
 4149
 4150    END_INTERFACE
 4151} IDWriteFontSet3Vtbl;
 4152
 4153interface IDWriteFontSet3 {
 4154    CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl;
 4155};
 4156
 4157#ifdef COBJMACROS
 4158#ifndef WIDL_C_INLINE_WRAPPERS
 4159/*** IUnknown methods ***/
 4160#define IDWriteFontSet3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4161#define IDWriteFontSet3_AddRef(This) (This)->lpVtbl->AddRef(This)
 4162#define IDWriteFontSet3_Release(This) (This)->lpVtbl->Release(This)
 4163/*** IDWriteFontSet methods ***/
 4164#define IDWriteFontSet3_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 4165#define IDWriteFontSet3_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
 4166#define IDWriteFontSet3_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
 4167#define IDWriteFontSet3_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
 4168#define IDWriteFontSet3_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
 4169#define IDWriteFontSet3_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
 4170#define IDWriteFontSet3_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
 4171#define IDWriteFontSet3_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
 4172/*** IDWriteFontSet1 methods ***/
 4173#define IDWriteFontSet3_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset)
 4174#define IDWriteFontSet3_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
 4175#define IDWriteFontSet3_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
 4176#define IDWriteFontSet3_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
 4177#define IDWriteFontSet3_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
 4178#define IDWriteFontSet3_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
 4179#define IDWriteFontSet3_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
 4180#define IDWriteFontSet3_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
 4181#define IDWriteFontSet3_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
 4182#define IDWriteFontSet3_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
 4183#define IDWriteFontSet3_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
 4184#define IDWriteFontSet3_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
 4185#define IDWriteFontSet3_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
 4186/*** IDWriteFontSet2 methods ***/
 4187#define IDWriteFontSet3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
 4188/*** IDWriteFontSet3 methods ***/
 4189#define IDWriteFontSet3_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index)
 4190#define IDWriteFontSet3_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index)
 4191#define IDWriteFontSet3_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size)
 4192#else
 4193/*** IUnknown methods ***/
 4194static inline HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This,REFIID riid,void **ppvObject) {
 4195    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4196}
 4197static inline ULONG IDWriteFontSet3_AddRef(IDWriteFontSet3* This) {
 4198    return This->lpVtbl->AddRef(This);
 4199}
 4200static inline ULONG IDWriteFontSet3_Release(IDWriteFontSet3* This) {
 4201    return This->lpVtbl->Release(This);
 4202}
 4203/*** IDWriteFontSet methods ***/
 4204static inline UINT32 IDWriteFontSet3_GetFontCount(IDWriteFontSet3* This) {
 4205    return This->lpVtbl->GetFontCount(This);
 4206}
 4207static inline HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
 4208    return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
 4209}
 4210static inline HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
 4211    return This->lpVtbl->FindFontFace(This,fontface,index,exists);
 4212}
 4213static inline HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
 4214    return This->lpVtbl->GetPropertyValues__(This,id,values);
 4215}
 4216static inline HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
 4217    return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
 4218}
 4219static inline HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
 4220    return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
 4221}
 4222static inline HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
 4223    return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
 4224}
 4225static inline HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
 4226    return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
 4227}
 4228/*** IDWriteFontSet1 methods ***/
 4229static inline HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) {
 4230    return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset);
 4231}
 4232static inline HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This,IDWriteFontSet1 **fontset) {
 4233    return This->lpVtbl->GetFirstFontResources(This,fontset);
 4234}
 4235static inline HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
 4236    return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
 4237}
 4238static inline HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
 4239    return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
 4240}
 4241static inline HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
 4242    return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
 4243}
 4244static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
 4245    return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
 4246}
 4247static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
 4248    return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
 4249}
 4250static inline HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
 4251    return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
 4252}
 4253static inline HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
 4254    return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
 4255}
 4256static inline HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
 4257    return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
 4258}
 4259static inline HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This,UINT32 index,IDWriteFontResource **resource) {
 4260    return This->lpVtbl->CreateFontResource(This,index,resource);
 4261}
 4262static inline HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This,UINT32 index,IDWriteFontFace5 **fontface) {
 4263    return This->lpVtbl->CreateFontFace(This,index,fontface);
 4264}
 4265static inline DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This,UINT32 index) {
 4266    return This->lpVtbl->GetFontLocality(This,index);
 4267}
 4268/*** IDWriteFontSet2 methods ***/
 4269static inline HANDLE IDWriteFontSet3_GetExpirationEvent(IDWriteFontSet3* This) {
 4270    return This->lpVtbl->GetExpirationEvent(This);
 4271}
 4272/*** IDWriteFontSet3 methods ***/
 4273static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This,UINT32 index) {
 4274    return This->lpVtbl->GetFontSourceType(This,index);
 4275}
 4276static inline UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This,UINT32 index) {
 4277    return This->lpVtbl->GetFontSourceNameLength(This,index);
 4278}
 4279static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) {
 4280    return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size);
 4281}
 4282#endif
 4283#endif
 4284
 4285#endif
 4286
 4287
 4288#endif  /* __IDWriteFontSet3_INTERFACE_DEFINED__ */
 4289
 4290/*****************************************************************************
 4291 * IDWriteFontSet4 interface
 4292 */
 4293#ifndef __IDWriteFontSet4_INTERFACE_DEFINED__
 4294#define __IDWriteFontSet4_INTERFACE_DEFINED__
 4295
 4296DEFINE_GUID(IID_IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82);
 4297#if defined(__cplusplus) && !defined(CINTERFACE)
 4298MIDL_INTERFACE("eec175fc-bea9-4c86-8b53-ccbdd7df0c82")
 4299IDWriteFontSet4 : public IDWriteFontSet3
 4300{
 4301    virtual UINT32 STDMETHODCALLTYPE ConvertWeightStretchStyleToFontAxisValues(
 4302        const DWRITE_FONT_AXIS_VALUE *input_axis_values,
 4303        UINT32 input_axis_count,
 4304        DWRITE_FONT_WEIGHT weight,
 4305        DWRITE_FONT_STRETCH stretch,
 4306        DWRITE_FONT_STYLE style,
 4307        float size,
 4308        DWRITE_FONT_AXIS_VALUE *output_axis_values) = 0;
 4309
 4310    virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts(
 4311        const WCHAR *family_name,
 4312        const DWRITE_FONT_AXIS_VALUE *axis_values,
 4313        UINT32 axis_value_count,
 4314        DWRITE_FONT_SIMULATIONS allowed_simulations,
 4315        IDWriteFontSet4 **fonts) = 0;
 4316
 4317};
 4318#ifdef __CRT_UUID_DECL
 4319__CRT_UUID_DECL(IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82)
 4320#endif
 4321#else
 4322typedef struct IDWriteFontSet4Vtbl {
 4323    BEGIN_INTERFACE
 4324
 4325    /*** IUnknown methods ***/
 4326    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4327        IDWriteFontSet4 *This,
 4328        REFIID riid,
 4329        void **ppvObject);
 4330
 4331    ULONG (STDMETHODCALLTYPE *AddRef)(
 4332        IDWriteFontSet4 *This);
 4333
 4334    ULONG (STDMETHODCALLTYPE *Release)(
 4335        IDWriteFontSet4 *This);
 4336
 4337    /*** IDWriteFontSet methods ***/
 4338    UINT32 (STDMETHODCALLTYPE *GetFontCount)(
 4339        IDWriteFontSet4 *This);
 4340
 4341    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 4342        IDWriteFontSet4 *This,
 4343        UINT32 index,
 4344        IDWriteFontFaceReference **reference);
 4345
 4346    HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)(
 4347        IDWriteFontSet4 *This,
 4348        IDWriteFontFaceReference *reference,
 4349        UINT32 *index,
 4350        WINBOOL *exists);
 4351
 4352    HRESULT (STDMETHODCALLTYPE *FindFontFace)(
 4353        IDWriteFontSet4 *This,
 4354        IDWriteFontFace *fontface,
 4355        UINT32 *index,
 4356        WINBOOL *exists);
 4357
 4358    HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)(
 4359        IDWriteFontSet4 *This,
 4360        DWRITE_FONT_PROPERTY_ID id,
 4361        IDWriteStringList **values);
 4362
 4363    HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)(
 4364        IDWriteFontSet4 *This,
 4365        DWRITE_FONT_PROPERTY_ID id,
 4366        const WCHAR *preferred_locales,
 4367        IDWriteStringList **values);
 4368
 4369    HRESULT (STDMETHODCALLTYPE *GetPropertyValues)(
 4370        IDWriteFontSet4 *This,
 4371        UINT32 index,
 4372        DWRITE_FONT_PROPERTY_ID id,
 4373        WINBOOL *exists,
 4374        IDWriteLocalizedStrings **values);
 4375
 4376    HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)(
 4377        IDWriteFontSet4 *This,
 4378        const DWRITE_FONT_PROPERTY *property,
 4379        UINT32 *count);
 4380
 4381    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)(
 4382        IDWriteFontSet4 *This,
 4383        const WCHAR *family,
 4384        DWRITE_FONT_WEIGHT weight,
 4385        DWRITE_FONT_STRETCH stretch,
 4386        DWRITE_FONT_STYLE style,
 4387        IDWriteFontSet **fontset);
 4388
 4389    HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)(
 4390        IDWriteFontSet4 *This,
 4391        const DWRITE_FONT_PROPERTY *props,
 4392        UINT32 count,
 4393        IDWriteFontSet **fontset);
 4394
 4395    /*** IDWriteFontSet1 methods ***/
 4396    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)(
 4397        IDWriteFontSet4 *This,
 4398        const DWRITE_FONT_PROPERTY *property,
 4399        const DWRITE_FONT_AXIS_VALUE *axis_values,
 4400        UINT32 num_values,
 4401        IDWriteFontSet1 **fontset);
 4402
 4403    HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)(
 4404        IDWriteFontSet4 *This,
 4405        IDWriteFontSet1 **fontset);
 4406
 4407    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)(
 4408        IDWriteFontSet4 *This,
 4409        const UINT32 *indices,
 4410        UINT32 num_indices,
 4411        IDWriteFontSet1 **fontset);
 4412
 4413    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)(
 4414        IDWriteFontSet4 *This,
 4415        const DWRITE_FONT_AXIS_RANGE *axis_ranges,
 4416        UINT32 num_ranges,
 4417        WINBOOL select_any_range,
 4418        IDWriteFontSet1 **fontset);
 4419
 4420    HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)(
 4421        IDWriteFontSet4 *This,
 4422        const DWRITE_FONT_PROPERTY *props,
 4423        UINT32 num_properties,
 4424        WINBOOL select_any_property,
 4425        IDWriteFontSet1 **fontset);
 4426
 4427    HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)(
 4428        IDWriteFontSet4 *This,
 4429        const DWRITE_FONT_AXIS_RANGE *ranges,
 4430        UINT32 num_ranges,
 4431        WINBOOL select_any_range,
 4432        UINT32 *indices,
 4433        UINT32 num_indices,
 4434        UINT32 *actual_num_indices);
 4435
 4436    HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)(
 4437        IDWriteFontSet4 *This,
 4438        const DWRITE_FONT_PROPERTY *props,
 4439        UINT32 num_properties,
 4440        WINBOOL select_any_range,
 4441        UINT32 *indices,
 4442        UINT32 num_indices,
 4443        UINT32 *actual_num_indices);
 4444
 4445    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)(
 4446        IDWriteFontSet4 *This,
 4447        UINT32 font_index,
 4448        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 4449        UINT32 num_ranges,
 4450        UINT32 *actual_num_ranges);
 4451
 4452    HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)(
 4453        IDWriteFontSet4 *This,
 4454        DWRITE_FONT_AXIS_RANGE *axis_ranges,
 4455        UINT32 num_ranges,
 4456        UINT32 *actual_num_ranges);
 4457
 4458    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)(
 4459        IDWriteFontSet4 *This,
 4460        UINT32 index,
 4461        IDWriteFontFaceReference1 **reference);
 4462
 4463    HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
 4464        IDWriteFontSet4 *This,
 4465        UINT32 index,
 4466        IDWriteFontResource **resource);
 4467
 4468    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 4469        IDWriteFontSet4 *This,
 4470        UINT32 index,
 4471        IDWriteFontFace5 **fontface);
 4472
 4473    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)(
 4474        IDWriteFontSet4 *This,
 4475        UINT32 index);
 4476
 4477    /*** IDWriteFontSet2 methods ***/
 4478    HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)(
 4479        IDWriteFontSet4 *This);
 4480
 4481    /*** IDWriteFontSet3 methods ***/
 4482    DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)(
 4483        IDWriteFontSet4 *This,
 4484        UINT32 index);
 4485
 4486    UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)(
 4487        IDWriteFontSet4 *This,
 4488        UINT32 index);
 4489
 4490    HRESULT (STDMETHODCALLTYPE *GetFontSourceName)(
 4491        IDWriteFontSet4 *This,
 4492        UINT32 index,
 4493        WCHAR *buffer,
 4494        UINT32 buffer_size);
 4495
 4496    /*** IDWriteFontSet4 methods ***/
 4497    UINT32 (STDMETHODCALLTYPE *ConvertWeightStretchStyleToFontAxisValues)(
 4498        IDWriteFontSet4 *This,
 4499        const DWRITE_FONT_AXIS_VALUE *input_axis_values,
 4500        UINT32 input_axis_count,
 4501        DWRITE_FONT_WEIGHT weight,
 4502        DWRITE_FONT_STRETCH stretch,
 4503        DWRITE_FONT_STYLE style,
 4504        float size,
 4505        DWRITE_FONT_AXIS_VALUE *output_axis_values);
 4506
 4507    HRESULT (STDMETHODCALLTYPE *IDWriteFontSet4_GetMatchingFonts)(
 4508        IDWriteFontSet4 *This,
 4509        const WCHAR *family_name,
 4510        const DWRITE_FONT_AXIS_VALUE *axis_values,
 4511        UINT32 axis_value_count,
 4512        DWRITE_FONT_SIMULATIONS allowed_simulations,
 4513        IDWriteFontSet4 **fonts);
 4514
 4515    END_INTERFACE
 4516} IDWriteFontSet4Vtbl;
 4517
 4518interface IDWriteFontSet4 {
 4519    CONST_VTBL IDWriteFontSet4Vtbl* lpVtbl;
 4520};
 4521
 4522#ifdef COBJMACROS
 4523#ifndef WIDL_C_INLINE_WRAPPERS
 4524/*** IUnknown methods ***/
 4525#define IDWriteFontSet4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4526#define IDWriteFontSet4_AddRef(This) (This)->lpVtbl->AddRef(This)
 4527#define IDWriteFontSet4_Release(This) (This)->lpVtbl->Release(This)
 4528/*** IDWriteFontSet methods ***/
 4529#define IDWriteFontSet4_GetFontCount(This) (This)->lpVtbl->GetFontCount(This)
 4530#define IDWriteFontSet4_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists)
 4531#define IDWriteFontSet4_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists)
 4532#define IDWriteFontSet4_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values)
 4533#define IDWriteFontSet4_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values)
 4534#define IDWriteFontSet4_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values)
 4535#define IDWriteFontSet4_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count)
 4536#define IDWriteFontSet4_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset)
 4537/*** IDWriteFontSet1 methods ***/
 4538#define IDWriteFontSet4_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset)
 4539#define IDWriteFontSet4_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset)
 4540#define IDWriteFontSet4_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset)
 4541#define IDWriteFontSet4_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset)
 4542#define IDWriteFontSet4_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices)
 4543#define IDWriteFontSet4_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices)
 4544#define IDWriteFontSet4_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges)
 4545#define IDWriteFontSet4_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges)
 4546#define IDWriteFontSet4_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference)
 4547#define IDWriteFontSet4_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource)
 4548#define IDWriteFontSet4_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface)
 4549#define IDWriteFontSet4_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index)
 4550/*** IDWriteFontSet2 methods ***/
 4551#define IDWriteFontSet4_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This)
 4552/*** IDWriteFontSet3 methods ***/
 4553#define IDWriteFontSet4_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index)
 4554#define IDWriteFontSet4_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index)
 4555#define IDWriteFontSet4_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size)
 4556/*** IDWriteFontSet4 methods ***/
 4557#define IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) (This)->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values)
 4558#define IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) (This)->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts)
 4559#else
 4560/*** IUnknown methods ***/
 4561static inline HRESULT IDWriteFontSet4_QueryInterface(IDWriteFontSet4* This,REFIID riid,void **ppvObject) {
 4562    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4563}
 4564static inline ULONG IDWriteFontSet4_AddRef(IDWriteFontSet4* This) {
 4565    return This->lpVtbl->AddRef(This);
 4566}
 4567static inline ULONG IDWriteFontSet4_Release(IDWriteFontSet4* This) {
 4568    return This->lpVtbl->Release(This);
 4569}
 4570/*** IDWriteFontSet methods ***/
 4571static inline UINT32 IDWriteFontSet4_GetFontCount(IDWriteFontSet4* This) {
 4572    return This->lpVtbl->GetFontCount(This);
 4573}
 4574static inline HRESULT IDWriteFontSet4_FindFontFaceReference(IDWriteFontSet4* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) {
 4575    return This->lpVtbl->FindFontFaceReference(This,reference,index,exists);
 4576}
 4577static inline HRESULT IDWriteFontSet4_FindFontFace(IDWriteFontSet4* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) {
 4578    return This->lpVtbl->FindFontFace(This,fontface,index,exists);
 4579}
 4580static inline HRESULT IDWriteFontSet4_GetPropertyValues__(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) {
 4581    return This->lpVtbl->GetPropertyValues__(This,id,values);
 4582}
 4583static inline HRESULT IDWriteFontSet4_GetPropertyValues_(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) {
 4584    return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values);
 4585}
 4586static inline HRESULT IDWriteFontSet4_GetPropertyValues(IDWriteFontSet4* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) {
 4587    return This->lpVtbl->GetPropertyValues(This,index,id,exists,values);
 4588}
 4589static inline HRESULT IDWriteFontSet4_GetPropertyOccurrenceCount(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) {
 4590    return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count);
 4591}
 4592static inline HRESULT IDWriteFontSet4_GetMatchingFonts_(IDWriteFontSet4* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) {
 4593    return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset);
 4594}
 4595/*** IDWriteFontSet1 methods ***/
 4596static inline HRESULT IDWriteFontSet4_GetFirstFontResources(IDWriteFontSet4* This,IDWriteFontSet1 **fontset) {
 4597    return This->lpVtbl->GetFirstFontResources(This,fontset);
 4598}
 4599static inline HRESULT IDWriteFontSet4_GetFilteredFonts__(IDWriteFontSet4* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) {
 4600    return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset);
 4601}
 4602static inline HRESULT IDWriteFontSet4_GetFilteredFonts_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) {
 4603    return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset);
 4604}
 4605static inline HRESULT IDWriteFontSet4_GetFilteredFonts(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) {
 4606    return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset);
 4607}
 4608static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
 4609    return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices);
 4610}
 4611static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) {
 4612    return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices);
 4613}
 4614static inline HRESULT IDWriteFontSet4_GetFontAxisRanges_(IDWriteFontSet4* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
 4615    return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges);
 4616}
 4617static inline HRESULT IDWriteFontSet4_GetFontAxisRanges(IDWriteFontSet4* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) {
 4618    return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges);
 4619}
 4620static inline HRESULT IDWriteFontSet4_GetFontFaceReference(IDWriteFontSet4* This,UINT32 index,IDWriteFontFaceReference1 **reference) {
 4621    return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference);
 4622}
 4623static inline HRESULT IDWriteFontSet4_CreateFontResource(IDWriteFontSet4* This,UINT32 index,IDWriteFontResource **resource) {
 4624    return This->lpVtbl->CreateFontResource(This,index,resource);
 4625}
 4626static inline HRESULT IDWriteFontSet4_CreateFontFace(IDWriteFontSet4* This,UINT32 index,IDWriteFontFace5 **fontface) {
 4627    return This->lpVtbl->CreateFontFace(This,index,fontface);
 4628}
 4629static inline DWRITE_LOCALITY IDWriteFontSet4_GetFontLocality(IDWriteFontSet4* This,UINT32 index) {
 4630    return This->lpVtbl->GetFontLocality(This,index);
 4631}
 4632/*** IDWriteFontSet2 methods ***/
 4633static inline HANDLE IDWriteFontSet4_GetExpirationEvent(IDWriteFontSet4* This) {
 4634    return This->lpVtbl->GetExpirationEvent(This);
 4635}
 4636/*** IDWriteFontSet3 methods ***/
 4637static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet4_GetFontSourceType(IDWriteFontSet4* This,UINT32 index) {
 4638    return This->lpVtbl->GetFontSourceType(This,index);
 4639}
 4640static inline UINT32 IDWriteFontSet4_GetFontSourceNameLength(IDWriteFontSet4* This,UINT32 index) {
 4641    return This->lpVtbl->GetFontSourceNameLength(This,index);
 4642}
 4643static inline HRESULT IDWriteFontSet4_GetFontSourceName(IDWriteFontSet4* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) {
 4644    return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size);
 4645}
 4646/*** IDWriteFontSet4 methods ***/
 4647static inline UINT32 IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_VALUE *input_axis_values,UINT32 input_axis_count,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,float size,DWRITE_FONT_AXIS_VALUE *output_axis_values) {
 4648    return This->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values);
 4649}
 4650static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This,const WCHAR *family_name,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 axis_value_count,DWRITE_FONT_SIMULATIONS allowed_simulations,IDWriteFontSet4 **fonts) {
 4651    return This->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts);
 4652}
 4653#endif
 4654#endif
 4655
 4656#endif
 4657
 4658
 4659#endif  /* __IDWriteFontSet4_INTERFACE_DEFINED__ */
 4660
 4661/*****************************************************************************
 4662 * IDWriteFontFace3 interface
 4663 */
 4664#ifndef __IDWriteFontFace3_INTERFACE_DEFINED__
 4665#define __IDWriteFontFace3_INTERFACE_DEFINED__
 4666
 4667DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2);
 4668#if defined(__cplusplus) && !defined(CINTERFACE)
 4669MIDL_INTERFACE("d37d7598-09be-4222-a236-2081341cc1f2")
 4670IDWriteFontFace3 : public IDWriteFontFace2
 4671{
 4672    virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference(
 4673        IDWriteFontFaceReference **reference) = 0;
 4674
 4675    virtual void STDMETHODCALLTYPE GetPanose(
 4676        DWRITE_PANOSE *panose) = 0;
 4677
 4678    virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight(
 4679        ) = 0;
 4680
 4681    virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch(
 4682        ) = 0;
 4683
 4684    virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle(
 4685        ) = 0;
 4686
 4687    virtual HRESULT STDMETHODCALLTYPE GetFamilyNames(
 4688        IDWriteLocalizedStrings **names) = 0;
 4689
 4690    virtual HRESULT STDMETHODCALLTYPE GetFaceNames(
 4691        IDWriteLocalizedStrings **names) = 0;
 4692
 4693    virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings(
 4694        DWRITE_INFORMATIONAL_STRING_ID stringid,
 4695        IDWriteLocalizedStrings **strings,
 4696        WINBOOL *exists) = 0;
 4697
 4698    virtual WINBOOL STDMETHODCALLTYPE HasCharacter(
 4699        UINT32 character) = 0;
 4700
 4701    virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode(
 4702        FLOAT emsize,
 4703        FLOAT dpi_x,
 4704        FLOAT dpi_y,
 4705        const DWRITE_MATRIX *transform,
 4706        WINBOOL is_sideways,
 4707        DWRITE_OUTLINE_THRESHOLD threshold,
 4708        DWRITE_MEASURING_MODE measuring_mode,
 4709        IDWriteRenderingParams *params,
 4710        DWRITE_RENDERING_MODE1 *rendering_mode,
 4711        DWRITE_GRID_FIT_MODE *gridfit_mode) = 0;
 4712
 4713    virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal(
 4714        UINT32 character) = 0;
 4715
 4716    virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal(
 4717        UINT16 glyph) = 0;
 4718
 4719    virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal(
 4720        const WCHAR *characters,
 4721        UINT32 count,
 4722        WINBOOL enqueue_if_not,
 4723        WINBOOL *are_local) = 0;
 4724
 4725    virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal(
 4726        const UINT16 *glyphs,
 4727        UINT32 count,
 4728        WINBOOL enqueue_if_not,
 4729        WINBOOL *are_local) = 0;
 4730
 4731};
 4732#ifdef __CRT_UUID_DECL
 4733__CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2)
 4734#endif
 4735#else
 4736typedef struct IDWriteFontFace3Vtbl {
 4737    BEGIN_INTERFACE
 4738
 4739    /*** IUnknown methods ***/
 4740    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4741        IDWriteFontFace3 *This,
 4742        REFIID riid,
 4743        void **ppvObject);
 4744
 4745    ULONG (STDMETHODCALLTYPE *AddRef)(
 4746        IDWriteFontFace3 *This);
 4747
 4748    ULONG (STDMETHODCALLTYPE *Release)(
 4749        IDWriteFontFace3 *This);
 4750
 4751    /*** IDWriteFontFace methods ***/
 4752    DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
 4753        IDWriteFontFace3 *This);
 4754
 4755    HRESULT (STDMETHODCALLTYPE *GetFiles)(
 4756        IDWriteFontFace3 *This,
 4757        UINT32 *number_of_files,
 4758        IDWriteFontFile **fontfiles);
 4759
 4760    UINT32 (STDMETHODCALLTYPE *GetIndex)(
 4761        IDWriteFontFace3 *This);
 4762
 4763    DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
 4764        IDWriteFontFace3 *This);
 4765
 4766    WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
 4767        IDWriteFontFace3 *This);
 4768
 4769    void (STDMETHODCALLTYPE *GetMetrics)(
 4770        IDWriteFontFace3 *This,
 4771        DWRITE_FONT_METRICS *metrics);
 4772
 4773    UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
 4774        IDWriteFontFace3 *This);
 4775
 4776    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
 4777        IDWriteFontFace3 *This,
 4778        const UINT16 *glyph_indices,
 4779        UINT32 glyph_count,
 4780        DWRITE_GLYPH_METRICS *metrics,
 4781        WINBOOL is_sideways);
 4782
 4783    HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
 4784        IDWriteFontFace3 *This,
 4785        const UINT32 *codepoints,
 4786        UINT32 count,
 4787        UINT16 *glyph_indices);
 4788
 4789    HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
 4790        IDWriteFontFace3 *This,
 4791        UINT32 table_tag,
 4792        const void **table_data,
 4793        UINT32 *table_size,
 4794        void **context,
 4795        WINBOOL *exists);
 4796
 4797    void (STDMETHODCALLTYPE *ReleaseFontTable)(
 4798        IDWriteFontFace3 *This,
 4799        void *table_context);
 4800
 4801    HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
 4802        IDWriteFontFace3 *This,
 4803        FLOAT emSize,
 4804        const UINT16 *glyph_indices,
 4805        const FLOAT *glyph_advances,
 4806        const DWRITE_GLYPH_OFFSET *glyph_offsets,
 4807        UINT32 glyph_count,
 4808        WINBOOL is_sideways,
 4809        WINBOOL is_rtl,
 4810        IDWriteGeometrySink *geometrysink);
 4811
 4812    HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
 4813        IDWriteFontFace3 *This,
 4814        FLOAT emSize,
 4815        FLOAT pixels_per_dip,
 4816        DWRITE_MEASURING_MODE mode,
 4817        IDWriteRenderingParams *params,
 4818        DWRITE_RENDERING_MODE *rendering_mode);
 4819
 4820    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
 4821        IDWriteFontFace3 *This,
 4822        FLOAT emSize,
 4823        FLOAT pixels_per_dip,
 4824        const DWRITE_MATRIX *transform,
 4825        DWRITE_FONT_METRICS *metrics);
 4826
 4827    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
 4828        IDWriteFontFace3 *This,
 4829        FLOAT emSize,
 4830        FLOAT pixels_per_dip,
 4831        const DWRITE_MATRIX *transform,
 4832        WINBOOL use_gdi_natural,
 4833        const UINT16 *glyph_indices,
 4834        UINT32 glyph_count,
 4835        DWRITE_GLYPH_METRICS *metrics,
 4836        WINBOOL is_sideways);
 4837
 4838    /*** IDWriteFontFace1 methods ***/
 4839    void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
 4840        IDWriteFontFace3 *This,
 4841        DWRITE_FONT_METRICS1 *metrics);
 4842
 4843    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
 4844        IDWriteFontFace3 *This,
 4845        FLOAT em_size,
 4846        FLOAT pixels_per_dip,
 4847        const DWRITE_MATRIX *transform,
 4848        DWRITE_FONT_METRICS1 *metrics);
 4849
 4850    void (STDMETHODCALLTYPE *GetCaretMetrics)(
 4851        IDWriteFontFace3 *This,
 4852        DWRITE_CARET_METRICS *metrics);
 4853
 4854    HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
 4855        IDWriteFontFace3 *This,
 4856        UINT32 max_count,
 4857        DWRITE_UNICODE_RANGE *ranges,
 4858        UINT32 *count);
 4859
 4860    WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
 4861        IDWriteFontFace3 *This);
 4862
 4863    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
 4864        IDWriteFontFace3 *This,
 4865        UINT32 glyph_count,
 4866        const UINT16 *indices,
 4867        INT32 *advances,
 4868        WINBOOL is_sideways);
 4869
 4870    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
 4871        IDWriteFontFace3 *This,
 4872        FLOAT em_size,
 4873        FLOAT pixels_per_dip,
 4874        const DWRITE_MATRIX *transform,
 4875        WINBOOL use_gdi_natural,
 4876        WINBOOL is_sideways,
 4877        UINT32 glyph_count,
 4878        const UINT16 *indices,
 4879        INT32 *advances);
 4880
 4881    HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
 4882        IDWriteFontFace3 *This,
 4883        UINT32 glyph_count,
 4884        const UINT16 *indices,
 4885        INT32 *adjustments);
 4886
 4887    WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
 4888        IDWriteFontFace3 *This);
 4889
 4890    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
 4891        IDWriteFontFace3 *This,
 4892        FLOAT font_emsize,
 4893        FLOAT dpiX,
 4894        FLOAT dpiY,
 4895        const DWRITE_MATRIX *transform,
 4896        WINBOOL is_sideways,
 4897        DWRITE_OUTLINE_THRESHOLD threshold,
 4898        DWRITE_MEASURING_MODE measuring_mode,
 4899        DWRITE_RENDERING_MODE *rendering_mode);
 4900
 4901    HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
 4902        IDWriteFontFace3 *This,
 4903        UINT32 glyph_count,
 4904        const UINT16 *nominal_indices,
 4905        UINT16 *vertical_indices);
 4906
 4907    WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
 4908        IDWriteFontFace3 *This);
 4909
 4910    /*** IDWriteFontFace2 methods ***/
 4911    WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
 4912        IDWriteFontFace3 *This);
 4913
 4914    UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
 4915        IDWriteFontFace3 *This);
 4916
 4917    UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
 4918        IDWriteFontFace3 *This);
 4919
 4920    HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
 4921        IDWriteFontFace3 *This,
 4922        UINT32 palette_index,
 4923        UINT32 first_entry_index,
 4924        UINT32 entry_count,
 4925        DWRITE_COLOR_F *entries);
 4926
 4927    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
 4928        IDWriteFontFace3 *This,
 4929        FLOAT fontEmSize,
 4930        FLOAT dpiX,
 4931        FLOAT dpiY,
 4932        const DWRITE_MATRIX *transform,
 4933        WINBOOL is_sideways,
 4934        DWRITE_OUTLINE_THRESHOLD threshold,
 4935        DWRITE_MEASURING_MODE measuringmode,
 4936        IDWriteRenderingParams *params,
 4937        DWRITE_RENDERING_MODE *renderingmode,
 4938        DWRITE_GRID_FIT_MODE *gridfitmode);
 4939
 4940    /*** IDWriteFontFace3 methods ***/
 4941    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 4942        IDWriteFontFace3 *This,
 4943        IDWriteFontFaceReference **reference);
 4944
 4945    void (STDMETHODCALLTYPE *GetPanose)(
 4946        IDWriteFontFace3 *This,
 4947        DWRITE_PANOSE *panose);
 4948
 4949    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
 4950        IDWriteFontFace3 *This);
 4951
 4952    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
 4953        IDWriteFontFace3 *This);
 4954
 4955    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
 4956        IDWriteFontFace3 *This);
 4957
 4958    HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
 4959        IDWriteFontFace3 *This,
 4960        IDWriteLocalizedStrings **names);
 4961
 4962    HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
 4963        IDWriteFontFace3 *This,
 4964        IDWriteLocalizedStrings **names);
 4965
 4966    HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
 4967        IDWriteFontFace3 *This,
 4968        DWRITE_INFORMATIONAL_STRING_ID stringid,
 4969        IDWriteLocalizedStrings **strings,
 4970        WINBOOL *exists);
 4971
 4972    WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
 4973        IDWriteFontFace3 *This,
 4974        UINT32 character);
 4975
 4976    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
 4977        IDWriteFontFace3 *This,
 4978        FLOAT emsize,
 4979        FLOAT dpi_x,
 4980        FLOAT dpi_y,
 4981        const DWRITE_MATRIX *transform,
 4982        WINBOOL is_sideways,
 4983        DWRITE_OUTLINE_THRESHOLD threshold,
 4984        DWRITE_MEASURING_MODE measuring_mode,
 4985        IDWriteRenderingParams *params,
 4986        DWRITE_RENDERING_MODE1 *rendering_mode,
 4987        DWRITE_GRID_FIT_MODE *gridfit_mode);
 4988
 4989    WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
 4990        IDWriteFontFace3 *This,
 4991        UINT32 character);
 4992
 4993    WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
 4994        IDWriteFontFace3 *This,
 4995        UINT16 glyph);
 4996
 4997    HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
 4998        IDWriteFontFace3 *This,
 4999        const WCHAR *characters,
 5000        UINT32 count,
 5001        WINBOOL enqueue_if_not,
 5002        WINBOOL *are_local);
 5003
 5004    HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
 5005        IDWriteFontFace3 *This,
 5006        const UINT16 *glyphs,
 5007        UINT32 count,
 5008        WINBOOL enqueue_if_not,
 5009        WINBOOL *are_local);
 5010
 5011    END_INTERFACE
 5012} IDWriteFontFace3Vtbl;
 5013
 5014interface IDWriteFontFace3 {
 5015    CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl;
 5016};
 5017
 5018#ifdef COBJMACROS
 5019#ifndef WIDL_C_INLINE_WRAPPERS
 5020/*** IUnknown methods ***/
 5021#define IDWriteFontFace3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5022#define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This)
 5023#define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This)
 5024/*** IDWriteFontFace methods ***/
 5025#define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This)
 5026#define IDWriteFontFace3_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
 5027#define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This)
 5028#define IDWriteFontFace3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
 5029#define IDWriteFontFace3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
 5030#define IDWriteFontFace3_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
 5031#define IDWriteFontFace3_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
 5032#define IDWriteFontFace3_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
 5033#define IDWriteFontFace3_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
 5034#define IDWriteFontFace3_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
 5035#define IDWriteFontFace3_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
 5036#define IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
 5037/*** IDWriteFontFace1 methods ***/
 5038#define IDWriteFontFace3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
 5039#define IDWriteFontFace3_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
 5040#define IDWriteFontFace3_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
 5041#define IDWriteFontFace3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
 5042#define IDWriteFontFace3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
 5043#define IDWriteFontFace3_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
 5044#define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
 5045#define IDWriteFontFace3_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
 5046#define IDWriteFontFace3_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
 5047#define IDWriteFontFace3_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
 5048#define IDWriteFontFace3_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
 5049/*** IDWriteFontFace2 methods ***/
 5050#define IDWriteFontFace3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
 5051#define IDWriteFontFace3_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
 5052#define IDWriteFontFace3_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
 5053#define IDWriteFontFace3_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
 5054/*** IDWriteFontFace3 methods ***/
 5055#define IDWriteFontFace3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
 5056#define IDWriteFontFace3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
 5057#define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This)
 5058#define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This)
 5059#define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This)
 5060#define IDWriteFontFace3_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
 5061#define IDWriteFontFace3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
 5062#define IDWriteFontFace3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
 5063#define IDWriteFontFace3_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
 5064#define IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
 5065#define IDWriteFontFace3_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
 5066#define IDWriteFontFace3_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
 5067#define IDWriteFontFace3_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
 5068#define IDWriteFontFace3_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
 5069#else
 5070/*** IUnknown methods ***/
 5071static inline HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This,REFIID riid,void **ppvObject) {
 5072    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5073}
 5074static inline ULONG IDWriteFontFace3_AddRef(IDWriteFontFace3* This) {
 5075    return This->lpVtbl->AddRef(This);
 5076}
 5077static inline ULONG IDWriteFontFace3_Release(IDWriteFontFace3* This) {
 5078    return This->lpVtbl->Release(This);
 5079}
 5080/*** IDWriteFontFace methods ***/
 5081static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace3_GetType(IDWriteFontFace3* This) {
 5082    return This->lpVtbl->GetType(This);
 5083}
 5084static inline HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
 5085    return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
 5086}
 5087static inline UINT32 IDWriteFontFace3_GetIndex(IDWriteFontFace3* This) {
 5088    return This->lpVtbl->GetIndex(This);
 5089}
 5090static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace3_GetSimulations(IDWriteFontFace3* This) {
 5091    return This->lpVtbl->GetSimulations(This);
 5092}
 5093static inline WINBOOL IDWriteFontFace3_IsSymbolFont(IDWriteFontFace3* This) {
 5094    return This->lpVtbl->IsSymbolFont(This);
 5095}
 5096static inline UINT16 IDWriteFontFace3_GetGlyphCount(IDWriteFontFace3* This) {
 5097    return This->lpVtbl->GetGlyphCount(This);
 5098}
 5099static inline HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
 5100    return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
 5101}
 5102static inline HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
 5103    return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
 5104}
 5105static inline HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
 5106    return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
 5107}
 5108static inline void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This,void *table_context) {
 5109    This->lpVtbl->ReleaseFontTable(This,table_context);
 5110}
 5111static inline HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
 5112    return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
 5113}
 5114static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
 5115    return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
 5116}
 5117/*** IDWriteFontFace1 methods ***/
 5118static inline void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This,DWRITE_FONT_METRICS1 *metrics) {
 5119    This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
 5120}
 5121static inline HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
 5122    return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
 5123}
 5124static inline void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This,DWRITE_CARET_METRICS *metrics) {
 5125    This->lpVtbl->GetCaretMetrics(This,metrics);
 5126}
 5127static inline HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
 5128    return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
 5129}
 5130static inline WINBOOL IDWriteFontFace3_IsMonospacedFont(IDWriteFontFace3* This) {
 5131    return This->lpVtbl->IsMonospacedFont(This);
 5132}
 5133static inline HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
 5134    return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
 5135}
 5136static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
 5137    return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
 5138}
 5139static inline HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
 5140    return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
 5141}
 5142static inline WINBOOL IDWriteFontFace3_HasKerningPairs(IDWriteFontFace3* This) {
 5143    return This->lpVtbl->HasKerningPairs(This);
 5144}
 5145static inline HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
 5146    return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
 5147}
 5148static inline WINBOOL IDWriteFontFace3_HasVerticalGlyphVariants(IDWriteFontFace3* This) {
 5149    return This->lpVtbl->HasVerticalGlyphVariants(This);
 5150}
 5151/*** IDWriteFontFace2 methods ***/
 5152static inline WINBOOL IDWriteFontFace3_IsColorFont(IDWriteFontFace3* This) {
 5153    return This->lpVtbl->IsColorFont(This);
 5154}
 5155static inline UINT32 IDWriteFontFace3_GetColorPaletteCount(IDWriteFontFace3* This) {
 5156    return This->lpVtbl->GetColorPaletteCount(This);
 5157}
 5158static inline UINT32 IDWriteFontFace3_GetPaletteEntryCount(IDWriteFontFace3* This) {
 5159    return This->lpVtbl->GetPaletteEntryCount(This);
 5160}
 5161static inline HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
 5162    return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
 5163}
 5164/*** IDWriteFontFace3 methods ***/
 5165static inline HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This,IDWriteFontFaceReference **reference) {
 5166    return This->lpVtbl->GetFontFaceReference(This,reference);
 5167}
 5168static inline void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This,DWRITE_PANOSE *panose) {
 5169    This->lpVtbl->GetPanose(This,panose);
 5170}
 5171static inline DWRITE_FONT_WEIGHT IDWriteFontFace3_GetWeight(IDWriteFontFace3* This) {
 5172    return This->lpVtbl->GetWeight(This);
 5173}
 5174static inline DWRITE_FONT_STRETCH IDWriteFontFace3_GetStretch(IDWriteFontFace3* This) {
 5175    return This->lpVtbl->GetStretch(This);
 5176}
 5177static inline DWRITE_FONT_STYLE IDWriteFontFace3_GetStyle(IDWriteFontFace3* This) {
 5178    return This->lpVtbl->GetStyle(This);
 5179}
 5180static inline HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) {
 5181    return This->lpVtbl->GetFamilyNames(This,names);
 5182}
 5183static inline HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) {
 5184    return This->lpVtbl->GetFaceNames(This,names);
 5185}
 5186static inline HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
 5187    return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
 5188}
 5189static inline WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This,UINT32 character) {
 5190    return This->lpVtbl->HasCharacter(This,character);
 5191}
 5192static inline HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
 5193    return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
 5194}
 5195static inline WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This,UINT32 character) {
 5196    return This->lpVtbl->IsCharacterLocal(This,character);
 5197}
 5198static inline WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This,UINT16 glyph) {
 5199    return This->lpVtbl->IsGlyphLocal(This,glyph);
 5200}
 5201static inline HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
 5202    return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
 5203}
 5204static inline HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
 5205    return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
 5206}
 5207#endif
 5208#endif
 5209
 5210#endif
 5211
 5212
 5213#endif  /* __IDWriteFontFace3_INTERFACE_DEFINED__ */
 5214
 5215typedef struct DWRITE_LINE_METRICS1 {
 5216    UINT32 length;
 5217    UINT32 trailingWhitespaceLength;
 5218    UINT32 newlineLength;
 5219    FLOAT height;
 5220    FLOAT baseline;
 5221    WINBOOL isTrimmed;
 5222    FLOAT leadingBefore;
 5223    FLOAT leadingAfter;
 5224} DWRITE_LINE_METRICS1;
 5225typedef enum DWRITE_FONT_LINE_GAP_USAGE {
 5226    DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0,
 5227    DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1,
 5228    DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2
 5229} DWRITE_FONT_LINE_GAP_USAGE;
 5230typedef struct DWRITE_LINE_SPACING {
 5231    DWRITE_LINE_SPACING_METHOD method;
 5232    FLOAT height;
 5233    FLOAT baseline;
 5234    FLOAT leadingBefore;
 5235    DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage;
 5236} DWRITE_LINE_SPACING;
 5237/*****************************************************************************
 5238 * IDWriteTextFormat2 interface
 5239 */
 5240#ifndef __IDWriteTextFormat2_INTERFACE_DEFINED__
 5241#define __IDWriteTextFormat2_INTERFACE_DEFINED__
 5242
 5243DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70);
 5244#if defined(__cplusplus) && !defined(CINTERFACE)
 5245MIDL_INTERFACE("f67e0edd-9e3d-4ecc-8c32-4183253dfe70")
 5246IDWriteTextFormat2 : public IDWriteTextFormat1
 5247{
 5248    virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
 5249        const DWRITE_LINE_SPACING *spacing) = 0;
 5250
 5251    virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
 5252        DWRITE_LINE_SPACING *spacing) = 0;
 5253
 5254};
 5255#ifdef __CRT_UUID_DECL
 5256__CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70)
 5257#endif
 5258#else
 5259typedef struct IDWriteTextFormat2Vtbl {
 5260    BEGIN_INTERFACE
 5261
 5262    /*** IUnknown methods ***/
 5263    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5264        IDWriteTextFormat2 *This,
 5265        REFIID riid,
 5266        void **ppvObject);
 5267
 5268    ULONG (STDMETHODCALLTYPE *AddRef)(
 5269        IDWriteTextFormat2 *This);
 5270
 5271    ULONG (STDMETHODCALLTYPE *Release)(
 5272        IDWriteTextFormat2 *This);
 5273
 5274    /*** IDWriteTextFormat methods ***/
 5275    HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
 5276        IDWriteTextFormat2 *This,
 5277        DWRITE_TEXT_ALIGNMENT alignment);
 5278
 5279    HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
 5280        IDWriteTextFormat2 *This,
 5281        DWRITE_PARAGRAPH_ALIGNMENT alignment);
 5282
 5283    HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
 5284        IDWriteTextFormat2 *This,
 5285        DWRITE_WORD_WRAPPING wrapping);
 5286
 5287    HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
 5288        IDWriteTextFormat2 *This,
 5289        DWRITE_READING_DIRECTION direction);
 5290
 5291    HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
 5292        IDWriteTextFormat2 *This,
 5293        DWRITE_FLOW_DIRECTION direction);
 5294
 5295    HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
 5296        IDWriteTextFormat2 *This,
 5297        FLOAT tabstop);
 5298
 5299    HRESULT (STDMETHODCALLTYPE *SetTrimming)(
 5300        IDWriteTextFormat2 *This,
 5301        const DWRITE_TRIMMING *trimming,
 5302        IDWriteInlineObject *trimming_sign);
 5303
 5304    HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
 5305        IDWriteTextFormat2 *This,
 5306        DWRITE_LINE_SPACING_METHOD spacing,
 5307        FLOAT line_spacing,
 5308        FLOAT baseline);
 5309
 5310    DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
 5311        IDWriteTextFormat2 *This);
 5312
 5313    DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
 5314        IDWriteTextFormat2 *This);
 5315
 5316    DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
 5317        IDWriteTextFormat2 *This);
 5318
 5319    DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
 5320        IDWriteTextFormat2 *This);
 5321
 5322    DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
 5323        IDWriteTextFormat2 *This);
 5324
 5325    FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
 5326        IDWriteTextFormat2 *This);
 5327
 5328    HRESULT (STDMETHODCALLTYPE *GetTrimming)(
 5329        IDWriteTextFormat2 *This,
 5330        DWRITE_TRIMMING *options,
 5331        IDWriteInlineObject **trimming_sign);
 5332
 5333    HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
 5334        IDWriteTextFormat2 *This,
 5335        DWRITE_LINE_SPACING_METHOD *method,
 5336        FLOAT *spacing,
 5337        FLOAT *baseline);
 5338
 5339    HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
 5340        IDWriteTextFormat2 *This,
 5341        IDWriteFontCollection **collection);
 5342
 5343    UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
 5344        IDWriteTextFormat2 *This);
 5345
 5346    HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
 5347        IDWriteTextFormat2 *This,
 5348        WCHAR *name,
 5349        UINT32 size);
 5350
 5351    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
 5352        IDWriteTextFormat2 *This);
 5353
 5354    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
 5355        IDWriteTextFormat2 *This);
 5356
 5357    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
 5358        IDWriteTextFormat2 *This);
 5359
 5360    FLOAT (STDMETHODCALLTYPE *GetFontSize)(
 5361        IDWriteTextFormat2 *This);
 5362
 5363    UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
 5364        IDWriteTextFormat2 *This);
 5365
 5366    HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
 5367        IDWriteTextFormat2 *This,
 5368        WCHAR *name,
 5369        UINT32 size);
 5370
 5371    /*** IDWriteTextFormat1 methods ***/
 5372    HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
 5373        IDWriteTextFormat2 *This,
 5374        DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
 5375
 5376    DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
 5377        IDWriteTextFormat2 *This);
 5378
 5379    HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
 5380        IDWriteTextFormat2 *This,
 5381        WINBOOL lastline_wrapping_enabled);
 5382
 5383    WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
 5384        IDWriteTextFormat2 *This);
 5385
 5386    HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
 5387        IDWriteTextFormat2 *This,
 5388        DWRITE_OPTICAL_ALIGNMENT alignment);
 5389
 5390    DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
 5391        IDWriteTextFormat2 *This);
 5392
 5393    HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
 5394        IDWriteTextFormat2 *This,
 5395        IDWriteFontFallback *fallback);
 5396
 5397    HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
 5398        IDWriteTextFormat2 *This,
 5399        IDWriteFontFallback **fallback);
 5400
 5401    /*** IDWriteTextFormat2 methods ***/
 5402    HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)(
 5403        IDWriteTextFormat2 *This,
 5404        const DWRITE_LINE_SPACING *spacing);
 5405
 5406    HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)(
 5407        IDWriteTextFormat2 *This,
 5408        DWRITE_LINE_SPACING *spacing);
 5409
 5410    END_INTERFACE
 5411} IDWriteTextFormat2Vtbl;
 5412
 5413interface IDWriteTextFormat2 {
 5414    CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl;
 5415};
 5416
 5417#ifdef COBJMACROS
 5418#ifndef WIDL_C_INLINE_WRAPPERS
 5419/*** IUnknown methods ***/
 5420#define IDWriteTextFormat2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5421#define IDWriteTextFormat2_AddRef(This) (This)->lpVtbl->AddRef(This)
 5422#define IDWriteTextFormat2_Release(This) (This)->lpVtbl->Release(This)
 5423/*** IDWriteTextFormat methods ***/
 5424#define IDWriteTextFormat2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
 5425#define IDWriteTextFormat2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
 5426#define IDWriteTextFormat2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
 5427#define IDWriteTextFormat2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
 5428#define IDWriteTextFormat2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
 5429#define IDWriteTextFormat2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
 5430#define IDWriteTextFormat2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
 5431#define IDWriteTextFormat2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
 5432#define IDWriteTextFormat2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
 5433#define IDWriteTextFormat2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
 5434#define IDWriteTextFormat2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
 5435#define IDWriteTextFormat2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
 5436#define IDWriteTextFormat2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
 5437#define IDWriteTextFormat2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
 5438#define IDWriteTextFormat2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
 5439#define IDWriteTextFormat2_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
 5440#define IDWriteTextFormat2_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
 5441#define IDWriteTextFormat2_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
 5442#define IDWriteTextFormat2_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
 5443#define IDWriteTextFormat2_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
 5444#define IDWriteTextFormat2_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
 5445#define IDWriteTextFormat2_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
 5446#define IDWriteTextFormat2_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
 5447/*** IDWriteTextFormat1 methods ***/
 5448#define IDWriteTextFormat2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
 5449#define IDWriteTextFormat2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
 5450#define IDWriteTextFormat2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
 5451#define IDWriteTextFormat2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
 5452#define IDWriteTextFormat2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
 5453#define IDWriteTextFormat2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
 5454#define IDWriteTextFormat2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
 5455#define IDWriteTextFormat2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
 5456/*** IDWriteTextFormat2 methods ***/
 5457#define IDWriteTextFormat2_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing)
 5458#define IDWriteTextFormat2_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing)
 5459#else
 5460/*** IUnknown methods ***/
 5461static inline HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This,REFIID riid,void **ppvObject) {
 5462    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5463}
 5464static inline ULONG IDWriteTextFormat2_AddRef(IDWriteTextFormat2* This) {
 5465    return This->lpVtbl->AddRef(This);
 5466}
 5467static inline ULONG IDWriteTextFormat2_Release(IDWriteTextFormat2* This) {
 5468    return This->lpVtbl->Release(This);
 5469}
 5470/*** IDWriteTextFormat methods ***/
 5471static inline HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This,DWRITE_TEXT_ALIGNMENT alignment) {
 5472    return This->lpVtbl->SetTextAlignment(This,alignment);
 5473}
 5474static inline HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
 5475    return This->lpVtbl->SetParagraphAlignment(This,alignment);
 5476}
 5477static inline HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This,DWRITE_WORD_WRAPPING wrapping) {
 5478    return This->lpVtbl->SetWordWrapping(This,wrapping);
 5479}
 5480static inline HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This,DWRITE_READING_DIRECTION direction) {
 5481    return This->lpVtbl->SetReadingDirection(This,direction);
 5482}
 5483static inline HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This,DWRITE_FLOW_DIRECTION direction) {
 5484    return This->lpVtbl->SetFlowDirection(This,direction);
 5485}
 5486static inline HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This,FLOAT tabstop) {
 5487    return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
 5488}
 5489static inline HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
 5490    return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
 5491}
 5492static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat2_GetTextAlignment(IDWriteTextFormat2* This) {
 5493    return This->lpVtbl->GetTextAlignment(This);
 5494}
 5495static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat2_GetParagraphAlignment(IDWriteTextFormat2* This) {
 5496    return This->lpVtbl->GetParagraphAlignment(This);
 5497}
 5498static inline DWRITE_WORD_WRAPPING IDWriteTextFormat2_GetWordWrapping(IDWriteTextFormat2* This) {
 5499    return This->lpVtbl->GetWordWrapping(This);
 5500}
 5501static inline DWRITE_READING_DIRECTION IDWriteTextFormat2_GetReadingDirection(IDWriteTextFormat2* This) {
 5502    return This->lpVtbl->GetReadingDirection(This);
 5503}
 5504static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat2_GetFlowDirection(IDWriteTextFormat2* This) {
 5505    return This->lpVtbl->GetFlowDirection(This);
 5506}
 5507static inline FLOAT IDWriteTextFormat2_GetIncrementalTabStop(IDWriteTextFormat2* This) {
 5508    return This->lpVtbl->GetIncrementalTabStop(This);
 5509}
 5510static inline HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
 5511    return This->lpVtbl->GetTrimming(This,options,trimming_sign);
 5512}
 5513static inline HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This,IDWriteFontCollection **collection) {
 5514    return This->lpVtbl->GetFontCollection(This,collection);
 5515}
 5516static inline UINT32 IDWriteTextFormat2_GetFontFamilyNameLength(IDWriteTextFormat2* This) {
 5517    return This->lpVtbl->GetFontFamilyNameLength(This);
 5518}
 5519static inline HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) {
 5520    return This->lpVtbl->GetFontFamilyName(This,name,size);
 5521}
 5522static inline DWRITE_FONT_WEIGHT IDWriteTextFormat2_GetFontWeight(IDWriteTextFormat2* This) {
 5523    return This->lpVtbl->GetFontWeight(This);
 5524}
 5525static inline DWRITE_FONT_STYLE IDWriteTextFormat2_GetFontStyle(IDWriteTextFormat2* This) {
 5526    return This->lpVtbl->GetFontStyle(This);
 5527}
 5528static inline DWRITE_FONT_STRETCH IDWriteTextFormat2_GetFontStretch(IDWriteTextFormat2* This) {
 5529    return This->lpVtbl->GetFontStretch(This);
 5530}
 5531static inline FLOAT IDWriteTextFormat2_GetFontSize(IDWriteTextFormat2* This) {
 5532    return This->lpVtbl->GetFontSize(This);
 5533}
 5534static inline UINT32 IDWriteTextFormat2_GetLocaleNameLength(IDWriteTextFormat2* This) {
 5535    return This->lpVtbl->GetLocaleNameLength(This);
 5536}
 5537static inline HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) {
 5538    return This->lpVtbl->GetLocaleName(This,name,size);
 5539}
 5540/*** IDWriteTextFormat1 methods ***/
 5541static inline HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
 5542    return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
 5543}
 5544static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat2_GetVerticalGlyphOrientation(IDWriteTextFormat2* This) {
 5545    return This->lpVtbl->GetVerticalGlyphOrientation(This);
 5546}
 5547static inline HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This,WINBOOL lastline_wrapping_enabled) {
 5548    return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
 5549}
 5550static inline WINBOOL IDWriteTextFormat2_GetLastLineWrapping(IDWriteTextFormat2* This) {
 5551    return This->lpVtbl->GetLastLineWrapping(This);
 5552}
 5553static inline HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
 5554    return This->lpVtbl->SetOpticalAlignment(This,alignment);
 5555}
 5556static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat2_GetOpticalAlignment(IDWriteTextFormat2* This) {
 5557    return This->lpVtbl->GetOpticalAlignment(This);
 5558}
 5559static inline HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback *fallback) {
 5560    return This->lpVtbl->SetFontFallback(This,fallback);
 5561}
 5562static inline HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback **fallback) {
 5563    return This->lpVtbl->GetFontFallback(This,fallback);
 5564}
 5565/*** IDWriteTextFormat2 methods ***/
 5566static inline HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This,const DWRITE_LINE_SPACING *spacing) {
 5567    return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing);
 5568}
 5569static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This,DWRITE_LINE_SPACING *spacing) {
 5570    return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing);
 5571}
 5572#endif
 5573#endif
 5574
 5575#endif
 5576
 5577
 5578#endif  /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */
 5579
 5580/*****************************************************************************
 5581 * IDWriteTextFormat3 interface
 5582 */
 5583#ifndef __IDWriteTextFormat3_INTERFACE_DEFINED__
 5584#define __IDWriteTextFormat3_INTERFACE_DEFINED__
 5585
 5586DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27);
 5587#if defined(__cplusplus) && !defined(CINTERFACE)
 5588MIDL_INTERFACE("6d3b5641-e550-430d-a85b-b7bf48a93427")
 5589IDWriteTextFormat3 : public IDWriteTextFormat2
 5590{
 5591    virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues(
 5592        const DWRITE_FONT_AXIS_VALUE *axis_values,
 5593        UINT32 num_values) = 0;
 5594
 5595    virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
 5596        ) = 0;
 5597
 5598    virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
 5599        DWRITE_FONT_AXIS_VALUE *axis_values,
 5600        UINT32 num_values) = 0;
 5601
 5602    virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
 5603        ) = 0;
 5604
 5605    virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes(
 5606        DWRITE_AUTOMATIC_FONT_AXES axes) = 0;
 5607
 5608};
 5609#ifdef __CRT_UUID_DECL
 5610__CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27)
 5611#endif
 5612#else
 5613typedef struct IDWriteTextFormat3Vtbl {
 5614    BEGIN_INTERFACE
 5615
 5616    /*** IUnknown methods ***/
 5617    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5618        IDWriteTextFormat3 *This,
 5619        REFIID riid,
 5620        void **ppvObject);
 5621
 5622    ULONG (STDMETHODCALLTYPE *AddRef)(
 5623        IDWriteTextFormat3 *This);
 5624
 5625    ULONG (STDMETHODCALLTYPE *Release)(
 5626        IDWriteTextFormat3 *This);
 5627
 5628    /*** IDWriteTextFormat methods ***/
 5629    HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
 5630        IDWriteTextFormat3 *This,
 5631        DWRITE_TEXT_ALIGNMENT alignment);
 5632
 5633    HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
 5634        IDWriteTextFormat3 *This,
 5635        DWRITE_PARAGRAPH_ALIGNMENT alignment);
 5636
 5637    HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
 5638        IDWriteTextFormat3 *This,
 5639        DWRITE_WORD_WRAPPING wrapping);
 5640
 5641    HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
 5642        IDWriteTextFormat3 *This,
 5643        DWRITE_READING_DIRECTION direction);
 5644
 5645    HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
 5646        IDWriteTextFormat3 *This,
 5647        DWRITE_FLOW_DIRECTION direction);
 5648
 5649    HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
 5650        IDWriteTextFormat3 *This,
 5651        FLOAT tabstop);
 5652
 5653    HRESULT (STDMETHODCALLTYPE *SetTrimming)(
 5654        IDWriteTextFormat3 *This,
 5655        const DWRITE_TRIMMING *trimming,
 5656        IDWriteInlineObject *trimming_sign);
 5657
 5658    HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
 5659        IDWriteTextFormat3 *This,
 5660        DWRITE_LINE_SPACING_METHOD spacing,
 5661        FLOAT line_spacing,
 5662        FLOAT baseline);
 5663
 5664    DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
 5665        IDWriteTextFormat3 *This);
 5666
 5667    DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
 5668        IDWriteTextFormat3 *This);
 5669
 5670    DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
 5671        IDWriteTextFormat3 *This);
 5672
 5673    DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
 5674        IDWriteTextFormat3 *This);
 5675
 5676    DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
 5677        IDWriteTextFormat3 *This);
 5678
 5679    FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
 5680        IDWriteTextFormat3 *This);
 5681
 5682    HRESULT (STDMETHODCALLTYPE *GetTrimming)(
 5683        IDWriteTextFormat3 *This,
 5684        DWRITE_TRIMMING *options,
 5685        IDWriteInlineObject **trimming_sign);
 5686
 5687    HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
 5688        IDWriteTextFormat3 *This,
 5689        DWRITE_LINE_SPACING_METHOD *method,
 5690        FLOAT *spacing,
 5691        FLOAT *baseline);
 5692
 5693    HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
 5694        IDWriteTextFormat3 *This,
 5695        IDWriteFontCollection **collection);
 5696
 5697    UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
 5698        IDWriteTextFormat3 *This);
 5699
 5700    HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
 5701        IDWriteTextFormat3 *This,
 5702        WCHAR *name,
 5703        UINT32 size);
 5704
 5705    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
 5706        IDWriteTextFormat3 *This);
 5707
 5708    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
 5709        IDWriteTextFormat3 *This);
 5710
 5711    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
 5712        IDWriteTextFormat3 *This);
 5713
 5714    FLOAT (STDMETHODCALLTYPE *GetFontSize)(
 5715        IDWriteTextFormat3 *This);
 5716
 5717    UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
 5718        IDWriteTextFormat3 *This);
 5719
 5720    HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
 5721        IDWriteTextFormat3 *This,
 5722        WCHAR *name,
 5723        UINT32 size);
 5724
 5725    /*** IDWriteTextFormat1 methods ***/
 5726    HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
 5727        IDWriteTextFormat3 *This,
 5728        DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
 5729
 5730    DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
 5731        IDWriteTextFormat3 *This);
 5732
 5733    HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
 5734        IDWriteTextFormat3 *This,
 5735        WINBOOL lastline_wrapping_enabled);
 5736
 5737    WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
 5738        IDWriteTextFormat3 *This);
 5739
 5740    HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
 5741        IDWriteTextFormat3 *This,
 5742        DWRITE_OPTICAL_ALIGNMENT alignment);
 5743
 5744    DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
 5745        IDWriteTextFormat3 *This);
 5746
 5747    HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
 5748        IDWriteTextFormat3 *This,
 5749        IDWriteFontFallback *fallback);
 5750
 5751    HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
 5752        IDWriteTextFormat3 *This,
 5753        IDWriteFontFallback **fallback);
 5754
 5755    /*** IDWriteTextFormat2 methods ***/
 5756    HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)(
 5757        IDWriteTextFormat3 *This,
 5758        const DWRITE_LINE_SPACING *spacing);
 5759
 5760    HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)(
 5761        IDWriteTextFormat3 *This,
 5762        DWRITE_LINE_SPACING *spacing);
 5763
 5764    /*** IDWriteTextFormat3 methods ***/
 5765    HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)(
 5766        IDWriteTextFormat3 *This,
 5767        const DWRITE_FONT_AXIS_VALUE *axis_values,
 5768        UINT32 num_values);
 5769
 5770    UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
 5771        IDWriteTextFormat3 *This);
 5772
 5773    HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
 5774        IDWriteTextFormat3 *This,
 5775        DWRITE_FONT_AXIS_VALUE *axis_values,
 5776        UINT32 num_values);
 5777
 5778    DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
 5779        IDWriteTextFormat3 *This);
 5780
 5781    HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)(
 5782        IDWriteTextFormat3 *This,
 5783        DWRITE_AUTOMATIC_FONT_AXES axes);
 5784
 5785    END_INTERFACE
 5786} IDWriteTextFormat3Vtbl;
 5787
 5788interface IDWriteTextFormat3 {
 5789    CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl;
 5790};
 5791
 5792#ifdef COBJMACROS
 5793#ifndef WIDL_C_INLINE_WRAPPERS
 5794/*** IUnknown methods ***/
 5795#define IDWriteTextFormat3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5796#define IDWriteTextFormat3_AddRef(This) (This)->lpVtbl->AddRef(This)
 5797#define IDWriteTextFormat3_Release(This) (This)->lpVtbl->Release(This)
 5798/*** IDWriteTextFormat methods ***/
 5799#define IDWriteTextFormat3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
 5800#define IDWriteTextFormat3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
 5801#define IDWriteTextFormat3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
 5802#define IDWriteTextFormat3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
 5803#define IDWriteTextFormat3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
 5804#define IDWriteTextFormat3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
 5805#define IDWriteTextFormat3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
 5806#define IDWriteTextFormat3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
 5807#define IDWriteTextFormat3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
 5808#define IDWriteTextFormat3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
 5809#define IDWriteTextFormat3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
 5810#define IDWriteTextFormat3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
 5811#define IDWriteTextFormat3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
 5812#define IDWriteTextFormat3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
 5813#define IDWriteTextFormat3_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection)
 5814#define IDWriteTextFormat3_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This)
 5815#define IDWriteTextFormat3_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size)
 5816#define IDWriteTextFormat3_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This)
 5817#define IDWriteTextFormat3_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This)
 5818#define IDWriteTextFormat3_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This)
 5819#define IDWriteTextFormat3_GetFontSize(This) (This)->lpVtbl->GetFontSize(This)
 5820#define IDWriteTextFormat3_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This)
 5821#define IDWriteTextFormat3_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size)
 5822/*** IDWriteTextFormat1 methods ***/
 5823#define IDWriteTextFormat3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
 5824#define IDWriteTextFormat3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
 5825#define IDWriteTextFormat3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
 5826#define IDWriteTextFormat3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
 5827#define IDWriteTextFormat3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
 5828#define IDWriteTextFormat3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
 5829#define IDWriteTextFormat3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
 5830#define IDWriteTextFormat3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
 5831/*** IDWriteTextFormat2 methods ***/
 5832#define IDWriteTextFormat3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing)
 5833#define IDWriteTextFormat3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing)
 5834/*** IDWriteTextFormat3 methods ***/
 5835#define IDWriteTextFormat3_SetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values)
 5836#define IDWriteTextFormat3_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
 5837#define IDWriteTextFormat3_GetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->GetFontAxisValues(This,axis_values,num_values)
 5838#define IDWriteTextFormat3_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This)
 5839#define IDWriteTextFormat3_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes)
 5840#else
 5841/*** IUnknown methods ***/
 5842static inline HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This,REFIID riid,void **ppvObject) {
 5843    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5844}
 5845static inline ULONG IDWriteTextFormat3_AddRef(IDWriteTextFormat3* This) {
 5846    return This->lpVtbl->AddRef(This);
 5847}
 5848static inline ULONG IDWriteTextFormat3_Release(IDWriteTextFormat3* This) {
 5849    return This->lpVtbl->Release(This);
 5850}
 5851/*** IDWriteTextFormat methods ***/
 5852static inline HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This,DWRITE_TEXT_ALIGNMENT alignment) {
 5853    return This->lpVtbl->SetTextAlignment(This,alignment);
 5854}
 5855static inline HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
 5856    return This->lpVtbl->SetParagraphAlignment(This,alignment);
 5857}
 5858static inline HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This,DWRITE_WORD_WRAPPING wrapping) {
 5859    return This->lpVtbl->SetWordWrapping(This,wrapping);
 5860}
 5861static inline HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This,DWRITE_READING_DIRECTION direction) {
 5862    return This->lpVtbl->SetReadingDirection(This,direction);
 5863}
 5864static inline HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This,DWRITE_FLOW_DIRECTION direction) {
 5865    return This->lpVtbl->SetFlowDirection(This,direction);
 5866}
 5867static inline HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This,FLOAT tabstop) {
 5868    return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
 5869}
 5870static inline HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
 5871    return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
 5872}
 5873static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat3_GetTextAlignment(IDWriteTextFormat3* This) {
 5874    return This->lpVtbl->GetTextAlignment(This);
 5875}
 5876static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat3_GetParagraphAlignment(IDWriteTextFormat3* This) {
 5877    return This->lpVtbl->GetParagraphAlignment(This);
 5878}
 5879static inline DWRITE_WORD_WRAPPING IDWriteTextFormat3_GetWordWrapping(IDWriteTextFormat3* This) {
 5880    return This->lpVtbl->GetWordWrapping(This);
 5881}
 5882static inline DWRITE_READING_DIRECTION IDWriteTextFormat3_GetReadingDirection(IDWriteTextFormat3* This) {
 5883    return This->lpVtbl->GetReadingDirection(This);
 5884}
 5885static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat3_GetFlowDirection(IDWriteTextFormat3* This) {
 5886    return This->lpVtbl->GetFlowDirection(This);
 5887}
 5888static inline FLOAT IDWriteTextFormat3_GetIncrementalTabStop(IDWriteTextFormat3* This) {
 5889    return This->lpVtbl->GetIncrementalTabStop(This);
 5890}
 5891static inline HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
 5892    return This->lpVtbl->GetTrimming(This,options,trimming_sign);
 5893}
 5894static inline HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This,IDWriteFontCollection **collection) {
 5895    return This->lpVtbl->GetFontCollection(This,collection);
 5896}
 5897static inline UINT32 IDWriteTextFormat3_GetFontFamilyNameLength(IDWriteTextFormat3* This) {
 5898    return This->lpVtbl->GetFontFamilyNameLength(This);
 5899}
 5900static inline HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) {
 5901    return This->lpVtbl->GetFontFamilyName(This,name,size);
 5902}
 5903static inline DWRITE_FONT_WEIGHT IDWriteTextFormat3_GetFontWeight(IDWriteTextFormat3* This) {
 5904    return This->lpVtbl->GetFontWeight(This);
 5905}
 5906static inline DWRITE_FONT_STYLE IDWriteTextFormat3_GetFontStyle(IDWriteTextFormat3* This) {
 5907    return This->lpVtbl->GetFontStyle(This);
 5908}
 5909static inline DWRITE_FONT_STRETCH IDWriteTextFormat3_GetFontStretch(IDWriteTextFormat3* This) {
 5910    return This->lpVtbl->GetFontStretch(This);
 5911}
 5912static inline FLOAT IDWriteTextFormat3_GetFontSize(IDWriteTextFormat3* This) {
 5913    return This->lpVtbl->GetFontSize(This);
 5914}
 5915static inline UINT32 IDWriteTextFormat3_GetLocaleNameLength(IDWriteTextFormat3* This) {
 5916    return This->lpVtbl->GetLocaleNameLength(This);
 5917}
 5918static inline HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) {
 5919    return This->lpVtbl->GetLocaleName(This,name,size);
 5920}
 5921/*** IDWriteTextFormat1 methods ***/
 5922static inline HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
 5923    return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
 5924}
 5925static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat3_GetVerticalGlyphOrientation(IDWriteTextFormat3* This) {
 5926    return This->lpVtbl->GetVerticalGlyphOrientation(This);
 5927}
 5928static inline HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This,WINBOOL lastline_wrapping_enabled) {
 5929    return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
 5930}
 5931static inline WINBOOL IDWriteTextFormat3_GetLastLineWrapping(IDWriteTextFormat3* This) {
 5932    return This->lpVtbl->GetLastLineWrapping(This);
 5933}
 5934static inline HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
 5935    return This->lpVtbl->SetOpticalAlignment(This,alignment);
 5936}
 5937static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat3_GetOpticalAlignment(IDWriteTextFormat3* This) {
 5938    return This->lpVtbl->GetOpticalAlignment(This);
 5939}
 5940static inline HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback *fallback) {
 5941    return This->lpVtbl->SetFontFallback(This,fallback);
 5942}
 5943static inline HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback **fallback) {
 5944    return This->lpVtbl->GetFontFallback(This,fallback);
 5945}
 5946/*** IDWriteTextFormat2 methods ***/
 5947static inline HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This,const DWRITE_LINE_SPACING *spacing) {
 5948    return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing);
 5949}
 5950static inline HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This,DWRITE_LINE_SPACING *spacing) {
 5951    return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing);
 5952}
 5953/*** IDWriteTextFormat3 methods ***/
 5954static inline HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
 5955    return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values);
 5956}
 5957static inline UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) {
 5958    return This->lpVtbl->GetFontAxisValueCount(This);
 5959}
 5960static inline HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
 5961    return This->lpVtbl->GetFontAxisValues(This,axis_values,num_values);
 5962}
 5963static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) {
 5964    return This->lpVtbl->GetAutomaticFontAxes(This);
 5965}
 5966static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This,DWRITE_AUTOMATIC_FONT_AXES axes) {
 5967    return This->lpVtbl->SetAutomaticFontAxes(This,axes);
 5968}
 5969#endif
 5970#endif
 5971
 5972#endif
 5973
 5974
 5975#endif  /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */
 5976
 5977/*****************************************************************************
 5978 * IDWriteTextLayout3 interface
 5979 */
 5980#ifndef __IDWriteTextLayout3_INTERFACE_DEFINED__
 5981#define __IDWriteTextLayout3_INTERFACE_DEFINED__
 5982
 5983DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d);
 5984#if defined(__cplusplus) && !defined(CINTERFACE)
 5985MIDL_INTERFACE("07ddcd52-020e-4de8-ac33-6c953d83f92d")
 5986IDWriteTextLayout3 : public IDWriteTextLayout2
 5987{
 5988    virtual HRESULT STDMETHODCALLTYPE InvalidateLayout(
 5989        ) = 0;
 5990
 5991    virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
 5992        const DWRITE_LINE_SPACING *spacing) = 0;
 5993
 5994    virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
 5995        DWRITE_LINE_SPACING *spacing) = 0;
 5996
 5997    virtual HRESULT STDMETHODCALLTYPE GetLineMetrics(
 5998        DWRITE_LINE_METRICS1 *metrics,
 5999        UINT32 max_count,
 6000        UINT32 *count) = 0;
 6001
 6002};
 6003#ifdef __CRT_UUID_DECL
 6004__CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d)
 6005#endif
 6006#else
 6007typedef struct IDWriteTextLayout3Vtbl {
 6008    BEGIN_INTERFACE
 6009
 6010    /*** IUnknown methods ***/
 6011    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6012        IDWriteTextLayout3 *This,
 6013        REFIID riid,
 6014        void **ppvObject);
 6015
 6016    ULONG (STDMETHODCALLTYPE *AddRef)(
 6017        IDWriteTextLayout3 *This);
 6018
 6019    ULONG (STDMETHODCALLTYPE *Release)(
 6020        IDWriteTextLayout3 *This);
 6021
 6022    /*** IDWriteTextFormat methods ***/
 6023    HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
 6024        IDWriteTextLayout3 *This,
 6025        DWRITE_TEXT_ALIGNMENT alignment);
 6026
 6027    HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
 6028        IDWriteTextLayout3 *This,
 6029        DWRITE_PARAGRAPH_ALIGNMENT alignment);
 6030
 6031    HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
 6032        IDWriteTextLayout3 *This,
 6033        DWRITE_WORD_WRAPPING wrapping);
 6034
 6035    HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
 6036        IDWriteTextLayout3 *This,
 6037        DWRITE_READING_DIRECTION direction);
 6038
 6039    HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
 6040        IDWriteTextLayout3 *This,
 6041        DWRITE_FLOW_DIRECTION direction);
 6042
 6043    HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
 6044        IDWriteTextLayout3 *This,
 6045        FLOAT tabstop);
 6046
 6047    HRESULT (STDMETHODCALLTYPE *SetTrimming)(
 6048        IDWriteTextLayout3 *This,
 6049        const DWRITE_TRIMMING *trimming,
 6050        IDWriteInlineObject *trimming_sign);
 6051
 6052    HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
 6053        IDWriteTextLayout3 *This,
 6054        DWRITE_LINE_SPACING_METHOD spacing,
 6055        FLOAT line_spacing,
 6056        FLOAT baseline);
 6057
 6058    DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
 6059        IDWriteTextLayout3 *This);
 6060
 6061    DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
 6062        IDWriteTextLayout3 *This);
 6063
 6064    DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
 6065        IDWriteTextLayout3 *This);
 6066
 6067    DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
 6068        IDWriteTextLayout3 *This);
 6069
 6070    DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
 6071        IDWriteTextLayout3 *This);
 6072
 6073    FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
 6074        IDWriteTextLayout3 *This);
 6075
 6076    HRESULT (STDMETHODCALLTYPE *GetTrimming)(
 6077        IDWriteTextLayout3 *This,
 6078        DWRITE_TRIMMING *options,
 6079        IDWriteInlineObject **trimming_sign);
 6080
 6081    HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
 6082        IDWriteTextLayout3 *This,
 6083        DWRITE_LINE_SPACING_METHOD *method,
 6084        FLOAT *spacing,
 6085        FLOAT *baseline);
 6086
 6087    HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
 6088        IDWriteTextLayout3 *This,
 6089        IDWriteFontCollection **collection);
 6090
 6091    UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
 6092        IDWriteTextLayout3 *This);
 6093
 6094    HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
 6095        IDWriteTextLayout3 *This,
 6096        WCHAR *name,
 6097        UINT32 size);
 6098
 6099    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
 6100        IDWriteTextLayout3 *This);
 6101
 6102    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
 6103        IDWriteTextLayout3 *This);
 6104
 6105    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
 6106        IDWriteTextLayout3 *This);
 6107
 6108    FLOAT (STDMETHODCALLTYPE *GetFontSize)(
 6109        IDWriteTextLayout3 *This);
 6110
 6111    UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
 6112        IDWriteTextLayout3 *This);
 6113
 6114    HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
 6115        IDWriteTextLayout3 *This,
 6116        WCHAR *name,
 6117        UINT32 size);
 6118
 6119    /*** IDWriteTextLayout methods ***/
 6120    HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
 6121        IDWriteTextLayout3 *This,
 6122        FLOAT maxWidth);
 6123
 6124    HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
 6125        IDWriteTextLayout3 *This,
 6126        FLOAT maxHeight);
 6127
 6128    HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
 6129        IDWriteTextLayout3 *This,
 6130        IDWriteFontCollection *collection,
 6131        DWRITE_TEXT_RANGE range);
 6132
 6133    HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
 6134        IDWriteTextLayout3 *This,
 6135        const WCHAR *name,
 6136        DWRITE_TEXT_RANGE range);
 6137
 6138    HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
 6139        IDWriteTextLayout3 *This,
 6140        DWRITE_FONT_WEIGHT weight,
 6141        DWRITE_TEXT_RANGE range);
 6142
 6143    HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
 6144        IDWriteTextLayout3 *This,
 6145        DWRITE_FONT_STYLE style,
 6146        DWRITE_TEXT_RANGE range);
 6147
 6148    HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
 6149        IDWriteTextLayout3 *This,
 6150        DWRITE_FONT_STRETCH stretch,
 6151        DWRITE_TEXT_RANGE range);
 6152
 6153    HRESULT (STDMETHODCALLTYPE *SetFontSize)(
 6154        IDWriteTextLayout3 *This,
 6155        FLOAT size,
 6156        DWRITE_TEXT_RANGE range);
 6157
 6158    HRESULT (STDMETHODCALLTYPE *SetUnderline)(
 6159        IDWriteTextLayout3 *This,
 6160        WINBOOL underline,
 6161        DWRITE_TEXT_RANGE range);
 6162
 6163    HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
 6164        IDWriteTextLayout3 *This,
 6165        WINBOOL strikethrough,
 6166        DWRITE_TEXT_RANGE range);
 6167
 6168    HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
 6169        IDWriteTextLayout3 *This,
 6170        IUnknown *effect,
 6171        DWRITE_TEXT_RANGE range);
 6172
 6173    HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
 6174        IDWriteTextLayout3 *This,
 6175        IDWriteInlineObject *object,
 6176        DWRITE_TEXT_RANGE range);
 6177
 6178    HRESULT (STDMETHODCALLTYPE *SetTypography)(
 6179        IDWriteTextLayout3 *This,
 6180        IDWriteTypography *typography,
 6181        DWRITE_TEXT_RANGE range);
 6182
 6183    HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
 6184        IDWriteTextLayout3 *This,
 6185        const WCHAR *locale,
 6186        DWRITE_TEXT_RANGE range);
 6187
 6188    FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
 6189        IDWriteTextLayout3 *This);
 6190
 6191    FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
 6192        IDWriteTextLayout3 *This);
 6193
 6194    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
 6195        IDWriteTextLayout3 *This,
 6196        UINT32 pos,
 6197        IDWriteFontCollection **collection,
 6198        DWRITE_TEXT_RANGE *range);
 6199
 6200    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
 6201        IDWriteTextLayout3 *This,
 6202        UINT32 pos,
 6203        UINT32 *len,
 6204        DWRITE_TEXT_RANGE *range);
 6205
 6206    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
 6207        IDWriteTextLayout3 *This,
 6208        UINT32 position,
 6209        WCHAR *name,
 6210        UINT32 name_size,
 6211        DWRITE_TEXT_RANGE *range);
 6212
 6213    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
 6214        IDWriteTextLayout3 *This,
 6215        UINT32 position,
 6216        DWRITE_FONT_WEIGHT *weight,
 6217        DWRITE_TEXT_RANGE *range);
 6218
 6219    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
 6220        IDWriteTextLayout3 *This,
 6221        UINT32 currentPosition,
 6222        DWRITE_FONT_STYLE *style,
 6223        DWRITE_TEXT_RANGE *range);
 6224
 6225    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
 6226        IDWriteTextLayout3 *This,
 6227        UINT32 position,
 6228        DWRITE_FONT_STRETCH *stretch,
 6229        DWRITE_TEXT_RANGE *range);
 6230
 6231    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
 6232        IDWriteTextLayout3 *This,
 6233        UINT32 position,
 6234        FLOAT *size,
 6235        DWRITE_TEXT_RANGE *range);
 6236
 6237    HRESULT (STDMETHODCALLTYPE *GetUnderline)(
 6238        IDWriteTextLayout3 *This,
 6239        UINT32 position,
 6240        WINBOOL *has_underline,
 6241        DWRITE_TEXT_RANGE *range);
 6242
 6243    HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
 6244        IDWriteTextLayout3 *This,
 6245        UINT32 position,
 6246        WINBOOL *has_strikethrough,
 6247        DWRITE_TEXT_RANGE *range);
 6248
 6249    HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
 6250        IDWriteTextLayout3 *This,
 6251        UINT32 position,
 6252        IUnknown **effect,
 6253        DWRITE_TEXT_RANGE *range);
 6254
 6255    HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
 6256        IDWriteTextLayout3 *This,
 6257        UINT32 position,
 6258        IDWriteInlineObject **object,
 6259        DWRITE_TEXT_RANGE *range);
 6260
 6261    HRESULT (STDMETHODCALLTYPE *GetTypography)(
 6262        IDWriteTextLayout3 *This,
 6263        UINT32 position,
 6264        IDWriteTypography **typography,
 6265        DWRITE_TEXT_RANGE *range);
 6266
 6267    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
 6268        IDWriteTextLayout3 *This,
 6269        UINT32 position,
 6270        UINT32 *length,
 6271        DWRITE_TEXT_RANGE *range);
 6272
 6273    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
 6274        IDWriteTextLayout3 *This,
 6275        UINT32 position,
 6276        WCHAR *name,
 6277        UINT32 name_size,
 6278        DWRITE_TEXT_RANGE *range);
 6279
 6280    HRESULT (STDMETHODCALLTYPE *Draw)(
 6281        IDWriteTextLayout3 *This,
 6282        void *context,
 6283        IDWriteTextRenderer *renderer,
 6284        FLOAT originX,
 6285        FLOAT originY);
 6286
 6287    HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
 6288        IDWriteTextLayout3 *This,
 6289        DWRITE_LINE_METRICS *metrics,
 6290        UINT32 max_count,
 6291        UINT32 *actual_count);
 6292
 6293    HRESULT (STDMETHODCALLTYPE *GetMetrics)(
 6294        IDWriteTextLayout3 *This,
 6295        DWRITE_TEXT_METRICS *metrics);
 6296
 6297    HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
 6298        IDWriteTextLayout3 *This,
 6299        DWRITE_OVERHANG_METRICS *overhangs);
 6300
 6301    HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
 6302        IDWriteTextLayout3 *This,
 6303        DWRITE_CLUSTER_METRICS *metrics,
 6304        UINT32 max_count,
 6305        UINT32 *act_count);
 6306
 6307    HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
 6308        IDWriteTextLayout3 *This,
 6309        FLOAT *min_width);
 6310
 6311    HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
 6312        IDWriteTextLayout3 *This,
 6313        FLOAT pointX,
 6314        FLOAT pointY,
 6315        WINBOOL *is_trailinghit,
 6316        WINBOOL *is_inside,
 6317        DWRITE_HIT_TEST_METRICS *metrics);
 6318
 6319    HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
 6320        IDWriteTextLayout3 *This,
 6321        UINT32 textPosition,
 6322        WINBOOL is_trailinghit,
 6323        FLOAT *pointX,
 6324        FLOAT *pointY,
 6325        DWRITE_HIT_TEST_METRICS *metrics);
 6326
 6327    HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
 6328        IDWriteTextLayout3 *This,
 6329        UINT32 textPosition,
 6330        UINT32 textLength,
 6331        FLOAT originX,
 6332        FLOAT originY,
 6333        DWRITE_HIT_TEST_METRICS *metrics,
 6334        UINT32 max_metricscount,
 6335        UINT32 *actual_metricscount);
 6336
 6337    /*** IDWriteTextLayout1 methods ***/
 6338    HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
 6339        IDWriteTextLayout3 *This,
 6340        WINBOOL is_pairkerning_enabled,
 6341        DWRITE_TEXT_RANGE range);
 6342
 6343    HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
 6344        IDWriteTextLayout3 *This,
 6345        UINT32 position,
 6346        WINBOOL *is_pairkerning_enabled,
 6347        DWRITE_TEXT_RANGE *range);
 6348
 6349    HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
 6350        IDWriteTextLayout3 *This,
 6351        FLOAT leading_spacing,
 6352        FLOAT trailing_spacing,
 6353        FLOAT minimum_advance_width,
 6354        DWRITE_TEXT_RANGE range);
 6355
 6356    HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
 6357        IDWriteTextLayout3 *This,
 6358        UINT32 position,
 6359        FLOAT *leading_spacing,
 6360        FLOAT *trailing_spacing,
 6361        FLOAT *minimum_advance_width,
 6362        DWRITE_TEXT_RANGE *range);
 6363
 6364    /*** IDWriteTextLayout2 methods ***/
 6365    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
 6366        IDWriteTextLayout3 *This,
 6367        DWRITE_TEXT_METRICS1 *metrics);
 6368
 6369    HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
 6370        IDWriteTextLayout3 *This,
 6371        DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
 6372
 6373    DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
 6374        IDWriteTextLayout3 *This);
 6375
 6376    HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
 6377        IDWriteTextLayout3 *This,
 6378        WINBOOL lastline_wrapping_enabled);
 6379
 6380    WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
 6381        IDWriteTextLayout3 *This);
 6382
 6383    HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
 6384        IDWriteTextLayout3 *This,
 6385        DWRITE_OPTICAL_ALIGNMENT alignment);
 6386
 6387    DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
 6388        IDWriteTextLayout3 *This);
 6389
 6390    HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
 6391        IDWriteTextLayout3 *This,
 6392        IDWriteFontFallback *fallback);
 6393
 6394    HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
 6395        IDWriteTextLayout3 *This,
 6396        IDWriteFontFallback **fallback);
 6397
 6398    /*** IDWriteTextLayout3 methods ***/
 6399    HRESULT (STDMETHODCALLTYPE *InvalidateLayout)(
 6400        IDWriteTextLayout3 *This);
 6401
 6402    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)(
 6403        IDWriteTextLayout3 *This,
 6404        const DWRITE_LINE_SPACING *spacing);
 6405
 6406    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)(
 6407        IDWriteTextLayout3 *This,
 6408        DWRITE_LINE_SPACING *spacing);
 6409
 6410    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)(
 6411        IDWriteTextLayout3 *This,
 6412        DWRITE_LINE_METRICS1 *metrics,
 6413        UINT32 max_count,
 6414        UINT32 *count);
 6415
 6416    END_INTERFACE
 6417} IDWriteTextLayout3Vtbl;
 6418
 6419interface IDWriteTextLayout3 {
 6420    CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl;
 6421};
 6422
 6423#ifdef COBJMACROS
 6424#ifndef WIDL_C_INLINE_WRAPPERS
 6425/*** IUnknown methods ***/
 6426#define IDWriteTextLayout3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6427#define IDWriteTextLayout3_AddRef(This) (This)->lpVtbl->AddRef(This)
 6428#define IDWriteTextLayout3_Release(This) (This)->lpVtbl->Release(This)
 6429/*** IDWriteTextFormat methods ***/
 6430#define IDWriteTextLayout3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
 6431#define IDWriteTextLayout3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
 6432#define IDWriteTextLayout3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
 6433#define IDWriteTextLayout3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
 6434#define IDWriteTextLayout3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
 6435#define IDWriteTextLayout3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
 6436#define IDWriteTextLayout3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
 6437#define IDWriteTextLayout3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
 6438#define IDWriteTextLayout3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
 6439#define IDWriteTextLayout3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
 6440#define IDWriteTextLayout3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
 6441#define IDWriteTextLayout3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
 6442#define IDWriteTextLayout3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
 6443#define IDWriteTextLayout3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
 6444/*** IDWriteTextLayout methods ***/
 6445#define IDWriteTextLayout3_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
 6446#define IDWriteTextLayout3_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
 6447#define IDWriteTextLayout3_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
 6448#define IDWriteTextLayout3_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
 6449#define IDWriteTextLayout3_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
 6450#define IDWriteTextLayout3_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
 6451#define IDWriteTextLayout3_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
 6452#define IDWriteTextLayout3_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
 6453#define IDWriteTextLayout3_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
 6454#define IDWriteTextLayout3_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
 6455#define IDWriteTextLayout3_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
 6456#define IDWriteTextLayout3_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
 6457#define IDWriteTextLayout3_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
 6458#define IDWriteTextLayout3_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
 6459#define IDWriteTextLayout3_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
 6460#define IDWriteTextLayout3_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
 6461#define IDWriteTextLayout3_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
 6462#define IDWriteTextLayout3_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
 6463#define IDWriteTextLayout3_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
 6464#define IDWriteTextLayout3_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
 6465#define IDWriteTextLayout3_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
 6466#define IDWriteTextLayout3_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
 6467#define IDWriteTextLayout3_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
 6468#define IDWriteTextLayout3_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
 6469#define IDWriteTextLayout3_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
 6470#define IDWriteTextLayout3_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
 6471#define IDWriteTextLayout3_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
 6472#define IDWriteTextLayout3_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
 6473#define IDWriteTextLayout3_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
 6474#define IDWriteTextLayout3_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
 6475#define IDWriteTextLayout3_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
 6476#define IDWriteTextLayout3_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
 6477#define IDWriteTextLayout3_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
 6478#define IDWriteTextLayout3_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
 6479#define IDWriteTextLayout3_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
 6480#define IDWriteTextLayout3_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
 6481#define IDWriteTextLayout3_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
 6482/*** IDWriteTextLayout1 methods ***/
 6483#define IDWriteTextLayout3_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
 6484#define IDWriteTextLayout3_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
 6485#define IDWriteTextLayout3_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
 6486#define IDWriteTextLayout3_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
 6487/*** IDWriteTextLayout2 methods ***/
 6488#define IDWriteTextLayout3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
 6489#define IDWriteTextLayout3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
 6490#define IDWriteTextLayout3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
 6491#define IDWriteTextLayout3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
 6492#define IDWriteTextLayout3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
 6493#define IDWriteTextLayout3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
 6494#define IDWriteTextLayout3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
 6495#define IDWriteTextLayout3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
 6496#define IDWriteTextLayout3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
 6497/*** IDWriteTextLayout3 methods ***/
 6498#define IDWriteTextLayout3_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This)
 6499#define IDWriteTextLayout3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing)
 6500#define IDWriteTextLayout3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing)
 6501#define IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count)
 6502#else
 6503/*** IUnknown methods ***/
 6504static inline HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This,REFIID riid,void **ppvObject) {
 6505    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6506}
 6507static inline ULONG IDWriteTextLayout3_AddRef(IDWriteTextLayout3* This) {
 6508    return This->lpVtbl->AddRef(This);
 6509}
 6510static inline ULONG IDWriteTextLayout3_Release(IDWriteTextLayout3* This) {
 6511    return This->lpVtbl->Release(This);
 6512}
 6513/*** IDWriteTextFormat methods ***/
 6514static inline HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This,DWRITE_TEXT_ALIGNMENT alignment) {
 6515    return This->lpVtbl->SetTextAlignment(This,alignment);
 6516}
 6517static inline HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
 6518    return This->lpVtbl->SetParagraphAlignment(This,alignment);
 6519}
 6520static inline HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This,DWRITE_WORD_WRAPPING wrapping) {
 6521    return This->lpVtbl->SetWordWrapping(This,wrapping);
 6522}
 6523static inline HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This,DWRITE_READING_DIRECTION direction) {
 6524    return This->lpVtbl->SetReadingDirection(This,direction);
 6525}
 6526static inline HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This,DWRITE_FLOW_DIRECTION direction) {
 6527    return This->lpVtbl->SetFlowDirection(This,direction);
 6528}
 6529static inline HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This,FLOAT tabstop) {
 6530    return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
 6531}
 6532static inline HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
 6533    return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
 6534}
 6535static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout3_GetTextAlignment(IDWriteTextLayout3* This) {
 6536    return This->lpVtbl->GetTextAlignment(This);
 6537}
 6538static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout3_GetParagraphAlignment(IDWriteTextLayout3* This) {
 6539    return This->lpVtbl->GetParagraphAlignment(This);
 6540}
 6541static inline DWRITE_WORD_WRAPPING IDWriteTextLayout3_GetWordWrapping(IDWriteTextLayout3* This) {
 6542    return This->lpVtbl->GetWordWrapping(This);
 6543}
 6544static inline DWRITE_READING_DIRECTION IDWriteTextLayout3_GetReadingDirection(IDWriteTextLayout3* This) {
 6545    return This->lpVtbl->GetReadingDirection(This);
 6546}
 6547static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout3_GetFlowDirection(IDWriteTextLayout3* This) {
 6548    return This->lpVtbl->GetFlowDirection(This);
 6549}
 6550static inline FLOAT IDWriteTextLayout3_GetIncrementalTabStop(IDWriteTextLayout3* This) {
 6551    return This->lpVtbl->GetIncrementalTabStop(This);
 6552}
 6553static inline HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
 6554    return This->lpVtbl->GetTrimming(This,options,trimming_sign);
 6555}
 6556/*** IDWriteTextLayout methods ***/
 6557static inline HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This,FLOAT maxWidth) {
 6558    return This->lpVtbl->SetMaxWidth(This,maxWidth);
 6559}
 6560static inline HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This,FLOAT maxHeight) {
 6561    return This->lpVtbl->SetMaxHeight(This,maxHeight);
 6562}
 6563static inline HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
 6564    return This->lpVtbl->SetFontCollection(This,collection,range);
 6565}
 6566static inline HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
 6567    return This->lpVtbl->SetFontFamilyName(This,name,range);
 6568}
 6569static inline HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
 6570    return This->lpVtbl->SetFontWeight(This,weight,range);
 6571}
 6572static inline HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
 6573    return This->lpVtbl->SetFontStyle(This,style,range);
 6574}
 6575static inline HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
 6576    return This->lpVtbl->SetFontStretch(This,stretch,range);
 6577}
 6578static inline HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This,FLOAT size,DWRITE_TEXT_RANGE range) {
 6579    return This->lpVtbl->SetFontSize(This,size,range);
 6580}
 6581static inline HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
 6582    return This->lpVtbl->SetUnderline(This,underline,range);
 6583}
 6584static inline HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
 6585    return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
 6586}
 6587static inline HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
 6588    return This->lpVtbl->SetDrawingEffect(This,effect,range);
 6589}
 6590static inline HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
 6591    return This->lpVtbl->SetInlineObject(This,object,range);
 6592}
 6593static inline HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
 6594    return This->lpVtbl->SetTypography(This,typography,range);
 6595}
 6596static inline HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
 6597    return This->lpVtbl->SetLocaleName(This,locale,range);
 6598}
 6599static inline FLOAT IDWriteTextLayout3_GetMaxWidth(IDWriteTextLayout3* This) {
 6600    return This->lpVtbl->GetMaxWidth(This);
 6601}
 6602static inline FLOAT IDWriteTextLayout3_GetMaxHeight(IDWriteTextLayout3* This) {
 6603    return This->lpVtbl->GetMaxHeight(This);
 6604}
 6605static inline HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
 6606    return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
 6607}
 6608static inline HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
 6609    return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
 6610}
 6611static inline HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
 6612    return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
 6613}
 6614static inline HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
 6615    return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
 6616}
 6617static inline HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
 6618    return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
 6619}
 6620static inline HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
 6621    return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
 6622}
 6623static inline HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
 6624    return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
 6625}
 6626static inline HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
 6627    return This->lpVtbl->GetUnderline(This,position,has_underline,range);
 6628}
 6629static inline HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
 6630    return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
 6631}
 6632static inline HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
 6633    return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
 6634}
 6635static inline HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
 6636    return This->lpVtbl->GetInlineObject(This,position,object,range);
 6637}
 6638static inline HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
 6639    return This->lpVtbl->GetTypography(This,position,typography,range);
 6640}
 6641static inline HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
 6642    return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
 6643}
 6644static inline HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
 6645    return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
 6646}
 6647static inline HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
 6648    return This->lpVtbl->Draw(This,context,renderer,originX,originY);
 6649}
 6650static inline HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This,DWRITE_OVERHANG_METRICS *overhangs) {
 6651    return This->lpVtbl->GetOverhangMetrics(This,overhangs);
 6652}
 6653static inline HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
 6654    return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
 6655}
 6656static inline HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This,FLOAT *min_width) {
 6657    return This->lpVtbl->DetermineMinWidth(This,min_width);
 6658}
 6659static inline HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
 6660    return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
 6661}
 6662static inline HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
 6663    return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
 6664}
 6665static inline HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
 6666    return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
 6667}
 6668/*** IDWriteTextLayout1 methods ***/
 6669static inline HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
 6670    return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
 6671}
 6672static inline HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
 6673    return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
 6674}
 6675static inline HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
 6676    return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
 6677}
 6678static inline HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
 6679    return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
 6680}
 6681/*** IDWriteTextLayout2 methods ***/
 6682static inline HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This,DWRITE_TEXT_METRICS1 *metrics) {
 6683    return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
 6684}
 6685static inline HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
 6686    return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
 6687}
 6688static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout3_GetVerticalGlyphOrientation(IDWriteTextLayout3* This) {
 6689    return This->lpVtbl->GetVerticalGlyphOrientation(This);
 6690}
 6691static inline HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This,WINBOOL lastline_wrapping_enabled) {
 6692    return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
 6693}
 6694static inline WINBOOL IDWriteTextLayout3_GetLastLineWrapping(IDWriteTextLayout3* This) {
 6695    return This->lpVtbl->GetLastLineWrapping(This);
 6696}
 6697static inline HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
 6698    return This->lpVtbl->SetOpticalAlignment(This,alignment);
 6699}
 6700static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout3_GetOpticalAlignment(IDWriteTextLayout3* This) {
 6701    return This->lpVtbl->GetOpticalAlignment(This);
 6702}
 6703static inline HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback *fallback) {
 6704    return This->lpVtbl->SetFontFallback(This,fallback);
 6705}
 6706static inline HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback **fallback) {
 6707    return This->lpVtbl->GetFontFallback(This,fallback);
 6708}
 6709/*** IDWriteTextLayout3 methods ***/
 6710static inline HRESULT IDWriteTextLayout3_InvalidateLayout(IDWriteTextLayout3* This) {
 6711    return This->lpVtbl->InvalidateLayout(This);
 6712}
 6713static inline HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This,const DWRITE_LINE_SPACING *spacing) {
 6714    return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing);
 6715}
 6716static inline HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This,DWRITE_LINE_SPACING *spacing) {
 6717    return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing);
 6718}
 6719static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) {
 6720    return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count);
 6721}
 6722#endif
 6723#endif
 6724
 6725#endif
 6726
 6727
 6728#endif  /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */
 6729
 6730/*****************************************************************************
 6731 * IDWriteTextLayout4 interface
 6732 */
 6733#ifndef __IDWriteTextLayout4_INTERFACE_DEFINED__
 6734#define __IDWriteTextLayout4_INTERFACE_DEFINED__
 6735
 6736DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9);
 6737#if defined(__cplusplus) && !defined(CINTERFACE)
 6738MIDL_INTERFACE("05a9bf42-223f-4441-b5fb-8263685f55e9")
 6739IDWriteTextLayout4 : public IDWriteTextLayout3
 6740{
 6741    virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues(
 6742        const DWRITE_FONT_AXIS_VALUE *axis_values,
 6743        UINT32 num_values,
 6744        DWRITE_TEXT_RANGE range) = 0;
 6745
 6746    virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
 6747        UINT32 pos) = 0;
 6748
 6749    virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
 6750        UINT32 pos,
 6751        DWRITE_FONT_AXIS_VALUE *values,
 6752        UINT32 num_values,
 6753        DWRITE_TEXT_RANGE *range) = 0;
 6754
 6755    virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
 6756        ) = 0;
 6757
 6758    virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes(
 6759        DWRITE_AUTOMATIC_FONT_AXES axes) = 0;
 6760
 6761};
 6762#ifdef __CRT_UUID_DECL
 6763__CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9)
 6764#endif
 6765#else
 6766typedef struct IDWriteTextLayout4Vtbl {
 6767    BEGIN_INTERFACE
 6768
 6769    /*** IUnknown methods ***/
 6770    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6771        IDWriteTextLayout4 *This,
 6772        REFIID riid,
 6773        void **ppvObject);
 6774
 6775    ULONG (STDMETHODCALLTYPE *AddRef)(
 6776        IDWriteTextLayout4 *This);
 6777
 6778    ULONG (STDMETHODCALLTYPE *Release)(
 6779        IDWriteTextLayout4 *This);
 6780
 6781    /*** IDWriteTextFormat methods ***/
 6782    HRESULT (STDMETHODCALLTYPE *SetTextAlignment)(
 6783        IDWriteTextLayout4 *This,
 6784        DWRITE_TEXT_ALIGNMENT alignment);
 6785
 6786    HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)(
 6787        IDWriteTextLayout4 *This,
 6788        DWRITE_PARAGRAPH_ALIGNMENT alignment);
 6789
 6790    HRESULT (STDMETHODCALLTYPE *SetWordWrapping)(
 6791        IDWriteTextLayout4 *This,
 6792        DWRITE_WORD_WRAPPING wrapping);
 6793
 6794    HRESULT (STDMETHODCALLTYPE *SetReadingDirection)(
 6795        IDWriteTextLayout4 *This,
 6796        DWRITE_READING_DIRECTION direction);
 6797
 6798    HRESULT (STDMETHODCALLTYPE *SetFlowDirection)(
 6799        IDWriteTextLayout4 *This,
 6800        DWRITE_FLOW_DIRECTION direction);
 6801
 6802    HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)(
 6803        IDWriteTextLayout4 *This,
 6804        FLOAT tabstop);
 6805
 6806    HRESULT (STDMETHODCALLTYPE *SetTrimming)(
 6807        IDWriteTextLayout4 *This,
 6808        const DWRITE_TRIMMING *trimming,
 6809        IDWriteInlineObject *trimming_sign);
 6810
 6811    HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
 6812        IDWriteTextLayout4 *This,
 6813        DWRITE_LINE_SPACING_METHOD spacing,
 6814        FLOAT line_spacing,
 6815        FLOAT baseline);
 6816
 6817    DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)(
 6818        IDWriteTextLayout4 *This);
 6819
 6820    DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)(
 6821        IDWriteTextLayout4 *This);
 6822
 6823    DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)(
 6824        IDWriteTextLayout4 *This);
 6825
 6826    DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)(
 6827        IDWriteTextLayout4 *This);
 6828
 6829    DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)(
 6830        IDWriteTextLayout4 *This);
 6831
 6832    FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)(
 6833        IDWriteTextLayout4 *This);
 6834
 6835    HRESULT (STDMETHODCALLTYPE *GetTrimming)(
 6836        IDWriteTextLayout4 *This,
 6837        DWRITE_TRIMMING *options,
 6838        IDWriteInlineObject **trimming_sign);
 6839
 6840    HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
 6841        IDWriteTextLayout4 *This,
 6842        DWRITE_LINE_SPACING_METHOD *method,
 6843        FLOAT *spacing,
 6844        FLOAT *baseline);
 6845
 6846    HRESULT (STDMETHODCALLTYPE *GetFontCollection)(
 6847        IDWriteTextLayout4 *This,
 6848        IDWriteFontCollection **collection);
 6849
 6850    UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)(
 6851        IDWriteTextLayout4 *This);
 6852
 6853    HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)(
 6854        IDWriteTextLayout4 *This,
 6855        WCHAR *name,
 6856        UINT32 size);
 6857
 6858    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)(
 6859        IDWriteTextLayout4 *This);
 6860
 6861    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)(
 6862        IDWriteTextLayout4 *This);
 6863
 6864    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)(
 6865        IDWriteTextLayout4 *This);
 6866
 6867    FLOAT (STDMETHODCALLTYPE *GetFontSize)(
 6868        IDWriteTextLayout4 *This);
 6869
 6870    UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)(
 6871        IDWriteTextLayout4 *This);
 6872
 6873    HRESULT (STDMETHODCALLTYPE *GetLocaleName)(
 6874        IDWriteTextLayout4 *This,
 6875        WCHAR *name,
 6876        UINT32 size);
 6877
 6878    /*** IDWriteTextLayout methods ***/
 6879    HRESULT (STDMETHODCALLTYPE *SetMaxWidth)(
 6880        IDWriteTextLayout4 *This,
 6881        FLOAT maxWidth);
 6882
 6883    HRESULT (STDMETHODCALLTYPE *SetMaxHeight)(
 6884        IDWriteTextLayout4 *This,
 6885        FLOAT maxHeight);
 6886
 6887    HRESULT (STDMETHODCALLTYPE *SetFontCollection)(
 6888        IDWriteTextLayout4 *This,
 6889        IDWriteFontCollection *collection,
 6890        DWRITE_TEXT_RANGE range);
 6891
 6892    HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)(
 6893        IDWriteTextLayout4 *This,
 6894        const WCHAR *name,
 6895        DWRITE_TEXT_RANGE range);
 6896
 6897    HRESULT (STDMETHODCALLTYPE *SetFontWeight)(
 6898        IDWriteTextLayout4 *This,
 6899        DWRITE_FONT_WEIGHT weight,
 6900        DWRITE_TEXT_RANGE range);
 6901
 6902    HRESULT (STDMETHODCALLTYPE *SetFontStyle)(
 6903        IDWriteTextLayout4 *This,
 6904        DWRITE_FONT_STYLE style,
 6905        DWRITE_TEXT_RANGE range);
 6906
 6907    HRESULT (STDMETHODCALLTYPE *SetFontStretch)(
 6908        IDWriteTextLayout4 *This,
 6909        DWRITE_FONT_STRETCH stretch,
 6910        DWRITE_TEXT_RANGE range);
 6911
 6912    HRESULT (STDMETHODCALLTYPE *SetFontSize)(
 6913        IDWriteTextLayout4 *This,
 6914        FLOAT size,
 6915        DWRITE_TEXT_RANGE range);
 6916
 6917    HRESULT (STDMETHODCALLTYPE *SetUnderline)(
 6918        IDWriteTextLayout4 *This,
 6919        WINBOOL underline,
 6920        DWRITE_TEXT_RANGE range);
 6921
 6922    HRESULT (STDMETHODCALLTYPE *SetStrikethrough)(
 6923        IDWriteTextLayout4 *This,
 6924        WINBOOL strikethrough,
 6925        DWRITE_TEXT_RANGE range);
 6926
 6927    HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)(
 6928        IDWriteTextLayout4 *This,
 6929        IUnknown *effect,
 6930        DWRITE_TEXT_RANGE range);
 6931
 6932    HRESULT (STDMETHODCALLTYPE *SetInlineObject)(
 6933        IDWriteTextLayout4 *This,
 6934        IDWriteInlineObject *object,
 6935        DWRITE_TEXT_RANGE range);
 6936
 6937    HRESULT (STDMETHODCALLTYPE *SetTypography)(
 6938        IDWriteTextLayout4 *This,
 6939        IDWriteTypography *typography,
 6940        DWRITE_TEXT_RANGE range);
 6941
 6942    HRESULT (STDMETHODCALLTYPE *SetLocaleName)(
 6943        IDWriteTextLayout4 *This,
 6944        const WCHAR *locale,
 6945        DWRITE_TEXT_RANGE range);
 6946
 6947    FLOAT (STDMETHODCALLTYPE *GetMaxWidth)(
 6948        IDWriteTextLayout4 *This);
 6949
 6950    FLOAT (STDMETHODCALLTYPE *GetMaxHeight)(
 6951        IDWriteTextLayout4 *This);
 6952
 6953    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)(
 6954        IDWriteTextLayout4 *This,
 6955        UINT32 pos,
 6956        IDWriteFontCollection **collection,
 6957        DWRITE_TEXT_RANGE *range);
 6958
 6959    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)(
 6960        IDWriteTextLayout4 *This,
 6961        UINT32 pos,
 6962        UINT32 *len,
 6963        DWRITE_TEXT_RANGE *range);
 6964
 6965    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)(
 6966        IDWriteTextLayout4 *This,
 6967        UINT32 position,
 6968        WCHAR *name,
 6969        UINT32 name_size,
 6970        DWRITE_TEXT_RANGE *range);
 6971
 6972    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)(
 6973        IDWriteTextLayout4 *This,
 6974        UINT32 position,
 6975        DWRITE_FONT_WEIGHT *weight,
 6976        DWRITE_TEXT_RANGE *range);
 6977
 6978    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)(
 6979        IDWriteTextLayout4 *This,
 6980        UINT32 currentPosition,
 6981        DWRITE_FONT_STYLE *style,
 6982        DWRITE_TEXT_RANGE *range);
 6983
 6984    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)(
 6985        IDWriteTextLayout4 *This,
 6986        UINT32 position,
 6987        DWRITE_FONT_STRETCH *stretch,
 6988        DWRITE_TEXT_RANGE *range);
 6989
 6990    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)(
 6991        IDWriteTextLayout4 *This,
 6992        UINT32 position,
 6993        FLOAT *size,
 6994        DWRITE_TEXT_RANGE *range);
 6995
 6996    HRESULT (STDMETHODCALLTYPE *GetUnderline)(
 6997        IDWriteTextLayout4 *This,
 6998        UINT32 position,
 6999        WINBOOL *has_underline,
 7000        DWRITE_TEXT_RANGE *range);
 7001
 7002    HRESULT (STDMETHODCALLTYPE *GetStrikethrough)(
 7003        IDWriteTextLayout4 *This,
 7004        UINT32 position,
 7005        WINBOOL *has_strikethrough,
 7006        DWRITE_TEXT_RANGE *range);
 7007
 7008    HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)(
 7009        IDWriteTextLayout4 *This,
 7010        UINT32 position,
 7011        IUnknown **effect,
 7012        DWRITE_TEXT_RANGE *range);
 7013
 7014    HRESULT (STDMETHODCALLTYPE *GetInlineObject)(
 7015        IDWriteTextLayout4 *This,
 7016        UINT32 position,
 7017        IDWriteInlineObject **object,
 7018        DWRITE_TEXT_RANGE *range);
 7019
 7020    HRESULT (STDMETHODCALLTYPE *GetTypography)(
 7021        IDWriteTextLayout4 *This,
 7022        UINT32 position,
 7023        IDWriteTypography **typography,
 7024        DWRITE_TEXT_RANGE *range);
 7025
 7026    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)(
 7027        IDWriteTextLayout4 *This,
 7028        UINT32 position,
 7029        UINT32 *length,
 7030        DWRITE_TEXT_RANGE *range);
 7031
 7032    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)(
 7033        IDWriteTextLayout4 *This,
 7034        UINT32 position,
 7035        WCHAR *name,
 7036        UINT32 name_size,
 7037        DWRITE_TEXT_RANGE *range);
 7038
 7039    HRESULT (STDMETHODCALLTYPE *Draw)(
 7040        IDWriteTextLayout4 *This,
 7041        void *context,
 7042        IDWriteTextRenderer *renderer,
 7043        FLOAT originX,
 7044        FLOAT originY);
 7045
 7046    HRESULT (STDMETHODCALLTYPE *GetLineMetrics)(
 7047        IDWriteTextLayout4 *This,
 7048        DWRITE_LINE_METRICS *metrics,
 7049        UINT32 max_count,
 7050        UINT32 *actual_count);
 7051
 7052    HRESULT (STDMETHODCALLTYPE *GetMetrics)(
 7053        IDWriteTextLayout4 *This,
 7054        DWRITE_TEXT_METRICS *metrics);
 7055
 7056    HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)(
 7057        IDWriteTextLayout4 *This,
 7058        DWRITE_OVERHANG_METRICS *overhangs);
 7059
 7060    HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)(
 7061        IDWriteTextLayout4 *This,
 7062        DWRITE_CLUSTER_METRICS *metrics,
 7063        UINT32 max_count,
 7064        UINT32 *act_count);
 7065
 7066    HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)(
 7067        IDWriteTextLayout4 *This,
 7068        FLOAT *min_width);
 7069
 7070    HRESULT (STDMETHODCALLTYPE *HitTestPoint)(
 7071        IDWriteTextLayout4 *This,
 7072        FLOAT pointX,
 7073        FLOAT pointY,
 7074        WINBOOL *is_trailinghit,
 7075        WINBOOL *is_inside,
 7076        DWRITE_HIT_TEST_METRICS *metrics);
 7077
 7078    HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)(
 7079        IDWriteTextLayout4 *This,
 7080        UINT32 textPosition,
 7081        WINBOOL is_trailinghit,
 7082        FLOAT *pointX,
 7083        FLOAT *pointY,
 7084        DWRITE_HIT_TEST_METRICS *metrics);
 7085
 7086    HRESULT (STDMETHODCALLTYPE *HitTestTextRange)(
 7087        IDWriteTextLayout4 *This,
 7088        UINT32 textPosition,
 7089        UINT32 textLength,
 7090        FLOAT originX,
 7091        FLOAT originY,
 7092        DWRITE_HIT_TEST_METRICS *metrics,
 7093        UINT32 max_metricscount,
 7094        UINT32 *actual_metricscount);
 7095
 7096    /*** IDWriteTextLayout1 methods ***/
 7097    HRESULT (STDMETHODCALLTYPE *SetPairKerning)(
 7098        IDWriteTextLayout4 *This,
 7099        WINBOOL is_pairkerning_enabled,
 7100        DWRITE_TEXT_RANGE range);
 7101
 7102    HRESULT (STDMETHODCALLTYPE *GetPairKerning)(
 7103        IDWriteTextLayout4 *This,
 7104        UINT32 position,
 7105        WINBOOL *is_pairkerning_enabled,
 7106        DWRITE_TEXT_RANGE *range);
 7107
 7108    HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)(
 7109        IDWriteTextLayout4 *This,
 7110        FLOAT leading_spacing,
 7111        FLOAT trailing_spacing,
 7112        FLOAT minimum_advance_width,
 7113        DWRITE_TEXT_RANGE range);
 7114
 7115    HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)(
 7116        IDWriteTextLayout4 *This,
 7117        UINT32 position,
 7118        FLOAT *leading_spacing,
 7119        FLOAT *trailing_spacing,
 7120        FLOAT *minimum_advance_width,
 7121        DWRITE_TEXT_RANGE *range);
 7122
 7123    /*** IDWriteTextLayout2 methods ***/
 7124    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)(
 7125        IDWriteTextLayout4 *This,
 7126        DWRITE_TEXT_METRICS1 *metrics);
 7127
 7128    HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)(
 7129        IDWriteTextLayout4 *This,
 7130        DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
 7131
 7132    DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)(
 7133        IDWriteTextLayout4 *This);
 7134
 7135    HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)(
 7136        IDWriteTextLayout4 *This,
 7137        WINBOOL lastline_wrapping_enabled);
 7138
 7139    WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)(
 7140        IDWriteTextLayout4 *This);
 7141
 7142    HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)(
 7143        IDWriteTextLayout4 *This,
 7144        DWRITE_OPTICAL_ALIGNMENT alignment);
 7145
 7146    DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)(
 7147        IDWriteTextLayout4 *This);
 7148
 7149    HRESULT (STDMETHODCALLTYPE *SetFontFallback)(
 7150        IDWriteTextLayout4 *This,
 7151        IDWriteFontFallback *fallback);
 7152
 7153    HRESULT (STDMETHODCALLTYPE *GetFontFallback)(
 7154        IDWriteTextLayout4 *This,
 7155        IDWriteFontFallback **fallback);
 7156
 7157    /*** IDWriteTextLayout3 methods ***/
 7158    HRESULT (STDMETHODCALLTYPE *InvalidateLayout)(
 7159        IDWriteTextLayout4 *This);
 7160
 7161    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)(
 7162        IDWriteTextLayout4 *This,
 7163        const DWRITE_LINE_SPACING *spacing);
 7164
 7165    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)(
 7166        IDWriteTextLayout4 *This,
 7167        DWRITE_LINE_SPACING *spacing);
 7168
 7169    HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)(
 7170        IDWriteTextLayout4 *This,
 7171        DWRITE_LINE_METRICS1 *metrics,
 7172        UINT32 max_count,
 7173        UINT32 *count);
 7174
 7175    /*** IDWriteTextLayout4 methods ***/
 7176    HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)(
 7177        IDWriteTextLayout4 *This,
 7178        const DWRITE_FONT_AXIS_VALUE *axis_values,
 7179        UINT32 num_values,
 7180        DWRITE_TEXT_RANGE range);
 7181
 7182    UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
 7183        IDWriteTextLayout4 *This,
 7184        UINT32 pos);
 7185
 7186    HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
 7187        IDWriteTextLayout4 *This,
 7188        UINT32 pos,
 7189        DWRITE_FONT_AXIS_VALUE *values,
 7190        UINT32 num_values,
 7191        DWRITE_TEXT_RANGE *range);
 7192
 7193    DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
 7194        IDWriteTextLayout4 *This);
 7195
 7196    HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)(
 7197        IDWriteTextLayout4 *This,
 7198        DWRITE_AUTOMATIC_FONT_AXES axes);
 7199
 7200    END_INTERFACE
 7201} IDWriteTextLayout4Vtbl;
 7202
 7203interface IDWriteTextLayout4 {
 7204    CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl;
 7205};
 7206
 7207#ifdef COBJMACROS
 7208#ifndef WIDL_C_INLINE_WRAPPERS
 7209/*** IUnknown methods ***/
 7210#define IDWriteTextLayout4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7211#define IDWriteTextLayout4_AddRef(This) (This)->lpVtbl->AddRef(This)
 7212#define IDWriteTextLayout4_Release(This) (This)->lpVtbl->Release(This)
 7213/*** IDWriteTextFormat methods ***/
 7214#define IDWriteTextLayout4_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment)
 7215#define IDWriteTextLayout4_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment)
 7216#define IDWriteTextLayout4_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping)
 7217#define IDWriteTextLayout4_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction)
 7218#define IDWriteTextLayout4_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction)
 7219#define IDWriteTextLayout4_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop)
 7220#define IDWriteTextLayout4_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign)
 7221#define IDWriteTextLayout4_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This)
 7222#define IDWriteTextLayout4_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This)
 7223#define IDWriteTextLayout4_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This)
 7224#define IDWriteTextLayout4_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This)
 7225#define IDWriteTextLayout4_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This)
 7226#define IDWriteTextLayout4_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This)
 7227#define IDWriteTextLayout4_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign)
 7228/*** IDWriteTextLayout methods ***/
 7229#define IDWriteTextLayout4_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth)
 7230#define IDWriteTextLayout4_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight)
 7231#define IDWriteTextLayout4_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range)
 7232#define IDWriteTextLayout4_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range)
 7233#define IDWriteTextLayout4_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range)
 7234#define IDWriteTextLayout4_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range)
 7235#define IDWriteTextLayout4_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range)
 7236#define IDWriteTextLayout4_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range)
 7237#define IDWriteTextLayout4_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range)
 7238#define IDWriteTextLayout4_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range)
 7239#define IDWriteTextLayout4_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range)
 7240#define IDWriteTextLayout4_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range)
 7241#define IDWriteTextLayout4_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range)
 7242#define IDWriteTextLayout4_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range)
 7243#define IDWriteTextLayout4_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This)
 7244#define IDWriteTextLayout4_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This)
 7245#define IDWriteTextLayout4_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range)
 7246#define IDWriteTextLayout4_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range)
 7247#define IDWriteTextLayout4_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range)
 7248#define IDWriteTextLayout4_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range)
 7249#define IDWriteTextLayout4_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range)
 7250#define IDWriteTextLayout4_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range)
 7251#define IDWriteTextLayout4_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range)
 7252#define IDWriteTextLayout4_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range)
 7253#define IDWriteTextLayout4_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range)
 7254#define IDWriteTextLayout4_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range)
 7255#define IDWriteTextLayout4_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range)
 7256#define IDWriteTextLayout4_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range)
 7257#define IDWriteTextLayout4_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range)
 7258#define IDWriteTextLayout4_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range)
 7259#define IDWriteTextLayout4_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY)
 7260#define IDWriteTextLayout4_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs)
 7261#define IDWriteTextLayout4_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count)
 7262#define IDWriteTextLayout4_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width)
 7263#define IDWriteTextLayout4_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics)
 7264#define IDWriteTextLayout4_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics)
 7265#define IDWriteTextLayout4_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount)
 7266/*** IDWriteTextLayout1 methods ***/
 7267#define IDWriteTextLayout4_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range)
 7268#define IDWriteTextLayout4_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range)
 7269#define IDWriteTextLayout4_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range)
 7270#define IDWriteTextLayout4_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range)
 7271/*** IDWriteTextLayout2 methods ***/
 7272#define IDWriteTextLayout4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics)
 7273#define IDWriteTextLayout4_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation)
 7274#define IDWriteTextLayout4_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This)
 7275#define IDWriteTextLayout4_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled)
 7276#define IDWriteTextLayout4_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This)
 7277#define IDWriteTextLayout4_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment)
 7278#define IDWriteTextLayout4_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This)
 7279#define IDWriteTextLayout4_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback)
 7280#define IDWriteTextLayout4_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback)
 7281/*** IDWriteTextLayout3 methods ***/
 7282#define IDWriteTextLayout4_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This)
 7283#define IDWriteTextLayout4_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing)
 7284#define IDWriteTextLayout4_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing)
 7285#define IDWriteTextLayout4_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count)
 7286/*** IDWriteTextLayout4 methods ***/
 7287#define IDWriteTextLayout4_SetFontAxisValues(This,axis_values,num_values,range) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range)
 7288#define IDWriteTextLayout4_GetFontAxisValueCount(This,pos) (This)->lpVtbl->GetFontAxisValueCount(This,pos)
 7289#define IDWriteTextLayout4_GetFontAxisValues(This,pos,values,num_values,range) (This)->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range)
 7290#define IDWriteTextLayout4_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This)
 7291#define IDWriteTextLayout4_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes)
 7292#else
 7293/*** IUnknown methods ***/
 7294static inline HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This,REFIID riid,void **ppvObject) {
 7295    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7296}
 7297static inline ULONG IDWriteTextLayout4_AddRef(IDWriteTextLayout4* This) {
 7298    return This->lpVtbl->AddRef(This);
 7299}
 7300static inline ULONG IDWriteTextLayout4_Release(IDWriteTextLayout4* This) {
 7301    return This->lpVtbl->Release(This);
 7302}
 7303/*** IDWriteTextFormat methods ***/
 7304static inline HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This,DWRITE_TEXT_ALIGNMENT alignment) {
 7305    return This->lpVtbl->SetTextAlignment(This,alignment);
 7306}
 7307static inline HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) {
 7308    return This->lpVtbl->SetParagraphAlignment(This,alignment);
 7309}
 7310static inline HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This,DWRITE_WORD_WRAPPING wrapping) {
 7311    return This->lpVtbl->SetWordWrapping(This,wrapping);
 7312}
 7313static inline HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This,DWRITE_READING_DIRECTION direction) {
 7314    return This->lpVtbl->SetReadingDirection(This,direction);
 7315}
 7316static inline HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This,DWRITE_FLOW_DIRECTION direction) {
 7317    return This->lpVtbl->SetFlowDirection(This,direction);
 7318}
 7319static inline HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This,FLOAT tabstop) {
 7320    return This->lpVtbl->SetIncrementalTabStop(This,tabstop);
 7321}
 7322static inline HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) {
 7323    return This->lpVtbl->SetTrimming(This,trimming,trimming_sign);
 7324}
 7325static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout4_GetTextAlignment(IDWriteTextLayout4* This) {
 7326    return This->lpVtbl->GetTextAlignment(This);
 7327}
 7328static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout4_GetParagraphAlignment(IDWriteTextLayout4* This) {
 7329    return This->lpVtbl->GetParagraphAlignment(This);
 7330}
 7331static inline DWRITE_WORD_WRAPPING IDWriteTextLayout4_GetWordWrapping(IDWriteTextLayout4* This) {
 7332    return This->lpVtbl->GetWordWrapping(This);
 7333}
 7334static inline DWRITE_READING_DIRECTION IDWriteTextLayout4_GetReadingDirection(IDWriteTextLayout4* This) {
 7335    return This->lpVtbl->GetReadingDirection(This);
 7336}
 7337static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout4_GetFlowDirection(IDWriteTextLayout4* This) {
 7338    return This->lpVtbl->GetFlowDirection(This);
 7339}
 7340static inline FLOAT IDWriteTextLayout4_GetIncrementalTabStop(IDWriteTextLayout4* This) {
 7341    return This->lpVtbl->GetIncrementalTabStop(This);
 7342}
 7343static inline HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) {
 7344    return This->lpVtbl->GetTrimming(This,options,trimming_sign);
 7345}
 7346/*** IDWriteTextLayout methods ***/
 7347static inline HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This,FLOAT maxWidth) {
 7348    return This->lpVtbl->SetMaxWidth(This,maxWidth);
 7349}
 7350static inline HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This,FLOAT maxHeight) {
 7351    return This->lpVtbl->SetMaxHeight(This,maxHeight);
 7352}
 7353static inline HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) {
 7354    return This->lpVtbl->SetFontCollection(This,collection,range);
 7355}
 7356static inline HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This,const WCHAR *name,DWRITE_TEXT_RANGE range) {
 7357    return This->lpVtbl->SetFontFamilyName(This,name,range);
 7358}
 7359static inline HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) {
 7360    return This->lpVtbl->SetFontWeight(This,weight,range);
 7361}
 7362static inline HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) {
 7363    return This->lpVtbl->SetFontStyle(This,style,range);
 7364}
 7365static inline HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) {
 7366    return This->lpVtbl->SetFontStretch(This,stretch,range);
 7367}
 7368static inline HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This,FLOAT size,DWRITE_TEXT_RANGE range) {
 7369    return This->lpVtbl->SetFontSize(This,size,range);
 7370}
 7371static inline HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This,WINBOOL underline,DWRITE_TEXT_RANGE range) {
 7372    return This->lpVtbl->SetUnderline(This,underline,range);
 7373}
 7374static inline HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) {
 7375    return This->lpVtbl->SetStrikethrough(This,strikethrough,range);
 7376}
 7377static inline HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This,IUnknown *effect,DWRITE_TEXT_RANGE range) {
 7378    return This->lpVtbl->SetDrawingEffect(This,effect,range);
 7379}
 7380static inline HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) {
 7381    return This->lpVtbl->SetInlineObject(This,object,range);
 7382}
 7383static inline HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) {
 7384    return This->lpVtbl->SetTypography(This,typography,range);
 7385}
 7386static inline HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) {
 7387    return This->lpVtbl->SetLocaleName(This,locale,range);
 7388}
 7389static inline FLOAT IDWriteTextLayout4_GetMaxWidth(IDWriteTextLayout4* This) {
 7390    return This->lpVtbl->GetMaxWidth(This);
 7391}
 7392static inline FLOAT IDWriteTextLayout4_GetMaxHeight(IDWriteTextLayout4* This) {
 7393    return This->lpVtbl->GetMaxHeight(This);
 7394}
 7395static inline HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) {
 7396    return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range);
 7397}
 7398static inline HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) {
 7399    return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range);
 7400}
 7401static inline HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
 7402    return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range);
 7403}
 7404static inline HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) {
 7405    return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range);
 7406}
 7407static inline HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) {
 7408    return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range);
 7409}
 7410static inline HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) {
 7411    return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range);
 7412}
 7413static inline HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) {
 7414    return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range);
 7415}
 7416static inline HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) {
 7417    return This->lpVtbl->GetUnderline(This,position,has_underline,range);
 7418}
 7419static inline HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) {
 7420    return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range);
 7421}
 7422static inline HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) {
 7423    return This->lpVtbl->GetDrawingEffect(This,position,effect,range);
 7424}
 7425static inline HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) {
 7426    return This->lpVtbl->GetInlineObject(This,position,object,range);
 7427}
 7428static inline HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) {
 7429    return This->lpVtbl->GetTypography(This,position,typography,range);
 7430}
 7431static inline HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) {
 7432    return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range);
 7433}
 7434static inline HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) {
 7435    return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range);
 7436}
 7437static inline HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) {
 7438    return This->lpVtbl->Draw(This,context,renderer,originX,originY);
 7439}
 7440static inline HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This,DWRITE_OVERHANG_METRICS *overhangs) {
 7441    return This->lpVtbl->GetOverhangMetrics(This,overhangs);
 7442}
 7443static inline HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) {
 7444    return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count);
 7445}
 7446static inline HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This,FLOAT *min_width) {
 7447    return This->lpVtbl->DetermineMinWidth(This,min_width);
 7448}
 7449static inline HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) {
 7450    return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics);
 7451}
 7452static inline HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) {
 7453    return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics);
 7454}
 7455static inline HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) {
 7456    return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount);
 7457}
 7458/*** IDWriteTextLayout1 methods ***/
 7459static inline HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) {
 7460    return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range);
 7461}
 7462static inline HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) {
 7463    return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range);
 7464}
 7465static inline HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) {
 7466    return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range);
 7467}
 7468static inline HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) {
 7469    return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range);
 7470}
 7471/*** IDWriteTextLayout2 methods ***/
 7472static inline HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This,DWRITE_TEXT_METRICS1 *metrics) {
 7473    return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics);
 7474}
 7475static inline HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) {
 7476    return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation);
 7477}
 7478static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout4_GetVerticalGlyphOrientation(IDWriteTextLayout4* This) {
 7479    return This->lpVtbl->GetVerticalGlyphOrientation(This);
 7480}
 7481static inline HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This,WINBOOL lastline_wrapping_enabled) {
 7482    return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled);
 7483}
 7484static inline WINBOOL IDWriteTextLayout4_GetLastLineWrapping(IDWriteTextLayout4* This) {
 7485    return This->lpVtbl->GetLastLineWrapping(This);
 7486}
 7487static inline HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This,DWRITE_OPTICAL_ALIGNMENT alignment) {
 7488    return This->lpVtbl->SetOpticalAlignment(This,alignment);
 7489}
 7490static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout4_GetOpticalAlignment(IDWriteTextLayout4* This) {
 7491    return This->lpVtbl->GetOpticalAlignment(This);
 7492}
 7493static inline HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback *fallback) {
 7494    return This->lpVtbl->SetFontFallback(This,fallback);
 7495}
 7496static inline HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback **fallback) {
 7497    return This->lpVtbl->GetFontFallback(This,fallback);
 7498}
 7499/*** IDWriteTextLayout3 methods ***/
 7500static inline HRESULT IDWriteTextLayout4_InvalidateLayout(IDWriteTextLayout4* This) {
 7501    return This->lpVtbl->InvalidateLayout(This);
 7502}
 7503static inline HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This,const DWRITE_LINE_SPACING *spacing) {
 7504    return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing);
 7505}
 7506static inline HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This,DWRITE_LINE_SPACING *spacing) {
 7507    return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing);
 7508}
 7509static inline HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) {
 7510    return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count);
 7511}
 7512/*** IDWriteTextLayout4 methods ***/
 7513static inline HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,DWRITE_TEXT_RANGE range) {
 7514    return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range);
 7515}
 7516static inline UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This,UINT32 pos) {
 7517    return This->lpVtbl->GetFontAxisValueCount(This,pos);
 7518}
 7519static inline HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This,UINT32 pos,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values,DWRITE_TEXT_RANGE *range) {
 7520    return This->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range);
 7521}
 7522static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextLayout4_GetAutomaticFontAxes(IDWriteTextLayout4* This) {
 7523    return This->lpVtbl->GetAutomaticFontAxes(This);
 7524}
 7525static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This,DWRITE_AUTOMATIC_FONT_AXES axes) {
 7526    return This->lpVtbl->SetAutomaticFontAxes(This,axes);
 7527}
 7528#endif
 7529#endif
 7530
 7531#endif
 7532
 7533
 7534#endif  /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */
 7535
 7536/*****************************************************************************
 7537 * IDWriteFontFallback1 interface
 7538 */
 7539#ifndef __IDWriteFontFallback1_INTERFACE_DEFINED__
 7540#define __IDWriteFontFallback1_INTERFACE_DEFINED__
 7541
 7542DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77);
 7543#if defined(__cplusplus) && !defined(CINTERFACE)
 7544MIDL_INTERFACE("2397599d-dd0d-4681-bd6a-f4f31eaade77")
 7545IDWriteFontFallback1 : public IDWriteFontFallback
 7546{
 7547    virtual HRESULT STDMETHODCALLTYPE MapCharacters(
 7548        IDWriteTextAnalysisSource *source,
 7549        UINT32 pos,
 7550        UINT32 length,
 7551        IDWriteFontCollection *base_collection,
 7552        const WCHAR *familyname,
 7553        const DWRITE_FONT_AXIS_VALUE *axis_values,
 7554        UINT32 num_values,
 7555        UINT32 *mapped_length,
 7556        FLOAT *scale,
 7557        IDWriteFontFace5 **fontface) = 0;
 7558
 7559};
 7560#ifdef __CRT_UUID_DECL
 7561__CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77)
 7562#endif
 7563#else
 7564typedef struct IDWriteFontFallback1Vtbl {
 7565    BEGIN_INTERFACE
 7566
 7567    /*** IUnknown methods ***/
 7568    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7569        IDWriteFontFallback1 *This,
 7570        REFIID riid,
 7571        void **ppvObject);
 7572
 7573    ULONG (STDMETHODCALLTYPE *AddRef)(
 7574        IDWriteFontFallback1 *This);
 7575
 7576    ULONG (STDMETHODCALLTYPE *Release)(
 7577        IDWriteFontFallback1 *This);
 7578
 7579    /*** IDWriteFontFallback methods ***/
 7580    HRESULT (STDMETHODCALLTYPE *MapCharacters)(
 7581        IDWriteFontFallback1 *This,
 7582        IDWriteTextAnalysisSource *source,
 7583        UINT32 position,
 7584        UINT32 length,
 7585        IDWriteFontCollection *basecollection,
 7586        const WCHAR *baseFamilyName,
 7587        DWRITE_FONT_WEIGHT baseWeight,
 7588        DWRITE_FONT_STYLE baseStyle,
 7589        DWRITE_FONT_STRETCH baseStretch,
 7590        UINT32 *mappedLength,
 7591        IDWriteFont **mappedFont,
 7592        FLOAT *scale);
 7593
 7594    /*** IDWriteFontFallback1 methods ***/
 7595    HRESULT (STDMETHODCALLTYPE *IDWriteFontFallback1_MapCharacters)(
 7596        IDWriteFontFallback1 *This,
 7597        IDWriteTextAnalysisSource *source,
 7598        UINT32 pos,
 7599        UINT32 length,
 7600        IDWriteFontCollection *base_collection,
 7601        const WCHAR *familyname,
 7602        const DWRITE_FONT_AXIS_VALUE *axis_values,
 7603        UINT32 num_values,
 7604        UINT32 *mapped_length,
 7605        FLOAT *scale,
 7606        IDWriteFontFace5 **fontface);
 7607
 7608    END_INTERFACE
 7609} IDWriteFontFallback1Vtbl;
 7610
 7611interface IDWriteFontFallback1 {
 7612    CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl;
 7613};
 7614
 7615#ifdef COBJMACROS
 7616#ifndef WIDL_C_INLINE_WRAPPERS
 7617/*** IUnknown methods ***/
 7618#define IDWriteFontFallback1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7619#define IDWriteFontFallback1_AddRef(This) (This)->lpVtbl->AddRef(This)
 7620#define IDWriteFontFallback1_Release(This) (This)->lpVtbl->Release(This)
 7621/*** IDWriteFontFallback methods ***/
 7622/*** IDWriteFontFallback1 methods ***/
 7623#define IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface)
 7624#else
 7625/*** IUnknown methods ***/
 7626static inline HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This,REFIID riid,void **ppvObject) {
 7627    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7628}
 7629static inline ULONG IDWriteFontFallback1_AddRef(IDWriteFontFallback1* This) {
 7630    return This->lpVtbl->AddRef(This);
 7631}
 7632static inline ULONG IDWriteFontFallback1_Release(IDWriteFontFallback1* This) {
 7633    return This->lpVtbl->Release(This);
 7634}
 7635/*** IDWriteFontFallback methods ***/
 7636/*** IDWriteFontFallback1 methods ***/
 7637static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This,IDWriteTextAnalysisSource *source,UINT32 pos,UINT32 length,IDWriteFontCollection *base_collection,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,UINT32 *mapped_length,FLOAT *scale,IDWriteFontFace5 **fontface) {
 7638    return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface);
 7639}
 7640#endif
 7641#endif
 7642
 7643#endif
 7644
 7645
 7646#endif  /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */
 7647
 7648/*****************************************************************************
 7649 * IDWriteGdiInterop1 interface
 7650 */
 7651#ifndef __IDWriteGdiInterop1_INTERFACE_DEFINED__
 7652#define __IDWriteGdiInterop1_INTERFACE_DEFINED__
 7653
 7654DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15);
 7655#if defined(__cplusplus) && !defined(CINTERFACE)
 7656MIDL_INTERFACE("4556be70-3abd-4f70-90be-421780a6f515")
 7657IDWriteGdiInterop1 : public IDWriteGdiInterop
 7658{
 7659    virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT(
 7660        const LOGFONTW *logfont,
 7661        IDWriteFontCollection *collection,
 7662        IDWriteFont **font) = 0;
 7663
 7664    virtual HRESULT STDMETHODCALLTYPE GetFontSignature_(
 7665        IDWriteFontFace *fontface,
 7666        FONTSIGNATURE *fontsig) = 0;
 7667
 7668    virtual HRESULT STDMETHODCALLTYPE GetFontSignature(
 7669        IDWriteFont *font,
 7670        FONTSIGNATURE *fontsig) = 0;
 7671
 7672    virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT(
 7673        const LOGFONTW *logfont,
 7674        IDWriteFontSet *fontset,
 7675        IDWriteFontSet **subset) = 0;
 7676
 7677};
 7678#ifdef __CRT_UUID_DECL
 7679__CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15)
 7680#endif
 7681#else
 7682typedef struct IDWriteGdiInterop1Vtbl {
 7683    BEGIN_INTERFACE
 7684
 7685    /*** IUnknown methods ***/
 7686    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7687        IDWriteGdiInterop1 *This,
 7688        REFIID riid,
 7689        void **ppvObject);
 7690
 7691    ULONG (STDMETHODCALLTYPE *AddRef)(
 7692        IDWriteGdiInterop1 *This);
 7693
 7694    ULONG (STDMETHODCALLTYPE *Release)(
 7695        IDWriteGdiInterop1 *This);
 7696
 7697    /*** IDWriteGdiInterop methods ***/
 7698    HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)(
 7699        IDWriteGdiInterop1 *This,
 7700        const LOGFONTW *logfont,
 7701        IDWriteFont **font);
 7702
 7703    HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)(
 7704        IDWriteGdiInterop1 *This,
 7705        IDWriteFont *font,
 7706        LOGFONTW *logfont,
 7707        WINBOOL *is_systemfont);
 7708
 7709    HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)(
 7710        IDWriteGdiInterop1 *This,
 7711        IDWriteFontFace *font,
 7712        LOGFONTW *logfont);
 7713
 7714    HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)(
 7715        IDWriteGdiInterop1 *This,
 7716        HDC hdc,
 7717        IDWriteFontFace **fontface);
 7718
 7719    HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)(
 7720        IDWriteGdiInterop1 *This,
 7721        HDC hdc,
 7722        UINT32 width,
 7723        UINT32 height,
 7724        IDWriteBitmapRenderTarget **target);
 7725
 7726    /*** IDWriteGdiInterop1 methods ***/
 7727    HRESULT (STDMETHODCALLTYPE *IDWriteGdiInterop1_CreateFontFromLOGFONT)(
 7728        IDWriteGdiInterop1 *This,
 7729        const LOGFONTW *logfont,
 7730        IDWriteFontCollection *collection,
 7731        IDWriteFont **font);
 7732
 7733    HRESULT (STDMETHODCALLTYPE *GetFontSignature_)(
 7734        IDWriteGdiInterop1 *This,
 7735        IDWriteFontFace *fontface,
 7736        FONTSIGNATURE *fontsig);
 7737
 7738    HRESULT (STDMETHODCALLTYPE *GetFontSignature)(
 7739        IDWriteGdiInterop1 *This,
 7740        IDWriteFont *font,
 7741        FONTSIGNATURE *fontsig);
 7742
 7743    HRESULT (STDMETHODCALLTYPE *GetMatchingFontsByLOGFONT)(
 7744        IDWriteGdiInterop1 *This,
 7745        const LOGFONTW *logfont,
 7746        IDWriteFontSet *fontset,
 7747        IDWriteFontSet **subset);
 7748
 7749    END_INTERFACE
 7750} IDWriteGdiInterop1Vtbl;
 7751
 7752interface IDWriteGdiInterop1 {
 7753    CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl;
 7754};
 7755
 7756#ifdef COBJMACROS
 7757#ifndef WIDL_C_INLINE_WRAPPERS
 7758/*** IUnknown methods ***/
 7759#define IDWriteGdiInterop1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7760#define IDWriteGdiInterop1_AddRef(This) (This)->lpVtbl->AddRef(This)
 7761#define IDWriteGdiInterop1_Release(This) (This)->lpVtbl->Release(This)
 7762/*** IDWriteGdiInterop methods ***/
 7763#define IDWriteGdiInterop1_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont)
 7764#define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont)
 7765#define IDWriteGdiInterop1_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface)
 7766#define IDWriteGdiInterop1_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target)
 7767/*** IDWriteGdiInterop1 methods ***/
 7768#define IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font)
 7769#define IDWriteGdiInterop1_GetFontSignature_(This,fontface,fontsig) (This)->lpVtbl->GetFontSignature_(This,fontface,fontsig)
 7770#define IDWriteGdiInterop1_GetFontSignature(This,font,fontsig) (This)->lpVtbl->GetFontSignature(This,font,fontsig)
 7771#define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset)
 7772#else
 7773/*** IUnknown methods ***/
 7774static inline HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This,REFIID riid,void **ppvObject) {
 7775    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7776}
 7777static inline ULONG IDWriteGdiInterop1_AddRef(IDWriteGdiInterop1* This) {
 7778    return This->lpVtbl->AddRef(This);
 7779}
 7780static inline ULONG IDWriteGdiInterop1_Release(IDWriteGdiInterop1* This) {
 7781    return This->lpVtbl->Release(This);
 7782}
 7783/*** IDWriteGdiInterop methods ***/
 7784static inline HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) {
 7785    return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont);
 7786}
 7787static inline HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This,IDWriteFontFace *font,LOGFONTW *logfont) {
 7788    return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont);
 7789}
 7790static inline HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This,HDC hdc,IDWriteFontFace **fontface) {
 7791    return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface);
 7792}
 7793static inline HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) {
 7794    return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target);
 7795}
 7796/*** IDWriteGdiInterop1 methods ***/
 7797static inline HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontCollection *collection,IDWriteFont **font) {
 7798    return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font);
 7799}
 7800static inline HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This,IDWriteFontFace *fontface,FONTSIGNATURE *fontsig) {
 7801    return This->lpVtbl->GetFontSignature_(This,fontface,fontsig);
 7802}
 7803static inline HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This,IDWriteFont *font,FONTSIGNATURE *fontsig) {
 7804    return This->lpVtbl->GetFontSignature(This,font,fontsig);
 7805}
 7806static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontSet *fontset,IDWriteFontSet **subset) {
 7807    return This->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset);
 7808}
 7809#endif
 7810#endif
 7811
 7812#endif
 7813
 7814
 7815#endif  /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */
 7816
 7817/*****************************************************************************
 7818 * IDWriteFontSetBuilder interface
 7819 */
 7820#ifndef __IDWriteFontSetBuilder_INTERFACE_DEFINED__
 7821#define __IDWriteFontSetBuilder_INTERFACE_DEFINED__
 7822
 7823DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d);
 7824#if defined(__cplusplus) && !defined(CINTERFACE)
 7825MIDL_INTERFACE("2f642afe-9c68-4f40-b8be-457401afcb3d")
 7826IDWriteFontSetBuilder : public IUnknown
 7827{
 7828    virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_(
 7829        IDWriteFontFaceReference *ref,
 7830        const DWRITE_FONT_PROPERTY *props,
 7831        UINT32 prop_count) = 0;
 7832
 7833    virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference(
 7834        IDWriteFontFaceReference *ref) = 0;
 7835
 7836    virtual HRESULT STDMETHODCALLTYPE AddFontSet(
 7837        IDWriteFontSet *fontset) = 0;
 7838
 7839    virtual HRESULT STDMETHODCALLTYPE CreateFontSet(
 7840        IDWriteFontSet **fontset) = 0;
 7841
 7842};
 7843#ifdef __CRT_UUID_DECL
 7844__CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d)
 7845#endif
 7846#else
 7847typedef struct IDWriteFontSetBuilderVtbl {
 7848    BEGIN_INTERFACE
 7849
 7850    /*** IUnknown methods ***/
 7851    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7852        IDWriteFontSetBuilder *This,
 7853        REFIID riid,
 7854        void **ppvObject);
 7855
 7856    ULONG (STDMETHODCALLTYPE *AddRef)(
 7857        IDWriteFontSetBuilder *This);
 7858
 7859    ULONG (STDMETHODCALLTYPE *Release)(
 7860        IDWriteFontSetBuilder *This);
 7861
 7862    /*** IDWriteFontSetBuilder methods ***/
 7863    HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
 7864        IDWriteFontSetBuilder *This,
 7865        IDWriteFontFaceReference *ref,
 7866        const DWRITE_FONT_PROPERTY *props,
 7867        UINT32 prop_count);
 7868
 7869    HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
 7870        IDWriteFontSetBuilder *This,
 7871        IDWriteFontFaceReference *ref);
 7872
 7873    HRESULT (STDMETHODCALLTYPE *AddFontSet)(
 7874        IDWriteFontSetBuilder *This,
 7875        IDWriteFontSet *fontset);
 7876
 7877    HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
 7878        IDWriteFontSetBuilder *This,
 7879        IDWriteFontSet **fontset);
 7880
 7881    END_INTERFACE
 7882} IDWriteFontSetBuilderVtbl;
 7883
 7884interface IDWriteFontSetBuilder {
 7885    CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl;
 7886};
 7887
 7888#ifdef COBJMACROS
 7889#ifndef WIDL_C_INLINE_WRAPPERS
 7890/*** IUnknown methods ***/
 7891#define IDWriteFontSetBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7892#define IDWriteFontSetBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
 7893#define IDWriteFontSetBuilder_Release(This) (This)->lpVtbl->Release(This)
 7894/*** IDWriteFontSetBuilder methods ***/
 7895#define IDWriteFontSetBuilder_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
 7896#define IDWriteFontSetBuilder_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
 7897#define IDWriteFontSetBuilder_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
 7898#define IDWriteFontSetBuilder_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
 7899#else
 7900/*** IUnknown methods ***/
 7901static inline HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This,REFIID riid,void **ppvObject) {
 7902    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7903}
 7904static inline ULONG IDWriteFontSetBuilder_AddRef(IDWriteFontSetBuilder* This) {
 7905    return This->lpVtbl->AddRef(This);
 7906}
 7907static inline ULONG IDWriteFontSetBuilder_Release(IDWriteFontSetBuilder* This) {
 7908    return This->lpVtbl->Release(This);
 7909}
 7910/*** IDWriteFontSetBuilder methods ***/
 7911static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
 7912    return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
 7913}
 7914static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref) {
 7915    return This->lpVtbl->AddFontFaceReference(This,ref);
 7916}
 7917static inline HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet *fontset) {
 7918    return This->lpVtbl->AddFontSet(This,fontset);
 7919}
 7920static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet **fontset) {
 7921    return This->lpVtbl->CreateFontSet(This,fontset);
 7922}
 7923#endif
 7924#endif
 7925
 7926#endif
 7927
 7928
 7929#endif  /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */
 7930
 7931/*****************************************************************************
 7932 * IDWriteFontSetBuilder1 interface
 7933 */
 7934#ifndef __IDWriteFontSetBuilder1_INTERFACE_DEFINED__
 7935#define __IDWriteFontSetBuilder1_INTERFACE_DEFINED__
 7936
 7937DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd);
 7938#if defined(__cplusplus) && !defined(CINTERFACE)
 7939MIDL_INTERFACE("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd")
 7940IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder
 7941{
 7942    virtual HRESULT STDMETHODCALLTYPE AddFontFile(
 7943        IDWriteFontFile *file) = 0;
 7944
 7945};
 7946#ifdef __CRT_UUID_DECL
 7947__CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd)
 7948#endif
 7949#else
 7950typedef struct IDWriteFontSetBuilder1Vtbl {
 7951    BEGIN_INTERFACE
 7952
 7953    /*** IUnknown methods ***/
 7954    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7955        IDWriteFontSetBuilder1 *This,
 7956        REFIID riid,
 7957        void **ppvObject);
 7958
 7959    ULONG (STDMETHODCALLTYPE *AddRef)(
 7960        IDWriteFontSetBuilder1 *This);
 7961
 7962    ULONG (STDMETHODCALLTYPE *Release)(
 7963        IDWriteFontSetBuilder1 *This);
 7964
 7965    /*** IDWriteFontSetBuilder methods ***/
 7966    HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
 7967        IDWriteFontSetBuilder1 *This,
 7968        IDWriteFontFaceReference *ref,
 7969        const DWRITE_FONT_PROPERTY *props,
 7970        UINT32 prop_count);
 7971
 7972    HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
 7973        IDWriteFontSetBuilder1 *This,
 7974        IDWriteFontFaceReference *ref);
 7975
 7976    HRESULT (STDMETHODCALLTYPE *AddFontSet)(
 7977        IDWriteFontSetBuilder1 *This,
 7978        IDWriteFontSet *fontset);
 7979
 7980    HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
 7981        IDWriteFontSetBuilder1 *This,
 7982        IDWriteFontSet **fontset);
 7983
 7984    /*** IDWriteFontSetBuilder1 methods ***/
 7985    HRESULT (STDMETHODCALLTYPE *AddFontFile)(
 7986        IDWriteFontSetBuilder1 *This,
 7987        IDWriteFontFile *file);
 7988
 7989    END_INTERFACE
 7990} IDWriteFontSetBuilder1Vtbl;
 7991
 7992interface IDWriteFontSetBuilder1 {
 7993    CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl;
 7994};
 7995
 7996#ifdef COBJMACROS
 7997#ifndef WIDL_C_INLINE_WRAPPERS
 7998/*** IUnknown methods ***/
 7999#define IDWriteFontSetBuilder1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8000#define IDWriteFontSetBuilder1_AddRef(This) (This)->lpVtbl->AddRef(This)
 8001#define IDWriteFontSetBuilder1_Release(This) (This)->lpVtbl->Release(This)
 8002/*** IDWriteFontSetBuilder methods ***/
 8003#define IDWriteFontSetBuilder1_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
 8004#define IDWriteFontSetBuilder1_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
 8005#define IDWriteFontSetBuilder1_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
 8006#define IDWriteFontSetBuilder1_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
 8007/*** IDWriteFontSetBuilder1 methods ***/
 8008#define IDWriteFontSetBuilder1_AddFontFile(This,file) (This)->lpVtbl->AddFontFile(This,file)
 8009#else
 8010/*** IUnknown methods ***/
 8011static inline HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This,REFIID riid,void **ppvObject) {
 8012    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8013}
 8014static inline ULONG IDWriteFontSetBuilder1_AddRef(IDWriteFontSetBuilder1* This) {
 8015    return This->lpVtbl->AddRef(This);
 8016}
 8017static inline ULONG IDWriteFontSetBuilder1_Release(IDWriteFontSetBuilder1* This) {
 8018    return This->lpVtbl->Release(This);
 8019}
 8020/*** IDWriteFontSetBuilder methods ***/
 8021static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
 8022    return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
 8023}
 8024static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref) {
 8025    return This->lpVtbl->AddFontFaceReference(This,ref);
 8026}
 8027static inline HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet *fontset) {
 8028    return This->lpVtbl->AddFontSet(This,fontset);
 8029}
 8030static inline HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet **fontset) {
 8031    return This->lpVtbl->CreateFontSet(This,fontset);
 8032}
 8033/*** IDWriteFontSetBuilder1 methods ***/
 8034static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This,IDWriteFontFile *file) {
 8035    return This->lpVtbl->AddFontFile(This,file);
 8036}
 8037#endif
 8038#endif
 8039
 8040#endif
 8041
 8042
 8043#endif  /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */
 8044
 8045/*****************************************************************************
 8046 * IDWriteFontSetBuilder2 interface
 8047 */
 8048#ifndef __IDWriteFontSetBuilder2_INTERFACE_DEFINED__
 8049#define __IDWriteFontSetBuilder2_INTERFACE_DEFINED__
 8050
 8051DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45);
 8052#if defined(__cplusplus) && !defined(CINTERFACE)
 8053MIDL_INTERFACE("ee5ba612-b131-463c-8f4f-3189b9401e45")
 8054IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1
 8055{
 8056    virtual HRESULT STDMETHODCALLTYPE AddFont(
 8057        IDWriteFontFile *fontfile,
 8058        UINT32 face_index,
 8059        DWRITE_FONT_SIMULATIONS simulations,
 8060        const DWRITE_FONT_AXIS_VALUE *axis_values,
 8061        UINT32 num_values,
 8062        const DWRITE_FONT_AXIS_RANGE *axis_ranges,
 8063        UINT32 num_ranges,
 8064        const DWRITE_FONT_PROPERTY *props,
 8065        UINT32 num_properties) = 0;
 8066
 8067    virtual HRESULT STDMETHODCALLTYPE AddFontFile(
 8068        const WCHAR *filepath) = 0;
 8069
 8070};
 8071#ifdef __CRT_UUID_DECL
 8072__CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45)
 8073#endif
 8074#else
 8075typedef struct IDWriteFontSetBuilder2Vtbl {
 8076    BEGIN_INTERFACE
 8077
 8078    /*** IUnknown methods ***/
 8079    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8080        IDWriteFontSetBuilder2 *This,
 8081        REFIID riid,
 8082        void **ppvObject);
 8083
 8084    ULONG (STDMETHODCALLTYPE *AddRef)(
 8085        IDWriteFontSetBuilder2 *This);
 8086
 8087    ULONG (STDMETHODCALLTYPE *Release)(
 8088        IDWriteFontSetBuilder2 *This);
 8089
 8090    /*** IDWriteFontSetBuilder methods ***/
 8091    HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)(
 8092        IDWriteFontSetBuilder2 *This,
 8093        IDWriteFontFaceReference *ref,
 8094        const DWRITE_FONT_PROPERTY *props,
 8095        UINT32 prop_count);
 8096
 8097    HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)(
 8098        IDWriteFontSetBuilder2 *This,
 8099        IDWriteFontFaceReference *ref);
 8100
 8101    HRESULT (STDMETHODCALLTYPE *AddFontSet)(
 8102        IDWriteFontSetBuilder2 *This,
 8103        IDWriteFontSet *fontset);
 8104
 8105    HRESULT (STDMETHODCALLTYPE *CreateFontSet)(
 8106        IDWriteFontSetBuilder2 *This,
 8107        IDWriteFontSet **fontset);
 8108
 8109    /*** IDWriteFontSetBuilder1 methods ***/
 8110    HRESULT (STDMETHODCALLTYPE *AddFontFile)(
 8111        IDWriteFontSetBuilder2 *This,
 8112        IDWriteFontFile *file);
 8113
 8114    /*** IDWriteFontSetBuilder2 methods ***/
 8115    HRESULT (STDMETHODCALLTYPE *AddFont)(
 8116        IDWriteFontSetBuilder2 *This,
 8117        IDWriteFontFile *fontfile,
 8118        UINT32 face_index,
 8119        DWRITE_FONT_SIMULATIONS simulations,
 8120        const DWRITE_FONT_AXIS_VALUE *axis_values,
 8121        UINT32 num_values,
 8122        const DWRITE_FONT_AXIS_RANGE *axis_ranges,
 8123        UINT32 num_ranges,
 8124        const DWRITE_FONT_PROPERTY *props,
 8125        UINT32 num_properties);
 8126
 8127    HRESULT (STDMETHODCALLTYPE *IDWriteFontSetBuilder2_AddFontFile)(
 8128        IDWriteFontSetBuilder2 *This,
 8129        const WCHAR *filepath);
 8130
 8131    END_INTERFACE
 8132} IDWriteFontSetBuilder2Vtbl;
 8133
 8134interface IDWriteFontSetBuilder2 {
 8135    CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl;
 8136};
 8137
 8138#ifdef COBJMACROS
 8139#ifndef WIDL_C_INLINE_WRAPPERS
 8140/*** IUnknown methods ***/
 8141#define IDWriteFontSetBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8142#define IDWriteFontSetBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
 8143#define IDWriteFontSetBuilder2_Release(This) (This)->lpVtbl->Release(This)
 8144/*** IDWriteFontSetBuilder methods ***/
 8145#define IDWriteFontSetBuilder2_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count)
 8146#define IDWriteFontSetBuilder2_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref)
 8147#define IDWriteFontSetBuilder2_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset)
 8148#define IDWriteFontSetBuilder2_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset)
 8149/*** IDWriteFontSetBuilder1 methods ***/
 8150/*** IDWriteFontSetBuilder2 methods ***/
 8151#define IDWriteFontSetBuilder2_AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) (This)->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties)
 8152#define IDWriteFontSetBuilder2_AddFontFile(This,filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath)
 8153#else
 8154/*** IUnknown methods ***/
 8155static inline HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This,REFIID riid,void **ppvObject) {
 8156    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8157}
 8158static inline ULONG IDWriteFontSetBuilder2_AddRef(IDWriteFontSetBuilder2* This) {
 8159    return This->lpVtbl->AddRef(This);
 8160}
 8161static inline ULONG IDWriteFontSetBuilder2_Release(IDWriteFontSetBuilder2* This) {
 8162    return This->lpVtbl->Release(This);
 8163}
 8164/*** IDWriteFontSetBuilder methods ***/
 8165static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) {
 8166    return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count);
 8167}
 8168static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref) {
 8169    return This->lpVtbl->AddFontFaceReference(This,ref);
 8170}
 8171static inline HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet *fontset) {
 8172    return This->lpVtbl->AddFontSet(This,fontset);
 8173}
 8174static inline HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet **fontset) {
 8175    return This->lpVtbl->CreateFontSet(This,fontset);
 8176}
 8177/*** IDWriteFontSetBuilder1 methods ***/
 8178/*** IDWriteFontSetBuilder2 methods ***/
 8179static inline HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This,IDWriteFontFile *fontfile,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties) {
 8180    return This->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties);
 8181}
 8182static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This,const WCHAR *filepath) {
 8183    return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath);
 8184}
 8185#endif
 8186#endif
 8187
 8188#endif
 8189
 8190
 8191#endif  /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */
 8192
 8193/*****************************************************************************
 8194 * IDWriteFactory3 interface
 8195 */
 8196#ifndef __IDWriteFactory3_INTERFACE_DEFINED__
 8197#define __IDWriteFactory3_INTERFACE_DEFINED__
 8198
 8199DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65);
 8200#if defined(__cplusplus) && !defined(CINTERFACE)
 8201MIDL_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65")
 8202IDWriteFactory3 : public IDWriteFactory2
 8203{
 8204    virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis(
 8205        const DWRITE_GLYPH_RUN *run,
 8206        const DWRITE_MATRIX *transform,
 8207        DWRITE_RENDERING_MODE1 rendering_mode,
 8208        DWRITE_MEASURING_MODE measuring_mode,
 8209        DWRITE_GRID_FIT_MODE gridfit_mode,
 8210        DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
 8211        FLOAT origin_x,
 8212        FLOAT origin_y,
 8213        IDWriteGlyphRunAnalysis **analysis) = 0;
 8214
 8215    virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams(
 8216        FLOAT gamma,
 8217        FLOAT enhanced_contrast,
 8218        FLOAT grayscale_enhanced_contrast,
 8219        FLOAT cleartype_level,
 8220        DWRITE_PIXEL_GEOMETRY pixel_geometry,
 8221        DWRITE_RENDERING_MODE1 rendering_mode,
 8222        DWRITE_GRID_FIT_MODE gridfit_mode,
 8223        IDWriteRenderingParams3 **params) = 0;
 8224
 8225    virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_(
 8226        IDWriteFontFile *file,
 8227        UINT32 index,
 8228        DWRITE_FONT_SIMULATIONS simulations,
 8229        IDWriteFontFaceReference **reference) = 0;
 8230
 8231    virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
 8232        const WCHAR *path,
 8233        const FILETIME *writetime,
 8234        UINT32 index,
 8235        DWRITE_FONT_SIMULATIONS simulations,
 8236        IDWriteFontFaceReference **reference) = 0;
 8237
 8238    virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
 8239        IDWriteFontSet **fontset) = 0;
 8240
 8241    virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
 8242        IDWriteFontSetBuilder **builder) = 0;
 8243
 8244    virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet(
 8245        IDWriteFontSet *fontset,
 8246        IDWriteFontCollection1 **collection) = 0;
 8247
 8248    virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
 8249        WINBOOL include_downloadable,
 8250        IDWriteFontCollection1 **collection,
 8251        WINBOOL check_for_updates) = 0;
 8252
 8253    virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue(
 8254        IDWriteFontDownloadQueue **queue) = 0;
 8255
 8256};
 8257#ifdef __CRT_UUID_DECL
 8258__CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65)
 8259#endif
 8260#else
 8261typedef struct IDWriteFactory3Vtbl {
 8262    BEGIN_INTERFACE
 8263
 8264    /*** IUnknown methods ***/
 8265    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8266        IDWriteFactory3 *This,
 8267        REFIID riid,
 8268        void **ppvObject);
 8269
 8270    ULONG (STDMETHODCALLTYPE *AddRef)(
 8271        IDWriteFactory3 *This);
 8272
 8273    ULONG (STDMETHODCALLTYPE *Release)(
 8274        IDWriteFactory3 *This);
 8275
 8276    /*** IDWriteFactory methods ***/
 8277    HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
 8278        IDWriteFactory3 *This,
 8279        IDWriteFontCollection **collection,
 8280        WINBOOL check_for_updates);
 8281
 8282    HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
 8283        IDWriteFactory3 *This,
 8284        IDWriteFontCollectionLoader *loader,
 8285        const void *key,
 8286        UINT32 key_size,
 8287        IDWriteFontCollection **collection);
 8288
 8289    HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
 8290        IDWriteFactory3 *This,
 8291        IDWriteFontCollectionLoader *loader);
 8292
 8293    HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
 8294        IDWriteFactory3 *This,
 8295        IDWriteFontCollectionLoader *loader);
 8296
 8297    HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
 8298        IDWriteFactory3 *This,
 8299        const WCHAR *path,
 8300        const FILETIME *writetime,
 8301        IDWriteFontFile **font_file);
 8302
 8303    HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
 8304        IDWriteFactory3 *This,
 8305        const void *reference_key,
 8306        UINT32 key_size,
 8307        IDWriteFontFileLoader *loader,
 8308        IDWriteFontFile **font_file);
 8309
 8310    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
 8311        IDWriteFactory3 *This,
 8312        DWRITE_FONT_FACE_TYPE facetype,
 8313        UINT32 files_number,
 8314        IDWriteFontFile *const *font_files,
 8315        UINT32 index,
 8316        DWRITE_FONT_SIMULATIONS sim_flags,
 8317        IDWriteFontFace **font_face);
 8318
 8319    HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
 8320        IDWriteFactory3 *This,
 8321        IDWriteRenderingParams **params);
 8322
 8323    HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
 8324        IDWriteFactory3 *This,
 8325        HMONITOR monitor,
 8326        IDWriteRenderingParams **params);
 8327
 8328    HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
 8329        IDWriteFactory3 *This,
 8330        FLOAT gamma,
 8331        FLOAT enhancedContrast,
 8332        FLOAT cleartype_level,
 8333        DWRITE_PIXEL_GEOMETRY geometry,
 8334        DWRITE_RENDERING_MODE mode,
 8335        IDWriteRenderingParams **params);
 8336
 8337    HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
 8338        IDWriteFactory3 *This,
 8339        IDWriteFontFileLoader *loader);
 8340
 8341    HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
 8342        IDWriteFactory3 *This,
 8343        IDWriteFontFileLoader *loader);
 8344
 8345    HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
 8346        IDWriteFactory3 *This,
 8347        const WCHAR *family_name,
 8348        IDWriteFontCollection *collection,
 8349        DWRITE_FONT_WEIGHT weight,
 8350        DWRITE_FONT_STYLE style,
 8351        DWRITE_FONT_STRETCH stretch,
 8352        FLOAT size,
 8353        const WCHAR *locale,
 8354        IDWriteTextFormat **format);
 8355
 8356    HRESULT (STDMETHODCALLTYPE *CreateTypography)(
 8357        IDWriteFactory3 *This,
 8358        IDWriteTypography **typography);
 8359
 8360    HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
 8361        IDWriteFactory3 *This,
 8362        IDWriteGdiInterop **gdi_interop);
 8363
 8364    HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
 8365        IDWriteFactory3 *This,
 8366        const WCHAR *string,
 8367        UINT32 len,
 8368        IDWriteTextFormat *format,
 8369        FLOAT max_width,
 8370        FLOAT max_height,
 8371        IDWriteTextLayout **layout);
 8372
 8373    HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
 8374        IDWriteFactory3 *This,
 8375        const WCHAR *string,
 8376        UINT32 len,
 8377        IDWriteTextFormat *format,
 8378        FLOAT layout_width,
 8379        FLOAT layout_height,
 8380        FLOAT pixels_per_dip,
 8381        const DWRITE_MATRIX *transform,
 8382        WINBOOL use_gdi_natural,
 8383        IDWriteTextLayout **layout);
 8384
 8385    HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
 8386        IDWriteFactory3 *This,
 8387        IDWriteTextFormat *format,
 8388        IDWriteInlineObject **trimming_sign);
 8389
 8390    HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
 8391        IDWriteFactory3 *This,
 8392        IDWriteTextAnalyzer **analyzer);
 8393
 8394    HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
 8395        IDWriteFactory3 *This,
 8396        DWRITE_NUMBER_SUBSTITUTION_METHOD method,
 8397        const WCHAR *locale,
 8398        WINBOOL ignore_user_override,
 8399        IDWriteNumberSubstitution **substitution);
 8400
 8401    HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
 8402        IDWriteFactory3 *This,
 8403        const DWRITE_GLYPH_RUN *glyph_run,
 8404        FLOAT pixels_per_dip,
 8405        const DWRITE_MATRIX *transform,
 8406        DWRITE_RENDERING_MODE rendering_mode,
 8407        DWRITE_MEASURING_MODE measuring_mode,
 8408        FLOAT baseline_x,
 8409        FLOAT baseline_y,
 8410        IDWriteGlyphRunAnalysis **analysis);
 8411
 8412    /*** IDWriteFactory1 methods ***/
 8413    HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
 8414        IDWriteFactory3 *This,
 8415        IDWriteFontCollection **collection,
 8416        WINBOOL check_for_updates);
 8417
 8418    HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
 8419        IDWriteFactory3 *This,
 8420        FLOAT gamma,
 8421        FLOAT enhcontrast,
 8422        FLOAT enhcontrast_grayscale,
 8423        FLOAT cleartype_level,
 8424        DWRITE_PIXEL_GEOMETRY geometry,
 8425        DWRITE_RENDERING_MODE mode,
 8426        IDWriteRenderingParams1 **params);
 8427
 8428    /*** IDWriteFactory2 methods ***/
 8429    HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
 8430        IDWriteFactory3 *This,
 8431        IDWriteFontFallback **fallback);
 8432
 8433    HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
 8434        IDWriteFactory3 *This,
 8435        IDWriteFontFallbackBuilder **fallbackbuilder);
 8436
 8437    HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
 8438        IDWriteFactory3 *This,
 8439        FLOAT originX,
 8440        FLOAT originY,
 8441        const DWRITE_GLYPH_RUN *run,
 8442        const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
 8443        DWRITE_MEASURING_MODE mode,
 8444        const DWRITE_MATRIX *transform,
 8445        UINT32 palette_index,
 8446        IDWriteColorGlyphRunEnumerator **colorlayers);
 8447
 8448    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
 8449        IDWriteFactory3 *This,
 8450        FLOAT gamma,
 8451        FLOAT contrast,
 8452        FLOAT grayscalecontrast,
 8453        FLOAT cleartypeLevel,
 8454        DWRITE_PIXEL_GEOMETRY pixelGeometry,
 8455        DWRITE_RENDERING_MODE renderingMode,
 8456        DWRITE_GRID_FIT_MODE gridFitMode,
 8457        IDWriteRenderingParams2 **params);
 8458
 8459    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
 8460        IDWriteFactory3 *This,
 8461        const DWRITE_GLYPH_RUN *run,
 8462        const DWRITE_MATRIX *transform,
 8463        DWRITE_RENDERING_MODE renderingMode,
 8464        DWRITE_MEASURING_MODE measuringMode,
 8465        DWRITE_GRID_FIT_MODE gridFitMode,
 8466        DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
 8467        FLOAT originX,
 8468        FLOAT originY,
 8469        IDWriteGlyphRunAnalysis **analysis);
 8470
 8471    /*** IDWriteFactory3 methods ***/
 8472    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
 8473        IDWriteFactory3 *This,
 8474        const DWRITE_GLYPH_RUN *run,
 8475        const DWRITE_MATRIX *transform,
 8476        DWRITE_RENDERING_MODE1 rendering_mode,
 8477        DWRITE_MEASURING_MODE measuring_mode,
 8478        DWRITE_GRID_FIT_MODE gridfit_mode,
 8479        DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
 8480        FLOAT origin_x,
 8481        FLOAT origin_y,
 8482        IDWriteGlyphRunAnalysis **analysis);
 8483
 8484    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
 8485        IDWriteFactory3 *This,
 8486        FLOAT gamma,
 8487        FLOAT enhanced_contrast,
 8488        FLOAT grayscale_enhanced_contrast,
 8489        FLOAT cleartype_level,
 8490        DWRITE_PIXEL_GEOMETRY pixel_geometry,
 8491        DWRITE_RENDERING_MODE1 rendering_mode,
 8492        DWRITE_GRID_FIT_MODE gridfit_mode,
 8493        IDWriteRenderingParams3 **params);
 8494
 8495    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
 8496        IDWriteFactory3 *This,
 8497        IDWriteFontFile *file,
 8498        UINT32 index,
 8499        DWRITE_FONT_SIMULATIONS simulations,
 8500        IDWriteFontFaceReference **reference);
 8501
 8502    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
 8503        IDWriteFactory3 *This,
 8504        const WCHAR *path,
 8505        const FILETIME *writetime,
 8506        UINT32 index,
 8507        DWRITE_FONT_SIMULATIONS simulations,
 8508        IDWriteFontFaceReference **reference);
 8509
 8510    HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
 8511        IDWriteFactory3 *This,
 8512        IDWriteFontSet **fontset);
 8513
 8514    HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
 8515        IDWriteFactory3 *This,
 8516        IDWriteFontSetBuilder **builder);
 8517
 8518    HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
 8519        IDWriteFactory3 *This,
 8520        IDWriteFontSet *fontset,
 8521        IDWriteFontCollection1 **collection);
 8522
 8523    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
 8524        IDWriteFactory3 *This,
 8525        WINBOOL include_downloadable,
 8526        IDWriteFontCollection1 **collection,
 8527        WINBOOL check_for_updates);
 8528
 8529    HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
 8530        IDWriteFactory3 *This,
 8531        IDWriteFontDownloadQueue **queue);
 8532
 8533    END_INTERFACE
 8534} IDWriteFactory3Vtbl;
 8535
 8536interface IDWriteFactory3 {
 8537    CONST_VTBL IDWriteFactory3Vtbl* lpVtbl;
 8538};
 8539
 8540#ifdef COBJMACROS
 8541#ifndef WIDL_C_INLINE_WRAPPERS
 8542/*** IUnknown methods ***/
 8543#define IDWriteFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8544#define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This)
 8545#define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This)
 8546/*** IDWriteFactory methods ***/
 8547#define IDWriteFactory3_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
 8548#define IDWriteFactory3_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
 8549#define IDWriteFactory3_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
 8550#define IDWriteFactory3_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
 8551#define IDWriteFactory3_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
 8552#define IDWriteFactory3_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
 8553#define IDWriteFactory3_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
 8554#define IDWriteFactory3_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
 8555#define IDWriteFactory3_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
 8556#define IDWriteFactory3_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
 8557#define IDWriteFactory3_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
 8558#define IDWriteFactory3_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
 8559#define IDWriteFactory3_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
 8560#define IDWriteFactory3_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
 8561#define IDWriteFactory3_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
 8562#define IDWriteFactory3_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
 8563#define IDWriteFactory3_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
 8564#define IDWriteFactory3_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
 8565/*** IDWriteFactory1 methods ***/
 8566#define IDWriteFactory3_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
 8567/*** IDWriteFactory2 methods ***/
 8568#define IDWriteFactory3_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
 8569#define IDWriteFactory3_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
 8570#define IDWriteFactory3_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers)
 8571/*** IDWriteFactory3 methods ***/
 8572#define IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
 8573#define IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
 8574#define IDWriteFactory3_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
 8575#define IDWriteFactory3_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
 8576#define IDWriteFactory3_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
 8577#define IDWriteFactory3_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder)
 8578#define IDWriteFactory3_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
 8579#define IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
 8580#define IDWriteFactory3_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
 8581#else
 8582/*** IUnknown methods ***/
 8583static inline HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This,REFIID riid,void **ppvObject) {
 8584    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8585}
 8586static inline ULONG IDWriteFactory3_AddRef(IDWriteFactory3* This) {
 8587    return This->lpVtbl->AddRef(This);
 8588}
 8589static inline ULONG IDWriteFactory3_Release(IDWriteFactory3* This) {
 8590    return This->lpVtbl->Release(This);
 8591}
 8592/*** IDWriteFactory methods ***/
 8593static inline HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
 8594    return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
 8595}
 8596static inline HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) {
 8597    return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
 8598}
 8599static inline HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) {
 8600    return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
 8601}
 8602static inline HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
 8603    return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
 8604}
 8605static inline HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
 8606    return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
 8607}
 8608static inline HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
 8609    return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
 8610}
 8611static inline HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This,IDWriteRenderingParams **params) {
 8612    return This->lpVtbl->CreateRenderingParams(This,params);
 8613}
 8614static inline HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This,HMONITOR monitor,IDWriteRenderingParams **params) {
 8615    return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
 8616}
 8617static inline HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) {
 8618    return This->lpVtbl->RegisterFontFileLoader(This,loader);
 8619}
 8620static inline HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) {
 8621    return This->lpVtbl->UnregisterFontFileLoader(This,loader);
 8622}
 8623static inline HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
 8624    return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
 8625}
 8626static inline HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This,IDWriteTypography **typography) {
 8627    return This->lpVtbl->CreateTypography(This,typography);
 8628}
 8629static inline HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This,IDWriteGdiInterop **gdi_interop) {
 8630    return This->lpVtbl->GetGdiInterop(This,gdi_interop);
 8631}
 8632static inline HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
 8633    return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
 8634}
 8635static inline HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
 8636    return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
 8637}
 8638static inline HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
 8639    return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
 8640}
 8641static inline HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This,IDWriteTextAnalyzer **analyzer) {
 8642    return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
 8643}
 8644static inline HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
 8645    return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
 8646}
 8647/*** IDWriteFactory1 methods ***/
 8648static inline HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
 8649    return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
 8650}
 8651/*** IDWriteFactory2 methods ***/
 8652static inline HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This,IDWriteFontFallback **fallback) {
 8653    return This->lpVtbl->GetSystemFontFallback(This,fallback);
 8654}
 8655static inline HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
 8656    return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
 8657}
 8658static inline HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) {
 8659    return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers);
 8660}
 8661/*** IDWriteFactory3 methods ***/
 8662static inline HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
 8663    return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
 8664}
 8665static inline HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
 8666    return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
 8667}
 8668static inline HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
 8669    return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
 8670}
 8671static inline HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
 8672    return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
 8673}
 8674static inline HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This,IDWriteFontSet **fontset) {
 8675    return This->lpVtbl->GetSystemFontSet(This,fontset);
 8676}
 8677static inline HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This,IDWriteFontSetBuilder **builder) {
 8678    return This->lpVtbl->CreateFontSetBuilder(This,builder);
 8679}
 8680static inline HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
 8681    return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
 8682}
 8683static inline HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
 8684    return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
 8685}
 8686static inline HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This,IDWriteFontDownloadQueue **queue) {
 8687    return This->lpVtbl->GetFontDownloadQueue(This,queue);
 8688}
 8689#endif
 8690#endif
 8691
 8692#endif
 8693
 8694
 8695#endif  /* __IDWriteFactory3_INTERFACE_DEFINED__ */
 8696
 8697typedef struct DWRITE_GLYPH_IMAGE_DATA {
 8698    const void *imageData;
 8699    UINT32 imageDataSize;
 8700    UINT32 uniqueDataId;
 8701    UINT32 pixelsPerEm;
 8702    D2D1_SIZE_U pixelSize;
 8703    D2D1_POINT_2L horizontalLeftOrigin;
 8704    D2D1_POINT_2L horizontalRightOrigin;
 8705    D2D1_POINT_2L verticalTopOrigin;
 8706    D2D1_POINT_2L verticalBottomOrigin;
 8707} DWRITE_GLYPH_IMAGE_DATA;
 8708/*****************************************************************************
 8709 * IDWriteFontFace4 interface
 8710 */
 8711#ifndef __IDWriteFontFace4_INTERFACE_DEFINED__
 8712#define __IDWriteFontFace4_INTERFACE_DEFINED__
 8713
 8714DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f);
 8715#if defined(__cplusplus) && !defined(CINTERFACE)
 8716MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f")
 8717IDWriteFontFace4 : public IDWriteFontFace3
 8718{
 8719    virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_(
 8720        UINT16 glyph,
 8721        UINT32 ppem_first,
 8722        UINT32 ppem_last,
 8723        DWRITE_GLYPH_IMAGE_FORMATS *formats) = 0;
 8724
 8725    virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats(
 8726        ) = 0;
 8727
 8728    virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData(
 8729        UINT16 glyph,
 8730        UINT32 ppem,
 8731        DWRITE_GLYPH_IMAGE_FORMATS format,
 8732        DWRITE_GLYPH_IMAGE_DATA *data,
 8733        void **context) = 0;
 8734
 8735    virtual void STDMETHODCALLTYPE ReleaseGlyphImageData(
 8736        void *context) = 0;
 8737
 8738};
 8739#ifdef __CRT_UUID_DECL
 8740__CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f)
 8741#endif
 8742#else
 8743typedef struct IDWriteFontFace4Vtbl {
 8744    BEGIN_INTERFACE
 8745
 8746    /*** IUnknown methods ***/
 8747    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8748        IDWriteFontFace4 *This,
 8749        REFIID riid,
 8750        void **ppvObject);
 8751
 8752    ULONG (STDMETHODCALLTYPE *AddRef)(
 8753        IDWriteFontFace4 *This);
 8754
 8755    ULONG (STDMETHODCALLTYPE *Release)(
 8756        IDWriteFontFace4 *This);
 8757
 8758    /*** IDWriteFontFace methods ***/
 8759    DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
 8760        IDWriteFontFace4 *This);
 8761
 8762    HRESULT (STDMETHODCALLTYPE *GetFiles)(
 8763        IDWriteFontFace4 *This,
 8764        UINT32 *number_of_files,
 8765        IDWriteFontFile **fontfiles);
 8766
 8767    UINT32 (STDMETHODCALLTYPE *GetIndex)(
 8768        IDWriteFontFace4 *This);
 8769
 8770    DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
 8771        IDWriteFontFace4 *This);
 8772
 8773    WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
 8774        IDWriteFontFace4 *This);
 8775
 8776    void (STDMETHODCALLTYPE *GetMetrics)(
 8777        IDWriteFontFace4 *This,
 8778        DWRITE_FONT_METRICS *metrics);
 8779
 8780    UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
 8781        IDWriteFontFace4 *This);
 8782
 8783    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
 8784        IDWriteFontFace4 *This,
 8785        const UINT16 *glyph_indices,
 8786        UINT32 glyph_count,
 8787        DWRITE_GLYPH_METRICS *metrics,
 8788        WINBOOL is_sideways);
 8789
 8790    HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
 8791        IDWriteFontFace4 *This,
 8792        const UINT32 *codepoints,
 8793        UINT32 count,
 8794        UINT16 *glyph_indices);
 8795
 8796    HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
 8797        IDWriteFontFace4 *This,
 8798        UINT32 table_tag,
 8799        const void **table_data,
 8800        UINT32 *table_size,
 8801        void **context,
 8802        WINBOOL *exists);
 8803
 8804    void (STDMETHODCALLTYPE *ReleaseFontTable)(
 8805        IDWriteFontFace4 *This,
 8806        void *table_context);
 8807
 8808    HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
 8809        IDWriteFontFace4 *This,
 8810        FLOAT emSize,
 8811        const UINT16 *glyph_indices,
 8812        const FLOAT *glyph_advances,
 8813        const DWRITE_GLYPH_OFFSET *glyph_offsets,
 8814        UINT32 glyph_count,
 8815        WINBOOL is_sideways,
 8816        WINBOOL is_rtl,
 8817        IDWriteGeometrySink *geometrysink);
 8818
 8819    HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
 8820        IDWriteFontFace4 *This,
 8821        FLOAT emSize,
 8822        FLOAT pixels_per_dip,
 8823        DWRITE_MEASURING_MODE mode,
 8824        IDWriteRenderingParams *params,
 8825        DWRITE_RENDERING_MODE *rendering_mode);
 8826
 8827    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
 8828        IDWriteFontFace4 *This,
 8829        FLOAT emSize,
 8830        FLOAT pixels_per_dip,
 8831        const DWRITE_MATRIX *transform,
 8832        DWRITE_FONT_METRICS *metrics);
 8833
 8834    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
 8835        IDWriteFontFace4 *This,
 8836        FLOAT emSize,
 8837        FLOAT pixels_per_dip,
 8838        const DWRITE_MATRIX *transform,
 8839        WINBOOL use_gdi_natural,
 8840        const UINT16 *glyph_indices,
 8841        UINT32 glyph_count,
 8842        DWRITE_GLYPH_METRICS *metrics,
 8843        WINBOOL is_sideways);
 8844
 8845    /*** IDWriteFontFace1 methods ***/
 8846    void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
 8847        IDWriteFontFace4 *This,
 8848        DWRITE_FONT_METRICS1 *metrics);
 8849
 8850    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
 8851        IDWriteFontFace4 *This,
 8852        FLOAT em_size,
 8853        FLOAT pixels_per_dip,
 8854        const DWRITE_MATRIX *transform,
 8855        DWRITE_FONT_METRICS1 *metrics);
 8856
 8857    void (STDMETHODCALLTYPE *GetCaretMetrics)(
 8858        IDWriteFontFace4 *This,
 8859        DWRITE_CARET_METRICS *metrics);
 8860
 8861    HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
 8862        IDWriteFontFace4 *This,
 8863        UINT32 max_count,
 8864        DWRITE_UNICODE_RANGE *ranges,
 8865        UINT32 *count);
 8866
 8867    WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
 8868        IDWriteFontFace4 *This);
 8869
 8870    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
 8871        IDWriteFontFace4 *This,
 8872        UINT32 glyph_count,
 8873        const UINT16 *indices,
 8874        INT32 *advances,
 8875        WINBOOL is_sideways);
 8876
 8877    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
 8878        IDWriteFontFace4 *This,
 8879        FLOAT em_size,
 8880        FLOAT pixels_per_dip,
 8881        const DWRITE_MATRIX *transform,
 8882        WINBOOL use_gdi_natural,
 8883        WINBOOL is_sideways,
 8884        UINT32 glyph_count,
 8885        const UINT16 *indices,
 8886        INT32 *advances);
 8887
 8888    HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
 8889        IDWriteFontFace4 *This,
 8890        UINT32 glyph_count,
 8891        const UINT16 *indices,
 8892        INT32 *adjustments);
 8893
 8894    WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
 8895        IDWriteFontFace4 *This);
 8896
 8897    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
 8898        IDWriteFontFace4 *This,
 8899        FLOAT font_emsize,
 8900        FLOAT dpiX,
 8901        FLOAT dpiY,
 8902        const DWRITE_MATRIX *transform,
 8903        WINBOOL is_sideways,
 8904        DWRITE_OUTLINE_THRESHOLD threshold,
 8905        DWRITE_MEASURING_MODE measuring_mode,
 8906        DWRITE_RENDERING_MODE *rendering_mode);
 8907
 8908    HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
 8909        IDWriteFontFace4 *This,
 8910        UINT32 glyph_count,
 8911        const UINT16 *nominal_indices,
 8912        UINT16 *vertical_indices);
 8913
 8914    WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
 8915        IDWriteFontFace4 *This);
 8916
 8917    /*** IDWriteFontFace2 methods ***/
 8918    WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
 8919        IDWriteFontFace4 *This);
 8920
 8921    UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
 8922        IDWriteFontFace4 *This);
 8923
 8924    UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
 8925        IDWriteFontFace4 *This);
 8926
 8927    HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
 8928        IDWriteFontFace4 *This,
 8929        UINT32 palette_index,
 8930        UINT32 first_entry_index,
 8931        UINT32 entry_count,
 8932        DWRITE_COLOR_F *entries);
 8933
 8934    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
 8935        IDWriteFontFace4 *This,
 8936        FLOAT fontEmSize,
 8937        FLOAT dpiX,
 8938        FLOAT dpiY,
 8939        const DWRITE_MATRIX *transform,
 8940        WINBOOL is_sideways,
 8941        DWRITE_OUTLINE_THRESHOLD threshold,
 8942        DWRITE_MEASURING_MODE measuringmode,
 8943        IDWriteRenderingParams *params,
 8944        DWRITE_RENDERING_MODE *renderingmode,
 8945        DWRITE_GRID_FIT_MODE *gridfitmode);
 8946
 8947    /*** IDWriteFontFace3 methods ***/
 8948    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 8949        IDWriteFontFace4 *This,
 8950        IDWriteFontFaceReference **reference);
 8951
 8952    void (STDMETHODCALLTYPE *GetPanose)(
 8953        IDWriteFontFace4 *This,
 8954        DWRITE_PANOSE *panose);
 8955
 8956    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
 8957        IDWriteFontFace4 *This);
 8958
 8959    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
 8960        IDWriteFontFace4 *This);
 8961
 8962    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
 8963        IDWriteFontFace4 *This);
 8964
 8965    HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
 8966        IDWriteFontFace4 *This,
 8967        IDWriteLocalizedStrings **names);
 8968
 8969    HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
 8970        IDWriteFontFace4 *This,
 8971        IDWriteLocalizedStrings **names);
 8972
 8973    HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
 8974        IDWriteFontFace4 *This,
 8975        DWRITE_INFORMATIONAL_STRING_ID stringid,
 8976        IDWriteLocalizedStrings **strings,
 8977        WINBOOL *exists);
 8978
 8979    WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
 8980        IDWriteFontFace4 *This,
 8981        UINT32 character);
 8982
 8983    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
 8984        IDWriteFontFace4 *This,
 8985        FLOAT emsize,
 8986        FLOAT dpi_x,
 8987        FLOAT dpi_y,
 8988        const DWRITE_MATRIX *transform,
 8989        WINBOOL is_sideways,
 8990        DWRITE_OUTLINE_THRESHOLD threshold,
 8991        DWRITE_MEASURING_MODE measuring_mode,
 8992        IDWriteRenderingParams *params,
 8993        DWRITE_RENDERING_MODE1 *rendering_mode,
 8994        DWRITE_GRID_FIT_MODE *gridfit_mode);
 8995
 8996    WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
 8997        IDWriteFontFace4 *This,
 8998        UINT32 character);
 8999
 9000    WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
 9001        IDWriteFontFace4 *This,
 9002        UINT16 glyph);
 9003
 9004    HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
 9005        IDWriteFontFace4 *This,
 9006        const WCHAR *characters,
 9007        UINT32 count,
 9008        WINBOOL enqueue_if_not,
 9009        WINBOOL *are_local);
 9010
 9011    HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
 9012        IDWriteFontFace4 *This,
 9013        const UINT16 *glyphs,
 9014        UINT32 count,
 9015        WINBOOL enqueue_if_not,
 9016        WINBOOL *are_local);
 9017
 9018    /*** IDWriteFontFace4 methods ***/
 9019    HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
 9020        IDWriteFontFace4 *This,
 9021        UINT16 glyph,
 9022        UINT32 ppem_first,
 9023        UINT32 ppem_last,
 9024        DWRITE_GLYPH_IMAGE_FORMATS *formats);
 9025
 9026    DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
 9027        IDWriteFontFace4 *This);
 9028
 9029    HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
 9030        IDWriteFontFace4 *This,
 9031        UINT16 glyph,
 9032        UINT32 ppem,
 9033        DWRITE_GLYPH_IMAGE_FORMATS format,
 9034        DWRITE_GLYPH_IMAGE_DATA *data,
 9035        void **context);
 9036
 9037    void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
 9038        IDWriteFontFace4 *This,
 9039        void *context);
 9040
 9041    END_INTERFACE
 9042} IDWriteFontFace4Vtbl;
 9043
 9044interface IDWriteFontFace4 {
 9045    CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl;
 9046};
 9047
 9048#ifdef COBJMACROS
 9049#ifndef WIDL_C_INLINE_WRAPPERS
 9050/*** IUnknown methods ***/
 9051#define IDWriteFontFace4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9052#define IDWriteFontFace4_AddRef(This) (This)->lpVtbl->AddRef(This)
 9053#define IDWriteFontFace4_Release(This) (This)->lpVtbl->Release(This)
 9054/*** IDWriteFontFace methods ***/
 9055#define IDWriteFontFace4_GetType(This) (This)->lpVtbl->GetType(This)
 9056#define IDWriteFontFace4_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
 9057#define IDWriteFontFace4_GetIndex(This) (This)->lpVtbl->GetIndex(This)
 9058#define IDWriteFontFace4_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
 9059#define IDWriteFontFace4_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
 9060#define IDWriteFontFace4_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
 9061#define IDWriteFontFace4_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
 9062#define IDWriteFontFace4_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
 9063#define IDWriteFontFace4_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
 9064#define IDWriteFontFace4_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
 9065#define IDWriteFontFace4_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
 9066#define IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
 9067/*** IDWriteFontFace1 methods ***/
 9068#define IDWriteFontFace4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
 9069#define IDWriteFontFace4_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
 9070#define IDWriteFontFace4_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
 9071#define IDWriteFontFace4_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
 9072#define IDWriteFontFace4_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
 9073#define IDWriteFontFace4_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
 9074#define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
 9075#define IDWriteFontFace4_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
 9076#define IDWriteFontFace4_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
 9077#define IDWriteFontFace4_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
 9078#define IDWriteFontFace4_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
 9079/*** IDWriteFontFace2 methods ***/
 9080#define IDWriteFontFace4_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
 9081#define IDWriteFontFace4_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
 9082#define IDWriteFontFace4_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
 9083#define IDWriteFontFace4_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
 9084/*** IDWriteFontFace3 methods ***/
 9085#define IDWriteFontFace4_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
 9086#define IDWriteFontFace4_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
 9087#define IDWriteFontFace4_GetWeight(This) (This)->lpVtbl->GetWeight(This)
 9088#define IDWriteFontFace4_GetStretch(This) (This)->lpVtbl->GetStretch(This)
 9089#define IDWriteFontFace4_GetStyle(This) (This)->lpVtbl->GetStyle(This)
 9090#define IDWriteFontFace4_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
 9091#define IDWriteFontFace4_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
 9092#define IDWriteFontFace4_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
 9093#define IDWriteFontFace4_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
 9094#define IDWriteFontFace4_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
 9095#define IDWriteFontFace4_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
 9096#define IDWriteFontFace4_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
 9097#define IDWriteFontFace4_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
 9098#define IDWriteFontFace4_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
 9099/*** IDWriteFontFace4 methods ***/
 9100#define IDWriteFontFace4_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
 9101#define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
 9102#define IDWriteFontFace4_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
 9103#define IDWriteFontFace4_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
 9104#else
 9105/*** IUnknown methods ***/
 9106static inline HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This,REFIID riid,void **ppvObject) {
 9107    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9108}
 9109static inline ULONG IDWriteFontFace4_AddRef(IDWriteFontFace4* This) {
 9110    return This->lpVtbl->AddRef(This);
 9111}
 9112static inline ULONG IDWriteFontFace4_Release(IDWriteFontFace4* This) {
 9113    return This->lpVtbl->Release(This);
 9114}
 9115/*** IDWriteFontFace methods ***/
 9116static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace4_GetType(IDWriteFontFace4* This) {
 9117    return This->lpVtbl->GetType(This);
 9118}
 9119static inline HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
 9120    return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
 9121}
 9122static inline UINT32 IDWriteFontFace4_GetIndex(IDWriteFontFace4* This) {
 9123    return This->lpVtbl->GetIndex(This);
 9124}
 9125static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace4_GetSimulations(IDWriteFontFace4* This) {
 9126    return This->lpVtbl->GetSimulations(This);
 9127}
 9128static inline WINBOOL IDWriteFontFace4_IsSymbolFont(IDWriteFontFace4* This) {
 9129    return This->lpVtbl->IsSymbolFont(This);
 9130}
 9131static inline UINT16 IDWriteFontFace4_GetGlyphCount(IDWriteFontFace4* This) {
 9132    return This->lpVtbl->GetGlyphCount(This);
 9133}
 9134static inline HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
 9135    return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
 9136}
 9137static inline HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
 9138    return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
 9139}
 9140static inline HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
 9141    return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
 9142}
 9143static inline void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This,void *table_context) {
 9144    This->lpVtbl->ReleaseFontTable(This,table_context);
 9145}
 9146static inline HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
 9147    return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
 9148}
 9149static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
 9150    return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
 9151}
 9152/*** IDWriteFontFace1 methods ***/
 9153static inline void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This,DWRITE_FONT_METRICS1 *metrics) {
 9154    This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
 9155}
 9156static inline HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
 9157    return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
 9158}
 9159static inline void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This,DWRITE_CARET_METRICS *metrics) {
 9160    This->lpVtbl->GetCaretMetrics(This,metrics);
 9161}
 9162static inline HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
 9163    return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
 9164}
 9165static inline WINBOOL IDWriteFontFace4_IsMonospacedFont(IDWriteFontFace4* This) {
 9166    return This->lpVtbl->IsMonospacedFont(This);
 9167}
 9168static inline HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
 9169    return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
 9170}
 9171static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
 9172    return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
 9173}
 9174static inline HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
 9175    return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
 9176}
 9177static inline WINBOOL IDWriteFontFace4_HasKerningPairs(IDWriteFontFace4* This) {
 9178    return This->lpVtbl->HasKerningPairs(This);
 9179}
 9180static inline HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
 9181    return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
 9182}
 9183static inline WINBOOL IDWriteFontFace4_HasVerticalGlyphVariants(IDWriteFontFace4* This) {
 9184    return This->lpVtbl->HasVerticalGlyphVariants(This);
 9185}
 9186/*** IDWriteFontFace2 methods ***/
 9187static inline WINBOOL IDWriteFontFace4_IsColorFont(IDWriteFontFace4* This) {
 9188    return This->lpVtbl->IsColorFont(This);
 9189}
 9190static inline UINT32 IDWriteFontFace4_GetColorPaletteCount(IDWriteFontFace4* This) {
 9191    return This->lpVtbl->GetColorPaletteCount(This);
 9192}
 9193static inline UINT32 IDWriteFontFace4_GetPaletteEntryCount(IDWriteFontFace4* This) {
 9194    return This->lpVtbl->GetPaletteEntryCount(This);
 9195}
 9196static inline HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
 9197    return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
 9198}
 9199/*** IDWriteFontFace3 methods ***/
 9200static inline HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This,IDWriteFontFaceReference **reference) {
 9201    return This->lpVtbl->GetFontFaceReference(This,reference);
 9202}
 9203static inline void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This,DWRITE_PANOSE *panose) {
 9204    This->lpVtbl->GetPanose(This,panose);
 9205}
 9206static inline DWRITE_FONT_WEIGHT IDWriteFontFace4_GetWeight(IDWriteFontFace4* This) {
 9207    return This->lpVtbl->GetWeight(This);
 9208}
 9209static inline DWRITE_FONT_STRETCH IDWriteFontFace4_GetStretch(IDWriteFontFace4* This) {
 9210    return This->lpVtbl->GetStretch(This);
 9211}
 9212static inline DWRITE_FONT_STYLE IDWriteFontFace4_GetStyle(IDWriteFontFace4* This) {
 9213    return This->lpVtbl->GetStyle(This);
 9214}
 9215static inline HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) {
 9216    return This->lpVtbl->GetFamilyNames(This,names);
 9217}
 9218static inline HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) {
 9219    return This->lpVtbl->GetFaceNames(This,names);
 9220}
 9221static inline HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
 9222    return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
 9223}
 9224static inline WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This,UINT32 character) {
 9225    return This->lpVtbl->HasCharacter(This,character);
 9226}
 9227static inline HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
 9228    return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
 9229}
 9230static inline WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This,UINT32 character) {
 9231    return This->lpVtbl->IsCharacterLocal(This,character);
 9232}
 9233static inline WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This,UINT16 glyph) {
 9234    return This->lpVtbl->IsGlyphLocal(This,glyph);
 9235}
 9236static inline HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
 9237    return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
 9238}
 9239static inline HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
 9240    return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
 9241}
 9242/*** IDWriteFontFace4 methods ***/
 9243static inline HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
 9244    return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
 9245}
 9246static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) {
 9247    return This->lpVtbl->GetGlyphImageFormats(This);
 9248}
 9249static inline HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
 9250    return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
 9251}
 9252static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This,void *context) {
 9253    This->lpVtbl->ReleaseGlyphImageData(This,context);
 9254}
 9255#endif
 9256#endif
 9257
 9258#endif
 9259
 9260
 9261#endif  /* __IDWriteFontFace4_INTERFACE_DEFINED__ */
 9262
 9263/*****************************************************************************
 9264 * IDWriteFontFace5 interface
 9265 */
 9266#ifndef __IDWriteFontFace5_INTERFACE_DEFINED__
 9267#define __IDWriteFontFace5_INTERFACE_DEFINED__
 9268
 9269DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29);
 9270#if defined(__cplusplus) && !defined(CINTERFACE)
 9271MIDL_INTERFACE("98eff3a5-b667-479a-b145-e2fa5b9fdc29")
 9272IDWriteFontFace5 : public IDWriteFontFace4
 9273{
 9274    virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount(
 9275        ) = 0;
 9276
 9277    virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
 9278        DWRITE_FONT_AXIS_VALUE *values,
 9279        UINT32 value_count) = 0;
 9280
 9281    virtual WINBOOL STDMETHODCALLTYPE HasVariations(
 9282        ) = 0;
 9283
 9284    virtual HRESULT STDMETHODCALLTYPE GetFontResource(
 9285        IDWriteFontResource **resource) = 0;
 9286
 9287    virtual WINBOOL STDMETHODCALLTYPE Equals(
 9288        IDWriteFontFace *fontface) = 0;
 9289
 9290};
 9291#ifdef __CRT_UUID_DECL
 9292__CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29)
 9293#endif
 9294#else
 9295typedef struct IDWriteFontFace5Vtbl {
 9296    BEGIN_INTERFACE
 9297
 9298    /*** IUnknown methods ***/
 9299    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9300        IDWriteFontFace5 *This,
 9301        REFIID riid,
 9302        void **ppvObject);
 9303
 9304    ULONG (STDMETHODCALLTYPE *AddRef)(
 9305        IDWriteFontFace5 *This);
 9306
 9307    ULONG (STDMETHODCALLTYPE *Release)(
 9308        IDWriteFontFace5 *This);
 9309
 9310    /*** IDWriteFontFace methods ***/
 9311    DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
 9312        IDWriteFontFace5 *This);
 9313
 9314    HRESULT (STDMETHODCALLTYPE *GetFiles)(
 9315        IDWriteFontFace5 *This,
 9316        UINT32 *number_of_files,
 9317        IDWriteFontFile **fontfiles);
 9318
 9319    UINT32 (STDMETHODCALLTYPE *GetIndex)(
 9320        IDWriteFontFace5 *This);
 9321
 9322    DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
 9323        IDWriteFontFace5 *This);
 9324
 9325    WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
 9326        IDWriteFontFace5 *This);
 9327
 9328    void (STDMETHODCALLTYPE *GetMetrics)(
 9329        IDWriteFontFace5 *This,
 9330        DWRITE_FONT_METRICS *metrics);
 9331
 9332    UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
 9333        IDWriteFontFace5 *This);
 9334
 9335    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
 9336        IDWriteFontFace5 *This,
 9337        const UINT16 *glyph_indices,
 9338        UINT32 glyph_count,
 9339        DWRITE_GLYPH_METRICS *metrics,
 9340        WINBOOL is_sideways);
 9341
 9342    HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
 9343        IDWriteFontFace5 *This,
 9344        const UINT32 *codepoints,
 9345        UINT32 count,
 9346        UINT16 *glyph_indices);
 9347
 9348    HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
 9349        IDWriteFontFace5 *This,
 9350        UINT32 table_tag,
 9351        const void **table_data,
 9352        UINT32 *table_size,
 9353        void **context,
 9354        WINBOOL *exists);
 9355
 9356    void (STDMETHODCALLTYPE *ReleaseFontTable)(
 9357        IDWriteFontFace5 *This,
 9358        void *table_context);
 9359
 9360    HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
 9361        IDWriteFontFace5 *This,
 9362        FLOAT emSize,
 9363        const UINT16 *glyph_indices,
 9364        const FLOAT *glyph_advances,
 9365        const DWRITE_GLYPH_OFFSET *glyph_offsets,
 9366        UINT32 glyph_count,
 9367        WINBOOL is_sideways,
 9368        WINBOOL is_rtl,
 9369        IDWriteGeometrySink *geometrysink);
 9370
 9371    HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
 9372        IDWriteFontFace5 *This,
 9373        FLOAT emSize,
 9374        FLOAT pixels_per_dip,
 9375        DWRITE_MEASURING_MODE mode,
 9376        IDWriteRenderingParams *params,
 9377        DWRITE_RENDERING_MODE *rendering_mode);
 9378
 9379    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
 9380        IDWriteFontFace5 *This,
 9381        FLOAT emSize,
 9382        FLOAT pixels_per_dip,
 9383        const DWRITE_MATRIX *transform,
 9384        DWRITE_FONT_METRICS *metrics);
 9385
 9386    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
 9387        IDWriteFontFace5 *This,
 9388        FLOAT emSize,
 9389        FLOAT pixels_per_dip,
 9390        const DWRITE_MATRIX *transform,
 9391        WINBOOL use_gdi_natural,
 9392        const UINT16 *glyph_indices,
 9393        UINT32 glyph_count,
 9394        DWRITE_GLYPH_METRICS *metrics,
 9395        WINBOOL is_sideways);
 9396
 9397    /*** IDWriteFontFace1 methods ***/
 9398    void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
 9399        IDWriteFontFace5 *This,
 9400        DWRITE_FONT_METRICS1 *metrics);
 9401
 9402    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
 9403        IDWriteFontFace5 *This,
 9404        FLOAT em_size,
 9405        FLOAT pixels_per_dip,
 9406        const DWRITE_MATRIX *transform,
 9407        DWRITE_FONT_METRICS1 *metrics);
 9408
 9409    void (STDMETHODCALLTYPE *GetCaretMetrics)(
 9410        IDWriteFontFace5 *This,
 9411        DWRITE_CARET_METRICS *metrics);
 9412
 9413    HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
 9414        IDWriteFontFace5 *This,
 9415        UINT32 max_count,
 9416        DWRITE_UNICODE_RANGE *ranges,
 9417        UINT32 *count);
 9418
 9419    WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
 9420        IDWriteFontFace5 *This);
 9421
 9422    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
 9423        IDWriteFontFace5 *This,
 9424        UINT32 glyph_count,
 9425        const UINT16 *indices,
 9426        INT32 *advances,
 9427        WINBOOL is_sideways);
 9428
 9429    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
 9430        IDWriteFontFace5 *This,
 9431        FLOAT em_size,
 9432        FLOAT pixels_per_dip,
 9433        const DWRITE_MATRIX *transform,
 9434        WINBOOL use_gdi_natural,
 9435        WINBOOL is_sideways,
 9436        UINT32 glyph_count,
 9437        const UINT16 *indices,
 9438        INT32 *advances);
 9439
 9440    HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
 9441        IDWriteFontFace5 *This,
 9442        UINT32 glyph_count,
 9443        const UINT16 *indices,
 9444        INT32 *adjustments);
 9445
 9446    WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
 9447        IDWriteFontFace5 *This);
 9448
 9449    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
 9450        IDWriteFontFace5 *This,
 9451        FLOAT font_emsize,
 9452        FLOAT dpiX,
 9453        FLOAT dpiY,
 9454        const DWRITE_MATRIX *transform,
 9455        WINBOOL is_sideways,
 9456        DWRITE_OUTLINE_THRESHOLD threshold,
 9457        DWRITE_MEASURING_MODE measuring_mode,
 9458        DWRITE_RENDERING_MODE *rendering_mode);
 9459
 9460    HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
 9461        IDWriteFontFace5 *This,
 9462        UINT32 glyph_count,
 9463        const UINT16 *nominal_indices,
 9464        UINT16 *vertical_indices);
 9465
 9466    WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
 9467        IDWriteFontFace5 *This);
 9468
 9469    /*** IDWriteFontFace2 methods ***/
 9470    WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
 9471        IDWriteFontFace5 *This);
 9472
 9473    UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
 9474        IDWriteFontFace5 *This);
 9475
 9476    UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
 9477        IDWriteFontFace5 *This);
 9478
 9479    HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
 9480        IDWriteFontFace5 *This,
 9481        UINT32 palette_index,
 9482        UINT32 first_entry_index,
 9483        UINT32 entry_count,
 9484        DWRITE_COLOR_F *entries);
 9485
 9486    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
 9487        IDWriteFontFace5 *This,
 9488        FLOAT fontEmSize,
 9489        FLOAT dpiX,
 9490        FLOAT dpiY,
 9491        const DWRITE_MATRIX *transform,
 9492        WINBOOL is_sideways,
 9493        DWRITE_OUTLINE_THRESHOLD threshold,
 9494        DWRITE_MEASURING_MODE measuringmode,
 9495        IDWriteRenderingParams *params,
 9496        DWRITE_RENDERING_MODE *renderingmode,
 9497        DWRITE_GRID_FIT_MODE *gridfitmode);
 9498
 9499    /*** IDWriteFontFace3 methods ***/
 9500    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
 9501        IDWriteFontFace5 *This,
 9502        IDWriteFontFaceReference **reference);
 9503
 9504    void (STDMETHODCALLTYPE *GetPanose)(
 9505        IDWriteFontFace5 *This,
 9506        DWRITE_PANOSE *panose);
 9507
 9508    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
 9509        IDWriteFontFace5 *This);
 9510
 9511    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
 9512        IDWriteFontFace5 *This);
 9513
 9514    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
 9515        IDWriteFontFace5 *This);
 9516
 9517    HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
 9518        IDWriteFontFace5 *This,
 9519        IDWriteLocalizedStrings **names);
 9520
 9521    HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
 9522        IDWriteFontFace5 *This,
 9523        IDWriteLocalizedStrings **names);
 9524
 9525    HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
 9526        IDWriteFontFace5 *This,
 9527        DWRITE_INFORMATIONAL_STRING_ID stringid,
 9528        IDWriteLocalizedStrings **strings,
 9529        WINBOOL *exists);
 9530
 9531    WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
 9532        IDWriteFontFace5 *This,
 9533        UINT32 character);
 9534
 9535    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
 9536        IDWriteFontFace5 *This,
 9537        FLOAT emsize,
 9538        FLOAT dpi_x,
 9539        FLOAT dpi_y,
 9540        const DWRITE_MATRIX *transform,
 9541        WINBOOL is_sideways,
 9542        DWRITE_OUTLINE_THRESHOLD threshold,
 9543        DWRITE_MEASURING_MODE measuring_mode,
 9544        IDWriteRenderingParams *params,
 9545        DWRITE_RENDERING_MODE1 *rendering_mode,
 9546        DWRITE_GRID_FIT_MODE *gridfit_mode);
 9547
 9548    WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
 9549        IDWriteFontFace5 *This,
 9550        UINT32 character);
 9551
 9552    WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
 9553        IDWriteFontFace5 *This,
 9554        UINT16 glyph);
 9555
 9556    HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
 9557        IDWriteFontFace5 *This,
 9558        const WCHAR *characters,
 9559        UINT32 count,
 9560        WINBOOL enqueue_if_not,
 9561        WINBOOL *are_local);
 9562
 9563    HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
 9564        IDWriteFontFace5 *This,
 9565        const UINT16 *glyphs,
 9566        UINT32 count,
 9567        WINBOOL enqueue_if_not,
 9568        WINBOOL *are_local);
 9569
 9570    /*** IDWriteFontFace4 methods ***/
 9571    HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
 9572        IDWriteFontFace5 *This,
 9573        UINT16 glyph,
 9574        UINT32 ppem_first,
 9575        UINT32 ppem_last,
 9576        DWRITE_GLYPH_IMAGE_FORMATS *formats);
 9577
 9578    DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
 9579        IDWriteFontFace5 *This);
 9580
 9581    HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
 9582        IDWriteFontFace5 *This,
 9583        UINT16 glyph,
 9584        UINT32 ppem,
 9585        DWRITE_GLYPH_IMAGE_FORMATS format,
 9586        DWRITE_GLYPH_IMAGE_DATA *data,
 9587        void **context);
 9588
 9589    void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
 9590        IDWriteFontFace5 *This,
 9591        void *context);
 9592
 9593    /*** IDWriteFontFace5 methods ***/
 9594    UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
 9595        IDWriteFontFace5 *This);
 9596
 9597    HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
 9598        IDWriteFontFace5 *This,
 9599        DWRITE_FONT_AXIS_VALUE *values,
 9600        UINT32 value_count);
 9601
 9602    WINBOOL (STDMETHODCALLTYPE *HasVariations)(
 9603        IDWriteFontFace5 *This);
 9604
 9605    HRESULT (STDMETHODCALLTYPE *GetFontResource)(
 9606        IDWriteFontFace5 *This,
 9607        IDWriteFontResource **resource);
 9608
 9609    WINBOOL (STDMETHODCALLTYPE *Equals)(
 9610        IDWriteFontFace5 *This,
 9611        IDWriteFontFace *fontface);
 9612
 9613    END_INTERFACE
 9614} IDWriteFontFace5Vtbl;
 9615
 9616interface IDWriteFontFace5 {
 9617    CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl;
 9618};
 9619
 9620#ifdef COBJMACROS
 9621#ifndef WIDL_C_INLINE_WRAPPERS
 9622/*** IUnknown methods ***/
 9623#define IDWriteFontFace5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9624#define IDWriteFontFace5_AddRef(This) (This)->lpVtbl->AddRef(This)
 9625#define IDWriteFontFace5_Release(This) (This)->lpVtbl->Release(This)
 9626/*** IDWriteFontFace methods ***/
 9627#define IDWriteFontFace5_GetType(This) (This)->lpVtbl->GetType(This)
 9628#define IDWriteFontFace5_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
 9629#define IDWriteFontFace5_GetIndex(This) (This)->lpVtbl->GetIndex(This)
 9630#define IDWriteFontFace5_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
 9631#define IDWriteFontFace5_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
 9632#define IDWriteFontFace5_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
 9633#define IDWriteFontFace5_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
 9634#define IDWriteFontFace5_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
 9635#define IDWriteFontFace5_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
 9636#define IDWriteFontFace5_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
 9637#define IDWriteFontFace5_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
 9638#define IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
 9639/*** IDWriteFontFace1 methods ***/
 9640#define IDWriteFontFace5_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
 9641#define IDWriteFontFace5_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
 9642#define IDWriteFontFace5_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
 9643#define IDWriteFontFace5_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
 9644#define IDWriteFontFace5_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
 9645#define IDWriteFontFace5_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
 9646#define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
 9647#define IDWriteFontFace5_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
 9648#define IDWriteFontFace5_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
 9649#define IDWriteFontFace5_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
 9650#define IDWriteFontFace5_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
 9651/*** IDWriteFontFace2 methods ***/
 9652#define IDWriteFontFace5_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
 9653#define IDWriteFontFace5_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
 9654#define IDWriteFontFace5_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
 9655#define IDWriteFontFace5_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
 9656/*** IDWriteFontFace3 methods ***/
 9657#define IDWriteFontFace5_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
 9658#define IDWriteFontFace5_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
 9659#define IDWriteFontFace5_GetWeight(This) (This)->lpVtbl->GetWeight(This)
 9660#define IDWriteFontFace5_GetStretch(This) (This)->lpVtbl->GetStretch(This)
 9661#define IDWriteFontFace5_GetStyle(This) (This)->lpVtbl->GetStyle(This)
 9662#define IDWriteFontFace5_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names)
 9663#define IDWriteFontFace5_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names)
 9664#define IDWriteFontFace5_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
 9665#define IDWriteFontFace5_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
 9666#define IDWriteFontFace5_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
 9667#define IDWriteFontFace5_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
 9668#define IDWriteFontFace5_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
 9669#define IDWriteFontFace5_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
 9670#define IDWriteFontFace5_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
 9671/*** IDWriteFontFace4 methods ***/
 9672#define IDWriteFontFace5_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
 9673#define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
 9674#define IDWriteFontFace5_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
 9675#define IDWriteFontFace5_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
 9676/*** IDWriteFontFace5 methods ***/
 9677#define IDWriteFontFace5_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
 9678#define IDWriteFontFace5_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
 9679#define IDWriteFontFace5_HasVariations(This) (This)->lpVtbl->HasVariations(This)
 9680#define IDWriteFontFace5_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
 9681#define IDWriteFontFace5_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
 9682#else
 9683/*** IUnknown methods ***/
 9684static inline HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This,REFIID riid,void **ppvObject) {
 9685    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9686}
 9687static inline ULONG IDWriteFontFace5_AddRef(IDWriteFontFace5* This) {
 9688    return This->lpVtbl->AddRef(This);
 9689}
 9690static inline ULONG IDWriteFontFace5_Release(IDWriteFontFace5* This) {
 9691    return This->lpVtbl->Release(This);
 9692}
 9693/*** IDWriteFontFace methods ***/
 9694static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace5_GetType(IDWriteFontFace5* This) {
 9695    return This->lpVtbl->GetType(This);
 9696}
 9697static inline HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
 9698    return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
 9699}
 9700static inline UINT32 IDWriteFontFace5_GetIndex(IDWriteFontFace5* This) {
 9701    return This->lpVtbl->GetIndex(This);
 9702}
 9703static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace5_GetSimulations(IDWriteFontFace5* This) {
 9704    return This->lpVtbl->GetSimulations(This);
 9705}
 9706static inline WINBOOL IDWriteFontFace5_IsSymbolFont(IDWriteFontFace5* This) {
 9707    return This->lpVtbl->IsSymbolFont(This);
 9708}
 9709static inline UINT16 IDWriteFontFace5_GetGlyphCount(IDWriteFontFace5* This) {
 9710    return This->lpVtbl->GetGlyphCount(This);
 9711}
 9712static inline HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
 9713    return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
 9714}
 9715static inline HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
 9716    return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
 9717}
 9718static inline HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
 9719    return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
 9720}
 9721static inline void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This,void *table_context) {
 9722    This->lpVtbl->ReleaseFontTable(This,table_context);
 9723}
 9724static inline HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
 9725    return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
 9726}
 9727static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
 9728    return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
 9729}
 9730/*** IDWriteFontFace1 methods ***/
 9731static inline void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This,DWRITE_FONT_METRICS1 *metrics) {
 9732    This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
 9733}
 9734static inline HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
 9735    return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
 9736}
 9737static inline void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This,DWRITE_CARET_METRICS *metrics) {
 9738    This->lpVtbl->GetCaretMetrics(This,metrics);
 9739}
 9740static inline HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
 9741    return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
 9742}
 9743static inline WINBOOL IDWriteFontFace5_IsMonospacedFont(IDWriteFontFace5* This) {
 9744    return This->lpVtbl->IsMonospacedFont(This);
 9745}
 9746static inline HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
 9747    return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
 9748}
 9749static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
 9750    return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
 9751}
 9752static inline HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
 9753    return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
 9754}
 9755static inline WINBOOL IDWriteFontFace5_HasKerningPairs(IDWriteFontFace5* This) {
 9756    return This->lpVtbl->HasKerningPairs(This);
 9757}
 9758static inline HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
 9759    return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
 9760}
 9761static inline WINBOOL IDWriteFontFace5_HasVerticalGlyphVariants(IDWriteFontFace5* This) {
 9762    return This->lpVtbl->HasVerticalGlyphVariants(This);
 9763}
 9764/*** IDWriteFontFace2 methods ***/
 9765static inline WINBOOL IDWriteFontFace5_IsColorFont(IDWriteFontFace5* This) {
 9766    return This->lpVtbl->IsColorFont(This);
 9767}
 9768static inline UINT32 IDWriteFontFace5_GetColorPaletteCount(IDWriteFontFace5* This) {
 9769    return This->lpVtbl->GetColorPaletteCount(This);
 9770}
 9771static inline UINT32 IDWriteFontFace5_GetPaletteEntryCount(IDWriteFontFace5* This) {
 9772    return This->lpVtbl->GetPaletteEntryCount(This);
 9773}
 9774static inline HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
 9775    return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
 9776}
 9777/*** IDWriteFontFace3 methods ***/
 9778static inline HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This,IDWriteFontFaceReference **reference) {
 9779    return This->lpVtbl->GetFontFaceReference(This,reference);
 9780}
 9781static inline void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This,DWRITE_PANOSE *panose) {
 9782    This->lpVtbl->GetPanose(This,panose);
 9783}
 9784static inline DWRITE_FONT_WEIGHT IDWriteFontFace5_GetWeight(IDWriteFontFace5* This) {
 9785    return This->lpVtbl->GetWeight(This);
 9786}
 9787static inline DWRITE_FONT_STRETCH IDWriteFontFace5_GetStretch(IDWriteFontFace5* This) {
 9788    return This->lpVtbl->GetStretch(This);
 9789}
 9790static inline DWRITE_FONT_STYLE IDWriteFontFace5_GetStyle(IDWriteFontFace5* This) {
 9791    return This->lpVtbl->GetStyle(This);
 9792}
 9793static inline HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) {
 9794    return This->lpVtbl->GetFamilyNames(This,names);
 9795}
 9796static inline HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) {
 9797    return This->lpVtbl->GetFaceNames(This,names);
 9798}
 9799static inline HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
 9800    return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
 9801}
 9802static inline WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This,UINT32 character) {
 9803    return This->lpVtbl->HasCharacter(This,character);
 9804}
 9805static inline HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
 9806    return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
 9807}
 9808static inline WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This,UINT32 character) {
 9809    return This->lpVtbl->IsCharacterLocal(This,character);
 9810}
 9811static inline WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This,UINT16 glyph) {
 9812    return This->lpVtbl->IsGlyphLocal(This,glyph);
 9813}
 9814static inline HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
 9815    return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
 9816}
 9817static inline HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
 9818    return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
 9819}
 9820/*** IDWriteFontFace4 methods ***/
 9821static inline HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
 9822    return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
 9823}
 9824static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) {
 9825    return This->lpVtbl->GetGlyphImageFormats(This);
 9826}
 9827static inline HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
 9828    return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
 9829}
 9830static inline void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This,void *context) {
 9831    This->lpVtbl->ReleaseGlyphImageData(This,context);
 9832}
 9833/*** IDWriteFontFace5 methods ***/
 9834static inline UINT32 IDWriteFontFace5_GetFontAxisValueCount(IDWriteFontFace5* This) {
 9835    return This->lpVtbl->GetFontAxisValueCount(This);
 9836}
 9837static inline HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
 9838    return This->lpVtbl->GetFontAxisValues(This,values,value_count);
 9839}
 9840static inline WINBOOL IDWriteFontFace5_HasVariations(IDWriteFontFace5* This) {
 9841    return This->lpVtbl->HasVariations(This);
 9842}
 9843static inline HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This,IDWriteFontResource **resource) {
 9844    return This->lpVtbl->GetFontResource(This,resource);
 9845}
 9846static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWriteFontFace *fontface) {
 9847    return This->lpVtbl->Equals(This,fontface);
 9848}
 9849#endif
 9850#endif
 9851
 9852#endif
 9853
 9854
 9855#endif  /* __IDWriteFontFace5_INTERFACE_DEFINED__ */
 9856
 9857/*****************************************************************************
 9858 * IDWriteFontFace6 interface
 9859 */
 9860#ifndef __IDWriteFontFace6_INTERFACE_DEFINED__
 9861#define __IDWriteFontFace6_INTERFACE_DEFINED__
 9862
 9863DEFINE_GUID(IID_IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad);
 9864#if defined(__cplusplus) && !defined(CINTERFACE)
 9865MIDL_INTERFACE("c4b1fe1b-6e84-47d5-b54c-a597981b06ad")
 9866IDWriteFontFace6 : public IDWriteFontFace5
 9867{
 9868    virtual HRESULT STDMETHODCALLTYPE GetFamilyNames(
 9869        DWRITE_FONT_FAMILY_MODEL font_family_model,
 9870        IDWriteLocalizedStrings **names) = 0;
 9871
 9872    virtual HRESULT STDMETHODCALLTYPE GetFaceNames(
 9873        DWRITE_FONT_FAMILY_MODEL font_family_model,
 9874        IDWriteLocalizedStrings **names) = 0;
 9875
 9876};
 9877#ifdef __CRT_UUID_DECL
 9878__CRT_UUID_DECL(IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad)
 9879#endif
 9880#else
 9881typedef struct IDWriteFontFace6Vtbl {
 9882    BEGIN_INTERFACE
 9883
 9884    /*** IUnknown methods ***/
 9885    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9886        IDWriteFontFace6 *This,
 9887        REFIID riid,
 9888        void **ppvObject);
 9889
 9890    ULONG (STDMETHODCALLTYPE *AddRef)(
 9891        IDWriteFontFace6 *This);
 9892
 9893    ULONG (STDMETHODCALLTYPE *Release)(
 9894        IDWriteFontFace6 *This);
 9895
 9896    /*** IDWriteFontFace methods ***/
 9897    DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
 9898        IDWriteFontFace6 *This);
 9899
 9900    HRESULT (STDMETHODCALLTYPE *GetFiles)(
 9901        IDWriteFontFace6 *This,
 9902        UINT32 *number_of_files,
 9903        IDWriteFontFile **fontfiles);
 9904
 9905    UINT32 (STDMETHODCALLTYPE *GetIndex)(
 9906        IDWriteFontFace6 *This);
 9907
 9908    DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
 9909        IDWriteFontFace6 *This);
 9910
 9911    WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
 9912        IDWriteFontFace6 *This);
 9913
 9914    void (STDMETHODCALLTYPE *GetMetrics)(
 9915        IDWriteFontFace6 *This,
 9916        DWRITE_FONT_METRICS *metrics);
 9917
 9918    UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
 9919        IDWriteFontFace6 *This);
 9920
 9921    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
 9922        IDWriteFontFace6 *This,
 9923        const UINT16 *glyph_indices,
 9924        UINT32 glyph_count,
 9925        DWRITE_GLYPH_METRICS *metrics,
 9926        WINBOOL is_sideways);
 9927
 9928    HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
 9929        IDWriteFontFace6 *This,
 9930        const UINT32 *codepoints,
 9931        UINT32 count,
 9932        UINT16 *glyph_indices);
 9933
 9934    HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
 9935        IDWriteFontFace6 *This,
 9936        UINT32 table_tag,
 9937        const void **table_data,
 9938        UINT32 *table_size,
 9939        void **context,
 9940        WINBOOL *exists);
 9941
 9942    void (STDMETHODCALLTYPE *ReleaseFontTable)(
 9943        IDWriteFontFace6 *This,
 9944        void *table_context);
 9945
 9946    HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
 9947        IDWriteFontFace6 *This,
 9948        FLOAT emSize,
 9949        const UINT16 *glyph_indices,
 9950        const FLOAT *glyph_advances,
 9951        const DWRITE_GLYPH_OFFSET *glyph_offsets,
 9952        UINT32 glyph_count,
 9953        WINBOOL is_sideways,
 9954        WINBOOL is_rtl,
 9955        IDWriteGeometrySink *geometrysink);
 9956
 9957    HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
 9958        IDWriteFontFace6 *This,
 9959        FLOAT emSize,
 9960        FLOAT pixels_per_dip,
 9961        DWRITE_MEASURING_MODE mode,
 9962        IDWriteRenderingParams *params,
 9963        DWRITE_RENDERING_MODE *rendering_mode);
 9964
 9965    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
 9966        IDWriteFontFace6 *This,
 9967        FLOAT emSize,
 9968        FLOAT pixels_per_dip,
 9969        const DWRITE_MATRIX *transform,
 9970        DWRITE_FONT_METRICS *metrics);
 9971
 9972    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
 9973        IDWriteFontFace6 *This,
 9974        FLOAT emSize,
 9975        FLOAT pixels_per_dip,
 9976        const DWRITE_MATRIX *transform,
 9977        WINBOOL use_gdi_natural,
 9978        const UINT16 *glyph_indices,
 9979        UINT32 glyph_count,
 9980        DWRITE_GLYPH_METRICS *metrics,
 9981        WINBOOL is_sideways);
 9982
 9983    /*** IDWriteFontFace1 methods ***/
 9984    void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
 9985        IDWriteFontFace6 *This,
 9986        DWRITE_FONT_METRICS1 *metrics);
 9987
 9988    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
 9989        IDWriteFontFace6 *This,
 9990        FLOAT em_size,
 9991        FLOAT pixels_per_dip,
 9992        const DWRITE_MATRIX *transform,
 9993        DWRITE_FONT_METRICS1 *metrics);
 9994
 9995    void (STDMETHODCALLTYPE *GetCaretMetrics)(
 9996        IDWriteFontFace6 *This,
 9997        DWRITE_CARET_METRICS *metrics);
 9998
 9999    HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
10000        IDWriteFontFace6 *This,
10001        UINT32 max_count,
10002        DWRITE_UNICODE_RANGE *ranges,
10003        UINT32 *count);
10004
10005    WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
10006        IDWriteFontFace6 *This);
10007
10008    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
10009        IDWriteFontFace6 *This,
10010        UINT32 glyph_count,
10011        const UINT16 *indices,
10012        INT32 *advances,
10013        WINBOOL is_sideways);
10014
10015    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
10016        IDWriteFontFace6 *This,
10017        FLOAT em_size,
10018        FLOAT pixels_per_dip,
10019        const DWRITE_MATRIX *transform,
10020        WINBOOL use_gdi_natural,
10021        WINBOOL is_sideways,
10022        UINT32 glyph_count,
10023        const UINT16 *indices,
10024        INT32 *advances);
10025
10026    HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
10027        IDWriteFontFace6 *This,
10028        UINT32 glyph_count,
10029        const UINT16 *indices,
10030        INT32 *adjustments);
10031
10032    WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
10033        IDWriteFontFace6 *This);
10034
10035    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
10036        IDWriteFontFace6 *This,
10037        FLOAT font_emsize,
10038        FLOAT dpiX,
10039        FLOAT dpiY,
10040        const DWRITE_MATRIX *transform,
10041        WINBOOL is_sideways,
10042        DWRITE_OUTLINE_THRESHOLD threshold,
10043        DWRITE_MEASURING_MODE measuring_mode,
10044        DWRITE_RENDERING_MODE *rendering_mode);
10045
10046    HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
10047        IDWriteFontFace6 *This,
10048        UINT32 glyph_count,
10049        const UINT16 *nominal_indices,
10050        UINT16 *vertical_indices);
10051
10052    WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
10053        IDWriteFontFace6 *This);
10054
10055    /*** IDWriteFontFace2 methods ***/
10056    WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
10057        IDWriteFontFace6 *This);
10058
10059    UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
10060        IDWriteFontFace6 *This);
10061
10062    UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
10063        IDWriteFontFace6 *This);
10064
10065    HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
10066        IDWriteFontFace6 *This,
10067        UINT32 palette_index,
10068        UINT32 first_entry_index,
10069        UINT32 entry_count,
10070        DWRITE_COLOR_F *entries);
10071
10072    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
10073        IDWriteFontFace6 *This,
10074        FLOAT fontEmSize,
10075        FLOAT dpiX,
10076        FLOAT dpiY,
10077        const DWRITE_MATRIX *transform,
10078        WINBOOL is_sideways,
10079        DWRITE_OUTLINE_THRESHOLD threshold,
10080        DWRITE_MEASURING_MODE measuringmode,
10081        IDWriteRenderingParams *params,
10082        DWRITE_RENDERING_MODE *renderingmode,
10083        DWRITE_GRID_FIT_MODE *gridfitmode);
10084
10085    /*** IDWriteFontFace3 methods ***/
10086    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
10087        IDWriteFontFace6 *This,
10088        IDWriteFontFaceReference **reference);
10089
10090    void (STDMETHODCALLTYPE *GetPanose)(
10091        IDWriteFontFace6 *This,
10092        DWRITE_PANOSE *panose);
10093
10094    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
10095        IDWriteFontFace6 *This);
10096
10097    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
10098        IDWriteFontFace6 *This);
10099
10100    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
10101        IDWriteFontFace6 *This);
10102
10103    HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
10104        IDWriteFontFace6 *This,
10105        IDWriteLocalizedStrings **names);
10106
10107    HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
10108        IDWriteFontFace6 *This,
10109        IDWriteLocalizedStrings **names);
10110
10111    HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
10112        IDWriteFontFace6 *This,
10113        DWRITE_INFORMATIONAL_STRING_ID stringid,
10114        IDWriteLocalizedStrings **strings,
10115        WINBOOL *exists);
10116
10117    WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
10118        IDWriteFontFace6 *This,
10119        UINT32 character);
10120
10121    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
10122        IDWriteFontFace6 *This,
10123        FLOAT emsize,
10124        FLOAT dpi_x,
10125        FLOAT dpi_y,
10126        const DWRITE_MATRIX *transform,
10127        WINBOOL is_sideways,
10128        DWRITE_OUTLINE_THRESHOLD threshold,
10129        DWRITE_MEASURING_MODE measuring_mode,
10130        IDWriteRenderingParams *params,
10131        DWRITE_RENDERING_MODE1 *rendering_mode,
10132        DWRITE_GRID_FIT_MODE *gridfit_mode);
10133
10134    WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
10135        IDWriteFontFace6 *This,
10136        UINT32 character);
10137
10138    WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
10139        IDWriteFontFace6 *This,
10140        UINT16 glyph);
10141
10142    HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
10143        IDWriteFontFace6 *This,
10144        const WCHAR *characters,
10145        UINT32 count,
10146        WINBOOL enqueue_if_not,
10147        WINBOOL *are_local);
10148
10149    HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
10150        IDWriteFontFace6 *This,
10151        const UINT16 *glyphs,
10152        UINT32 count,
10153        WINBOOL enqueue_if_not,
10154        WINBOOL *are_local);
10155
10156    /*** IDWriteFontFace4 methods ***/
10157    HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
10158        IDWriteFontFace6 *This,
10159        UINT16 glyph,
10160        UINT32 ppem_first,
10161        UINT32 ppem_last,
10162        DWRITE_GLYPH_IMAGE_FORMATS *formats);
10163
10164    DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
10165        IDWriteFontFace6 *This);
10166
10167    HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
10168        IDWriteFontFace6 *This,
10169        UINT16 glyph,
10170        UINT32 ppem,
10171        DWRITE_GLYPH_IMAGE_FORMATS format,
10172        DWRITE_GLYPH_IMAGE_DATA *data,
10173        void **context);
10174
10175    void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
10176        IDWriteFontFace6 *This,
10177        void *context);
10178
10179    /*** IDWriteFontFace5 methods ***/
10180    UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
10181        IDWriteFontFace6 *This);
10182
10183    HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
10184        IDWriteFontFace6 *This,
10185        DWRITE_FONT_AXIS_VALUE *values,
10186        UINT32 value_count);
10187
10188    WINBOOL (STDMETHODCALLTYPE *HasVariations)(
10189        IDWriteFontFace6 *This);
10190
10191    HRESULT (STDMETHODCALLTYPE *GetFontResource)(
10192        IDWriteFontFace6 *This,
10193        IDWriteFontResource **resource);
10194
10195    WINBOOL (STDMETHODCALLTYPE *Equals)(
10196        IDWriteFontFace6 *This,
10197        IDWriteFontFace *fontface);
10198
10199    /*** IDWriteFontFace6 methods ***/
10200    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)(
10201        IDWriteFontFace6 *This,
10202        DWRITE_FONT_FAMILY_MODEL font_family_model,
10203        IDWriteLocalizedStrings **names);
10204
10205    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)(
10206        IDWriteFontFace6 *This,
10207        DWRITE_FONT_FAMILY_MODEL font_family_model,
10208        IDWriteLocalizedStrings **names);
10209
10210    END_INTERFACE
10211} IDWriteFontFace6Vtbl;
10212
10213interface IDWriteFontFace6 {
10214    CONST_VTBL IDWriteFontFace6Vtbl* lpVtbl;
10215};
10216
10217#ifdef COBJMACROS
10218#ifndef WIDL_C_INLINE_WRAPPERS
10219/*** IUnknown methods ***/
10220#define IDWriteFontFace6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10221#define IDWriteFontFace6_AddRef(This) (This)->lpVtbl->AddRef(This)
10222#define IDWriteFontFace6_Release(This) (This)->lpVtbl->Release(This)
10223/*** IDWriteFontFace methods ***/
10224#define IDWriteFontFace6_GetType(This) (This)->lpVtbl->GetType(This)
10225#define IDWriteFontFace6_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
10226#define IDWriteFontFace6_GetIndex(This) (This)->lpVtbl->GetIndex(This)
10227#define IDWriteFontFace6_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
10228#define IDWriteFontFace6_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
10229#define IDWriteFontFace6_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
10230#define IDWriteFontFace6_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
10231#define IDWriteFontFace6_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
10232#define IDWriteFontFace6_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
10233#define IDWriteFontFace6_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
10234#define IDWriteFontFace6_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
10235#define IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
10236/*** IDWriteFontFace1 methods ***/
10237#define IDWriteFontFace6_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
10238#define IDWriteFontFace6_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
10239#define IDWriteFontFace6_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
10240#define IDWriteFontFace6_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
10241#define IDWriteFontFace6_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
10242#define IDWriteFontFace6_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
10243#define IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
10244#define IDWriteFontFace6_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
10245#define IDWriteFontFace6_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
10246#define IDWriteFontFace6_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
10247#define IDWriteFontFace6_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
10248/*** IDWriteFontFace2 methods ***/
10249#define IDWriteFontFace6_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
10250#define IDWriteFontFace6_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
10251#define IDWriteFontFace6_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
10252#define IDWriteFontFace6_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
10253/*** IDWriteFontFace3 methods ***/
10254#define IDWriteFontFace6_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
10255#define IDWriteFontFace6_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
10256#define IDWriteFontFace6_GetWeight(This) (This)->lpVtbl->GetWeight(This)
10257#define IDWriteFontFace6_GetStretch(This) (This)->lpVtbl->GetStretch(This)
10258#define IDWriteFontFace6_GetStyle(This) (This)->lpVtbl->GetStyle(This)
10259#define IDWriteFontFace6_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
10260#define IDWriteFontFace6_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
10261#define IDWriteFontFace6_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
10262#define IDWriteFontFace6_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
10263#define IDWriteFontFace6_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
10264#define IDWriteFontFace6_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
10265#define IDWriteFontFace6_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
10266/*** IDWriteFontFace4 methods ***/
10267#define IDWriteFontFace6_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
10268#define IDWriteFontFace6_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
10269#define IDWriteFontFace6_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
10270#define IDWriteFontFace6_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
10271/*** IDWriteFontFace5 methods ***/
10272#define IDWriteFontFace6_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
10273#define IDWriteFontFace6_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
10274#define IDWriteFontFace6_HasVariations(This) (This)->lpVtbl->HasVariations(This)
10275#define IDWriteFontFace6_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
10276#define IDWriteFontFace6_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
10277/*** IDWriteFontFace6 methods ***/
10278#define IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names)
10279#define IDWriteFontFace6_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names)
10280#else
10281/*** IUnknown methods ***/
10282static inline HRESULT IDWriteFontFace6_QueryInterface(IDWriteFontFace6* This,REFIID riid,void **ppvObject) {
10283    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10284}
10285static inline ULONG IDWriteFontFace6_AddRef(IDWriteFontFace6* This) {
10286    return This->lpVtbl->AddRef(This);
10287}
10288static inline ULONG IDWriteFontFace6_Release(IDWriteFontFace6* This) {
10289    return This->lpVtbl->Release(This);
10290}
10291/*** IDWriteFontFace methods ***/
10292static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace6_GetType(IDWriteFontFace6* This) {
10293    return This->lpVtbl->GetType(This);
10294}
10295static inline HRESULT IDWriteFontFace6_GetFiles(IDWriteFontFace6* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
10296    return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
10297}
10298static inline UINT32 IDWriteFontFace6_GetIndex(IDWriteFontFace6* This) {
10299    return This->lpVtbl->GetIndex(This);
10300}
10301static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace6_GetSimulations(IDWriteFontFace6* This) {
10302    return This->lpVtbl->GetSimulations(This);
10303}
10304static inline WINBOOL IDWriteFontFace6_IsSymbolFont(IDWriteFontFace6* This) {
10305    return This->lpVtbl->IsSymbolFont(This);
10306}
10307static inline UINT16 IDWriteFontFace6_GetGlyphCount(IDWriteFontFace6* This) {
10308    return This->lpVtbl->GetGlyphCount(This);
10309}
10310static inline HRESULT IDWriteFontFace6_GetDesignGlyphMetrics(IDWriteFontFace6* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
10311    return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
10312}
10313static inline HRESULT IDWriteFontFace6_GetGlyphIndices(IDWriteFontFace6* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
10314    return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
10315}
10316static inline HRESULT IDWriteFontFace6_TryGetFontTable(IDWriteFontFace6* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
10317    return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
10318}
10319static inline void IDWriteFontFace6_ReleaseFontTable(IDWriteFontFace6* This,void *table_context) {
10320    This->lpVtbl->ReleaseFontTable(This,table_context);
10321}
10322static inline HRESULT IDWriteFontFace6_GetGlyphRunOutline(IDWriteFontFace6* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
10323    return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
10324}
10325static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(IDWriteFontFace6* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
10326    return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
10327}
10328/*** IDWriteFontFace1 methods ***/
10329static inline void IDWriteFontFace6_GetMetrics(IDWriteFontFace6* This,DWRITE_FONT_METRICS1 *metrics) {
10330    This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
10331}
10332static inline HRESULT IDWriteFontFace6_GetGdiCompatibleMetrics(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
10333    return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
10334}
10335static inline void IDWriteFontFace6_GetCaretMetrics(IDWriteFontFace6* This,DWRITE_CARET_METRICS *metrics) {
10336    This->lpVtbl->GetCaretMetrics(This,metrics);
10337}
10338static inline HRESULT IDWriteFontFace6_GetUnicodeRanges(IDWriteFontFace6* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
10339    return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
10340}
10341static inline WINBOOL IDWriteFontFace6_IsMonospacedFont(IDWriteFontFace6* This) {
10342    return This->lpVtbl->IsMonospacedFont(This);
10343}
10344static inline HRESULT IDWriteFontFace6_GetDesignGlyphAdvances(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
10345    return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
10346}
10347static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
10348    return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
10349}
10350static inline HRESULT IDWriteFontFace6_GetKerningPairAdjustments(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
10351    return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
10352}
10353static inline WINBOOL IDWriteFontFace6_HasKerningPairs(IDWriteFontFace6* This) {
10354    return This->lpVtbl->HasKerningPairs(This);
10355}
10356static inline HRESULT IDWriteFontFace6_GetVerticalGlyphVariants(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
10357    return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
10358}
10359static inline WINBOOL IDWriteFontFace6_HasVerticalGlyphVariants(IDWriteFontFace6* This) {
10360    return This->lpVtbl->HasVerticalGlyphVariants(This);
10361}
10362/*** IDWriteFontFace2 methods ***/
10363static inline WINBOOL IDWriteFontFace6_IsColorFont(IDWriteFontFace6* This) {
10364    return This->lpVtbl->IsColorFont(This);
10365}
10366static inline UINT32 IDWriteFontFace6_GetColorPaletteCount(IDWriteFontFace6* This) {
10367    return This->lpVtbl->GetColorPaletteCount(This);
10368}
10369static inline UINT32 IDWriteFontFace6_GetPaletteEntryCount(IDWriteFontFace6* This) {
10370    return This->lpVtbl->GetPaletteEntryCount(This);
10371}
10372static inline HRESULT IDWriteFontFace6_GetPaletteEntries(IDWriteFontFace6* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
10373    return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
10374}
10375/*** IDWriteFontFace3 methods ***/
10376static inline HRESULT IDWriteFontFace6_GetFontFaceReference(IDWriteFontFace6* This,IDWriteFontFaceReference **reference) {
10377    return This->lpVtbl->GetFontFaceReference(This,reference);
10378}
10379static inline void IDWriteFontFace6_GetPanose(IDWriteFontFace6* This,DWRITE_PANOSE *panose) {
10380    This->lpVtbl->GetPanose(This,panose);
10381}
10382static inline DWRITE_FONT_WEIGHT IDWriteFontFace6_GetWeight(IDWriteFontFace6* This) {
10383    return This->lpVtbl->GetWeight(This);
10384}
10385static inline DWRITE_FONT_STRETCH IDWriteFontFace6_GetStretch(IDWriteFontFace6* This) {
10386    return This->lpVtbl->GetStretch(This);
10387}
10388static inline DWRITE_FONT_STYLE IDWriteFontFace6_GetStyle(IDWriteFontFace6* This) {
10389    return This->lpVtbl->GetStyle(This);
10390}
10391static inline HRESULT IDWriteFontFace6_GetInformationalStrings(IDWriteFontFace6* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
10392    return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
10393}
10394static inline WINBOOL IDWriteFontFace6_HasCharacter(IDWriteFontFace6* This,UINT32 character) {
10395    return This->lpVtbl->HasCharacter(This,character);
10396}
10397static inline HRESULT IDWriteFontFace6_GetRecommendedRenderingMode(IDWriteFontFace6* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
10398    return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
10399}
10400static inline WINBOOL IDWriteFontFace6_IsCharacterLocal(IDWriteFontFace6* This,UINT32 character) {
10401    return This->lpVtbl->IsCharacterLocal(This,character);
10402}
10403static inline WINBOOL IDWriteFontFace6_IsGlyphLocal(IDWriteFontFace6* This,UINT16 glyph) {
10404    return This->lpVtbl->IsGlyphLocal(This,glyph);
10405}
10406static inline HRESULT IDWriteFontFace6_AreCharactersLocal(IDWriteFontFace6* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
10407    return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
10408}
10409static inline HRESULT IDWriteFontFace6_AreGlyphsLocal(IDWriteFontFace6* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
10410    return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
10411}
10412/*** IDWriteFontFace4 methods ***/
10413static inline HRESULT IDWriteFontFace6_GetGlyphImageFormats_(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
10414    return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
10415}
10416static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace6_GetGlyphImageFormats(IDWriteFontFace6* This) {
10417    return This->lpVtbl->GetGlyphImageFormats(This);
10418}
10419static inline HRESULT IDWriteFontFace6_GetGlyphImageData(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
10420    return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
10421}
10422static inline void IDWriteFontFace6_ReleaseGlyphImageData(IDWriteFontFace6* This,void *context) {
10423    This->lpVtbl->ReleaseGlyphImageData(This,context);
10424}
10425/*** IDWriteFontFace5 methods ***/
10426static inline UINT32 IDWriteFontFace6_GetFontAxisValueCount(IDWriteFontFace6* This) {
10427    return This->lpVtbl->GetFontAxisValueCount(This);
10428}
10429static inline HRESULT IDWriteFontFace6_GetFontAxisValues(IDWriteFontFace6* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
10430    return This->lpVtbl->GetFontAxisValues(This,values,value_count);
10431}
10432static inline WINBOOL IDWriteFontFace6_HasVariations(IDWriteFontFace6* This) {
10433    return This->lpVtbl->HasVariations(This);
10434}
10435static inline HRESULT IDWriteFontFace6_GetFontResource(IDWriteFontFace6* This,IDWriteFontResource **resource) {
10436    return This->lpVtbl->GetFontResource(This,resource);
10437}
10438static inline WINBOOL IDWriteFontFace6_Equals(IDWriteFontFace6* This,IDWriteFontFace *fontface) {
10439    return This->lpVtbl->Equals(This,fontface);
10440}
10441/*** IDWriteFontFace6 methods ***/
10442static inline HRESULT IDWriteFontFace6_GetFamilyNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
10443    return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names);
10444}
10445static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
10446    return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names);
10447}
10448#endif
10449#endif
10450
10451#endif
10452
10453
10454#endif  /* __IDWriteFontFace6_INTERFACE_DEFINED__ */
10455
10456/*****************************************************************************
10457 * IDWritePaintReader interface
10458 */
10459#ifndef __IDWritePaintReader_INTERFACE_DEFINED__
10460#define __IDWritePaintReader_INTERFACE_DEFINED__
10461
10462DEFINE_GUID(IID_IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54);
10463#if defined(__cplusplus) && !defined(CINTERFACE)
10464MIDL_INTERFACE("8128e912-3b97-42a5-ab6c-24aad3a86e54")
10465IDWritePaintReader : public IUnknown
10466{
10467    virtual HRESULT STDMETHODCALLTYPE SetCurrentGlyph(
10468        UINT32 glyph_index,
10469        DWRITE_PAINT_ELEMENT *paint_element,
10470        UINT32 struct_size,
10471        D2D_RECT_F *clip_box,
10472        DWRITE_PAINT_ATTRIBUTES *glyph_attributes = 0) = 0;
10473
10474    virtual HRESULT STDMETHODCALLTYPE SetTextColor(
10475        const DWRITE_COLOR_F *text_color) = 0;
10476
10477    virtual HRESULT STDMETHODCALLTYPE SetColorPaletteIndex(
10478        UINT32 color_palette_index) = 0;
10479
10480    virtual HRESULT STDMETHODCALLTYPE SetCustomColorPalette(
10481        const DWRITE_COLOR_F *palette_entries,
10482        UINT32 palette_entry_count) = 0;
10483
10484    virtual HRESULT STDMETHODCALLTYPE MoveToFirstChild(
10485        DWRITE_PAINT_ELEMENT *paint_element,
10486        UINT32 struct_size) = 0;
10487
10488    virtual HRESULT STDMETHODCALLTYPE MoveToNextSibling(
10489        DWRITE_PAINT_ELEMENT *paint_element,
10490        UINT32 struct_size) = 0;
10491
10492    virtual HRESULT STDMETHODCALLTYPE MoveToParent(
10493        ) = 0;
10494
10495    virtual HRESULT STDMETHODCALLTYPE GetGradientStops(
10496        UINT32 first_gradient_stop_index,
10497        UINT32 gradient_stop_count,
10498        D2D1_GRADIENT_STOP *gradient_stops) = 0;
10499
10500    virtual HRESULT STDMETHODCALLTYPE GetGradientStopColors(
10501        UINT32 first_gradient_stop_index,
10502        UINT32 gradient_stop_count,
10503        DWRITE_PAINT_COLOR *gradient_stop_colors) = 0;
10504
10505};
10506#ifdef __CRT_UUID_DECL
10507__CRT_UUID_DECL(IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54)
10508#endif
10509#else
10510typedef struct IDWritePaintReaderVtbl {
10511    BEGIN_INTERFACE
10512
10513    /*** IUnknown methods ***/
10514    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10515        IDWritePaintReader *This,
10516        REFIID riid,
10517        void **ppvObject);
10518
10519    ULONG (STDMETHODCALLTYPE *AddRef)(
10520        IDWritePaintReader *This);
10521
10522    ULONG (STDMETHODCALLTYPE *Release)(
10523        IDWritePaintReader *This);
10524
10525    /*** IDWritePaintReader methods ***/
10526    HRESULT (STDMETHODCALLTYPE *SetCurrentGlyph)(
10527        IDWritePaintReader *This,
10528        UINT32 glyph_index,
10529        DWRITE_PAINT_ELEMENT *paint_element,
10530        UINT32 struct_size,
10531        D2D_RECT_F *clip_box,
10532        DWRITE_PAINT_ATTRIBUTES *glyph_attributes);
10533
10534    HRESULT (STDMETHODCALLTYPE *SetTextColor)(
10535        IDWritePaintReader *This,
10536        const DWRITE_COLOR_F *text_color);
10537
10538    HRESULT (STDMETHODCALLTYPE *SetColorPaletteIndex)(
10539        IDWritePaintReader *This,
10540        UINT32 color_palette_index);
10541
10542    HRESULT (STDMETHODCALLTYPE *SetCustomColorPalette)(
10543        IDWritePaintReader *This,
10544        const DWRITE_COLOR_F *palette_entries,
10545        UINT32 palette_entry_count);
10546
10547    HRESULT (STDMETHODCALLTYPE *MoveToFirstChild)(
10548        IDWritePaintReader *This,
10549        DWRITE_PAINT_ELEMENT *paint_element,
10550        UINT32 struct_size);
10551
10552    HRESULT (STDMETHODCALLTYPE *MoveToNextSibling)(
10553        IDWritePaintReader *This,
10554        DWRITE_PAINT_ELEMENT *paint_element,
10555        UINT32 struct_size);
10556
10557    HRESULT (STDMETHODCALLTYPE *MoveToParent)(
10558        IDWritePaintReader *This);
10559
10560    HRESULT (STDMETHODCALLTYPE *GetGradientStops)(
10561        IDWritePaintReader *This,
10562        UINT32 first_gradient_stop_index,
10563        UINT32 gradient_stop_count,
10564        D2D1_GRADIENT_STOP *gradient_stops);
10565
10566    HRESULT (STDMETHODCALLTYPE *GetGradientStopColors)(
10567        IDWritePaintReader *This,
10568        UINT32 first_gradient_stop_index,
10569        UINT32 gradient_stop_count,
10570        DWRITE_PAINT_COLOR *gradient_stop_colors);
10571
10572    END_INTERFACE
10573} IDWritePaintReaderVtbl;
10574
10575interface IDWritePaintReader {
10576    CONST_VTBL IDWritePaintReaderVtbl* lpVtbl;
10577};
10578
10579#ifdef COBJMACROS
10580#ifndef WIDL_C_INLINE_WRAPPERS
10581/*** IUnknown methods ***/
10582#define IDWritePaintReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10583#define IDWritePaintReader_AddRef(This) (This)->lpVtbl->AddRef(This)
10584#define IDWritePaintReader_Release(This) (This)->lpVtbl->Release(This)
10585/*** IDWritePaintReader methods ***/
10586#define IDWritePaintReader_SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) (This)->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes)
10587#define IDWritePaintReader_SetTextColor(This,text_color) (This)->lpVtbl->SetTextColor(This,text_color)
10588#define IDWritePaintReader_SetColorPaletteIndex(This,color_palette_index) (This)->lpVtbl->SetColorPaletteIndex(This,color_palette_index)
10589#define IDWritePaintReader_SetCustomColorPalette(This,palette_entries,palette_entry_count) (This)->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count)
10590#define IDWritePaintReader_MoveToFirstChild(This,paint_element,struct_size) (This)->lpVtbl->MoveToFirstChild(This,paint_element,struct_size)
10591#define IDWritePaintReader_MoveToNextSibling(This,paint_element,struct_size) (This)->lpVtbl->MoveToNextSibling(This,paint_element,struct_size)
10592#define IDWritePaintReader_MoveToParent(This) (This)->lpVtbl->MoveToParent(This)
10593#define IDWritePaintReader_GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) (This)->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops)
10594#define IDWritePaintReader_GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) (This)->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors)
10595#else
10596/*** IUnknown methods ***/
10597static inline HRESULT IDWritePaintReader_QueryInterface(IDWritePaintReader* This,REFIID riid,void **ppvObject) {
10598    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10599}
10600static inline ULONG IDWritePaintReader_AddRef(IDWritePaintReader* This) {
10601    return This->lpVtbl->AddRef(This);
10602}
10603static inline ULONG IDWritePaintReader_Release(IDWritePaintReader* This) {
10604    return This->lpVtbl->Release(This);
10605}
10606/*** IDWritePaintReader methods ***/
10607static inline HRESULT IDWritePaintReader_SetCurrentGlyph(IDWritePaintReader* This,UINT32 glyph_index,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size,D2D_RECT_F *clip_box,DWRITE_PAINT_ATTRIBUTES *glyph_attributes) {
10608    return This->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes);
10609}
10610static inline HRESULT IDWritePaintReader_SetTextColor(IDWritePaintReader* This,const DWRITE_COLOR_F *text_color) {
10611    return This->lpVtbl->SetTextColor(This,text_color);
10612}
10613static inline HRESULT IDWritePaintReader_SetColorPaletteIndex(IDWritePaintReader* This,UINT32 color_palette_index) {
10614    return This->lpVtbl->SetColorPaletteIndex(This,color_palette_index);
10615}
10616static inline HRESULT IDWritePaintReader_SetCustomColorPalette(IDWritePaintReader* This,const DWRITE_COLOR_F *palette_entries,UINT32 palette_entry_count) {
10617    return This->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count);
10618}
10619static inline HRESULT IDWritePaintReader_MoveToFirstChild(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) {
10620    return This->lpVtbl->MoveToFirstChild(This,paint_element,struct_size);
10621}
10622static inline HRESULT IDWritePaintReader_MoveToNextSibling(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) {
10623    return This->lpVtbl->MoveToNextSibling(This,paint_element,struct_size);
10624}
10625static inline HRESULT IDWritePaintReader_MoveToParent(IDWritePaintReader* This) {
10626    return This->lpVtbl->MoveToParent(This);
10627}
10628static inline HRESULT IDWritePaintReader_GetGradientStops(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,D2D1_GRADIENT_STOP *gradient_stops) {
10629    return This->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops);
10630}
10631static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,DWRITE_PAINT_COLOR *gradient_stop_colors) {
10632    return This->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors);
10633}
10634#endif
10635#endif
10636
10637#endif
10638
10639
10640#endif  /* __IDWritePaintReader_INTERFACE_DEFINED__ */
10641
10642/*****************************************************************************
10643 * IDWriteFontFace7 interface
10644 */
10645#ifndef __IDWriteFontFace7_INTERFACE_DEFINED__
10646#define __IDWriteFontFace7_INTERFACE_DEFINED__
10647
10648DEFINE_GUID(IID_IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b);
10649#if defined(__cplusplus) && !defined(CINTERFACE)
10650MIDL_INTERFACE("3945b85b-bc95-40f7-b72c-8b73bfc7e13b")
10651IDWriteFontFace7 : public IDWriteFontFace6
10652{
10653    virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel(
10654        DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) = 0;
10655
10656    virtual HRESULT STDMETHODCALLTYPE CreatePaintReader(
10657        DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,
10658        DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,
10659        IDWritePaintReader **paint_reader) = 0;
10660
10661};
10662#ifdef __CRT_UUID_DECL
10663__CRT_UUID_DECL(IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b)
10664#endif
10665#else
10666typedef struct IDWriteFontFace7Vtbl {
10667    BEGIN_INTERFACE
10668
10669    /*** IUnknown methods ***/
10670    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10671        IDWriteFontFace7 *This,
10672        REFIID riid,
10673        void **ppvObject);
10674
10675    ULONG (STDMETHODCALLTYPE *AddRef)(
10676        IDWriteFontFace7 *This);
10677
10678    ULONG (STDMETHODCALLTYPE *Release)(
10679        IDWriteFontFace7 *This);
10680
10681    /*** IDWriteFontFace methods ***/
10682    DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)(
10683        IDWriteFontFace7 *This);
10684
10685    HRESULT (STDMETHODCALLTYPE *GetFiles)(
10686        IDWriteFontFace7 *This,
10687        UINT32 *number_of_files,
10688        IDWriteFontFile **fontfiles);
10689
10690    UINT32 (STDMETHODCALLTYPE *GetIndex)(
10691        IDWriteFontFace7 *This);
10692
10693    DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)(
10694        IDWriteFontFace7 *This);
10695
10696    WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)(
10697        IDWriteFontFace7 *This);
10698
10699    void (STDMETHODCALLTYPE *GetMetrics)(
10700        IDWriteFontFace7 *This,
10701        DWRITE_FONT_METRICS *metrics);
10702
10703    UINT16 (STDMETHODCALLTYPE *GetGlyphCount)(
10704        IDWriteFontFace7 *This);
10705
10706    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)(
10707        IDWriteFontFace7 *This,
10708        const UINT16 *glyph_indices,
10709        UINT32 glyph_count,
10710        DWRITE_GLYPH_METRICS *metrics,
10711        WINBOOL is_sideways);
10712
10713    HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)(
10714        IDWriteFontFace7 *This,
10715        const UINT32 *codepoints,
10716        UINT32 count,
10717        UINT16 *glyph_indices);
10718
10719    HRESULT (STDMETHODCALLTYPE *TryGetFontTable)(
10720        IDWriteFontFace7 *This,
10721        UINT32 table_tag,
10722        const void **table_data,
10723        UINT32 *table_size,
10724        void **context,
10725        WINBOOL *exists);
10726
10727    void (STDMETHODCALLTYPE *ReleaseFontTable)(
10728        IDWriteFontFace7 *This,
10729        void *table_context);
10730
10731    HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)(
10732        IDWriteFontFace7 *This,
10733        FLOAT emSize,
10734        const UINT16 *glyph_indices,
10735        const FLOAT *glyph_advances,
10736        const DWRITE_GLYPH_OFFSET *glyph_offsets,
10737        UINT32 glyph_count,
10738        WINBOOL is_sideways,
10739        WINBOOL is_rtl,
10740        IDWriteGeometrySink *geometrysink);
10741
10742    HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)(
10743        IDWriteFontFace7 *This,
10744        FLOAT emSize,
10745        FLOAT pixels_per_dip,
10746        DWRITE_MEASURING_MODE mode,
10747        IDWriteRenderingParams *params,
10748        DWRITE_RENDERING_MODE *rendering_mode);
10749
10750    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)(
10751        IDWriteFontFace7 *This,
10752        FLOAT emSize,
10753        FLOAT pixels_per_dip,
10754        const DWRITE_MATRIX *transform,
10755        DWRITE_FONT_METRICS *metrics);
10756
10757    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)(
10758        IDWriteFontFace7 *This,
10759        FLOAT emSize,
10760        FLOAT pixels_per_dip,
10761        const DWRITE_MATRIX *transform,
10762        WINBOOL use_gdi_natural,
10763        const UINT16 *glyph_indices,
10764        UINT32 glyph_count,
10765        DWRITE_GLYPH_METRICS *metrics,
10766        WINBOOL is_sideways);
10767
10768    /*** IDWriteFontFace1 methods ***/
10769    void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)(
10770        IDWriteFontFace7 *This,
10771        DWRITE_FONT_METRICS1 *metrics);
10772
10773    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)(
10774        IDWriteFontFace7 *This,
10775        FLOAT em_size,
10776        FLOAT pixels_per_dip,
10777        const DWRITE_MATRIX *transform,
10778        DWRITE_FONT_METRICS1 *metrics);
10779
10780    void (STDMETHODCALLTYPE *GetCaretMetrics)(
10781        IDWriteFontFace7 *This,
10782        DWRITE_CARET_METRICS *metrics);
10783
10784    HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)(
10785        IDWriteFontFace7 *This,
10786        UINT32 max_count,
10787        DWRITE_UNICODE_RANGE *ranges,
10788        UINT32 *count);
10789
10790    WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)(
10791        IDWriteFontFace7 *This);
10792
10793    HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)(
10794        IDWriteFontFace7 *This,
10795        UINT32 glyph_count,
10796        const UINT16 *indices,
10797        INT32 *advances,
10798        WINBOOL is_sideways);
10799
10800    HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)(
10801        IDWriteFontFace7 *This,
10802        FLOAT em_size,
10803        FLOAT pixels_per_dip,
10804        const DWRITE_MATRIX *transform,
10805        WINBOOL use_gdi_natural,
10806        WINBOOL is_sideways,
10807        UINT32 glyph_count,
10808        const UINT16 *indices,
10809        INT32 *advances);
10810
10811    HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)(
10812        IDWriteFontFace7 *This,
10813        UINT32 glyph_count,
10814        const UINT16 *indices,
10815        INT32 *adjustments);
10816
10817    WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)(
10818        IDWriteFontFace7 *This);
10819
10820    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)(
10821        IDWriteFontFace7 *This,
10822        FLOAT font_emsize,
10823        FLOAT dpiX,
10824        FLOAT dpiY,
10825        const DWRITE_MATRIX *transform,
10826        WINBOOL is_sideways,
10827        DWRITE_OUTLINE_THRESHOLD threshold,
10828        DWRITE_MEASURING_MODE measuring_mode,
10829        DWRITE_RENDERING_MODE *rendering_mode);
10830
10831    HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)(
10832        IDWriteFontFace7 *This,
10833        UINT32 glyph_count,
10834        const UINT16 *nominal_indices,
10835        UINT16 *vertical_indices);
10836
10837    WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)(
10838        IDWriteFontFace7 *This);
10839
10840    /*** IDWriteFontFace2 methods ***/
10841    WINBOOL (STDMETHODCALLTYPE *IsColorFont)(
10842        IDWriteFontFace7 *This);
10843
10844    UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)(
10845        IDWriteFontFace7 *This);
10846
10847    UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)(
10848        IDWriteFontFace7 *This);
10849
10850    HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)(
10851        IDWriteFontFace7 *This,
10852        UINT32 palette_index,
10853        UINT32 first_entry_index,
10854        UINT32 entry_count,
10855        DWRITE_COLOR_F *entries);
10856
10857    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)(
10858        IDWriteFontFace7 *This,
10859        FLOAT fontEmSize,
10860        FLOAT dpiX,
10861        FLOAT dpiY,
10862        const DWRITE_MATRIX *transform,
10863        WINBOOL is_sideways,
10864        DWRITE_OUTLINE_THRESHOLD threshold,
10865        DWRITE_MEASURING_MODE measuringmode,
10866        IDWriteRenderingParams *params,
10867        DWRITE_RENDERING_MODE *renderingmode,
10868        DWRITE_GRID_FIT_MODE *gridfitmode);
10869
10870    /*** IDWriteFontFace3 methods ***/
10871    HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)(
10872        IDWriteFontFace7 *This,
10873        IDWriteFontFaceReference **reference);
10874
10875    void (STDMETHODCALLTYPE *GetPanose)(
10876        IDWriteFontFace7 *This,
10877        DWRITE_PANOSE *panose);
10878
10879    DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)(
10880        IDWriteFontFace7 *This);
10881
10882    DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)(
10883        IDWriteFontFace7 *This);
10884
10885    DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)(
10886        IDWriteFontFace7 *This);
10887
10888    HRESULT (STDMETHODCALLTYPE *GetFamilyNames)(
10889        IDWriteFontFace7 *This,
10890        IDWriteLocalizedStrings **names);
10891
10892    HRESULT (STDMETHODCALLTYPE *GetFaceNames)(
10893        IDWriteFontFace7 *This,
10894        IDWriteLocalizedStrings **names);
10895
10896    HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)(
10897        IDWriteFontFace7 *This,
10898        DWRITE_INFORMATIONAL_STRING_ID stringid,
10899        IDWriteLocalizedStrings **strings,
10900        WINBOOL *exists);
10901
10902    WINBOOL (STDMETHODCALLTYPE *HasCharacter)(
10903        IDWriteFontFace7 *This,
10904        UINT32 character);
10905
10906    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)(
10907        IDWriteFontFace7 *This,
10908        FLOAT emsize,
10909        FLOAT dpi_x,
10910        FLOAT dpi_y,
10911        const DWRITE_MATRIX *transform,
10912        WINBOOL is_sideways,
10913        DWRITE_OUTLINE_THRESHOLD threshold,
10914        DWRITE_MEASURING_MODE measuring_mode,
10915        IDWriteRenderingParams *params,
10916        DWRITE_RENDERING_MODE1 *rendering_mode,
10917        DWRITE_GRID_FIT_MODE *gridfit_mode);
10918
10919    WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)(
10920        IDWriteFontFace7 *This,
10921        UINT32 character);
10922
10923    WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)(
10924        IDWriteFontFace7 *This,
10925        UINT16 glyph);
10926
10927    HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)(
10928        IDWriteFontFace7 *This,
10929        const WCHAR *characters,
10930        UINT32 count,
10931        WINBOOL enqueue_if_not,
10932        WINBOOL *are_local);
10933
10934    HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)(
10935        IDWriteFontFace7 *This,
10936        const UINT16 *glyphs,
10937        UINT32 count,
10938        WINBOOL enqueue_if_not,
10939        WINBOOL *are_local);
10940
10941    /*** IDWriteFontFace4 methods ***/
10942    HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)(
10943        IDWriteFontFace7 *This,
10944        UINT16 glyph,
10945        UINT32 ppem_first,
10946        UINT32 ppem_last,
10947        DWRITE_GLYPH_IMAGE_FORMATS *formats);
10948
10949    DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)(
10950        IDWriteFontFace7 *This);
10951
10952    HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)(
10953        IDWriteFontFace7 *This,
10954        UINT16 glyph,
10955        UINT32 ppem,
10956        DWRITE_GLYPH_IMAGE_FORMATS format,
10957        DWRITE_GLYPH_IMAGE_DATA *data,
10958        void **context);
10959
10960    void (STDMETHODCALLTYPE *ReleaseGlyphImageData)(
10961        IDWriteFontFace7 *This,
10962        void *context);
10963
10964    /*** IDWriteFontFace5 methods ***/
10965    UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)(
10966        IDWriteFontFace7 *This);
10967
10968    HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
10969        IDWriteFontFace7 *This,
10970        DWRITE_FONT_AXIS_VALUE *values,
10971        UINT32 value_count);
10972
10973    WINBOOL (STDMETHODCALLTYPE *HasVariations)(
10974        IDWriteFontFace7 *This);
10975
10976    HRESULT (STDMETHODCALLTYPE *GetFontResource)(
10977        IDWriteFontFace7 *This,
10978        IDWriteFontResource **resource);
10979
10980    WINBOOL (STDMETHODCALLTYPE *Equals)(
10981        IDWriteFontFace7 *This,
10982        IDWriteFontFace *fontface);
10983
10984    /*** IDWriteFontFace6 methods ***/
10985    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)(
10986        IDWriteFontFace7 *This,
10987        DWRITE_FONT_FAMILY_MODEL font_family_model,
10988        IDWriteLocalizedStrings **names);
10989
10990    HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)(
10991        IDWriteFontFace7 *This,
10992        DWRITE_FONT_FAMILY_MODEL font_family_model,
10993        IDWriteLocalizedStrings **names);
10994
10995    /*** IDWriteFontFace7 methods ***/
10996    DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)(
10997        IDWriteFontFace7 *This,
10998        DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format);
10999
11000    HRESULT (STDMETHODCALLTYPE *CreatePaintReader)(
11001        IDWriteFontFace7 *This,
11002        DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,
11003        DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,
11004        IDWritePaintReader **paint_reader);
11005
11006    END_INTERFACE
11007} IDWriteFontFace7Vtbl;
11008
11009interface IDWriteFontFace7 {
11010    CONST_VTBL IDWriteFontFace7Vtbl* lpVtbl;
11011};
11012
11013#ifdef COBJMACROS
11014#ifndef WIDL_C_INLINE_WRAPPERS
11015/*** IUnknown methods ***/
11016#define IDWriteFontFace7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11017#define IDWriteFontFace7_AddRef(This) (This)->lpVtbl->AddRef(This)
11018#define IDWriteFontFace7_Release(This) (This)->lpVtbl->Release(This)
11019/*** IDWriteFontFace methods ***/
11020#define IDWriteFontFace7_GetType(This) (This)->lpVtbl->GetType(This)
11021#define IDWriteFontFace7_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles)
11022#define IDWriteFontFace7_GetIndex(This) (This)->lpVtbl->GetIndex(This)
11023#define IDWriteFontFace7_GetSimulations(This) (This)->lpVtbl->GetSimulations(This)
11024#define IDWriteFontFace7_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This)
11025#define IDWriteFontFace7_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This)
11026#define IDWriteFontFace7_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways)
11027#define IDWriteFontFace7_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices)
11028#define IDWriteFontFace7_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists)
11029#define IDWriteFontFace7_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context)
11030#define IDWriteFontFace7_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink)
11031#define IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways)
11032/*** IDWriteFontFace1 methods ***/
11033#define IDWriteFontFace7_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics)
11034#define IDWriteFontFace7_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics)
11035#define IDWriteFontFace7_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics)
11036#define IDWriteFontFace7_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count)
11037#define IDWriteFontFace7_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This)
11038#define IDWriteFontFace7_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways)
11039#define IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances)
11040#define IDWriteFontFace7_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments)
11041#define IDWriteFontFace7_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This)
11042#define IDWriteFontFace7_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices)
11043#define IDWriteFontFace7_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This)
11044/*** IDWriteFontFace2 methods ***/
11045#define IDWriteFontFace7_IsColorFont(This) (This)->lpVtbl->IsColorFont(This)
11046#define IDWriteFontFace7_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This)
11047#define IDWriteFontFace7_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This)
11048#define IDWriteFontFace7_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries)
11049/*** IDWriteFontFace3 methods ***/
11050#define IDWriteFontFace7_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference)
11051#define IDWriteFontFace7_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose)
11052#define IDWriteFontFace7_GetWeight(This) (This)->lpVtbl->GetWeight(This)
11053#define IDWriteFontFace7_GetStretch(This) (This)->lpVtbl->GetStretch(This)
11054#define IDWriteFontFace7_GetStyle(This) (This)->lpVtbl->GetStyle(This)
11055#define IDWriteFontFace7_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists)
11056#define IDWriteFontFace7_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character)
11057#define IDWriteFontFace7_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode)
11058#define IDWriteFontFace7_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character)
11059#define IDWriteFontFace7_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph)
11060#define IDWriteFontFace7_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
11061#define IDWriteFontFace7_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
11062/*** IDWriteFontFace4 methods ***/
11063#define IDWriteFontFace7_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats)
11064#define IDWriteFontFace7_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
11065#define IDWriteFontFace7_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
11066#define IDWriteFontFace7_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
11067/*** IDWriteFontFace5 methods ***/
11068#define IDWriteFontFace7_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This)
11069#define IDWriteFontFace7_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count)
11070#define IDWriteFontFace7_HasVariations(This) (This)->lpVtbl->HasVariations(This)
11071#define IDWriteFontFace7_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource)
11072#define IDWriteFontFace7_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface)
11073/*** IDWriteFontFace6 methods ***/
11074#define IDWriteFontFace7_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names)
11075#define IDWriteFontFace7_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names)
11076/*** IDWriteFontFace7 methods ***/
11077#define IDWriteFontFace7_GetPaintFeatureLevel(This,glyph_image_format) (This)->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format)
11078#define IDWriteFontFace7_CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) (This)->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader)
11079#else
11080/*** IUnknown methods ***/
11081static inline HRESULT IDWriteFontFace7_QueryInterface(IDWriteFontFace7* This,REFIID riid,void **ppvObject) {
11082    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11083}
11084static inline ULONG IDWriteFontFace7_AddRef(IDWriteFontFace7* This) {
11085    return This->lpVtbl->AddRef(This);
11086}
11087static inline ULONG IDWriteFontFace7_Release(IDWriteFontFace7* This) {
11088    return This->lpVtbl->Release(This);
11089}
11090/*** IDWriteFontFace methods ***/
11091static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace7_GetType(IDWriteFontFace7* This) {
11092    return This->lpVtbl->GetType(This);
11093}
11094static inline HRESULT IDWriteFontFace7_GetFiles(IDWriteFontFace7* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) {
11095    return This->lpVtbl->GetFiles(This,number_of_files,fontfiles);
11096}
11097static inline UINT32 IDWriteFontFace7_GetIndex(IDWriteFontFace7* This) {
11098    return This->lpVtbl->GetIndex(This);
11099}
11100static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace7_GetSimulations(IDWriteFontFace7* This) {
11101    return This->lpVtbl->GetSimulations(This);
11102}
11103static inline WINBOOL IDWriteFontFace7_IsSymbolFont(IDWriteFontFace7* This) {
11104    return This->lpVtbl->IsSymbolFont(This);
11105}
11106static inline UINT16 IDWriteFontFace7_GetGlyphCount(IDWriteFontFace7* This) {
11107    return This->lpVtbl->GetGlyphCount(This);
11108}
11109static inline HRESULT IDWriteFontFace7_GetDesignGlyphMetrics(IDWriteFontFace7* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
11110    return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways);
11111}
11112static inline HRESULT IDWriteFontFace7_GetGlyphIndices(IDWriteFontFace7* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) {
11113    return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices);
11114}
11115static inline HRESULT IDWriteFontFace7_TryGetFontTable(IDWriteFontFace7* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) {
11116    return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists);
11117}
11118static inline void IDWriteFontFace7_ReleaseFontTable(IDWriteFontFace7* This,void *table_context) {
11119    This->lpVtbl->ReleaseFontTable(This,table_context);
11120}
11121static inline HRESULT IDWriteFontFace7_GetGlyphRunOutline(IDWriteFontFace7* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) {
11122    return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink);
11123}
11124static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(IDWriteFontFace7* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) {
11125    return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways);
11126}
11127/*** IDWriteFontFace1 methods ***/
11128static inline void IDWriteFontFace7_GetMetrics(IDWriteFontFace7* This,DWRITE_FONT_METRICS1 *metrics) {
11129    This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics);
11130}
11131static inline HRESULT IDWriteFontFace7_GetGdiCompatibleMetrics(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) {
11132    return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics);
11133}
11134static inline void IDWriteFontFace7_GetCaretMetrics(IDWriteFontFace7* This,DWRITE_CARET_METRICS *metrics) {
11135    This->lpVtbl->GetCaretMetrics(This,metrics);
11136}
11137static inline HRESULT IDWriteFontFace7_GetUnicodeRanges(IDWriteFontFace7* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) {
11138    return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count);
11139}
11140static inline WINBOOL IDWriteFontFace7_IsMonospacedFont(IDWriteFontFace7* This) {
11141    return This->lpVtbl->IsMonospacedFont(This);
11142}
11143static inline HRESULT IDWriteFontFace7_GetDesignGlyphAdvances(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) {
11144    return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways);
11145}
11146static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) {
11147    return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances);
11148}
11149static inline HRESULT IDWriteFontFace7_GetKerningPairAdjustments(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) {
11150    return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments);
11151}
11152static inline WINBOOL IDWriteFontFace7_HasKerningPairs(IDWriteFontFace7* This) {
11153    return This->lpVtbl->HasKerningPairs(This);
11154}
11155static inline HRESULT IDWriteFontFace7_GetVerticalGlyphVariants(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) {
11156    return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices);
11157}
11158static inline WINBOOL IDWriteFontFace7_HasVerticalGlyphVariants(IDWriteFontFace7* This) {
11159    return This->lpVtbl->HasVerticalGlyphVariants(This);
11160}
11161/*** IDWriteFontFace2 methods ***/
11162static inline WINBOOL IDWriteFontFace7_IsColorFont(IDWriteFontFace7* This) {
11163    return This->lpVtbl->IsColorFont(This);
11164}
11165static inline UINT32 IDWriteFontFace7_GetColorPaletteCount(IDWriteFontFace7* This) {
11166    return This->lpVtbl->GetColorPaletteCount(This);
11167}
11168static inline UINT32 IDWriteFontFace7_GetPaletteEntryCount(IDWriteFontFace7* This) {
11169    return This->lpVtbl->GetPaletteEntryCount(This);
11170}
11171static inline HRESULT IDWriteFontFace7_GetPaletteEntries(IDWriteFontFace7* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) {
11172    return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries);
11173}
11174/*** IDWriteFontFace3 methods ***/
11175static inline HRESULT IDWriteFontFace7_GetFontFaceReference(IDWriteFontFace7* This,IDWriteFontFaceReference **reference) {
11176    return This->lpVtbl->GetFontFaceReference(This,reference);
11177}
11178static inline void IDWriteFontFace7_GetPanose(IDWriteFontFace7* This,DWRITE_PANOSE *panose) {
11179    This->lpVtbl->GetPanose(This,panose);
11180}
11181static inline DWRITE_FONT_WEIGHT IDWriteFontFace7_GetWeight(IDWriteFontFace7* This) {
11182    return This->lpVtbl->GetWeight(This);
11183}
11184static inline DWRITE_FONT_STRETCH IDWriteFontFace7_GetStretch(IDWriteFontFace7* This) {
11185    return This->lpVtbl->GetStretch(This);
11186}
11187static inline DWRITE_FONT_STYLE IDWriteFontFace7_GetStyle(IDWriteFontFace7* This) {
11188    return This->lpVtbl->GetStyle(This);
11189}
11190static inline HRESULT IDWriteFontFace7_GetInformationalStrings(IDWriteFontFace7* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) {
11191    return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists);
11192}
11193static inline WINBOOL IDWriteFontFace7_HasCharacter(IDWriteFontFace7* This,UINT32 character) {
11194    return This->lpVtbl->HasCharacter(This,character);
11195}
11196static inline HRESULT IDWriteFontFace7_GetRecommendedRenderingMode(IDWriteFontFace7* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) {
11197    return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode);
11198}
11199static inline WINBOOL IDWriteFontFace7_IsCharacterLocal(IDWriteFontFace7* This,UINT32 character) {
11200    return This->lpVtbl->IsCharacterLocal(This,character);
11201}
11202static inline WINBOOL IDWriteFontFace7_IsGlyphLocal(IDWriteFontFace7* This,UINT16 glyph) {
11203    return This->lpVtbl->IsGlyphLocal(This,glyph);
11204}
11205static inline HRESULT IDWriteFontFace7_AreCharactersLocal(IDWriteFontFace7* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
11206    return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local);
11207}
11208static inline HRESULT IDWriteFontFace7_AreGlyphsLocal(IDWriteFontFace7* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) {
11209    return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
11210}
11211/*** IDWriteFontFace4 methods ***/
11212static inline HRESULT IDWriteFontFace7_GetGlyphImageFormats_(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
11213    return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
11214}
11215static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace7_GetGlyphImageFormats(IDWriteFontFace7* This) {
11216    return This->lpVtbl->GetGlyphImageFormats(This);
11217}
11218static inline HRESULT IDWriteFontFace7_GetGlyphImageData(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) {
11219    return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context);
11220}
11221static inline void IDWriteFontFace7_ReleaseGlyphImageData(IDWriteFontFace7* This,void *context) {
11222    This->lpVtbl->ReleaseGlyphImageData(This,context);
11223}
11224/*** IDWriteFontFace5 methods ***/
11225static inline UINT32 IDWriteFontFace7_GetFontAxisValueCount(IDWriteFontFace7* This) {
11226    return This->lpVtbl->GetFontAxisValueCount(This);
11227}
11228static inline HRESULT IDWriteFontFace7_GetFontAxisValues(IDWriteFontFace7* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) {
11229    return This->lpVtbl->GetFontAxisValues(This,values,value_count);
11230}
11231static inline WINBOOL IDWriteFontFace7_HasVariations(IDWriteFontFace7* This) {
11232    return This->lpVtbl->HasVariations(This);
11233}
11234static inline HRESULT IDWriteFontFace7_GetFontResource(IDWriteFontFace7* This,IDWriteFontResource **resource) {
11235    return This->lpVtbl->GetFontResource(This,resource);
11236}
11237static inline WINBOOL IDWriteFontFace7_Equals(IDWriteFontFace7* This,IDWriteFontFace *fontface) {
11238    return This->lpVtbl->Equals(This,fontface);
11239}
11240/*** IDWriteFontFace6 methods ***/
11241static inline HRESULT IDWriteFontFace7_GetFamilyNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
11242    return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names);
11243}
11244static inline HRESULT IDWriteFontFace7_GetFaceNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) {
11245    return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names);
11246}
11247/*** IDWriteFontFace7 methods ***/
11248static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteFontFace7_GetPaintFeatureLevel(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) {
11249    return This->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format);
11250}
11251static inline HRESULT IDWriteFontFace7_CreatePaintReader(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,IDWritePaintReader **paint_reader) {
11252    return This->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader);
11253}
11254#endif
11255#endif
11256
11257#endif
11258
11259
11260#endif  /* __IDWriteFontFace7_INTERFACE_DEFINED__ */
11261
11262typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1;
11263struct DWRITE_COLOR_GLYPH_RUN1
11264{
11265    DWRITE_GLYPH_RUN glyphRun;
11266    DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;
11267    FLOAT baselineOriginX;
11268    FLOAT baselineOriginY;
11269    DWRITE_COLOR_F runColor;
11270    UINT16 paletteIndex;
11271#ifdef _WIN64
11272    UINT32 _pad;
11273#endif
11274    DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat;
11275    DWRITE_MEASURING_MODE measuringMode;
11276};
11277/*****************************************************************************
11278 * IDWriteColorGlyphRunEnumerator1 interface
11279 */
11280#ifndef __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__
11281#define __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__
11282
11283DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35);
11284#if defined(__cplusplus) && !defined(CINTERFACE)
11285MIDL_INTERFACE("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35")
11286IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator
11287{
11288    virtual HRESULT STDMETHODCALLTYPE GetCurrentRun(
11289        const DWRITE_COLOR_GLYPH_RUN1 **run) = 0;
11290
11291};
11292#ifdef __CRT_UUID_DECL
11293__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35)
11294#endif
11295#else
11296typedef struct IDWriteColorGlyphRunEnumerator1Vtbl {
11297    BEGIN_INTERFACE
11298
11299    /*** IUnknown methods ***/
11300    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11301        IDWriteColorGlyphRunEnumerator1 *This,
11302        REFIID riid,
11303        void **ppvObject);
11304
11305    ULONG (STDMETHODCALLTYPE *AddRef)(
11306        IDWriteColorGlyphRunEnumerator1 *This);
11307
11308    ULONG (STDMETHODCALLTYPE *Release)(
11309        IDWriteColorGlyphRunEnumerator1 *This);
11310
11311    /*** IDWriteColorGlyphRunEnumerator methods ***/
11312    HRESULT (STDMETHODCALLTYPE *MoveNext)(
11313        IDWriteColorGlyphRunEnumerator1 *This,
11314        WINBOOL *hasRun);
11315
11316    HRESULT (STDMETHODCALLTYPE *GetCurrentRun)(
11317        IDWriteColorGlyphRunEnumerator1 *This,
11318        const DWRITE_COLOR_GLYPH_RUN **run);
11319
11320    /*** IDWriteColorGlyphRunEnumerator1 methods ***/
11321    HRESULT (STDMETHODCALLTYPE *IDWriteColorGlyphRunEnumerator1_GetCurrentRun)(
11322        IDWriteColorGlyphRunEnumerator1 *This,
11323        const DWRITE_COLOR_GLYPH_RUN1 **run);
11324
11325    END_INTERFACE
11326} IDWriteColorGlyphRunEnumerator1Vtbl;
11327
11328interface IDWriteColorGlyphRunEnumerator1 {
11329    CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl;
11330};
11331
11332#ifdef COBJMACROS
11333#ifndef WIDL_C_INLINE_WRAPPERS
11334/*** IUnknown methods ***/
11335#define IDWriteColorGlyphRunEnumerator1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11336#define IDWriteColorGlyphRunEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This)
11337#define IDWriteColorGlyphRunEnumerator1_Release(This) (This)->lpVtbl->Release(This)
11338/*** IDWriteColorGlyphRunEnumerator methods ***/
11339#define IDWriteColorGlyphRunEnumerator1_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun)
11340/*** IDWriteColorGlyphRunEnumerator1 methods ***/
11341#define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run)
11342#else
11343/*** IUnknown methods ***/
11344static inline HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This,REFIID riid,void **ppvObject) {
11345    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11346}
11347static inline ULONG IDWriteColorGlyphRunEnumerator1_AddRef(IDWriteColorGlyphRunEnumerator1* This) {
11348    return This->lpVtbl->AddRef(This);
11349}
11350static inline ULONG IDWriteColorGlyphRunEnumerator1_Release(IDWriteColorGlyphRunEnumerator1* This) {
11351    return This->lpVtbl->Release(This);
11352}
11353/*** IDWriteColorGlyphRunEnumerator methods ***/
11354static inline HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This,WINBOOL *hasRun) {
11355    return This->lpVtbl->MoveNext(This,hasRun);
11356}
11357/*** IDWriteColorGlyphRunEnumerator1 methods ***/
11358static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This,const DWRITE_COLOR_GLYPH_RUN1 **run) {
11359    return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run);
11360}
11361#endif
11362#endif
11363
11364#endif
11365
11366
11367#endif  /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */
11368
11369/*****************************************************************************
11370 * IDWriteFactory4 interface
11371 */
11372#ifndef __IDWriteFactory4_INTERFACE_DEFINED__
11373#define __IDWriteFactory4_INTERFACE_DEFINED__
11374
11375DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56);
11376#if defined(__cplusplus) && !defined(CINTERFACE)
11377MIDL_INTERFACE("4b0b5bd3-0797-4549-8ac5-fe915cc53856")
11378IDWriteFactory4 : public IDWriteFactory3
11379{
11380    virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
11381        D2D1_POINT_2F baseline_origin,
11382        const DWRITE_GLYPH_RUN *run,
11383        const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
11384        DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
11385        DWRITE_MEASURING_MODE measuring_mode,
11386        const DWRITE_MATRIX *transform,
11387        UINT32 palette,
11388        IDWriteColorGlyphRunEnumerator1 **layers) = 0;
11389
11390    virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_(
11391        const DWRITE_GLYPH_RUN *run,
11392        D2D1_POINT_2F baseline_origin,
11393        D2D1_POINT_2F *origins) = 0;
11394
11395    virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins(
11396        const DWRITE_GLYPH_RUN *run,
11397        DWRITE_MEASURING_MODE measuring_mode,
11398        D2D1_POINT_2F baseline_origin,
11399        const DWRITE_MATRIX *transform,
11400        D2D1_POINT_2F *origins) = 0;
11401
11402};
11403#ifdef __CRT_UUID_DECL
11404__CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56)
11405#endif
11406#else
11407typedef struct IDWriteFactory4Vtbl {
11408    BEGIN_INTERFACE
11409
11410    /*** IUnknown methods ***/
11411    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11412        IDWriteFactory4 *This,
11413        REFIID riid,
11414        void **ppvObject);
11415
11416    ULONG (STDMETHODCALLTYPE *AddRef)(
11417        IDWriteFactory4 *This);
11418
11419    ULONG (STDMETHODCALLTYPE *Release)(
11420        IDWriteFactory4 *This);
11421
11422    /*** IDWriteFactory methods ***/
11423    HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
11424        IDWriteFactory4 *This,
11425        IDWriteFontCollection **collection,
11426        WINBOOL check_for_updates);
11427
11428    HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
11429        IDWriteFactory4 *This,
11430        IDWriteFontCollectionLoader *loader,
11431        const void *key,
11432        UINT32 key_size,
11433        IDWriteFontCollection **collection);
11434
11435    HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
11436        IDWriteFactory4 *This,
11437        IDWriteFontCollectionLoader *loader);
11438
11439    HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
11440        IDWriteFactory4 *This,
11441        IDWriteFontCollectionLoader *loader);
11442
11443    HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
11444        IDWriteFactory4 *This,
11445        const WCHAR *path,
11446        const FILETIME *writetime,
11447        IDWriteFontFile **font_file);
11448
11449    HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
11450        IDWriteFactory4 *This,
11451        const void *reference_key,
11452        UINT32 key_size,
11453        IDWriteFontFileLoader *loader,
11454        IDWriteFontFile **font_file);
11455
11456    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
11457        IDWriteFactory4 *This,
11458        DWRITE_FONT_FACE_TYPE facetype,
11459        UINT32 files_number,
11460        IDWriteFontFile *const *font_files,
11461        UINT32 index,
11462        DWRITE_FONT_SIMULATIONS sim_flags,
11463        IDWriteFontFace **font_face);
11464
11465    HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
11466        IDWriteFactory4 *This,
11467        IDWriteRenderingParams **params);
11468
11469    HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
11470        IDWriteFactory4 *This,
11471        HMONITOR monitor,
11472        IDWriteRenderingParams **params);
11473
11474    HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
11475        IDWriteFactory4 *This,
11476        FLOAT gamma,
11477        FLOAT enhancedContrast,
11478        FLOAT cleartype_level,
11479        DWRITE_PIXEL_GEOMETRY geometry,
11480        DWRITE_RENDERING_MODE mode,
11481        IDWriteRenderingParams **params);
11482
11483    HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
11484        IDWriteFactory4 *This,
11485        IDWriteFontFileLoader *loader);
11486
11487    HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
11488        IDWriteFactory4 *This,
11489        IDWriteFontFileLoader *loader);
11490
11491    HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
11492        IDWriteFactory4 *This,
11493        const WCHAR *family_name,
11494        IDWriteFontCollection *collection,
11495        DWRITE_FONT_WEIGHT weight,
11496        DWRITE_FONT_STYLE style,
11497        DWRITE_FONT_STRETCH stretch,
11498        FLOAT size,
11499        const WCHAR *locale,
11500        IDWriteTextFormat **format);
11501
11502    HRESULT (STDMETHODCALLTYPE *CreateTypography)(
11503        IDWriteFactory4 *This,
11504        IDWriteTypography **typography);
11505
11506    HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
11507        IDWriteFactory4 *This,
11508        IDWriteGdiInterop **gdi_interop);
11509
11510    HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
11511        IDWriteFactory4 *This,
11512        const WCHAR *string,
11513        UINT32 len,
11514        IDWriteTextFormat *format,
11515        FLOAT max_width,
11516        FLOAT max_height,
11517        IDWriteTextLayout **layout);
11518
11519    HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
11520        IDWriteFactory4 *This,
11521        const WCHAR *string,
11522        UINT32 len,
11523        IDWriteTextFormat *format,
11524        FLOAT layout_width,
11525        FLOAT layout_height,
11526        FLOAT pixels_per_dip,
11527        const DWRITE_MATRIX *transform,
11528        WINBOOL use_gdi_natural,
11529        IDWriteTextLayout **layout);
11530
11531    HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
11532        IDWriteFactory4 *This,
11533        IDWriteTextFormat *format,
11534        IDWriteInlineObject **trimming_sign);
11535
11536    HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
11537        IDWriteFactory4 *This,
11538        IDWriteTextAnalyzer **analyzer);
11539
11540    HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
11541        IDWriteFactory4 *This,
11542        DWRITE_NUMBER_SUBSTITUTION_METHOD method,
11543        const WCHAR *locale,
11544        WINBOOL ignore_user_override,
11545        IDWriteNumberSubstitution **substitution);
11546
11547    HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
11548        IDWriteFactory4 *This,
11549        const DWRITE_GLYPH_RUN *glyph_run,
11550        FLOAT pixels_per_dip,
11551        const DWRITE_MATRIX *transform,
11552        DWRITE_RENDERING_MODE rendering_mode,
11553        DWRITE_MEASURING_MODE measuring_mode,
11554        FLOAT baseline_x,
11555        FLOAT baseline_y,
11556        IDWriteGlyphRunAnalysis **analysis);
11557
11558    /*** IDWriteFactory1 methods ***/
11559    HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
11560        IDWriteFactory4 *This,
11561        IDWriteFontCollection **collection,
11562        WINBOOL check_for_updates);
11563
11564    HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
11565        IDWriteFactory4 *This,
11566        FLOAT gamma,
11567        FLOAT enhcontrast,
11568        FLOAT enhcontrast_grayscale,
11569        FLOAT cleartype_level,
11570        DWRITE_PIXEL_GEOMETRY geometry,
11571        DWRITE_RENDERING_MODE mode,
11572        IDWriteRenderingParams1 **params);
11573
11574    /*** IDWriteFactory2 methods ***/
11575    HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
11576        IDWriteFactory4 *This,
11577        IDWriteFontFallback **fallback);
11578
11579    HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
11580        IDWriteFactory4 *This,
11581        IDWriteFontFallbackBuilder **fallbackbuilder);
11582
11583    HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
11584        IDWriteFactory4 *This,
11585        FLOAT originX,
11586        FLOAT originY,
11587        const DWRITE_GLYPH_RUN *run,
11588        const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
11589        DWRITE_MEASURING_MODE mode,
11590        const DWRITE_MATRIX *transform,
11591        UINT32 palette_index,
11592        IDWriteColorGlyphRunEnumerator **colorlayers);
11593
11594    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
11595        IDWriteFactory4 *This,
11596        FLOAT gamma,
11597        FLOAT contrast,
11598        FLOAT grayscalecontrast,
11599        FLOAT cleartypeLevel,
11600        DWRITE_PIXEL_GEOMETRY pixelGeometry,
11601        DWRITE_RENDERING_MODE renderingMode,
11602        DWRITE_GRID_FIT_MODE gridFitMode,
11603        IDWriteRenderingParams2 **params);
11604
11605    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
11606        IDWriteFactory4 *This,
11607        const DWRITE_GLYPH_RUN *run,
11608        const DWRITE_MATRIX *transform,
11609        DWRITE_RENDERING_MODE renderingMode,
11610        DWRITE_MEASURING_MODE measuringMode,
11611        DWRITE_GRID_FIT_MODE gridFitMode,
11612        DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
11613        FLOAT originX,
11614        FLOAT originY,
11615        IDWriteGlyphRunAnalysis **analysis);
11616
11617    /*** IDWriteFactory3 methods ***/
11618    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
11619        IDWriteFactory4 *This,
11620        const DWRITE_GLYPH_RUN *run,
11621        const DWRITE_MATRIX *transform,
11622        DWRITE_RENDERING_MODE1 rendering_mode,
11623        DWRITE_MEASURING_MODE measuring_mode,
11624        DWRITE_GRID_FIT_MODE gridfit_mode,
11625        DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
11626        FLOAT origin_x,
11627        FLOAT origin_y,
11628        IDWriteGlyphRunAnalysis **analysis);
11629
11630    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
11631        IDWriteFactory4 *This,
11632        FLOAT gamma,
11633        FLOAT enhanced_contrast,
11634        FLOAT grayscale_enhanced_contrast,
11635        FLOAT cleartype_level,
11636        DWRITE_PIXEL_GEOMETRY pixel_geometry,
11637        DWRITE_RENDERING_MODE1 rendering_mode,
11638        DWRITE_GRID_FIT_MODE gridfit_mode,
11639        IDWriteRenderingParams3 **params);
11640
11641    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
11642        IDWriteFactory4 *This,
11643        IDWriteFontFile *file,
11644        UINT32 index,
11645        DWRITE_FONT_SIMULATIONS simulations,
11646        IDWriteFontFaceReference **reference);
11647
11648    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
11649        IDWriteFactory4 *This,
11650        const WCHAR *path,
11651        const FILETIME *writetime,
11652        UINT32 index,
11653        DWRITE_FONT_SIMULATIONS simulations,
11654        IDWriteFontFaceReference **reference);
11655
11656    HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
11657        IDWriteFactory4 *This,
11658        IDWriteFontSet **fontset);
11659
11660    HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
11661        IDWriteFactory4 *This,
11662        IDWriteFontSetBuilder **builder);
11663
11664    HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
11665        IDWriteFactory4 *This,
11666        IDWriteFontSet *fontset,
11667        IDWriteFontCollection1 **collection);
11668
11669    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
11670        IDWriteFactory4 *This,
11671        WINBOOL include_downloadable,
11672        IDWriteFontCollection1 **collection,
11673        WINBOOL check_for_updates);
11674
11675    HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
11676        IDWriteFactory4 *This,
11677        IDWriteFontDownloadQueue **queue);
11678
11679    /*** IDWriteFactory4 methods ***/
11680    HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
11681        IDWriteFactory4 *This,
11682        D2D1_POINT_2F baseline_origin,
11683        const DWRITE_GLYPH_RUN *run,
11684        const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
11685        DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
11686        DWRITE_MEASURING_MODE measuring_mode,
11687        const DWRITE_MATRIX *transform,
11688        UINT32 palette,
11689        IDWriteColorGlyphRunEnumerator1 **layers);
11690
11691    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
11692        IDWriteFactory4 *This,
11693        const DWRITE_GLYPH_RUN *run,
11694        D2D1_POINT_2F baseline_origin,
11695        D2D1_POINT_2F *origins);
11696
11697    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
11698        IDWriteFactory4 *This,
11699        const DWRITE_GLYPH_RUN *run,
11700        DWRITE_MEASURING_MODE measuring_mode,
11701        D2D1_POINT_2F baseline_origin,
11702        const DWRITE_MATRIX *transform,
11703        D2D1_POINT_2F *origins);
11704
11705    END_INTERFACE
11706} IDWriteFactory4Vtbl;
11707
11708interface IDWriteFactory4 {
11709    CONST_VTBL IDWriteFactory4Vtbl* lpVtbl;
11710};
11711
11712#ifdef COBJMACROS
11713#ifndef WIDL_C_INLINE_WRAPPERS
11714/*** IUnknown methods ***/
11715#define IDWriteFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11716#define IDWriteFactory4_AddRef(This) (This)->lpVtbl->AddRef(This)
11717#define IDWriteFactory4_Release(This) (This)->lpVtbl->Release(This)
11718/*** IDWriteFactory methods ***/
11719#define IDWriteFactory4_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
11720#define IDWriteFactory4_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
11721#define IDWriteFactory4_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
11722#define IDWriteFactory4_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
11723#define IDWriteFactory4_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
11724#define IDWriteFactory4_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
11725#define IDWriteFactory4_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
11726#define IDWriteFactory4_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
11727#define IDWriteFactory4_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
11728#define IDWriteFactory4_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
11729#define IDWriteFactory4_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
11730#define IDWriteFactory4_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
11731#define IDWriteFactory4_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
11732#define IDWriteFactory4_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
11733#define IDWriteFactory4_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
11734#define IDWriteFactory4_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
11735#define IDWriteFactory4_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
11736#define IDWriteFactory4_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
11737/*** IDWriteFactory1 methods ***/
11738#define IDWriteFactory4_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
11739/*** IDWriteFactory2 methods ***/
11740#define IDWriteFactory4_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
11741#define IDWriteFactory4_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
11742/*** IDWriteFactory3 methods ***/
11743#define IDWriteFactory4_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
11744#define IDWriteFactory4_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
11745#define IDWriteFactory4_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
11746#define IDWriteFactory4_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
11747#define IDWriteFactory4_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
11748#define IDWriteFactory4_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder)
11749#define IDWriteFactory4_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
11750#define IDWriteFactory4_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
11751#define IDWriteFactory4_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
11752/*** IDWriteFactory4 methods ***/
11753#define IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
11754#define IDWriteFactory4_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
11755#define IDWriteFactory4_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
11756#else
11757/*** IUnknown methods ***/
11758static inline HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This,REFIID riid,void **ppvObject) {
11759    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11760}
11761static inline ULONG IDWriteFactory4_AddRef(IDWriteFactory4* This) {
11762    return This->lpVtbl->AddRef(This);
11763}
11764static inline ULONG IDWriteFactory4_Release(IDWriteFactory4* This) {
11765    return This->lpVtbl->Release(This);
11766}
11767/*** IDWriteFactory methods ***/
11768static inline HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
11769    return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
11770}
11771static inline HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) {
11772    return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
11773}
11774static inline HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) {
11775    return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
11776}
11777static inline HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
11778    return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
11779}
11780static inline HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
11781    return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
11782}
11783static inline HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
11784    return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
11785}
11786static inline HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This,IDWriteRenderingParams **params) {
11787    return This->lpVtbl->CreateRenderingParams(This,params);
11788}
11789static inline HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This,HMONITOR monitor,IDWriteRenderingParams **params) {
11790    return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
11791}
11792static inline HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) {
11793    return This->lpVtbl->RegisterFontFileLoader(This,loader);
11794}
11795static inline HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) {
11796    return This->lpVtbl->UnregisterFontFileLoader(This,loader);
11797}
11798static inline HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
11799    return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
11800}
11801static inline HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This,IDWriteTypography **typography) {
11802    return This->lpVtbl->CreateTypography(This,typography);
11803}
11804static inline HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This,IDWriteGdiInterop **gdi_interop) {
11805    return This->lpVtbl->GetGdiInterop(This,gdi_interop);
11806}
11807static inline HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
11808    return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
11809}
11810static inline HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
11811    return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
11812}
11813static inline HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
11814    return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
11815}
11816static inline HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This,IDWriteTextAnalyzer **analyzer) {
11817    return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
11818}
11819static inline HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
11820    return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
11821}
11822/*** IDWriteFactory1 methods ***/
11823static inline HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
11824    return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
11825}
11826/*** IDWriteFactory2 methods ***/
11827static inline HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This,IDWriteFontFallback **fallback) {
11828    return This->lpVtbl->GetSystemFontFallback(This,fallback);
11829}
11830static inline HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
11831    return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
11832}
11833/*** IDWriteFactory3 methods ***/
11834static inline HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
11835    return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
11836}
11837static inline HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
11838    return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
11839}
11840static inline HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
11841    return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
11842}
11843static inline HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
11844    return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
11845}
11846static inline HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This,IDWriteFontSet **fontset) {
11847    return This->lpVtbl->GetSystemFontSet(This,fontset);
11848}
11849static inline HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This,IDWriteFontSetBuilder **builder) {
11850    return This->lpVtbl->CreateFontSetBuilder(This,builder);
11851}
11852static inline HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
11853    return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
11854}
11855static inline HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
11856    return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
11857}
11858static inline HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This,IDWriteFontDownloadQueue **queue) {
11859    return This->lpVtbl->GetFontDownloadQueue(This,queue);
11860}
11861/*** IDWriteFactory4 methods ***/
11862static inline HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
11863    return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
11864}
11865static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
11866    return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
11867}
11868static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
11869    return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
11870}
11871#endif
11872#endif
11873
11874#endif
11875
11876
11877#endif  /* __IDWriteFactory4_INTERFACE_DEFINED__ */
11878
11879/*****************************************************************************
11880 * IDWriteAsyncResult interface
11881 */
11882#ifndef __IDWriteAsyncResult_INTERFACE_DEFINED__
11883#define __IDWriteAsyncResult_INTERFACE_DEFINED__
11884
11885DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2);
11886#if defined(__cplusplus) && !defined(CINTERFACE)
11887MIDL_INTERFACE("ce25f8fd-863b-4d13-9651-c1f88dc73fe2")
11888IDWriteAsyncResult : public IUnknown
11889{
11890    virtual HANDLE STDMETHODCALLTYPE GetWaitHandle(
11891        ) = 0;
11892
11893    virtual HRESULT STDMETHODCALLTYPE GetResult(
11894        ) = 0;
11895
11896};
11897#ifdef __CRT_UUID_DECL
11898__CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2)
11899#endif
11900#else
11901typedef struct IDWriteAsyncResultVtbl {
11902    BEGIN_INTERFACE
11903
11904    /*** IUnknown methods ***/
11905    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11906        IDWriteAsyncResult *This,
11907        REFIID riid,
11908        void **ppvObject);
11909
11910    ULONG (STDMETHODCALLTYPE *AddRef)(
11911        IDWriteAsyncResult *This);
11912
11913    ULONG (STDMETHODCALLTYPE *Release)(
11914        IDWriteAsyncResult *This);
11915
11916    /*** IDWriteAsyncResult methods ***/
11917    HANDLE (STDMETHODCALLTYPE *GetWaitHandle)(
11918        IDWriteAsyncResult *This);
11919
11920    HRESULT (STDMETHODCALLTYPE *GetResult)(
11921        IDWriteAsyncResult *This);
11922
11923    END_INTERFACE
11924} IDWriteAsyncResultVtbl;
11925
11926interface IDWriteAsyncResult {
11927    CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl;
11928};
11929
11930#ifdef COBJMACROS
11931#ifndef WIDL_C_INLINE_WRAPPERS
11932/*** IUnknown methods ***/
11933#define IDWriteAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11934#define IDWriteAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This)
11935#define IDWriteAsyncResult_Release(This) (This)->lpVtbl->Release(This)
11936/*** IDWriteAsyncResult methods ***/
11937#define IDWriteAsyncResult_GetWaitHandle(This) (This)->lpVtbl->GetWaitHandle(This)
11938#define IDWriteAsyncResult_GetResult(This) (This)->lpVtbl->GetResult(This)
11939#else
11940/*** IUnknown methods ***/
11941static inline HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This,REFIID riid,void **ppvObject) {
11942    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11943}
11944static inline ULONG IDWriteAsyncResult_AddRef(IDWriteAsyncResult* This) {
11945    return This->lpVtbl->AddRef(This);
11946}
11947static inline ULONG IDWriteAsyncResult_Release(IDWriteAsyncResult* This) {
11948    return This->lpVtbl->Release(This);
11949}
11950/*** IDWriteAsyncResult methods ***/
11951static inline HANDLE IDWriteAsyncResult_GetWaitHandle(IDWriteAsyncResult* This) {
11952    return This->lpVtbl->GetWaitHandle(This);
11953}
11954static inline HRESULT IDWriteAsyncResult_GetResult(IDWriteAsyncResult* This) {
11955    return This->lpVtbl->GetResult(This);
11956}
11957#endif
11958#endif
11959
11960#endif
11961
11962
11963#endif  /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */
11964
11965typedef struct DWRITE_FILE_FRAGMENT {
11966    UINT64 fileOffset;
11967    UINT64 fragmentSize;
11968} DWRITE_FILE_FRAGMENT;
11969/*****************************************************************************
11970 * IDWriteRemoteFontFileStream interface
11971 */
11972#ifndef __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__
11973#define __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__
11974
11975DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c);
11976#if defined(__cplusplus) && !defined(CINTERFACE)
11977MIDL_INTERFACE("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c")
11978IDWriteRemoteFontFileStream : public IDWriteFontFileStream
11979{
11980    virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize(
11981        UINT64 *size) = 0;
11982
11983    virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality(
11984        UINT64 offset,
11985        UINT64 size,
11986        WINBOOL *is_local,
11987        UINT64 *partial_size) = 0;
11988
11989    virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality(
11990        ) = 0;
11991
11992    virtual HRESULT STDMETHODCALLTYPE BeginDownload(
11993        const GUID *operation_id,
11994        const DWRITE_FILE_FRAGMENT *fragments,
11995        UINT32 fragment_count,
11996        IDWriteAsyncResult **async_result) = 0;
11997
11998};
11999#ifdef __CRT_UUID_DECL
12000__CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c)
12001#endif
12002#else
12003typedef struct IDWriteRemoteFontFileStreamVtbl {
12004    BEGIN_INTERFACE
12005
12006    /*** IUnknown methods ***/
12007    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12008        IDWriteRemoteFontFileStream *This,
12009        REFIID riid,
12010        void **ppvObject);
12011
12012    ULONG (STDMETHODCALLTYPE *AddRef)(
12013        IDWriteRemoteFontFileStream *This);
12014
12015    ULONG (STDMETHODCALLTYPE *Release)(
12016        IDWriteRemoteFontFileStream *This);
12017
12018    /*** IDWriteFontFileStream methods ***/
12019    HRESULT (STDMETHODCALLTYPE *ReadFileFragment)(
12020        IDWriteRemoteFontFileStream *This,
12021        const void **fragment_start,
12022        UINT64 offset,
12023        UINT64 fragment_size,
12024        void **fragment_context);
12025
12026    void (STDMETHODCALLTYPE *ReleaseFileFragment)(
12027        IDWriteRemoteFontFileStream *This,
12028        void *fragment_context);
12029
12030    HRESULT (STDMETHODCALLTYPE *GetFileSize)(
12031        IDWriteRemoteFontFileStream *This,
12032        UINT64 *size);
12033
12034    HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)(
12035        IDWriteRemoteFontFileStream *This,
12036        UINT64 *last_writetime);
12037
12038    /*** IDWriteRemoteFontFileStream methods ***/
12039    HRESULT (STDMETHODCALLTYPE *GetLocalFileSize)(
12040        IDWriteRemoteFontFileStream *This,
12041        UINT64 *size);
12042
12043    HRESULT (STDMETHODCALLTYPE *GetFileFragmentLocality)(
12044        IDWriteRemoteFontFileStream *This,
12045        UINT64 offset,
12046        UINT64 size,
12047        WINBOOL *is_local,
12048        UINT64 *partial_size);
12049
12050    DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)(
12051        IDWriteRemoteFontFileStream *This);
12052
12053    HRESULT (STDMETHODCALLTYPE *BeginDownload)(
12054        IDWriteRemoteFontFileStream *This,
12055        const GUID *operation_id,
12056        const DWRITE_FILE_FRAGMENT *fragments,
12057        UINT32 fragment_count,
12058        IDWriteAsyncResult **async_result);
12059
12060    END_INTERFACE
12061} IDWriteRemoteFontFileStreamVtbl;
12062
12063interface IDWriteRemoteFontFileStream {
12064    CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl;
12065};
12066
12067#ifdef COBJMACROS
12068#ifndef WIDL_C_INLINE_WRAPPERS
12069/*** IUnknown methods ***/
12070#define IDWriteRemoteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12071#define IDWriteRemoteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12072#define IDWriteRemoteFontFileStream_Release(This) (This)->lpVtbl->Release(This)
12073/*** IDWriteFontFileStream methods ***/
12074#define IDWriteRemoteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context)
12075#define IDWriteRemoteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context)
12076#define IDWriteRemoteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size)
12077#define IDWriteRemoteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime)
12078/*** IDWriteRemoteFontFileStream methods ***/
12079#define IDWriteRemoteFontFileStream_GetLocalFileSize(This,size) (This)->lpVtbl->GetLocalFileSize(This,size)
12080#define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This,offset,size,is_local,partial_size) (This)->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size)
12081#define IDWriteRemoteFontFileStream_GetLocality(This) (This)->lpVtbl->GetLocality(This)
12082#define IDWriteRemoteFontFileStream_BeginDownload(This,operation_id,fragments,fragment_count,async_result) (This)->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result)
12083#else
12084/*** IUnknown methods ***/
12085static inline HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This,REFIID riid,void **ppvObject) {
12086    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12087}
12088static inline ULONG IDWriteRemoteFontFileStream_AddRef(IDWriteRemoteFontFileStream* This) {
12089    return This->lpVtbl->AddRef(This);
12090}
12091static inline ULONG IDWriteRemoteFontFileStream_Release(IDWriteRemoteFontFileStream* This) {
12092    return This->lpVtbl->Release(This);
12093}
12094/*** IDWriteFontFileStream methods ***/
12095static inline HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) {
12096    return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context);
12097}
12098static inline void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This,void *fragment_context) {
12099    This->lpVtbl->ReleaseFileFragment(This,fragment_context);
12100}
12101static inline HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) {
12102    return This->lpVtbl->GetFileSize(This,size);
12103}
12104static inline HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This,UINT64 *last_writetime) {
12105    return This->lpVtbl->GetLastWriteTime(This,last_writetime);
12106}
12107/*** IDWriteRemoteFontFileStream methods ***/
12108static inline HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) {
12109    return This->lpVtbl->GetLocalFileSize(This,size);
12110}
12111static inline HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This,UINT64 offset,UINT64 size,WINBOOL *is_local,UINT64 *partial_size) {
12112    return This->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size);
12113}
12114static inline DWRITE_LOCALITY IDWriteRemoteFontFileStream_GetLocality(IDWriteRemoteFontFileStream* This) {
12115    return This->lpVtbl->GetLocality(This);
12116}
12117static inline HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This,const GUID *operation_id,const DWRITE_FILE_FRAGMENT *fragments,UINT32 fragment_count,IDWriteAsyncResult **async_result) {
12118    return This->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result);
12119}
12120#endif
12121#endif
12122
12123#endif
12124
12125
12126#endif  /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */
12127
12128typedef enum DWRITE_CONTAINER_TYPE {
12129    DWRITE_CONTAINER_TYPE_UNKNOWN = 0,
12130    DWRITE_CONTAINER_TYPE_WOFF = 1,
12131    DWRITE_CONTAINER_TYPE_WOFF2 = 2
12132} DWRITE_CONTAINER_TYPE;
12133/*****************************************************************************
12134 * IDWriteRemoteFontFileLoader interface
12135 */
12136#ifndef __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__
12137#define __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__
12138
12139DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde);
12140#if defined(__cplusplus) && !defined(CINTERFACE)
12141MIDL_INTERFACE("68648c83-6ede-46c0-ab46-20083a887fde")
12142IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader
12143{
12144    virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey(
12145        const void *key,
12146        UINT32 key_size,
12147        IDWriteRemoteFontFileStream **stream) = 0;
12148
12149    virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey(
12150        const void *key,
12151        UINT32 key_size,
12152        DWRITE_LOCALITY *locality) = 0;
12153
12154    virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl(
12155        IDWriteFactory *factory,
12156        const WCHAR *base_url,
12157        const WCHAR *file_url,
12158        IDWriteFontFile **fontfile) = 0;
12159
12160};
12161#ifdef __CRT_UUID_DECL
12162__CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde)
12163#endif
12164#else
12165typedef struct IDWriteRemoteFontFileLoaderVtbl {
12166    BEGIN_INTERFACE
12167
12168    /*** IUnknown methods ***/
12169    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12170        IDWriteRemoteFontFileLoader *This,
12171        REFIID riid,
12172        void **ppvObject);
12173
12174    ULONG (STDMETHODCALLTYPE *AddRef)(
12175        IDWriteRemoteFontFileLoader *This);
12176
12177    ULONG (STDMETHODCALLTYPE *Release)(
12178        IDWriteRemoteFontFileLoader *This);
12179
12180    /*** IDWriteFontFileLoader methods ***/
12181    HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
12182        IDWriteRemoteFontFileLoader *This,
12183        const void *key,
12184        UINT32 key_size,
12185        IDWriteFontFileStream **stream);
12186
12187    /*** IDWriteRemoteFontFileLoader methods ***/
12188    HRESULT (STDMETHODCALLTYPE *CreateRemoteStreamFromKey)(
12189        IDWriteRemoteFontFileLoader *This,
12190        const void *key,
12191        UINT32 key_size,
12192        IDWriteRemoteFontFileStream **stream);
12193
12194    HRESULT (STDMETHODCALLTYPE *GetLocalityFromKey)(
12195        IDWriteRemoteFontFileLoader *This,
12196        const void *key,
12197        UINT32 key_size,
12198        DWRITE_LOCALITY *locality);
12199
12200    HRESULT (STDMETHODCALLTYPE *CreateFontFileReferenceFromUrl)(
12201        IDWriteRemoteFontFileLoader *This,
12202        IDWriteFactory *factory,
12203        const WCHAR *base_url,
12204        const WCHAR *file_url,
12205        IDWriteFontFile **fontfile);
12206
12207    END_INTERFACE
12208} IDWriteRemoteFontFileLoaderVtbl;
12209
12210interface IDWriteRemoteFontFileLoader {
12211    CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl;
12212};
12213
12214#ifdef COBJMACROS
12215#ifndef WIDL_C_INLINE_WRAPPERS
12216/*** IUnknown methods ***/
12217#define IDWriteRemoteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12218#define IDWriteRemoteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
12219#define IDWriteRemoteFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
12220/*** IDWriteFontFileLoader methods ***/
12221#define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
12222/*** IDWriteRemoteFontFileLoader methods ***/
12223#define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream)
12224#define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This,key,key_size,locality) (This)->lpVtbl->GetLocalityFromKey(This,key,key_size,locality)
12225#define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile)
12226#else
12227/*** IUnknown methods ***/
12228static inline HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This,REFIID riid,void **ppvObject) {
12229    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12230}
12231static inline ULONG IDWriteRemoteFontFileLoader_AddRef(IDWriteRemoteFontFileLoader* This) {
12232    return This->lpVtbl->AddRef(This);
12233}
12234static inline ULONG IDWriteRemoteFontFileLoader_Release(IDWriteRemoteFontFileLoader* This) {
12235    return This->lpVtbl->Release(This);
12236}
12237/*** IDWriteFontFileLoader methods ***/
12238static inline HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
12239    return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
12240}
12241/*** IDWriteRemoteFontFileLoader methods ***/
12242static inline HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteRemoteFontFileStream **stream) {
12243    return This->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream);
12244}
12245static inline HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,DWRITE_LOCALITY *locality) {
12246    return This->lpVtbl->GetLocalityFromKey(This,key,key_size,locality);
12247}
12248static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This,IDWriteFactory *factory,const WCHAR *base_url,const WCHAR *file_url,IDWriteFontFile **fontfile) {
12249    return This->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile);
12250}
12251#endif
12252#endif
12253
12254#endif
12255
12256
12257#endif  /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */
12258
12259/*****************************************************************************
12260 * IDWriteInMemoryFontFileLoader interface
12261 */
12262#ifndef __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__
12263#define __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__
12264
12265DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f);
12266#if defined(__cplusplus) && !defined(CINTERFACE)
12267MIDL_INTERFACE("dc102f47-a12d-4b1c-822d-9e117e33043f")
12268IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader
12269{
12270    virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference(
12271        IDWriteFactory *factory,
12272        const void *data,
12273        UINT32 data_size,
12274        IUnknown *owner,
12275        IDWriteFontFile **fontfile) = 0;
12276
12277    virtual UINT32 STDMETHODCALLTYPE GetFileCount(
12278        ) = 0;
12279
12280};
12281#ifdef __CRT_UUID_DECL
12282__CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f)
12283#endif
12284#else
12285typedef struct IDWriteInMemoryFontFileLoaderVtbl {
12286    BEGIN_INTERFACE
12287
12288    /*** IUnknown methods ***/
12289    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12290        IDWriteInMemoryFontFileLoader *This,
12291        REFIID riid,
12292        void **ppvObject);
12293
12294    ULONG (STDMETHODCALLTYPE *AddRef)(
12295        IDWriteInMemoryFontFileLoader *This);
12296
12297    ULONG (STDMETHODCALLTYPE *Release)(
12298        IDWriteInMemoryFontFileLoader *This);
12299
12300    /*** IDWriteFontFileLoader methods ***/
12301    HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)(
12302        IDWriteInMemoryFontFileLoader *This,
12303        const void *key,
12304        UINT32 key_size,
12305        IDWriteFontFileStream **stream);
12306
12307    /*** IDWriteInMemoryFontFileLoader methods ***/
12308    HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileReference)(
12309        IDWriteInMemoryFontFileLoader *This,
12310        IDWriteFactory *factory,
12311        const void *data,
12312        UINT32 data_size,
12313        IUnknown *owner,
12314        IDWriteFontFile **fontfile);
12315
12316    UINT32 (STDMETHODCALLTYPE *GetFileCount)(
12317        IDWriteInMemoryFontFileLoader *This);
12318
12319    END_INTERFACE
12320} IDWriteInMemoryFontFileLoaderVtbl;
12321
12322interface IDWriteInMemoryFontFileLoader {
12323    CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl;
12324};
12325
12326#ifdef COBJMACROS
12327#ifndef WIDL_C_INLINE_WRAPPERS
12328/*** IUnknown methods ***/
12329#define IDWriteInMemoryFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12330#define IDWriteInMemoryFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
12331#define IDWriteInMemoryFontFileLoader_Release(This) (This)->lpVtbl->Release(This)
12332/*** IDWriteFontFileLoader methods ***/
12333#define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream)
12334/*** IDWriteInMemoryFontFileLoader methods ***/
12335#define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile)
12336#define IDWriteInMemoryFontFileLoader_GetFileCount(This) (This)->lpVtbl->GetFileCount(This)
12337#else
12338/*** IUnknown methods ***/
12339static inline HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This,REFIID riid,void **ppvObject) {
12340    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12341}
12342static inline ULONG IDWriteInMemoryFontFileLoader_AddRef(IDWriteInMemoryFontFileLoader* This) {
12343    return This->lpVtbl->AddRef(This);
12344}
12345static inline ULONG IDWriteInMemoryFontFileLoader_Release(IDWriteInMemoryFontFileLoader* This) {
12346    return This->lpVtbl->Release(This);
12347}
12348/*** IDWriteFontFileLoader methods ***/
12349static inline HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) {
12350    return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream);
12351}
12352/*** IDWriteInMemoryFontFileLoader methods ***/
12353static inline HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This,IDWriteFactory *factory,const void *data,UINT32 data_size,IUnknown *owner,IDWriteFontFile **fontfile) {
12354    return This->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile);
12355}
12356static inline UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryFontFileLoader* This) {
12357    return This->lpVtbl->GetFileCount(This);
12358}
12359#endif
12360#endif
12361
12362#endif
12363
12364
12365#endif  /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */
12366
12367/*****************************************************************************
12368 * IDWriteFactory5 interface
12369 */
12370#ifndef __IDWriteFactory5_INTERFACE_DEFINED__
12371#define __IDWriteFactory5_INTERFACE_DEFINED__
12372
12373DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3);
12374#if defined(__cplusplus) && !defined(CINTERFACE)
12375MIDL_INTERFACE("958db99a-be2a-4f09-af7d-65189803d1d3")
12376IDWriteFactory5 : public IDWriteFactory4
12377{
12378    virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
12379        IDWriteFontSetBuilder1 **fontset_builder) = 0;
12380
12381    virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader(
12382        IDWriteInMemoryFontFileLoader **loader) = 0;
12383
12384    virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader(
12385        const WCHAR *referrer_url,
12386        const WCHAR *extra_headers,
12387        IDWriteRemoteFontFileLoader **loader) = 0;
12388
12389    virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType(
12390        const void *data,
12391        UINT32 data_size) = 0;
12392
12393    virtual HRESULT STDMETHODCALLTYPE UnpackFontFile(
12394        DWRITE_CONTAINER_TYPE container_type,
12395        const void *data,
12396        UINT32 data_size,
12397        IDWriteFontFileStream **stream) = 0;
12398
12399};
12400#ifdef __CRT_UUID_DECL
12401__CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3)
12402#endif
12403#else
12404typedef struct IDWriteFactory5Vtbl {
12405    BEGIN_INTERFACE
12406
12407    /*** IUnknown methods ***/
12408    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12409        IDWriteFactory5 *This,
12410        REFIID riid,
12411        void **ppvObject);
12412
12413    ULONG (STDMETHODCALLTYPE *AddRef)(
12414        IDWriteFactory5 *This);
12415
12416    ULONG (STDMETHODCALLTYPE *Release)(
12417        IDWriteFactory5 *This);
12418
12419    /*** IDWriteFactory methods ***/
12420    HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
12421        IDWriteFactory5 *This,
12422        IDWriteFontCollection **collection,
12423        WINBOOL check_for_updates);
12424
12425    HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
12426        IDWriteFactory5 *This,
12427        IDWriteFontCollectionLoader *loader,
12428        const void *key,
12429        UINT32 key_size,
12430        IDWriteFontCollection **collection);
12431
12432    HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
12433        IDWriteFactory5 *This,
12434        IDWriteFontCollectionLoader *loader);
12435
12436    HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
12437        IDWriteFactory5 *This,
12438        IDWriteFontCollectionLoader *loader);
12439
12440    HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
12441        IDWriteFactory5 *This,
12442        const WCHAR *path,
12443        const FILETIME *writetime,
12444        IDWriteFontFile **font_file);
12445
12446    HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
12447        IDWriteFactory5 *This,
12448        const void *reference_key,
12449        UINT32 key_size,
12450        IDWriteFontFileLoader *loader,
12451        IDWriteFontFile **font_file);
12452
12453    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
12454        IDWriteFactory5 *This,
12455        DWRITE_FONT_FACE_TYPE facetype,
12456        UINT32 files_number,
12457        IDWriteFontFile *const *font_files,
12458        UINT32 index,
12459        DWRITE_FONT_SIMULATIONS sim_flags,
12460        IDWriteFontFace **font_face);
12461
12462    HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
12463        IDWriteFactory5 *This,
12464        IDWriteRenderingParams **params);
12465
12466    HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
12467        IDWriteFactory5 *This,
12468        HMONITOR monitor,
12469        IDWriteRenderingParams **params);
12470
12471    HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
12472        IDWriteFactory5 *This,
12473        FLOAT gamma,
12474        FLOAT enhancedContrast,
12475        FLOAT cleartype_level,
12476        DWRITE_PIXEL_GEOMETRY geometry,
12477        DWRITE_RENDERING_MODE mode,
12478        IDWriteRenderingParams **params);
12479
12480    HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
12481        IDWriteFactory5 *This,
12482        IDWriteFontFileLoader *loader);
12483
12484    HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
12485        IDWriteFactory5 *This,
12486        IDWriteFontFileLoader *loader);
12487
12488    HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
12489        IDWriteFactory5 *This,
12490        const WCHAR *family_name,
12491        IDWriteFontCollection *collection,
12492        DWRITE_FONT_WEIGHT weight,
12493        DWRITE_FONT_STYLE style,
12494        DWRITE_FONT_STRETCH stretch,
12495        FLOAT size,
12496        const WCHAR *locale,
12497        IDWriteTextFormat **format);
12498
12499    HRESULT (STDMETHODCALLTYPE *CreateTypography)(
12500        IDWriteFactory5 *This,
12501        IDWriteTypography **typography);
12502
12503    HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
12504        IDWriteFactory5 *This,
12505        IDWriteGdiInterop **gdi_interop);
12506
12507    HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
12508        IDWriteFactory5 *This,
12509        const WCHAR *string,
12510        UINT32 len,
12511        IDWriteTextFormat *format,
12512        FLOAT max_width,
12513        FLOAT max_height,
12514        IDWriteTextLayout **layout);
12515
12516    HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
12517        IDWriteFactory5 *This,
12518        const WCHAR *string,
12519        UINT32 len,
12520        IDWriteTextFormat *format,
12521        FLOAT layout_width,
12522        FLOAT layout_height,
12523        FLOAT pixels_per_dip,
12524        const DWRITE_MATRIX *transform,
12525        WINBOOL use_gdi_natural,
12526        IDWriteTextLayout **layout);
12527
12528    HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
12529        IDWriteFactory5 *This,
12530        IDWriteTextFormat *format,
12531        IDWriteInlineObject **trimming_sign);
12532
12533    HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
12534        IDWriteFactory5 *This,
12535        IDWriteTextAnalyzer **analyzer);
12536
12537    HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
12538        IDWriteFactory5 *This,
12539        DWRITE_NUMBER_SUBSTITUTION_METHOD method,
12540        const WCHAR *locale,
12541        WINBOOL ignore_user_override,
12542        IDWriteNumberSubstitution **substitution);
12543
12544    HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
12545        IDWriteFactory5 *This,
12546        const DWRITE_GLYPH_RUN *glyph_run,
12547        FLOAT pixels_per_dip,
12548        const DWRITE_MATRIX *transform,
12549        DWRITE_RENDERING_MODE rendering_mode,
12550        DWRITE_MEASURING_MODE measuring_mode,
12551        FLOAT baseline_x,
12552        FLOAT baseline_y,
12553        IDWriteGlyphRunAnalysis **analysis);
12554
12555    /*** IDWriteFactory1 methods ***/
12556    HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
12557        IDWriteFactory5 *This,
12558        IDWriteFontCollection **collection,
12559        WINBOOL check_for_updates);
12560
12561    HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
12562        IDWriteFactory5 *This,
12563        FLOAT gamma,
12564        FLOAT enhcontrast,
12565        FLOAT enhcontrast_grayscale,
12566        FLOAT cleartype_level,
12567        DWRITE_PIXEL_GEOMETRY geometry,
12568        DWRITE_RENDERING_MODE mode,
12569        IDWriteRenderingParams1 **params);
12570
12571    /*** IDWriteFactory2 methods ***/
12572    HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
12573        IDWriteFactory5 *This,
12574        IDWriteFontFallback **fallback);
12575
12576    HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
12577        IDWriteFactory5 *This,
12578        IDWriteFontFallbackBuilder **fallbackbuilder);
12579
12580    HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
12581        IDWriteFactory5 *This,
12582        FLOAT originX,
12583        FLOAT originY,
12584        const DWRITE_GLYPH_RUN *run,
12585        const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
12586        DWRITE_MEASURING_MODE mode,
12587        const DWRITE_MATRIX *transform,
12588        UINT32 palette_index,
12589        IDWriteColorGlyphRunEnumerator **colorlayers);
12590
12591    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
12592        IDWriteFactory5 *This,
12593        FLOAT gamma,
12594        FLOAT contrast,
12595        FLOAT grayscalecontrast,
12596        FLOAT cleartypeLevel,
12597        DWRITE_PIXEL_GEOMETRY pixelGeometry,
12598        DWRITE_RENDERING_MODE renderingMode,
12599        DWRITE_GRID_FIT_MODE gridFitMode,
12600        IDWriteRenderingParams2 **params);
12601
12602    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
12603        IDWriteFactory5 *This,
12604        const DWRITE_GLYPH_RUN *run,
12605        const DWRITE_MATRIX *transform,
12606        DWRITE_RENDERING_MODE renderingMode,
12607        DWRITE_MEASURING_MODE measuringMode,
12608        DWRITE_GRID_FIT_MODE gridFitMode,
12609        DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
12610        FLOAT originX,
12611        FLOAT originY,
12612        IDWriteGlyphRunAnalysis **analysis);
12613
12614    /*** IDWriteFactory3 methods ***/
12615    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
12616        IDWriteFactory5 *This,
12617        const DWRITE_GLYPH_RUN *run,
12618        const DWRITE_MATRIX *transform,
12619        DWRITE_RENDERING_MODE1 rendering_mode,
12620        DWRITE_MEASURING_MODE measuring_mode,
12621        DWRITE_GRID_FIT_MODE gridfit_mode,
12622        DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
12623        FLOAT origin_x,
12624        FLOAT origin_y,
12625        IDWriteGlyphRunAnalysis **analysis);
12626
12627    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
12628        IDWriteFactory5 *This,
12629        FLOAT gamma,
12630        FLOAT enhanced_contrast,
12631        FLOAT grayscale_enhanced_contrast,
12632        FLOAT cleartype_level,
12633        DWRITE_PIXEL_GEOMETRY pixel_geometry,
12634        DWRITE_RENDERING_MODE1 rendering_mode,
12635        DWRITE_GRID_FIT_MODE gridfit_mode,
12636        IDWriteRenderingParams3 **params);
12637
12638    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
12639        IDWriteFactory5 *This,
12640        IDWriteFontFile *file,
12641        UINT32 index,
12642        DWRITE_FONT_SIMULATIONS simulations,
12643        IDWriteFontFaceReference **reference);
12644
12645    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
12646        IDWriteFactory5 *This,
12647        const WCHAR *path,
12648        const FILETIME *writetime,
12649        UINT32 index,
12650        DWRITE_FONT_SIMULATIONS simulations,
12651        IDWriteFontFaceReference **reference);
12652
12653    HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
12654        IDWriteFactory5 *This,
12655        IDWriteFontSet **fontset);
12656
12657    HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
12658        IDWriteFactory5 *This,
12659        IDWriteFontSetBuilder **builder);
12660
12661    HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
12662        IDWriteFactory5 *This,
12663        IDWriteFontSet *fontset,
12664        IDWriteFontCollection1 **collection);
12665
12666    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
12667        IDWriteFactory5 *This,
12668        WINBOOL include_downloadable,
12669        IDWriteFontCollection1 **collection,
12670        WINBOOL check_for_updates);
12671
12672    HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
12673        IDWriteFactory5 *This,
12674        IDWriteFontDownloadQueue **queue);
12675
12676    /*** IDWriteFactory4 methods ***/
12677    HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
12678        IDWriteFactory5 *This,
12679        D2D1_POINT_2F baseline_origin,
12680        const DWRITE_GLYPH_RUN *run,
12681        const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
12682        DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
12683        DWRITE_MEASURING_MODE measuring_mode,
12684        const DWRITE_MATRIX *transform,
12685        UINT32 palette,
12686        IDWriteColorGlyphRunEnumerator1 **layers);
12687
12688    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
12689        IDWriteFactory5 *This,
12690        const DWRITE_GLYPH_RUN *run,
12691        D2D1_POINT_2F baseline_origin,
12692        D2D1_POINT_2F *origins);
12693
12694    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
12695        IDWriteFactory5 *This,
12696        const DWRITE_GLYPH_RUN *run,
12697        DWRITE_MEASURING_MODE measuring_mode,
12698        D2D1_POINT_2F baseline_origin,
12699        const DWRITE_MATRIX *transform,
12700        D2D1_POINT_2F *origins);
12701
12702    /*** IDWriteFactory5 methods ***/
12703    HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
12704        IDWriteFactory5 *This,
12705        IDWriteFontSetBuilder1 **fontset_builder);
12706
12707    HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
12708        IDWriteFactory5 *This,
12709        IDWriteInMemoryFontFileLoader **loader);
12710
12711    HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
12712        IDWriteFactory5 *This,
12713        const WCHAR *referrer_url,
12714        const WCHAR *extra_headers,
12715        IDWriteRemoteFontFileLoader **loader);
12716
12717    DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
12718        IDWriteFactory5 *This,
12719        const void *data,
12720        UINT32 data_size);
12721
12722    HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
12723        IDWriteFactory5 *This,
12724        DWRITE_CONTAINER_TYPE container_type,
12725        const void *data,
12726        UINT32 data_size,
12727        IDWriteFontFileStream **stream);
12728
12729    END_INTERFACE
12730} IDWriteFactory5Vtbl;
12731
12732interface IDWriteFactory5 {
12733    CONST_VTBL IDWriteFactory5Vtbl* lpVtbl;
12734};
12735
12736#ifdef COBJMACROS
12737#ifndef WIDL_C_INLINE_WRAPPERS
12738/*** IUnknown methods ***/
12739#define IDWriteFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12740#define IDWriteFactory5_AddRef(This) (This)->lpVtbl->AddRef(This)
12741#define IDWriteFactory5_Release(This) (This)->lpVtbl->Release(This)
12742/*** IDWriteFactory methods ***/
12743#define IDWriteFactory5_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
12744#define IDWriteFactory5_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
12745#define IDWriteFactory5_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
12746#define IDWriteFactory5_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
12747#define IDWriteFactory5_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
12748#define IDWriteFactory5_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
12749#define IDWriteFactory5_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
12750#define IDWriteFactory5_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
12751#define IDWriteFactory5_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
12752#define IDWriteFactory5_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
12753#define IDWriteFactory5_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format)
12754#define IDWriteFactory5_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
12755#define IDWriteFactory5_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
12756#define IDWriteFactory5_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
12757#define IDWriteFactory5_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
12758#define IDWriteFactory5_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
12759#define IDWriteFactory5_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
12760#define IDWriteFactory5_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
12761/*** IDWriteFactory1 methods ***/
12762#define IDWriteFactory5_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
12763/*** IDWriteFactory2 methods ***/
12764#define IDWriteFactory5_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
12765#define IDWriteFactory5_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
12766/*** IDWriteFactory3 methods ***/
12767#define IDWriteFactory5_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
12768#define IDWriteFactory5_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
12769#define IDWriteFactory5_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
12770#define IDWriteFactory5_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference)
12771#define IDWriteFactory5_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset)
12772#define IDWriteFactory5_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection)
12773#define IDWriteFactory5_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates)
12774#define IDWriteFactory5_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
12775/*** IDWriteFactory4 methods ***/
12776#define IDWriteFactory5_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
12777#define IDWriteFactory5_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
12778#define IDWriteFactory5_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
12779/*** IDWriteFactory5 methods ***/
12780#define IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder)
12781#define IDWriteFactory5_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
12782#define IDWriteFactory5_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
12783#define IDWriteFactory5_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
12784#define IDWriteFactory5_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
12785#else
12786/*** IUnknown methods ***/
12787static inline HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This,REFIID riid,void **ppvObject) {
12788    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12789}
12790static inline ULONG IDWriteFactory5_AddRef(IDWriteFactory5* This) {
12791    return This->lpVtbl->AddRef(This);
12792}
12793static inline ULONG IDWriteFactory5_Release(IDWriteFactory5* This) {
12794    return This->lpVtbl->Release(This);
12795}
12796/*** IDWriteFactory methods ***/
12797static inline HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
12798    return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
12799}
12800static inline HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) {
12801    return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
12802}
12803static inline HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) {
12804    return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
12805}
12806static inline HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
12807    return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
12808}
12809static inline HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
12810    return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
12811}
12812static inline HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
12813    return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
12814}
12815static inline HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This,IDWriteRenderingParams **params) {
12816    return This->lpVtbl->CreateRenderingParams(This,params);
12817}
12818static inline HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This,HMONITOR monitor,IDWriteRenderingParams **params) {
12819    return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
12820}
12821static inline HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) {
12822    return This->lpVtbl->RegisterFontFileLoader(This,loader);
12823}
12824static inline HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) {
12825    return This->lpVtbl->UnregisterFontFileLoader(This,loader);
12826}
12827static inline HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) {
12828    return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format);
12829}
12830static inline HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This,IDWriteTypography **typography) {
12831    return This->lpVtbl->CreateTypography(This,typography);
12832}
12833static inline HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This,IDWriteGdiInterop **gdi_interop) {
12834    return This->lpVtbl->GetGdiInterop(This,gdi_interop);
12835}
12836static inline HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
12837    return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
12838}
12839static inline HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
12840    return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
12841}
12842static inline HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
12843    return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
12844}
12845static inline HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This,IDWriteTextAnalyzer **analyzer) {
12846    return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
12847}
12848static inline HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
12849    return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
12850}
12851/*** IDWriteFactory1 methods ***/
12852static inline HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
12853    return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
12854}
12855/*** IDWriteFactory2 methods ***/
12856static inline HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This,IDWriteFontFallback **fallback) {
12857    return This->lpVtbl->GetSystemFontFallback(This,fallback);
12858}
12859static inline HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
12860    return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
12861}
12862/*** IDWriteFactory3 methods ***/
12863static inline HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
12864    return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
12865}
12866static inline HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
12867    return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
12868}
12869static inline HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
12870    return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
12871}
12872static inline HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
12873    return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference);
12874}
12875static inline HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This,IDWriteFontSet **fontset) {
12876    return This->lpVtbl->GetSystemFontSet(This,fontset);
12877}
12878static inline HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) {
12879    return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection);
12880}
12881static inline HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) {
12882    return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates);
12883}
12884static inline HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This,IDWriteFontDownloadQueue **queue) {
12885    return This->lpVtbl->GetFontDownloadQueue(This,queue);
12886}
12887/*** IDWriteFactory4 methods ***/
12888static inline HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
12889    return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
12890}
12891static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
12892    return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
12893}
12894static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
12895    return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
12896}
12897/*** IDWriteFactory5 methods ***/
12898static inline HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This,IDWriteFontSetBuilder1 **fontset_builder) {
12899    return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder);
12900}
12901static inline HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This,IDWriteInMemoryFontFileLoader **loader) {
12902    return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
12903}
12904static inline HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
12905    return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
12906}
12907static inline DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This,const void *data,UINT32 data_size) {
12908    return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
12909}
12910static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
12911    return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
12912}
12913#endif
12914#endif
12915
12916#endif
12917
12918
12919#endif  /* __IDWriteFactory5_INTERFACE_DEFINED__ */
12920
12921/*****************************************************************************
12922 * IDWriteFactory6 interface
12923 */
12924#ifndef __IDWriteFactory6_INTERFACE_DEFINED__
12925#define __IDWriteFactory6_INTERFACE_DEFINED__
12926
12927DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23);
12928#if defined(__cplusplus) && !defined(CINTERFACE)
12929MIDL_INTERFACE("f3744d80-21f7-42eb-b35d-995bc72fc223")
12930IDWriteFactory6 : public IDWriteFactory5
12931{
12932    virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference(
12933        IDWriteFontFile *file,
12934        UINT32 face_index,
12935        DWRITE_FONT_SIMULATIONS simulations,
12936        const DWRITE_FONT_AXIS_VALUE *axis_values,
12937        UINT32 num_axis,
12938        IDWriteFontFaceReference1 **face_ref) = 0;
12939
12940    virtual HRESULT STDMETHODCALLTYPE CreateFontResource(
12941        IDWriteFontFile *file,
12942        UINT32 face_index,
12943        IDWriteFontResource **resource) = 0;
12944
12945    virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
12946        WINBOOL include_downloadable,
12947        IDWriteFontSet1 **fontset) = 0;
12948
12949    virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
12950        WINBOOL include_downloadable,
12951        DWRITE_FONT_FAMILY_MODEL family_model,
12952        IDWriteFontCollection2 **collection) = 0;
12953
12954    virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet(
12955        IDWriteFontSet *fontset,
12956        DWRITE_FONT_FAMILY_MODEL family_model,
12957        IDWriteFontCollection2 **collection) = 0;
12958
12959    virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder(
12960        IDWriteFontSetBuilder2 **builder) = 0;
12961
12962    virtual HRESULT STDMETHODCALLTYPE CreateTextFormat(
12963        const WCHAR *familyname,
12964        IDWriteFontCollection *collection,
12965        const DWRITE_FONT_AXIS_VALUE *axis_values,
12966        UINT32 num_axis,
12967        FLOAT fontsize,
12968        const WCHAR *localename,
12969        IDWriteTextFormat3 **format) = 0;
12970
12971};
12972#ifdef __CRT_UUID_DECL
12973__CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23)
12974#endif
12975#else
12976typedef struct IDWriteFactory6Vtbl {
12977    BEGIN_INTERFACE
12978
12979    /*** IUnknown methods ***/
12980    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12981        IDWriteFactory6 *This,
12982        REFIID riid,
12983        void **ppvObject);
12984
12985    ULONG (STDMETHODCALLTYPE *AddRef)(
12986        IDWriteFactory6 *This);
12987
12988    ULONG (STDMETHODCALLTYPE *Release)(
12989        IDWriteFactory6 *This);
12990
12991    /*** IDWriteFactory methods ***/
12992    HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
12993        IDWriteFactory6 *This,
12994        IDWriteFontCollection **collection,
12995        WINBOOL check_for_updates);
12996
12997    HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
12998        IDWriteFactory6 *This,
12999        IDWriteFontCollectionLoader *loader,
13000        const void *key,
13001        UINT32 key_size,
13002        IDWriteFontCollection **collection);
13003
13004    HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
13005        IDWriteFactory6 *This,
13006        IDWriteFontCollectionLoader *loader);
13007
13008    HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
13009        IDWriteFactory6 *This,
13010        IDWriteFontCollectionLoader *loader);
13011
13012    HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
13013        IDWriteFactory6 *This,
13014        const WCHAR *path,
13015        const FILETIME *writetime,
13016        IDWriteFontFile **font_file);
13017
13018    HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
13019        IDWriteFactory6 *This,
13020        const void *reference_key,
13021        UINT32 key_size,
13022        IDWriteFontFileLoader *loader,
13023        IDWriteFontFile **font_file);
13024
13025    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
13026        IDWriteFactory6 *This,
13027        DWRITE_FONT_FACE_TYPE facetype,
13028        UINT32 files_number,
13029        IDWriteFontFile *const *font_files,
13030        UINT32 index,
13031        DWRITE_FONT_SIMULATIONS sim_flags,
13032        IDWriteFontFace **font_face);
13033
13034    HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
13035        IDWriteFactory6 *This,
13036        IDWriteRenderingParams **params);
13037
13038    HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
13039        IDWriteFactory6 *This,
13040        HMONITOR monitor,
13041        IDWriteRenderingParams **params);
13042
13043    HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
13044        IDWriteFactory6 *This,
13045        FLOAT gamma,
13046        FLOAT enhancedContrast,
13047        FLOAT cleartype_level,
13048        DWRITE_PIXEL_GEOMETRY geometry,
13049        DWRITE_RENDERING_MODE mode,
13050        IDWriteRenderingParams **params);
13051
13052    HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
13053        IDWriteFactory6 *This,
13054        IDWriteFontFileLoader *loader);
13055
13056    HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
13057        IDWriteFactory6 *This,
13058        IDWriteFontFileLoader *loader);
13059
13060    HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
13061        IDWriteFactory6 *This,
13062        const WCHAR *family_name,
13063        IDWriteFontCollection *collection,
13064        DWRITE_FONT_WEIGHT weight,
13065        DWRITE_FONT_STYLE style,
13066        DWRITE_FONT_STRETCH stretch,
13067        FLOAT size,
13068        const WCHAR *locale,
13069        IDWriteTextFormat **format);
13070
13071    HRESULT (STDMETHODCALLTYPE *CreateTypography)(
13072        IDWriteFactory6 *This,
13073        IDWriteTypography **typography);
13074
13075    HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
13076        IDWriteFactory6 *This,
13077        IDWriteGdiInterop **gdi_interop);
13078
13079    HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
13080        IDWriteFactory6 *This,
13081        const WCHAR *string,
13082        UINT32 len,
13083        IDWriteTextFormat *format,
13084        FLOAT max_width,
13085        FLOAT max_height,
13086        IDWriteTextLayout **layout);
13087
13088    HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
13089        IDWriteFactory6 *This,
13090        const WCHAR *string,
13091        UINT32 len,
13092        IDWriteTextFormat *format,
13093        FLOAT layout_width,
13094        FLOAT layout_height,
13095        FLOAT pixels_per_dip,
13096        const DWRITE_MATRIX *transform,
13097        WINBOOL use_gdi_natural,
13098        IDWriteTextLayout **layout);
13099
13100    HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
13101        IDWriteFactory6 *This,
13102        IDWriteTextFormat *format,
13103        IDWriteInlineObject **trimming_sign);
13104
13105    HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
13106        IDWriteFactory6 *This,
13107        IDWriteTextAnalyzer **analyzer);
13108
13109    HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
13110        IDWriteFactory6 *This,
13111        DWRITE_NUMBER_SUBSTITUTION_METHOD method,
13112        const WCHAR *locale,
13113        WINBOOL ignore_user_override,
13114        IDWriteNumberSubstitution **substitution);
13115
13116    HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
13117        IDWriteFactory6 *This,
13118        const DWRITE_GLYPH_RUN *glyph_run,
13119        FLOAT pixels_per_dip,
13120        const DWRITE_MATRIX *transform,
13121        DWRITE_RENDERING_MODE rendering_mode,
13122        DWRITE_MEASURING_MODE measuring_mode,
13123        FLOAT baseline_x,
13124        FLOAT baseline_y,
13125        IDWriteGlyphRunAnalysis **analysis);
13126
13127    /*** IDWriteFactory1 methods ***/
13128    HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
13129        IDWriteFactory6 *This,
13130        IDWriteFontCollection **collection,
13131        WINBOOL check_for_updates);
13132
13133    HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
13134        IDWriteFactory6 *This,
13135        FLOAT gamma,
13136        FLOAT enhcontrast,
13137        FLOAT enhcontrast_grayscale,
13138        FLOAT cleartype_level,
13139        DWRITE_PIXEL_GEOMETRY geometry,
13140        DWRITE_RENDERING_MODE mode,
13141        IDWriteRenderingParams1 **params);
13142
13143    /*** IDWriteFactory2 methods ***/
13144    HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
13145        IDWriteFactory6 *This,
13146        IDWriteFontFallback **fallback);
13147
13148    HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
13149        IDWriteFactory6 *This,
13150        IDWriteFontFallbackBuilder **fallbackbuilder);
13151
13152    HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
13153        IDWriteFactory6 *This,
13154        FLOAT originX,
13155        FLOAT originY,
13156        const DWRITE_GLYPH_RUN *run,
13157        const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
13158        DWRITE_MEASURING_MODE mode,
13159        const DWRITE_MATRIX *transform,
13160        UINT32 palette_index,
13161        IDWriteColorGlyphRunEnumerator **colorlayers);
13162
13163    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
13164        IDWriteFactory6 *This,
13165        FLOAT gamma,
13166        FLOAT contrast,
13167        FLOAT grayscalecontrast,
13168        FLOAT cleartypeLevel,
13169        DWRITE_PIXEL_GEOMETRY pixelGeometry,
13170        DWRITE_RENDERING_MODE renderingMode,
13171        DWRITE_GRID_FIT_MODE gridFitMode,
13172        IDWriteRenderingParams2 **params);
13173
13174    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
13175        IDWriteFactory6 *This,
13176        const DWRITE_GLYPH_RUN *run,
13177        const DWRITE_MATRIX *transform,
13178        DWRITE_RENDERING_MODE renderingMode,
13179        DWRITE_MEASURING_MODE measuringMode,
13180        DWRITE_GRID_FIT_MODE gridFitMode,
13181        DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
13182        FLOAT originX,
13183        FLOAT originY,
13184        IDWriteGlyphRunAnalysis **analysis);
13185
13186    /*** IDWriteFactory3 methods ***/
13187    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
13188        IDWriteFactory6 *This,
13189        const DWRITE_GLYPH_RUN *run,
13190        const DWRITE_MATRIX *transform,
13191        DWRITE_RENDERING_MODE1 rendering_mode,
13192        DWRITE_MEASURING_MODE measuring_mode,
13193        DWRITE_GRID_FIT_MODE gridfit_mode,
13194        DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
13195        FLOAT origin_x,
13196        FLOAT origin_y,
13197        IDWriteGlyphRunAnalysis **analysis);
13198
13199    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
13200        IDWriteFactory6 *This,
13201        FLOAT gamma,
13202        FLOAT enhanced_contrast,
13203        FLOAT grayscale_enhanced_contrast,
13204        FLOAT cleartype_level,
13205        DWRITE_PIXEL_GEOMETRY pixel_geometry,
13206        DWRITE_RENDERING_MODE1 rendering_mode,
13207        DWRITE_GRID_FIT_MODE gridfit_mode,
13208        IDWriteRenderingParams3 **params);
13209
13210    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
13211        IDWriteFactory6 *This,
13212        IDWriteFontFile *file,
13213        UINT32 index,
13214        DWRITE_FONT_SIMULATIONS simulations,
13215        IDWriteFontFaceReference **reference);
13216
13217    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
13218        IDWriteFactory6 *This,
13219        const WCHAR *path,
13220        const FILETIME *writetime,
13221        UINT32 index,
13222        DWRITE_FONT_SIMULATIONS simulations,
13223        IDWriteFontFaceReference **reference);
13224
13225    HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
13226        IDWriteFactory6 *This,
13227        IDWriteFontSet **fontset);
13228
13229    HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
13230        IDWriteFactory6 *This,
13231        IDWriteFontSetBuilder **builder);
13232
13233    HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
13234        IDWriteFactory6 *This,
13235        IDWriteFontSet *fontset,
13236        IDWriteFontCollection1 **collection);
13237
13238    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
13239        IDWriteFactory6 *This,
13240        WINBOOL include_downloadable,
13241        IDWriteFontCollection1 **collection,
13242        WINBOOL check_for_updates);
13243
13244    HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
13245        IDWriteFactory6 *This,
13246        IDWriteFontDownloadQueue **queue);
13247
13248    /*** IDWriteFactory4 methods ***/
13249    HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
13250        IDWriteFactory6 *This,
13251        D2D1_POINT_2F baseline_origin,
13252        const DWRITE_GLYPH_RUN *run,
13253        const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
13254        DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
13255        DWRITE_MEASURING_MODE measuring_mode,
13256        const DWRITE_MATRIX *transform,
13257        UINT32 palette,
13258        IDWriteColorGlyphRunEnumerator1 **layers);
13259
13260    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
13261        IDWriteFactory6 *This,
13262        const DWRITE_GLYPH_RUN *run,
13263        D2D1_POINT_2F baseline_origin,
13264        D2D1_POINT_2F *origins);
13265
13266    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
13267        IDWriteFactory6 *This,
13268        const DWRITE_GLYPH_RUN *run,
13269        DWRITE_MEASURING_MODE measuring_mode,
13270        D2D1_POINT_2F baseline_origin,
13271        const DWRITE_MATRIX *transform,
13272        D2D1_POINT_2F *origins);
13273
13274    /*** IDWriteFactory5 methods ***/
13275    HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
13276        IDWriteFactory6 *This,
13277        IDWriteFontSetBuilder1 **fontset_builder);
13278
13279    HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
13280        IDWriteFactory6 *This,
13281        IDWriteInMemoryFontFileLoader **loader);
13282
13283    HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
13284        IDWriteFactory6 *This,
13285        const WCHAR *referrer_url,
13286        const WCHAR *extra_headers,
13287        IDWriteRemoteFontFileLoader **loader);
13288
13289    DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
13290        IDWriteFactory6 *This,
13291        const void *data,
13292        UINT32 data_size);
13293
13294    HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
13295        IDWriteFactory6 *This,
13296        DWRITE_CONTAINER_TYPE container_type,
13297        const void *data,
13298        UINT32 data_size,
13299        IDWriteFontFileStream **stream);
13300
13301    /*** IDWriteFactory6 methods ***/
13302    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
13303        IDWriteFactory6 *This,
13304        IDWriteFontFile *file,
13305        UINT32 face_index,
13306        DWRITE_FONT_SIMULATIONS simulations,
13307        const DWRITE_FONT_AXIS_VALUE *axis_values,
13308        UINT32 num_axis,
13309        IDWriteFontFaceReference1 **face_ref);
13310
13311    HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
13312        IDWriteFactory6 *This,
13313        IDWriteFontFile *file,
13314        UINT32 face_index,
13315        IDWriteFontResource **resource);
13316
13317    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
13318        IDWriteFactory6 *This,
13319        WINBOOL include_downloadable,
13320        IDWriteFontSet1 **fontset);
13321
13322    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
13323        IDWriteFactory6 *This,
13324        WINBOOL include_downloadable,
13325        DWRITE_FONT_FAMILY_MODEL family_model,
13326        IDWriteFontCollection2 **collection);
13327
13328    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
13329        IDWriteFactory6 *This,
13330        IDWriteFontSet *fontset,
13331        DWRITE_FONT_FAMILY_MODEL family_model,
13332        IDWriteFontCollection2 **collection);
13333
13334    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
13335        IDWriteFactory6 *This,
13336        IDWriteFontSetBuilder2 **builder);
13337
13338    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
13339        IDWriteFactory6 *This,
13340        const WCHAR *familyname,
13341        IDWriteFontCollection *collection,
13342        const DWRITE_FONT_AXIS_VALUE *axis_values,
13343        UINT32 num_axis,
13344        FLOAT fontsize,
13345        const WCHAR *localename,
13346        IDWriteTextFormat3 **format);
13347
13348    END_INTERFACE
13349} IDWriteFactory6Vtbl;
13350
13351interface IDWriteFactory6 {
13352    CONST_VTBL IDWriteFactory6Vtbl* lpVtbl;
13353};
13354
13355#ifdef COBJMACROS
13356#ifndef WIDL_C_INLINE_WRAPPERS
13357/*** IUnknown methods ***/
13358#define IDWriteFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13359#define IDWriteFactory6_AddRef(This) (This)->lpVtbl->AddRef(This)
13360#define IDWriteFactory6_Release(This) (This)->lpVtbl->Release(This)
13361/*** IDWriteFactory methods ***/
13362#define IDWriteFactory6_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
13363#define IDWriteFactory6_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
13364#define IDWriteFactory6_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
13365#define IDWriteFactory6_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
13366#define IDWriteFactory6_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
13367#define IDWriteFactory6_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
13368#define IDWriteFactory6_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
13369#define IDWriteFactory6_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
13370#define IDWriteFactory6_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
13371#define IDWriteFactory6_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
13372#define IDWriteFactory6_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
13373#define IDWriteFactory6_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
13374#define IDWriteFactory6_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
13375#define IDWriteFactory6_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
13376#define IDWriteFactory6_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
13377#define IDWriteFactory6_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
13378#define IDWriteFactory6_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
13379/*** IDWriteFactory1 methods ***/
13380#define IDWriteFactory6_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
13381/*** IDWriteFactory2 methods ***/
13382#define IDWriteFactory6_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
13383#define IDWriteFactory6_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
13384/*** IDWriteFactory3 methods ***/
13385#define IDWriteFactory6_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
13386#define IDWriteFactory6_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
13387#define IDWriteFactory6_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
13388#define IDWriteFactory6_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
13389/*** IDWriteFactory4 methods ***/
13390#define IDWriteFactory6_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
13391#define IDWriteFactory6_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
13392#define IDWriteFactory6_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
13393/*** IDWriteFactory5 methods ***/
13394#define IDWriteFactory6_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
13395#define IDWriteFactory6_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
13396#define IDWriteFactory6_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
13397#define IDWriteFactory6_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
13398/*** IDWriteFactory6 methods ***/
13399#define IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
13400#define IDWriteFactory6_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
13401#define IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset)
13402#define IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection)
13403#define IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
13404#define IDWriteFactory6_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
13405#define IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
13406#else
13407/*** IUnknown methods ***/
13408static inline HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This,REFIID riid,void **ppvObject) {
13409    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13410}
13411static inline ULONG IDWriteFactory6_AddRef(IDWriteFactory6* This) {
13412    return This->lpVtbl->AddRef(This);
13413}
13414static inline ULONG IDWriteFactory6_Release(IDWriteFactory6* This) {
13415    return This->lpVtbl->Release(This);
13416}
13417/*** IDWriteFactory methods ***/
13418static inline HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
13419    return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
13420}
13421static inline HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) {
13422    return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
13423}
13424static inline HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) {
13425    return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
13426}
13427static inline HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
13428    return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
13429}
13430static inline HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
13431    return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
13432}
13433static inline HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
13434    return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
13435}
13436static inline HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This,IDWriteRenderingParams **params) {
13437    return This->lpVtbl->CreateRenderingParams(This,params);
13438}
13439static inline HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This,HMONITOR monitor,IDWriteRenderingParams **params) {
13440    return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
13441}
13442static inline HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) {
13443    return This->lpVtbl->RegisterFontFileLoader(This,loader);
13444}
13445static inline HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) {
13446    return This->lpVtbl->UnregisterFontFileLoader(This,loader);
13447}
13448static inline HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This,IDWriteTypography **typography) {
13449    return This->lpVtbl->CreateTypography(This,typography);
13450}
13451static inline HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This,IDWriteGdiInterop **gdi_interop) {
13452    return This->lpVtbl->GetGdiInterop(This,gdi_interop);
13453}
13454static inline HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
13455    return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
13456}
13457static inline HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
13458    return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
13459}
13460static inline HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
13461    return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
13462}
13463static inline HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This,IDWriteTextAnalyzer **analyzer) {
13464    return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
13465}
13466static inline HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
13467    return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
13468}
13469/*** IDWriteFactory1 methods ***/
13470static inline HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
13471    return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
13472}
13473/*** IDWriteFactory2 methods ***/
13474static inline HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This,IDWriteFontFallback **fallback) {
13475    return This->lpVtbl->GetSystemFontFallback(This,fallback);
13476}
13477static inline HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
13478    return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
13479}
13480/*** IDWriteFactory3 methods ***/
13481static inline HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
13482    return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
13483}
13484static inline HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
13485    return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
13486}
13487static inline HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
13488    return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
13489}
13490static inline HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This,IDWriteFontDownloadQueue **queue) {
13491    return This->lpVtbl->GetFontDownloadQueue(This,queue);
13492}
13493/*** IDWriteFactory4 methods ***/
13494static inline HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
13495    return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
13496}
13497static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
13498    return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
13499}
13500static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
13501    return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
13502}
13503/*** IDWriteFactory5 methods ***/
13504static inline HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This,IDWriteInMemoryFontFileLoader **loader) {
13505    return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
13506}
13507static inline HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
13508    return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
13509}
13510static inline DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This,const void *data,UINT32 data_size) {
13511    return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
13512}
13513static inline HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
13514    return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
13515}
13516/*** IDWriteFactory6 methods ***/
13517static inline HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
13518    return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
13519}
13520static inline HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
13521    return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
13522}
13523static inline HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This,WINBOOL include_downloadable,IDWriteFontSet1 **fontset) {
13524    return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset);
13525}
13526static inline HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
13527    return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection);
13528}
13529static inline HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
13530    return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
13531}
13532static inline HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This,IDWriteFontSetBuilder2 **builder) {
13533    return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
13534}
13535static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
13536    return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
13537}
13538#endif
13539#endif
13540
13541#endif
13542
13543
13544#endif  /* __IDWriteFactory6_INTERFACE_DEFINED__ */
13545
13546/*****************************************************************************
13547 * IDWriteFactory7 interface
13548 */
13549#ifndef __IDWriteFactory7_INTERFACE_DEFINED__
13550#define __IDWriteFactory7_INTERFACE_DEFINED__
13551
13552DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4);
13553#if defined(__cplusplus) && !defined(CINTERFACE)
13554MIDL_INTERFACE("35d0e0b3-9076-4d2e-a016-a91b568a06b4")
13555IDWriteFactory7 : public IDWriteFactory6
13556{
13557    virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet(
13558        WINBOOL include_downloadable,
13559        IDWriteFontSet2 **fontset) = 0;
13560
13561    virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection(
13562        WINBOOL include_downloadable,
13563        DWRITE_FONT_FAMILY_MODEL family_model,
13564        IDWriteFontCollection3 **collection) = 0;
13565
13566};
13567#ifdef __CRT_UUID_DECL
13568__CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4)
13569#endif
13570#else
13571typedef struct IDWriteFactory7Vtbl {
13572    BEGIN_INTERFACE
13573
13574    /*** IUnknown methods ***/
13575    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13576        IDWriteFactory7 *This,
13577        REFIID riid,
13578        void **ppvObject);
13579
13580    ULONG (STDMETHODCALLTYPE *AddRef)(
13581        IDWriteFactory7 *This);
13582
13583    ULONG (STDMETHODCALLTYPE *Release)(
13584        IDWriteFactory7 *This);
13585
13586    /*** IDWriteFactory methods ***/
13587    HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
13588        IDWriteFactory7 *This,
13589        IDWriteFontCollection **collection,
13590        WINBOOL check_for_updates);
13591
13592    HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
13593        IDWriteFactory7 *This,
13594        IDWriteFontCollectionLoader *loader,
13595        const void *key,
13596        UINT32 key_size,
13597        IDWriteFontCollection **collection);
13598
13599    HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
13600        IDWriteFactory7 *This,
13601        IDWriteFontCollectionLoader *loader);
13602
13603    HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
13604        IDWriteFactory7 *This,
13605        IDWriteFontCollectionLoader *loader);
13606
13607    HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
13608        IDWriteFactory7 *This,
13609        const WCHAR *path,
13610        const FILETIME *writetime,
13611        IDWriteFontFile **font_file);
13612
13613    HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
13614        IDWriteFactory7 *This,
13615        const void *reference_key,
13616        UINT32 key_size,
13617        IDWriteFontFileLoader *loader,
13618        IDWriteFontFile **font_file);
13619
13620    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
13621        IDWriteFactory7 *This,
13622        DWRITE_FONT_FACE_TYPE facetype,
13623        UINT32 files_number,
13624        IDWriteFontFile *const *font_files,
13625        UINT32 index,
13626        DWRITE_FONT_SIMULATIONS sim_flags,
13627        IDWriteFontFace **font_face);
13628
13629    HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
13630        IDWriteFactory7 *This,
13631        IDWriteRenderingParams **params);
13632
13633    HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
13634        IDWriteFactory7 *This,
13635        HMONITOR monitor,
13636        IDWriteRenderingParams **params);
13637
13638    HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
13639        IDWriteFactory7 *This,
13640        FLOAT gamma,
13641        FLOAT enhancedContrast,
13642        FLOAT cleartype_level,
13643        DWRITE_PIXEL_GEOMETRY geometry,
13644        DWRITE_RENDERING_MODE mode,
13645        IDWriteRenderingParams **params);
13646
13647    HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
13648        IDWriteFactory7 *This,
13649        IDWriteFontFileLoader *loader);
13650
13651    HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
13652        IDWriteFactory7 *This,
13653        IDWriteFontFileLoader *loader);
13654
13655    HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
13656        IDWriteFactory7 *This,
13657        const WCHAR *family_name,
13658        IDWriteFontCollection *collection,
13659        DWRITE_FONT_WEIGHT weight,
13660        DWRITE_FONT_STYLE style,
13661        DWRITE_FONT_STRETCH stretch,
13662        FLOAT size,
13663        const WCHAR *locale,
13664        IDWriteTextFormat **format);
13665
13666    HRESULT (STDMETHODCALLTYPE *CreateTypography)(
13667        IDWriteFactory7 *This,
13668        IDWriteTypography **typography);
13669
13670    HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
13671        IDWriteFactory7 *This,
13672        IDWriteGdiInterop **gdi_interop);
13673
13674    HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
13675        IDWriteFactory7 *This,
13676        const WCHAR *string,
13677        UINT32 len,
13678        IDWriteTextFormat *format,
13679        FLOAT max_width,
13680        FLOAT max_height,
13681        IDWriteTextLayout **layout);
13682
13683    HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
13684        IDWriteFactory7 *This,
13685        const WCHAR *string,
13686        UINT32 len,
13687        IDWriteTextFormat *format,
13688        FLOAT layout_width,
13689        FLOAT layout_height,
13690        FLOAT pixels_per_dip,
13691        const DWRITE_MATRIX *transform,
13692        WINBOOL use_gdi_natural,
13693        IDWriteTextLayout **layout);
13694
13695    HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
13696        IDWriteFactory7 *This,
13697        IDWriteTextFormat *format,
13698        IDWriteInlineObject **trimming_sign);
13699
13700    HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
13701        IDWriteFactory7 *This,
13702        IDWriteTextAnalyzer **analyzer);
13703
13704    HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
13705        IDWriteFactory7 *This,
13706        DWRITE_NUMBER_SUBSTITUTION_METHOD method,
13707        const WCHAR *locale,
13708        WINBOOL ignore_user_override,
13709        IDWriteNumberSubstitution **substitution);
13710
13711    HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
13712        IDWriteFactory7 *This,
13713        const DWRITE_GLYPH_RUN *glyph_run,
13714        FLOAT pixels_per_dip,
13715        const DWRITE_MATRIX *transform,
13716        DWRITE_RENDERING_MODE rendering_mode,
13717        DWRITE_MEASURING_MODE measuring_mode,
13718        FLOAT baseline_x,
13719        FLOAT baseline_y,
13720        IDWriteGlyphRunAnalysis **analysis);
13721
13722    /*** IDWriteFactory1 methods ***/
13723    HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
13724        IDWriteFactory7 *This,
13725        IDWriteFontCollection **collection,
13726        WINBOOL check_for_updates);
13727
13728    HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
13729        IDWriteFactory7 *This,
13730        FLOAT gamma,
13731        FLOAT enhcontrast,
13732        FLOAT enhcontrast_grayscale,
13733        FLOAT cleartype_level,
13734        DWRITE_PIXEL_GEOMETRY geometry,
13735        DWRITE_RENDERING_MODE mode,
13736        IDWriteRenderingParams1 **params);
13737
13738    /*** IDWriteFactory2 methods ***/
13739    HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
13740        IDWriteFactory7 *This,
13741        IDWriteFontFallback **fallback);
13742
13743    HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
13744        IDWriteFactory7 *This,
13745        IDWriteFontFallbackBuilder **fallbackbuilder);
13746
13747    HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
13748        IDWriteFactory7 *This,
13749        FLOAT originX,
13750        FLOAT originY,
13751        const DWRITE_GLYPH_RUN *run,
13752        const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
13753        DWRITE_MEASURING_MODE mode,
13754        const DWRITE_MATRIX *transform,
13755        UINT32 palette_index,
13756        IDWriteColorGlyphRunEnumerator **colorlayers);
13757
13758    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
13759        IDWriteFactory7 *This,
13760        FLOAT gamma,
13761        FLOAT contrast,
13762        FLOAT grayscalecontrast,
13763        FLOAT cleartypeLevel,
13764        DWRITE_PIXEL_GEOMETRY pixelGeometry,
13765        DWRITE_RENDERING_MODE renderingMode,
13766        DWRITE_GRID_FIT_MODE gridFitMode,
13767        IDWriteRenderingParams2 **params);
13768
13769    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
13770        IDWriteFactory7 *This,
13771        const DWRITE_GLYPH_RUN *run,
13772        const DWRITE_MATRIX *transform,
13773        DWRITE_RENDERING_MODE renderingMode,
13774        DWRITE_MEASURING_MODE measuringMode,
13775        DWRITE_GRID_FIT_MODE gridFitMode,
13776        DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
13777        FLOAT originX,
13778        FLOAT originY,
13779        IDWriteGlyphRunAnalysis **analysis);
13780
13781    /*** IDWriteFactory3 methods ***/
13782    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
13783        IDWriteFactory7 *This,
13784        const DWRITE_GLYPH_RUN *run,
13785        const DWRITE_MATRIX *transform,
13786        DWRITE_RENDERING_MODE1 rendering_mode,
13787        DWRITE_MEASURING_MODE measuring_mode,
13788        DWRITE_GRID_FIT_MODE gridfit_mode,
13789        DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
13790        FLOAT origin_x,
13791        FLOAT origin_y,
13792        IDWriteGlyphRunAnalysis **analysis);
13793
13794    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
13795        IDWriteFactory7 *This,
13796        FLOAT gamma,
13797        FLOAT enhanced_contrast,
13798        FLOAT grayscale_enhanced_contrast,
13799        FLOAT cleartype_level,
13800        DWRITE_PIXEL_GEOMETRY pixel_geometry,
13801        DWRITE_RENDERING_MODE1 rendering_mode,
13802        DWRITE_GRID_FIT_MODE gridfit_mode,
13803        IDWriteRenderingParams3 **params);
13804
13805    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
13806        IDWriteFactory7 *This,
13807        IDWriteFontFile *file,
13808        UINT32 index,
13809        DWRITE_FONT_SIMULATIONS simulations,
13810        IDWriteFontFaceReference **reference);
13811
13812    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
13813        IDWriteFactory7 *This,
13814        const WCHAR *path,
13815        const FILETIME *writetime,
13816        UINT32 index,
13817        DWRITE_FONT_SIMULATIONS simulations,
13818        IDWriteFontFaceReference **reference);
13819
13820    HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
13821        IDWriteFactory7 *This,
13822        IDWriteFontSet **fontset);
13823
13824    HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
13825        IDWriteFactory7 *This,
13826        IDWriteFontSetBuilder **builder);
13827
13828    HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
13829        IDWriteFactory7 *This,
13830        IDWriteFontSet *fontset,
13831        IDWriteFontCollection1 **collection);
13832
13833    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
13834        IDWriteFactory7 *This,
13835        WINBOOL include_downloadable,
13836        IDWriteFontCollection1 **collection,
13837        WINBOOL check_for_updates);
13838
13839    HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
13840        IDWriteFactory7 *This,
13841        IDWriteFontDownloadQueue **queue);
13842
13843    /*** IDWriteFactory4 methods ***/
13844    HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
13845        IDWriteFactory7 *This,
13846        D2D1_POINT_2F baseline_origin,
13847        const DWRITE_GLYPH_RUN *run,
13848        const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
13849        DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
13850        DWRITE_MEASURING_MODE measuring_mode,
13851        const DWRITE_MATRIX *transform,
13852        UINT32 palette,
13853        IDWriteColorGlyphRunEnumerator1 **layers);
13854
13855    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
13856        IDWriteFactory7 *This,
13857        const DWRITE_GLYPH_RUN *run,
13858        D2D1_POINT_2F baseline_origin,
13859        D2D1_POINT_2F *origins);
13860
13861    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
13862        IDWriteFactory7 *This,
13863        const DWRITE_GLYPH_RUN *run,
13864        DWRITE_MEASURING_MODE measuring_mode,
13865        D2D1_POINT_2F baseline_origin,
13866        const DWRITE_MATRIX *transform,
13867        D2D1_POINT_2F *origins);
13868
13869    /*** IDWriteFactory5 methods ***/
13870    HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
13871        IDWriteFactory7 *This,
13872        IDWriteFontSetBuilder1 **fontset_builder);
13873
13874    HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
13875        IDWriteFactory7 *This,
13876        IDWriteInMemoryFontFileLoader **loader);
13877
13878    HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
13879        IDWriteFactory7 *This,
13880        const WCHAR *referrer_url,
13881        const WCHAR *extra_headers,
13882        IDWriteRemoteFontFileLoader **loader);
13883
13884    DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
13885        IDWriteFactory7 *This,
13886        const void *data,
13887        UINT32 data_size);
13888
13889    HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
13890        IDWriteFactory7 *This,
13891        DWRITE_CONTAINER_TYPE container_type,
13892        const void *data,
13893        UINT32 data_size,
13894        IDWriteFontFileStream **stream);
13895
13896    /*** IDWriteFactory6 methods ***/
13897    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
13898        IDWriteFactory7 *This,
13899        IDWriteFontFile *file,
13900        UINT32 face_index,
13901        DWRITE_FONT_SIMULATIONS simulations,
13902        const DWRITE_FONT_AXIS_VALUE *axis_values,
13903        UINT32 num_axis,
13904        IDWriteFontFaceReference1 **face_ref);
13905
13906    HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
13907        IDWriteFactory7 *This,
13908        IDWriteFontFile *file,
13909        UINT32 face_index,
13910        IDWriteFontResource **resource);
13911
13912    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
13913        IDWriteFactory7 *This,
13914        WINBOOL include_downloadable,
13915        IDWriteFontSet1 **fontset);
13916
13917    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
13918        IDWriteFactory7 *This,
13919        WINBOOL include_downloadable,
13920        DWRITE_FONT_FAMILY_MODEL family_model,
13921        IDWriteFontCollection2 **collection);
13922
13923    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
13924        IDWriteFactory7 *This,
13925        IDWriteFontSet *fontset,
13926        DWRITE_FONT_FAMILY_MODEL family_model,
13927        IDWriteFontCollection2 **collection);
13928
13929    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
13930        IDWriteFactory7 *This,
13931        IDWriteFontSetBuilder2 **builder);
13932
13933    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
13934        IDWriteFactory7 *This,
13935        const WCHAR *familyname,
13936        IDWriteFontCollection *collection,
13937        const DWRITE_FONT_AXIS_VALUE *axis_values,
13938        UINT32 num_axis,
13939        FLOAT fontsize,
13940        const WCHAR *localename,
13941        IDWriteTextFormat3 **format);
13942
13943    /*** IDWriteFactory7 methods ***/
13944    HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
13945        IDWriteFactory7 *This,
13946        WINBOOL include_downloadable,
13947        IDWriteFontSet2 **fontset);
13948
13949    HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
13950        IDWriteFactory7 *This,
13951        WINBOOL include_downloadable,
13952        DWRITE_FONT_FAMILY_MODEL family_model,
13953        IDWriteFontCollection3 **collection);
13954
13955    END_INTERFACE
13956} IDWriteFactory7Vtbl;
13957
13958interface IDWriteFactory7 {
13959    CONST_VTBL IDWriteFactory7Vtbl* lpVtbl;
13960};
13961
13962#ifdef COBJMACROS
13963#ifndef WIDL_C_INLINE_WRAPPERS
13964/*** IUnknown methods ***/
13965#define IDWriteFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13966#define IDWriteFactory7_AddRef(This) (This)->lpVtbl->AddRef(This)
13967#define IDWriteFactory7_Release(This) (This)->lpVtbl->Release(This)
13968/*** IDWriteFactory methods ***/
13969#define IDWriteFactory7_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
13970#define IDWriteFactory7_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
13971#define IDWriteFactory7_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
13972#define IDWriteFactory7_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
13973#define IDWriteFactory7_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
13974#define IDWriteFactory7_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
13975#define IDWriteFactory7_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
13976#define IDWriteFactory7_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
13977#define IDWriteFactory7_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
13978#define IDWriteFactory7_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
13979#define IDWriteFactory7_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
13980#define IDWriteFactory7_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
13981#define IDWriteFactory7_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
13982#define IDWriteFactory7_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
13983#define IDWriteFactory7_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
13984#define IDWriteFactory7_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
13985#define IDWriteFactory7_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
13986/*** IDWriteFactory1 methods ***/
13987#define IDWriteFactory7_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
13988/*** IDWriteFactory2 methods ***/
13989#define IDWriteFactory7_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
13990#define IDWriteFactory7_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
13991/*** IDWriteFactory3 methods ***/
13992#define IDWriteFactory7_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
13993#define IDWriteFactory7_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
13994#define IDWriteFactory7_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
13995#define IDWriteFactory7_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
13996/*** IDWriteFactory4 methods ***/
13997#define IDWriteFactory7_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers)
13998#define IDWriteFactory7_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
13999#define IDWriteFactory7_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
14000/*** IDWriteFactory5 methods ***/
14001#define IDWriteFactory7_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
14002#define IDWriteFactory7_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
14003#define IDWriteFactory7_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
14004#define IDWriteFactory7_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
14005/*** IDWriteFactory6 methods ***/
14006#define IDWriteFactory7_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
14007#define IDWriteFactory7_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
14008#define IDWriteFactory7_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
14009#define IDWriteFactory7_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
14010#define IDWriteFactory7_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
14011/*** IDWriteFactory7 methods ***/
14012#define IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
14013#define IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
14014#else
14015/*** IUnknown methods ***/
14016static inline HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This,REFIID riid,void **ppvObject) {
14017    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14018}
14019static inline ULONG IDWriteFactory7_AddRef(IDWriteFactory7* This) {
14020    return This->lpVtbl->AddRef(This);
14021}
14022static inline ULONG IDWriteFactory7_Release(IDWriteFactory7* This) {
14023    return This->lpVtbl->Release(This);
14024}
14025/*** IDWriteFactory methods ***/
14026static inline HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
14027    return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
14028}
14029static inline HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) {
14030    return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
14031}
14032static inline HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) {
14033    return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
14034}
14035static inline HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
14036    return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
14037}
14038static inline HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
14039    return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
14040}
14041static inline HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
14042    return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
14043}
14044static inline HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This,IDWriteRenderingParams **params) {
14045    return This->lpVtbl->CreateRenderingParams(This,params);
14046}
14047static inline HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This,HMONITOR monitor,IDWriteRenderingParams **params) {
14048    return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
14049}
14050static inline HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) {
14051    return This->lpVtbl->RegisterFontFileLoader(This,loader);
14052}
14053static inline HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) {
14054    return This->lpVtbl->UnregisterFontFileLoader(This,loader);
14055}
14056static inline HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This,IDWriteTypography **typography) {
14057    return This->lpVtbl->CreateTypography(This,typography);
14058}
14059static inline HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This,IDWriteGdiInterop **gdi_interop) {
14060    return This->lpVtbl->GetGdiInterop(This,gdi_interop);
14061}
14062static inline HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
14063    return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
14064}
14065static inline HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
14066    return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
14067}
14068static inline HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
14069    return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
14070}
14071static inline HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This,IDWriteTextAnalyzer **analyzer) {
14072    return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
14073}
14074static inline HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
14075    return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
14076}
14077/*** IDWriteFactory1 methods ***/
14078static inline HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
14079    return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
14080}
14081/*** IDWriteFactory2 methods ***/
14082static inline HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This,IDWriteFontFallback **fallback) {
14083    return This->lpVtbl->GetSystemFontFallback(This,fallback);
14084}
14085static inline HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
14086    return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
14087}
14088/*** IDWriteFactory3 methods ***/
14089static inline HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
14090    return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
14091}
14092static inline HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
14093    return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
14094}
14095static inline HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
14096    return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
14097}
14098static inline HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This,IDWriteFontDownloadQueue **queue) {
14099    return This->lpVtbl->GetFontDownloadQueue(This,queue);
14100}
14101/*** IDWriteFactory4 methods ***/
14102static inline HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) {
14103    return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers);
14104}
14105static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
14106    return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
14107}
14108static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
14109    return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
14110}
14111/*** IDWriteFactory5 methods ***/
14112static inline HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This,IDWriteInMemoryFontFileLoader **loader) {
14113    return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
14114}
14115static inline HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
14116    return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
14117}
14118static inline DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This,const void *data,UINT32 data_size) {
14119    return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
14120}
14121static inline HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
14122    return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
14123}
14124/*** IDWriteFactory6 methods ***/
14125static inline HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
14126    return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
14127}
14128static inline HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
14129    return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
14130}
14131static inline HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
14132    return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
14133}
14134static inline HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This,IDWriteFontSetBuilder2 **builder) {
14135    return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
14136}
14137static inline HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
14138    return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
14139}
14140/*** IDWriteFactory7 methods ***/
14141static inline HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
14142    return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
14143}
14144static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
14145    return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
14146}
14147#endif
14148#endif
14149
14150#endif
14151
14152
14153#endif  /* __IDWriteFactory7_INTERFACE_DEFINED__ */
14154
14155/*****************************************************************************
14156 * IDWriteFactory8 interface
14157 */
14158#ifndef __IDWriteFactory8_INTERFACE_DEFINED__
14159#define __IDWriteFactory8_INTERFACE_DEFINED__
14160
14161DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98);
14162#if defined(__cplusplus) && !defined(CINTERFACE)
14163MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398")
14164IDWriteFactory8 : public IDWriteFactory7
14165{
14166    virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
14167        D2D1_POINT_2F origin,
14168        const DWRITE_GLYPH_RUN *glyph_run,
14169        const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
14170        DWRITE_GLYPH_IMAGE_FORMATS image_formats,
14171        DWRITE_PAINT_FEATURE_LEVEL feature_level,
14172        DWRITE_MEASURING_MODE measuring_mode,
14173        const DWRITE_MATRIX *world_and_dpi_transform,
14174        UINT32 palette_index,
14175        IDWriteColorGlyphRunEnumerator1 **enumerator) = 0;
14176
14177};
14178#ifdef __CRT_UUID_DECL
14179__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98)
14180#endif
14181#else
14182typedef struct IDWriteFactory8Vtbl {
14183    BEGIN_INTERFACE
14184
14185    /*** IUnknown methods ***/
14186    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14187        IDWriteFactory8 *This,
14188        REFIID riid,
14189        void **ppvObject);
14190
14191    ULONG (STDMETHODCALLTYPE *AddRef)(
14192        IDWriteFactory8 *This);
14193
14194    ULONG (STDMETHODCALLTYPE *Release)(
14195        IDWriteFactory8 *This);
14196
14197    /*** IDWriteFactory methods ***/
14198    HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
14199        IDWriteFactory8 *This,
14200        IDWriteFontCollection **collection,
14201        WINBOOL check_for_updates);
14202
14203    HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
14204        IDWriteFactory8 *This,
14205        IDWriteFontCollectionLoader *loader,
14206        const void *key,
14207        UINT32 key_size,
14208        IDWriteFontCollection **collection);
14209
14210    HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
14211        IDWriteFactory8 *This,
14212        IDWriteFontCollectionLoader *loader);
14213
14214    HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
14215        IDWriteFactory8 *This,
14216        IDWriteFontCollectionLoader *loader);
14217
14218    HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
14219        IDWriteFactory8 *This,
14220        const WCHAR *path,
14221        const FILETIME *writetime,
14222        IDWriteFontFile **font_file);
14223
14224    HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
14225        IDWriteFactory8 *This,
14226        const void *reference_key,
14227        UINT32 key_size,
14228        IDWriteFontFileLoader *loader,
14229        IDWriteFontFile **font_file);
14230
14231    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
14232        IDWriteFactory8 *This,
14233        DWRITE_FONT_FACE_TYPE facetype,
14234        UINT32 files_number,
14235        IDWriteFontFile *const *font_files,
14236        UINT32 index,
14237        DWRITE_FONT_SIMULATIONS sim_flags,
14238        IDWriteFontFace **font_face);
14239
14240    HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
14241        IDWriteFactory8 *This,
14242        IDWriteRenderingParams **params);
14243
14244    HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
14245        IDWriteFactory8 *This,
14246        HMONITOR monitor,
14247        IDWriteRenderingParams **params);
14248
14249    HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
14250        IDWriteFactory8 *This,
14251        FLOAT gamma,
14252        FLOAT enhancedContrast,
14253        FLOAT cleartype_level,
14254        DWRITE_PIXEL_GEOMETRY geometry,
14255        DWRITE_RENDERING_MODE mode,
14256        IDWriteRenderingParams **params);
14257
14258    HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
14259        IDWriteFactory8 *This,
14260        IDWriteFontFileLoader *loader);
14261
14262    HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
14263        IDWriteFactory8 *This,
14264        IDWriteFontFileLoader *loader);
14265
14266    HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
14267        IDWriteFactory8 *This,
14268        const WCHAR *family_name,
14269        IDWriteFontCollection *collection,
14270        DWRITE_FONT_WEIGHT weight,
14271        DWRITE_FONT_STYLE style,
14272        DWRITE_FONT_STRETCH stretch,
14273        FLOAT size,
14274        const WCHAR *locale,
14275        IDWriteTextFormat **format);
14276
14277    HRESULT (STDMETHODCALLTYPE *CreateTypography)(
14278        IDWriteFactory8 *This,
14279        IDWriteTypography **typography);
14280
14281    HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
14282        IDWriteFactory8 *This,
14283        IDWriteGdiInterop **gdi_interop);
14284
14285    HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
14286        IDWriteFactory8 *This,
14287        const WCHAR *string,
14288        UINT32 len,
14289        IDWriteTextFormat *format,
14290        FLOAT max_width,
14291        FLOAT max_height,
14292        IDWriteTextLayout **layout);
14293
14294    HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
14295        IDWriteFactory8 *This,
14296        const WCHAR *string,
14297        UINT32 len,
14298        IDWriteTextFormat *format,
14299        FLOAT layout_width,
14300        FLOAT layout_height,
14301        FLOAT pixels_per_dip,
14302        const DWRITE_MATRIX *transform,
14303        WINBOOL use_gdi_natural,
14304        IDWriteTextLayout **layout);
14305
14306    HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
14307        IDWriteFactory8 *This,
14308        IDWriteTextFormat *format,
14309        IDWriteInlineObject **trimming_sign);
14310
14311    HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
14312        IDWriteFactory8 *This,
14313        IDWriteTextAnalyzer **analyzer);
14314
14315    HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
14316        IDWriteFactory8 *This,
14317        DWRITE_NUMBER_SUBSTITUTION_METHOD method,
14318        const WCHAR *locale,
14319        WINBOOL ignore_user_override,
14320        IDWriteNumberSubstitution **substitution);
14321
14322    HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
14323        IDWriteFactory8 *This,
14324        const DWRITE_GLYPH_RUN *glyph_run,
14325        FLOAT pixels_per_dip,
14326        const DWRITE_MATRIX *transform,
14327        DWRITE_RENDERING_MODE rendering_mode,
14328        DWRITE_MEASURING_MODE measuring_mode,
14329        FLOAT baseline_x,
14330        FLOAT baseline_y,
14331        IDWriteGlyphRunAnalysis **analysis);
14332
14333    /*** IDWriteFactory1 methods ***/
14334    HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
14335        IDWriteFactory8 *This,
14336        IDWriteFontCollection **collection,
14337        WINBOOL check_for_updates);
14338
14339    HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
14340        IDWriteFactory8 *This,
14341        FLOAT gamma,
14342        FLOAT enhcontrast,
14343        FLOAT enhcontrast_grayscale,
14344        FLOAT cleartype_level,
14345        DWRITE_PIXEL_GEOMETRY geometry,
14346        DWRITE_RENDERING_MODE mode,
14347        IDWriteRenderingParams1 **params);
14348
14349    /*** IDWriteFactory2 methods ***/
14350    HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
14351        IDWriteFactory8 *This,
14352        IDWriteFontFallback **fallback);
14353
14354    HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
14355        IDWriteFactory8 *This,
14356        IDWriteFontFallbackBuilder **fallbackbuilder);
14357
14358    HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
14359        IDWriteFactory8 *This,
14360        FLOAT originX,
14361        FLOAT originY,
14362        const DWRITE_GLYPH_RUN *run,
14363        const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
14364        DWRITE_MEASURING_MODE mode,
14365        const DWRITE_MATRIX *transform,
14366        UINT32 palette_index,
14367        IDWriteColorGlyphRunEnumerator **colorlayers);
14368
14369    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
14370        IDWriteFactory8 *This,
14371        FLOAT gamma,
14372        FLOAT contrast,
14373        FLOAT grayscalecontrast,
14374        FLOAT cleartypeLevel,
14375        DWRITE_PIXEL_GEOMETRY pixelGeometry,
14376        DWRITE_RENDERING_MODE renderingMode,
14377        DWRITE_GRID_FIT_MODE gridFitMode,
14378        IDWriteRenderingParams2 **params);
14379
14380    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
14381        IDWriteFactory8 *This,
14382        const DWRITE_GLYPH_RUN *run,
14383        const DWRITE_MATRIX *transform,
14384        DWRITE_RENDERING_MODE renderingMode,
14385        DWRITE_MEASURING_MODE measuringMode,
14386        DWRITE_GRID_FIT_MODE gridFitMode,
14387        DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
14388        FLOAT originX,
14389        FLOAT originY,
14390        IDWriteGlyphRunAnalysis **analysis);
14391
14392    /*** IDWriteFactory3 methods ***/
14393    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
14394        IDWriteFactory8 *This,
14395        const DWRITE_GLYPH_RUN *run,
14396        const DWRITE_MATRIX *transform,
14397        DWRITE_RENDERING_MODE1 rendering_mode,
14398        DWRITE_MEASURING_MODE measuring_mode,
14399        DWRITE_GRID_FIT_MODE gridfit_mode,
14400        DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
14401        FLOAT origin_x,
14402        FLOAT origin_y,
14403        IDWriteGlyphRunAnalysis **analysis);
14404
14405    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
14406        IDWriteFactory8 *This,
14407        FLOAT gamma,
14408        FLOAT enhanced_contrast,
14409        FLOAT grayscale_enhanced_contrast,
14410        FLOAT cleartype_level,
14411        DWRITE_PIXEL_GEOMETRY pixel_geometry,
14412        DWRITE_RENDERING_MODE1 rendering_mode,
14413        DWRITE_GRID_FIT_MODE gridfit_mode,
14414        IDWriteRenderingParams3 **params);
14415
14416    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
14417        IDWriteFactory8 *This,
14418        IDWriteFontFile *file,
14419        UINT32 index,
14420        DWRITE_FONT_SIMULATIONS simulations,
14421        IDWriteFontFaceReference **reference);
14422
14423    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
14424        IDWriteFactory8 *This,
14425        const WCHAR *path,
14426        const FILETIME *writetime,
14427        UINT32 index,
14428        DWRITE_FONT_SIMULATIONS simulations,
14429        IDWriteFontFaceReference **reference);
14430
14431    HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
14432        IDWriteFactory8 *This,
14433        IDWriteFontSet **fontset);
14434
14435    HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
14436        IDWriteFactory8 *This,
14437        IDWriteFontSetBuilder **builder);
14438
14439    HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
14440        IDWriteFactory8 *This,
14441        IDWriteFontSet *fontset,
14442        IDWriteFontCollection1 **collection);
14443
14444    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
14445        IDWriteFactory8 *This,
14446        WINBOOL include_downloadable,
14447        IDWriteFontCollection1 **collection,
14448        WINBOOL check_for_updates);
14449
14450    HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
14451        IDWriteFactory8 *This,
14452        IDWriteFontDownloadQueue **queue);
14453
14454    /*** IDWriteFactory4 methods ***/
14455    HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
14456        IDWriteFactory8 *This,
14457        D2D1_POINT_2F baseline_origin,
14458        const DWRITE_GLYPH_RUN *run,
14459        const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
14460        DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
14461        DWRITE_MEASURING_MODE measuring_mode,
14462        const DWRITE_MATRIX *transform,
14463        UINT32 palette,
14464        IDWriteColorGlyphRunEnumerator1 **layers);
14465
14466    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
14467        IDWriteFactory8 *This,
14468        const DWRITE_GLYPH_RUN *run,
14469        D2D1_POINT_2F baseline_origin,
14470        D2D1_POINT_2F *origins);
14471
14472    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
14473        IDWriteFactory8 *This,
14474        const DWRITE_GLYPH_RUN *run,
14475        DWRITE_MEASURING_MODE measuring_mode,
14476        D2D1_POINT_2F baseline_origin,
14477        const DWRITE_MATRIX *transform,
14478        D2D1_POINT_2F *origins);
14479
14480    /*** IDWriteFactory5 methods ***/
14481    HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
14482        IDWriteFactory8 *This,
14483        IDWriteFontSetBuilder1 **fontset_builder);
14484
14485    HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
14486        IDWriteFactory8 *This,
14487        IDWriteInMemoryFontFileLoader **loader);
14488
14489    HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
14490        IDWriteFactory8 *This,
14491        const WCHAR *referrer_url,
14492        const WCHAR *extra_headers,
14493        IDWriteRemoteFontFileLoader **loader);
14494
14495    DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
14496        IDWriteFactory8 *This,
14497        const void *data,
14498        UINT32 data_size);
14499
14500    HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
14501        IDWriteFactory8 *This,
14502        DWRITE_CONTAINER_TYPE container_type,
14503        const void *data,
14504        UINT32 data_size,
14505        IDWriteFontFileStream **stream);
14506
14507    /*** IDWriteFactory6 methods ***/
14508    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
14509        IDWriteFactory8 *This,
14510        IDWriteFontFile *file,
14511        UINT32 face_index,
14512        DWRITE_FONT_SIMULATIONS simulations,
14513        const DWRITE_FONT_AXIS_VALUE *axis_values,
14514        UINT32 num_axis,
14515        IDWriteFontFaceReference1 **face_ref);
14516
14517    HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
14518        IDWriteFactory8 *This,
14519        IDWriteFontFile *file,
14520        UINT32 face_index,
14521        IDWriteFontResource **resource);
14522
14523    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
14524        IDWriteFactory8 *This,
14525        WINBOOL include_downloadable,
14526        IDWriteFontSet1 **fontset);
14527
14528    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
14529        IDWriteFactory8 *This,
14530        WINBOOL include_downloadable,
14531        DWRITE_FONT_FAMILY_MODEL family_model,
14532        IDWriteFontCollection2 **collection);
14533
14534    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
14535        IDWriteFactory8 *This,
14536        IDWriteFontSet *fontset,
14537        DWRITE_FONT_FAMILY_MODEL family_model,
14538        IDWriteFontCollection2 **collection);
14539
14540    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
14541        IDWriteFactory8 *This,
14542        IDWriteFontSetBuilder2 **builder);
14543
14544    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
14545        IDWriteFactory8 *This,
14546        const WCHAR *familyname,
14547        IDWriteFontCollection *collection,
14548        const DWRITE_FONT_AXIS_VALUE *axis_values,
14549        UINT32 num_axis,
14550        FLOAT fontsize,
14551        const WCHAR *localename,
14552        IDWriteTextFormat3 **format);
14553
14554    /*** IDWriteFactory7 methods ***/
14555    HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
14556        IDWriteFactory8 *This,
14557        WINBOOL include_downloadable,
14558        IDWriteFontSet2 **fontset);
14559
14560    HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
14561        IDWriteFactory8 *This,
14562        WINBOOL include_downloadable,
14563        DWRITE_FONT_FAMILY_MODEL family_model,
14564        IDWriteFontCollection3 **collection);
14565
14566    /*** IDWriteFactory8 methods ***/
14567    HRESULT (STDMETHODCALLTYPE *IDWriteFactory8_TranslateColorGlyphRun)(
14568        IDWriteFactory8 *This,
14569        D2D1_POINT_2F origin,
14570        const DWRITE_GLYPH_RUN *glyph_run,
14571        const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
14572        DWRITE_GLYPH_IMAGE_FORMATS image_formats,
14573        DWRITE_PAINT_FEATURE_LEVEL feature_level,
14574        DWRITE_MEASURING_MODE measuring_mode,
14575        const DWRITE_MATRIX *world_and_dpi_transform,
14576        UINT32 palette_index,
14577        IDWriteColorGlyphRunEnumerator1 **enumerator);
14578
14579    END_INTERFACE
14580} IDWriteFactory8Vtbl;
14581
14582interface IDWriteFactory8 {
14583    CONST_VTBL IDWriteFactory8Vtbl* lpVtbl;
14584};
14585
14586#ifdef COBJMACROS
14587#ifndef WIDL_C_INLINE_WRAPPERS
14588/*** IUnknown methods ***/
14589#define IDWriteFactory8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14590#define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This)
14591#define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This)
14592/*** IDWriteFactory methods ***/
14593#define IDWriteFactory8_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
14594#define IDWriteFactory8_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
14595#define IDWriteFactory8_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
14596#define IDWriteFactory8_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
14597#define IDWriteFactory8_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
14598#define IDWriteFactory8_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
14599#define IDWriteFactory8_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
14600#define IDWriteFactory8_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
14601#define IDWriteFactory8_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
14602#define IDWriteFactory8_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
14603#define IDWriteFactory8_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
14604#define IDWriteFactory8_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
14605#define IDWriteFactory8_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
14606#define IDWriteFactory8_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
14607#define IDWriteFactory8_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
14608#define IDWriteFactory8_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
14609#define IDWriteFactory8_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
14610/*** IDWriteFactory1 methods ***/
14611#define IDWriteFactory8_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
14612/*** IDWriteFactory2 methods ***/
14613#define IDWriteFactory8_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
14614#define IDWriteFactory8_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
14615/*** IDWriteFactory3 methods ***/
14616#define IDWriteFactory8_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
14617#define IDWriteFactory8_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
14618#define IDWriteFactory8_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
14619#define IDWriteFactory8_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
14620/*** IDWriteFactory4 methods ***/
14621#define IDWriteFactory8_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
14622#define IDWriteFactory8_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
14623/*** IDWriteFactory5 methods ***/
14624#define IDWriteFactory8_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
14625#define IDWriteFactory8_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
14626#define IDWriteFactory8_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
14627#define IDWriteFactory8_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
14628/*** IDWriteFactory6 methods ***/
14629#define IDWriteFactory8_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
14630#define IDWriteFactory8_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
14631#define IDWriteFactory8_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
14632#define IDWriteFactory8_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
14633#define IDWriteFactory8_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
14634/*** IDWriteFactory7 methods ***/
14635#define IDWriteFactory8_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
14636#define IDWriteFactory8_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
14637/*** IDWriteFactory8 methods ***/
14638#define IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator)
14639#else
14640/*** IUnknown methods ***/
14641static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) {
14642    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14643}
14644static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) {
14645    return This->lpVtbl->AddRef(This);
14646}
14647static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) {
14648    return This->lpVtbl->Release(This);
14649}
14650/*** IDWriteFactory methods ***/
14651static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
14652    return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
14653}
14654static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
14655    return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
14656}
14657static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
14658    return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
14659}
14660static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
14661    return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
14662}
14663static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
14664    return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
14665}
14666static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
14667    return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
14668}
14669static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) {
14670    return This->lpVtbl->CreateRenderingParams(This,params);
14671}
14672static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) {
14673    return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
14674}
14675static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
14676    return This->lpVtbl->RegisterFontFileLoader(This,loader);
14677}
14678static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
14679    return This->lpVtbl->UnregisterFontFileLoader(This,loader);
14680}
14681static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) {
14682    return This->lpVtbl->CreateTypography(This,typography);
14683}
14684static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) {
14685    return This->lpVtbl->GetGdiInterop(This,gdi_interop);
14686}
14687static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
14688    return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
14689}
14690static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
14691    return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
14692}
14693static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
14694    return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
14695}
14696static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) {
14697    return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
14698}
14699static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
14700    return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
14701}
14702/*** IDWriteFactory1 methods ***/
14703static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
14704    return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
14705}
14706/*** IDWriteFactory2 methods ***/
14707static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) {
14708    return This->lpVtbl->GetSystemFontFallback(This,fallback);
14709}
14710static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
14711    return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
14712}
14713/*** IDWriteFactory3 methods ***/
14714static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
14715    return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
14716}
14717static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
14718    return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
14719}
14720static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
14721    return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
14722}
14723static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) {
14724    return This->lpVtbl->GetFontDownloadQueue(This,queue);
14725}
14726/*** IDWriteFactory4 methods ***/
14727static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
14728    return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
14729}
14730static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
14731    return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
14732}
14733/*** IDWriteFactory5 methods ***/
14734static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) {
14735    return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
14736}
14737static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
14738    return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
14739}
14740static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) {
14741    return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
14742}
14743static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
14744    return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
14745}
14746/*** IDWriteFactory6 methods ***/
14747static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
14748    return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
14749}
14750static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
14751    return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
14752}
14753static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
14754    return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
14755}
14756static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) {
14757    return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
14758}
14759static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
14760    return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
14761}
14762/*** IDWriteFactory7 methods ***/
14763static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
14764    return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
14765}
14766static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
14767    return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
14768}
14769/*** IDWriteFactory8 methods ***/
14770static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This,D2D1_POINT_2F origin,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,DWRITE_GLYPH_IMAGE_FORMATS image_formats,DWRITE_PAINT_FEATURE_LEVEL feature_level,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *world_and_dpi_transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator1 **enumerator) {
14771    return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator);
14772}
14773#endif
14774#endif
14775
14776#endif
14777
14778
14779#endif  /* __IDWriteFactory8_INTERFACE_DEFINED__ */
14780
14781typedef struct DWRITE_BITMAP_DATA_BGRA32 {
14782    UINT32 width;
14783    UINT32 height;
14784    UINT32 *pixels;
14785} DWRITE_BITMAP_DATA_BGRA32;
14786/*****************************************************************************
14787 * IDWriteBitmapRenderTarget2 interface
14788 */
14789#ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
14790#define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
14791
14792DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95);
14793#if defined(__cplusplus) && !defined(CINTERFACE)
14794MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995")
14795IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1
14796{
14797    virtual HRESULT STDMETHODCALLTYPE GetBitmapData(
14798        DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) = 0;
14799
14800};
14801#ifdef __CRT_UUID_DECL
14802__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95)
14803#endif
14804#else
14805typedef struct IDWriteBitmapRenderTarget2Vtbl {
14806    BEGIN_INTERFACE
14807
14808    /*** IUnknown methods ***/
14809    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14810        IDWriteBitmapRenderTarget2 *This,
14811        REFIID riid,
14812        void **ppvObject);
14813
14814    ULONG (STDMETHODCALLTYPE *AddRef)(
14815        IDWriteBitmapRenderTarget2 *This);
14816
14817    ULONG (STDMETHODCALLTYPE *Release)(
14818        IDWriteBitmapRenderTarget2 *This);
14819
14820    /*** IDWriteBitmapRenderTarget methods ***/
14821    HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
14822        IDWriteBitmapRenderTarget2 *This,
14823        FLOAT baselineOriginX,
14824        FLOAT baselineOriginY,
14825        DWRITE_MEASURING_MODE measuring_mode,
14826        const DWRITE_GLYPH_RUN *glyph_run,
14827        IDWriteRenderingParams *params,
14828        COLORREF textColor,
14829        RECT *blackbox_rect);
14830
14831    HDC (STDMETHODCALLTYPE *GetMemoryDC)(
14832        IDWriteBitmapRenderTarget2 *This);
14833
14834    FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
14835        IDWriteBitmapRenderTarget2 *This);
14836
14837    HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
14838        IDWriteBitmapRenderTarget2 *This,
14839        FLOAT pixels_per_dip);
14840
14841    HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
14842        IDWriteBitmapRenderTarget2 *This,
14843        DWRITE_MATRIX *transform);
14844
14845    HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
14846        IDWriteBitmapRenderTarget2 *This,
14847        const DWRITE_MATRIX *transform);
14848
14849    HRESULT (STDMETHODCALLTYPE *GetSize)(
14850        IDWriteBitmapRenderTarget2 *This,
14851        SIZE *size);
14852
14853    HRESULT (STDMETHODCALLTYPE *Resize)(
14854        IDWriteBitmapRenderTarget2 *This,
14855        UINT32 width,
14856        UINT32 height);
14857
14858    /*** IDWriteBitmapRenderTarget1 methods ***/
14859    DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
14860        IDWriteBitmapRenderTarget2 *This);
14861
14862    HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
14863        IDWriteBitmapRenderTarget2 *This,
14864        DWRITE_TEXT_ANTIALIAS_MODE mode);
14865
14866    /*** IDWriteBitmapRenderTarget2 methods ***/
14867    HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
14868        IDWriteBitmapRenderTarget2 *This,
14869        DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
14870
14871    END_INTERFACE
14872} IDWriteBitmapRenderTarget2Vtbl;
14873
14874interface IDWriteBitmapRenderTarget2 {
14875    CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl;
14876};
14877
14878#ifdef COBJMACROS
14879#ifndef WIDL_C_INLINE_WRAPPERS
14880/*** IUnknown methods ***/
14881#define IDWriteBitmapRenderTarget2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14882#define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This)
14883#define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This)
14884/*** IDWriteBitmapRenderTarget methods ***/
14885#define IDWriteBitmapRenderTarget2_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
14886#define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
14887#define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
14888#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
14889#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
14890#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
14891#define IDWriteBitmapRenderTarget2_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
14892#define IDWriteBitmapRenderTarget2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
14893/*** IDWriteBitmapRenderTarget1 methods ***/
14894#define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
14895#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
14896/*** IDWriteBitmapRenderTarget2 methods ***/
14897#define IDWriteBitmapRenderTarget2_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
14898#else
14899/*** IUnknown methods ***/
14900static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) {
14901    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14902}
14903static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) {
14904    return This->lpVtbl->AddRef(This);
14905}
14906static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) {
14907    return This->lpVtbl->Release(This);
14908}
14909/*** IDWriteBitmapRenderTarget methods ***/
14910static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
14911    return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
14912}
14913static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) {
14914    return This->lpVtbl->GetMemoryDC(This);
14915}
14916static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) {
14917    return This->lpVtbl->GetPixelsPerDip(This);
14918}
14919static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) {
14920    return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
14921}
14922static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) {
14923    return This->lpVtbl->GetCurrentTransform(This,transform);
14924}
14925static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) {
14926    return This->lpVtbl->SetCurrentTransform(This,transform);
14927}
14928static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) {
14929    return This->lpVtbl->GetSize(This,size);
14930}
14931static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) {
14932    return This->lpVtbl->Resize(This,width,height);
14933}
14934/*** IDWriteBitmapRenderTarget1 methods ***/
14935static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) {
14936    return This->lpVtbl->GetTextAntialiasMode(This);
14937}
14938static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
14939    return This->lpVtbl->SetTextAntialiasMode(This,mode);
14940}
14941/*** IDWriteBitmapRenderTarget2 methods ***/
14942static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
14943    return This->lpVtbl->GetBitmapData(This,bitmap_data);
14944}
14945#endif
14946#endif
14947
14948#endif
14949
14950
14951#endif  /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */
14952
14953/*****************************************************************************
14954 * IDWriteBitmapRenderTarget3 interface
14955 */
14956#ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
14957#define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
14958
14959DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38);
14960#if defined(__cplusplus) && !defined(CINTERFACE)
14961MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238")
14962IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2
14963{
14964    virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel(
14965        ) = 0;
14966
14967    virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun(
14968        FLOAT origin_x,
14969        FLOAT origin_y,
14970        DWRITE_MEASURING_MODE measuring_mode,
14971        const DWRITE_GLYPH_RUN *run,
14972        DWRITE_GLYPH_IMAGE_FORMATS image_format,
14973        COLORREF text_color,
14974        UINT32 palette_index,
14975        RECT *black_box) = 0;
14976
14977    virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport(
14978        FLOAT origin_x,
14979        FLOAT origin_y,
14980        DWRITE_MEASURING_MODE measuring_mode,
14981        const DWRITE_GLYPH_RUN *run,
14982        IDWriteRenderingParams *params,
14983        COLORREF text_color,
14984        UINT32 palette_index,
14985        RECT *black_box) = 0;
14986
14987};
14988#ifdef __CRT_UUID_DECL
14989__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38)
14990#endif
14991#else
14992typedef struct IDWriteBitmapRenderTarget3Vtbl {
14993    BEGIN_INTERFACE
14994
14995    /*** IUnknown methods ***/
14996    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14997        IDWriteBitmapRenderTarget3 *This,
14998        REFIID riid,
14999        void **ppvObject);
15000
15001    ULONG (STDMETHODCALLTYPE *AddRef)(
15002        IDWriteBitmapRenderTarget3 *This);
15003
15004    ULONG (STDMETHODCALLTYPE *Release)(
15005        IDWriteBitmapRenderTarget3 *This);
15006
15007    /*** IDWriteBitmapRenderTarget methods ***/
15008    HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
15009        IDWriteBitmapRenderTarget3 *This,
15010        FLOAT baselineOriginX,
15011        FLOAT baselineOriginY,
15012        DWRITE_MEASURING_MODE measuring_mode,
15013        const DWRITE_GLYPH_RUN *glyph_run,
15014        IDWriteRenderingParams *params,
15015        COLORREF textColor,
15016        RECT *blackbox_rect);
15017
15018    HDC (STDMETHODCALLTYPE *GetMemoryDC)(
15019        IDWriteBitmapRenderTarget3 *This);
15020
15021    FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
15022        IDWriteBitmapRenderTarget3 *This);
15023
15024    HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
15025        IDWriteBitmapRenderTarget3 *This,
15026        FLOAT pixels_per_dip);
15027
15028    HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
15029        IDWriteBitmapRenderTarget3 *This,
15030        DWRITE_MATRIX *transform);
15031
15032    HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
15033        IDWriteBitmapRenderTarget3 *This,
15034        const DWRITE_MATRIX *transform);
15035
15036    HRESULT (STDMETHODCALLTYPE *GetSize)(
15037        IDWriteBitmapRenderTarget3 *This,
15038        SIZE *size);
15039
15040    HRESULT (STDMETHODCALLTYPE *Resize)(
15041        IDWriteBitmapRenderTarget3 *This,
15042        UINT32 width,
15043        UINT32 height);
15044
15045    /*** IDWriteBitmapRenderTarget1 methods ***/
15046    DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
15047        IDWriteBitmapRenderTarget3 *This);
15048
15049    HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
15050        IDWriteBitmapRenderTarget3 *This,
15051        DWRITE_TEXT_ANTIALIAS_MODE mode);
15052
15053    /*** IDWriteBitmapRenderTarget2 methods ***/
15054    HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
15055        IDWriteBitmapRenderTarget3 *This,
15056        DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
15057
15058    /*** IDWriteBitmapRenderTarget3 methods ***/
15059    DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)(
15060        IDWriteBitmapRenderTarget3 *This);
15061
15062    HRESULT (STDMETHODCALLTYPE *DrawPaintGlyphRun)(
15063        IDWriteBitmapRenderTarget3 *This,
15064        FLOAT origin_x,
15065        FLOAT origin_y,
15066        DWRITE_MEASURING_MODE measuring_mode,
15067        const DWRITE_GLYPH_RUN *run,
15068        DWRITE_GLYPH_IMAGE_FORMATS image_format,
15069        COLORREF text_color,
15070        UINT32 palette_index,
15071        RECT *black_box);
15072
15073    HRESULT (STDMETHODCALLTYPE *DrawGlyphRunWithColorSupport)(
15074        IDWriteBitmapRenderTarget3 *This,
15075        FLOAT origin_x,
15076        FLOAT origin_y,
15077        DWRITE_MEASURING_MODE measuring_mode,
15078        const DWRITE_GLYPH_RUN *run,
15079        IDWriteRenderingParams *params,
15080        COLORREF text_color,
15081        UINT32 palette_index,
15082        RECT *black_box);
15083
15084    END_INTERFACE
15085} IDWriteBitmapRenderTarget3Vtbl;
15086
15087interface IDWriteBitmapRenderTarget3 {
15088    CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl;
15089};
15090
15091#ifdef COBJMACROS
15092#ifndef WIDL_C_INLINE_WRAPPERS
15093/*** IUnknown methods ***/
15094#define IDWriteBitmapRenderTarget3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15095#define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This)
15096#define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This)
15097/*** IDWriteBitmapRenderTarget methods ***/
15098#define IDWriteBitmapRenderTarget3_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
15099#define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
15100#define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
15101#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
15102#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
15103#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
15104#define IDWriteBitmapRenderTarget3_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
15105#define IDWriteBitmapRenderTarget3_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
15106/*** IDWriteBitmapRenderTarget1 methods ***/
15107#define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
15108#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
15109/*** IDWriteBitmapRenderTarget2 methods ***/
15110#define IDWriteBitmapRenderTarget3_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
15111/*** IDWriteBitmapRenderTarget3 methods ***/
15112#define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This)
15113#define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) (This)->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box)
15114#define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box)
15115#else
15116/*** IUnknown methods ***/
15117static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) {
15118    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15119}
15120static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) {
15121    return This->lpVtbl->AddRef(This);
15122}
15123static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) {
15124    return This->lpVtbl->Release(This);
15125}
15126/*** IDWriteBitmapRenderTarget methods ***/
15127static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
15128    return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
15129}
15130static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) {
15131    return This->lpVtbl->GetMemoryDC(This);
15132}
15133static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) {
15134    return This->lpVtbl->GetPixelsPerDip(This);
15135}
15136static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) {
15137    return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
15138}
15139static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) {
15140    return This->lpVtbl->GetCurrentTransform(This,transform);
15141}
15142static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) {
15143    return This->lpVtbl->SetCurrentTransform(This,transform);
15144}
15145static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) {
15146    return This->lpVtbl->GetSize(This,size);
15147}
15148static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) {
15149    return This->lpVtbl->Resize(This,width,height);
15150}
15151/*** IDWriteBitmapRenderTarget1 methods ***/
15152static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) {
15153    return This->lpVtbl->GetTextAntialiasMode(This);
15154}
15155static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
15156    return This->lpVtbl->SetTextAntialiasMode(This,mode);
15157}
15158/*** IDWriteBitmapRenderTarget2 methods ***/
15159static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
15160    return This->lpVtbl->GetBitmapData(This,bitmap_data);
15161}
15162/*** IDWriteBitmapRenderTarget3 methods ***/
15163static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) {
15164    return This->lpVtbl->GetPaintFeatureLevel(This);
15165}
15166static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,DWRITE_GLYPH_IMAGE_FORMATS image_format,COLORREF text_color,UINT32 palette_index,RECT *black_box) {
15167    return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box);
15168}
15169static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,IDWriteRenderingParams *params,COLORREF text_color,UINT32 palette_index,RECT *black_box) {
15170    return This->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box);
15171}
15172#endif
15173#endif
15174
15175#endif
15176
15177
15178#endif  /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */
15179
15180/* Begin additional prototypes for all interfaces */
15181
15182
15183/* End additional prototypes */
15184
15185#ifdef __cplusplus
15186}
15187#endif
15188
15189#endif /* __dwrite_3_h__ */