|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the w64 mingw-runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef __INC_DWRITE__ | 
|  | #define __INC_DWRITE__ | 
|  |  | 
|  | #define DWRITEAPI DECLSPEC_IMPORT | 
|  |  | 
|  | #ifdef __MINGW_USE_BROKEN_INTERFACE | 
|  | #define __MINGW_POISON_NAME(__IFACE) __IFACE | 
|  | #else | 
|  | #define __MINGW_POISON_NAME(__IFACE)\ | 
|  | __IFACE##_layout_has_not_been_verified_and_its_declaration_is_most_likely_incorrect | 
|  | #endif | 
|  |  | 
|  | #include <unknwn.h> | 
|  |  | 
|  | #ifndef __IDWriteBitmapRenderTarget_FWD_DEFINED__ | 
|  | #define __IDWriteBitmapRenderTarget_FWD_DEFINED__ | 
|  | typedef struct IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFactory_FWD_DEFINED__ | 
|  | #define __IDWriteFactory_FWD_DEFINED__ | 
|  | typedef struct IDWriteFactory IDWriteFactory; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFont_FWD_DEFINED__ | 
|  | #define __IDWriteFont_FWD_DEFINED__ | 
|  | typedef struct IDWriteFont IDWriteFont; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontCollection_FWD_DEFINED__ | 
|  | #define __IDWriteFontCollection_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontCollection IDWriteFontCollection; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontFace_FWD_DEFINED__ | 
|  | #define __IDWriteFontFace_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontFace IDWriteFontFace; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontFamily_FWD_DEFINED__ | 
|  | #define __IDWriteFontFamily_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontFamily IDWriteFontFamily; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontList_FWD_DEFINED__ | 
|  | #define __IDWriteFontList_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontList IDWriteFontList; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontFile_FWD_DEFINED__ | 
|  | #define __IDWriteFontFile_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontFile IDWriteFontFile; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontFileLoader_FWD_DEFINED__ | 
|  | #define __IDWriteFontFileLoader_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontFileLoader IDWriteFontFileLoader; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontFileStream_FWD_DEFINED__ | 
|  | #define __IDWriteFontFileStream_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontFileStream IDWriteFontFileStream; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__ | 
|  | #define __IDWriteFontCollectionLoader_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontCollectionLoader IDWriteFontCollectionLoader; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__ | 
|  | #define __IDWriteFontFileEnumerator_FWD_DEFINED__ | 
|  | typedef struct IDWriteFontFileEnumerator IDWriteFontFileEnumerator; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteGdiInterop_FWD_DEFINED__ | 
|  | #define __IDWriteGdiInterop_FWD_DEFINED__ | 
|  | typedef struct IDWriteGdiInterop IDWriteGdiInterop; | 
|  | #endif | 
|  |  | 
|  | /* Fixme: MSDN says its a typedef, needs verification */ | 
|  | /* http://msdn.microsoft.com/en-us/library/dd756614%28v=VS.85%29.aspx */ | 
|  | #ifndef __IDWriteGeometrySink_FWD_DEFINED__ | 
|  | #define __IDWriteGeometrySink_FWD_DEFINED__ | 
|  | typedef struct ID2D1SimplifiedGeometrySink IDWriteGeometrySink; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__ | 
|  | #define __IDWriteGlyphRunAnalysis_FWD_DEFINED__ | 
|  | typedef struct IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteInlineObject_FWD_DEFINED__ | 
|  | #define __IDWriteInlineObject_FWD_DEFINED__ | 
|  | typedef struct IDWriteInlineObject IDWriteInlineObject; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__ | 
|  | #define __IDWriteLocalFontFileLoader_FWD_DEFINED__ | 
|  | typedef struct IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteLocalizedStrings_FWD_DEFINED__ | 
|  | #define __IDWriteLocalizedStrings_FWD_DEFINED__ | 
|  | typedef struct IDWriteLocalizedStrings IDWriteLocalizedStrings; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteNumberSubstitution_FWD_DEFINED__ | 
|  | #define __IDWriteNumberSubstitution_FWD_DEFINED__ | 
|  | typedef struct IDWriteNumberSubstitution IDWriteNumberSubstitution; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWritePixelSnapping_FWD_DEFINED__ | 
|  | #define __IDWritePixelSnapping_FWD_DEFINED__ | 
|  | typedef struct IDWritePixelSnapping IDWritePixelSnapping; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteRenderingParams_FWD_DEFINED__ | 
|  | #define __IDWriteRenderingParams_FWD_DEFINED__ | 
|  | typedef struct IDWriteRenderingParams IDWriteRenderingParams; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__ | 
|  | #define __IDWriteTextAnalysisSink_FWD_DEFINED__ | 
|  | typedef struct IDWriteTextAnalysisSink IDWriteTextAnalysisSink; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__ | 
|  | #define __IDWriteTextAnalysisSource_FWD_DEFINED__ | 
|  | typedef struct IDWriteTextAnalysisSource IDWriteTextAnalysisSource; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteTextAnalyzer_FWD_DEFINED__ | 
|  | #define __IDWriteTextAnalyzer_FWD_DEFINED__ | 
|  | typedef struct IDWriteTextAnalyzer IDWriteTextAnalyzer; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteTextFormat_FWD_DEFINED__ | 
|  | #define __IDWriteTextFormat_FWD_DEFINED__ | 
|  | typedef struct IDWriteTextFormat IDWriteTextFormat; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteTextLayout_FWD_DEFINED__ | 
|  | #define __IDWriteTextLayout_FWD_DEFINED__ | 
|  | typedef struct IDWriteTextLayout IDWriteTextLayout; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteTextRenderer_FWD_DEFINED__ | 
|  | #define __IDWriteTextRenderer_FWD_DEFINED__ | 
|  | typedef struct IDWriteTextRenderer IDWriteTextRenderer; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IDWriteTypography_FWD_DEFINED__ | 
|  | #define __IDWriteTypography_FWD_DEFINED__ | 
|  | typedef struct IDWriteTypography IDWriteTypography; | 
|  | #endif | 
|  |  | 
|  | #include <dcommon.h> | 
|  |  | 
|  | typedef enum DWRITE_INFORMATIONAL_STRING_ID { | 
|  | DWRITE_INFORMATIONAL_STRING_NONE = 0, | 
|  | DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE, | 
|  | DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS, | 
|  | DWRITE_INFORMATIONAL_STRING_TRADEMARK, | 
|  | DWRITE_INFORMATIONAL_STRING_MANUFACTURER, | 
|  | DWRITE_INFORMATIONAL_STRING_DESIGNER, | 
|  | DWRITE_INFORMATIONAL_STRING_DESIGNER_URL, | 
|  | DWRITE_INFORMATIONAL_STRING_DESCRIPTION, | 
|  | DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL, | 
|  | DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION, | 
|  | DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL, | 
|  | DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES, | 
|  | DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES, | 
|  | DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES, | 
|  | DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES, | 
|  | DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT | 
|  | } DWRITE_INFORMATIONAL_STRING_ID; | 
|  |  | 
|  | typedef enum DWRITE_BREAK_CONDITION { | 
|  | DWRITE_BREAK_CONDITION_NEUTRAL         = 0, | 
|  | DWRITE_BREAK_CONDITION_CAN_BREAK       = 1, | 
|  | DWRITE_BREAK_CONDITION_MAY_NOT_BREAK   = 2, | 
|  | DWRITE_BREAK_CONDITION_MUST_BREAK      = 3 | 
|  | } DWRITE_BREAK_CONDITION; | 
|  |  | 
|  | typedef enum DWRITE_FACTORY_TYPE { | 
|  | DWRITE_FACTORY_TYPE_SHARED = 0, | 
|  | DWRITE_FACTORY_TYPE_ISOLATED | 
|  | } DWRITE_FACTORY_TYPE; | 
|  |  | 
|  | typedef enum DWRITE_FLOW_DIRECTION { | 
|  | DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM | 
|  | } DWRITE_FLOW_DIRECTION; | 
|  |  | 
|  | typedef enum DWRITE_FONT_FACE_TYPE { | 
|  | DWRITE_FONT_FACE_TYPE_CFF = 0, | 
|  | DWRITE_FONT_FACE_TYPE_TRUETYPE, | 
|  | DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION, | 
|  | DWRITE_FONT_FACE_TYPE_TYPE1, | 
|  | DWRITE_FONT_FACE_TYPE_VECTOR, | 
|  | DWRITE_FONT_FACE_TYPE_BITMAP, | 
|  | DWRITE_FONT_FACE_TYPE_UNKNOWN | 
|  | } DWRITE_FONT_FACE_TYPE; | 
|  |  | 
|  | typedef enum DWRITE_FONT_FEATURE_TAG { | 
|  | DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS             = 0x63726661, | 
|  | DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS     = 0x63703263, | 
|  | DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS      = 0x63733263, | 
|  | DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES             = 0x746c6163, | 
|  | DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS              = 0x65736163, | 
|  | DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION   = 0x706d6363, | 
|  | DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES              = 0x67696c63, | 
|  | DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING                   = 0x70737063, | 
|  | DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH                  = 0x68777363, | 
|  | DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING               = 0x73727563, | 
|  | DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES           = 0x67696c64, | 
|  | DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS                      = 0x74707865, | 
|  | DWRITE_FONT_FEATURE_TAG_FRACTIONS                         = 0x63617266, | 
|  | DWRITE_FONT_FEATURE_TAG_FULL_WIDTH                        = 0x64697766, | 
|  | DWRITE_FONT_FEATURE_TAG_HALF_FORMS                        = 0x666c6168, | 
|  | DWRITE_FONT_FEATURE_TAG_HALANT_FORMS                      = 0x6e6c6168, | 
|  | DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH              = 0x746c6168, | 
|  | DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS                  = 0x74736968, | 
|  | DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES        = 0x616e6b68, | 
|  | DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES              = 0x67696c68, | 
|  | DWRITE_FONT_FEATURE_TAG_HALF_WIDTH                        = 0x64697768, | 
|  | DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS                  = 0x6f6a6f68, | 
|  | DWRITE_FONT_FEATURE_TAG_JIS04_FORMS                       = 0x3430706a, | 
|  | DWRITE_FONT_FEATURE_TAG_JIS78_FORMS                       = 0x3837706a, | 
|  | DWRITE_FONT_FEATURE_TAG_JIS83_FORMS                       = 0x3338706a, | 
|  | DWRITE_FONT_FEATURE_TAG_JIS90_FORMS                       = 0x3039706a, | 
|  | DWRITE_FONT_FEATURE_TAG_KERNING                           = 0x6e72656b, | 
|  | DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES                = 0x6167696c, | 
|  | DWRITE_FONT_FEATURE_TAG_LINING_FIGURES                    = 0x6d756e6c, | 
|  | DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS                   = 0x6c636f6c, | 
|  | DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING                  = 0x6b72616d, | 
|  | DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK                = 0x6b72676d, | 
|  | DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING          = 0x6b6d6b6d, | 
|  | DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS        = 0x746c616e, | 
|  | DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS                   = 0x6b636c6e, | 
|  | DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES                 = 0x6d756e6f, | 
|  | DWRITE_FONT_FEATURE_TAG_ORDINALS                          = 0x6e64726f, | 
|  | DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH      = 0x746c6170, | 
|  | DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS                   = 0x70616370, | 
|  | DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES              = 0x6d756e70, | 
|  | DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS               = 0x64697770, | 
|  | DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS                    = 0x64697771, | 
|  | DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES                = 0x67696c72, | 
|  | DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS               = 0x79627572, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES              = 0x746c6173, | 
|  | DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS              = 0x666e6973, | 
|  | DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS                    = 0x70636d73, | 
|  | DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS                  = 0x6c706d73, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1                   = 0x31307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2                   = 0x32307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3                   = 0x33307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4                   = 0x34307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5                   = 0x35307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6                   = 0x36307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7                   = 0x37307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8                   = 0x38307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9                   = 0x39307373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10                  = 0x30317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11                  = 0x31317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12                  = 0x32317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13                  = 0x33317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14                  = 0x34317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15                  = 0x35317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16                  = 0x36317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17                  = 0x37317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18                  = 0x38317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19                  = 0x39317373, | 
|  | DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20                  = 0x30327373, | 
|  | DWRITE_FONT_FEATURE_TAG_SUBSCRIPT                         = 0x73627573, | 
|  | DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT                       = 0x73707573, | 
|  | DWRITE_FONT_FEATURE_TAG_SWASH                             = 0x68737773, | 
|  | DWRITE_FONT_FEATURE_TAG_TITLING                           = 0x6c746974, | 
|  | DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS            = 0x6d616e74, | 
|  | DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES                   = 0x6d756e74, | 
|  | DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS                 = 0x64617274, | 
|  | DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS                      = 0x64697774, | 
|  | DWRITE_FONT_FEATURE_TAG_UNICASE                           = 0x63696e75, | 
|  | DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO                      = 0x6f72657a | 
|  | } DWRITE_FONT_FEATURE_TAG; | 
|  |  | 
|  | typedef enum DWRITE_FONT_FILE_TYPE { | 
|  | DWRITE_FONT_FILE_TYPE_UNKNOWN = 0, | 
|  | DWRITE_FONT_FILE_TYPE_CFF, | 
|  | DWRITE_FONT_FILE_TYPE_TRUETYPE, | 
|  | DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION, | 
|  | DWRITE_FONT_FILE_TYPE_TYPE1_PFM, | 
|  | DWRITE_FONT_FILE_TYPE_TYPE1_PFB, | 
|  | DWRITE_FONT_FILE_TYPE_VECTOR, | 
|  | DWRITE_FONT_FILE_TYPE_BITMAP | 
|  | } DWRITE_FONT_FILE_TYPE; | 
|  |  | 
|  | typedef enum DWRITE_FONT_SIMULATIONS { | 
|  | DWRITE_FONT_SIMULATIONS_NONE      = 0x0000, | 
|  | DWRITE_FONT_SIMULATIONS_BOLD      = 0x0001, | 
|  | DWRITE_FONT_SIMULATIONS_OBLIQUE   = 0x0002 | 
|  | } DWRITE_FONT_SIMULATIONS; | 
|  |  | 
|  | #ifdef DEFINE_ENUM_FLAG_OPERATORS | 
|  | DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS); | 
|  | #endif | 
|  |  | 
|  | typedef enum DWRITE_FONT_STRETCH { | 
|  | DWRITE_FONT_STRETCH_UNDEFINED         = 0, | 
|  | DWRITE_FONT_STRETCH_ULTRA_CONDENSED   = 1, | 
|  | DWRITE_FONT_STRETCH_EXTRA_CONDENSED   = 2, | 
|  | DWRITE_FONT_STRETCH_CONDENSED         = 3, | 
|  | DWRITE_FONT_STRETCH_SEMI_CONDENSED    = 4, | 
|  | DWRITE_FONT_STRETCH_NORMAL            = 5, | 
|  | DWRITE_FONT_STRETCH_MEDIUM            = 5, | 
|  | DWRITE_FONT_STRETCH_SEMI_EXPANDED     = 6, | 
|  | DWRITE_FONT_STRETCH_EXPANDED          = 7, | 
|  | DWRITE_FONT_STRETCH_EXTRA_EXPANDED    = 8, | 
|  | DWRITE_FONT_STRETCH_ULTRA_EXPANDED    = 9 | 
|  | } DWRITE_FONT_STRETCH; | 
|  |  | 
|  | typedef enum DWRITE_FONT_STYLE { | 
|  | DWRITE_FONT_STYLE_NORMAL = 0, | 
|  | DWRITE_FONT_STYLE_OBLIQUE, | 
|  | DWRITE_FONT_STYLE_ITALIC | 
|  | } DWRITE_FONT_STYLE; | 
|  |  | 
|  | typedef enum DWRITE_FONT_WEIGHT { | 
|  | DWRITE_FONT_WEIGHT_THIN          = 100, | 
|  | DWRITE_FONT_WEIGHT_EXTRA_LIGHT   = 200, | 
|  | DWRITE_FONT_WEIGHT_ULTRA_LIGHT   = 200, | 
|  | DWRITE_FONT_WEIGHT_LIGHT         = 300, | 
|  | DWRITE_FONT_WEIGHT_NORMAL        = 400, | 
|  | DWRITE_FONT_WEIGHT_REGULAR       = 400, | 
|  | DWRITE_FONT_WEIGHT_MEDIUM        = 500, | 
|  | DWRITE_FONT_WEIGHT_DEMI_BOLD     = 600, | 
|  | DWRITE_FONT_WEIGHT_SEMI_BOLD     = 600, | 
|  | DWRITE_FONT_WEIGHT_BOLD          = 700, | 
|  | DWRITE_FONT_WEIGHT_EXTRA_BOLD    = 800, | 
|  | DWRITE_FONT_WEIGHT_ULTRA_BOLD    = 800, | 
|  | DWRITE_FONT_WEIGHT_BLACK         = 900, | 
|  | DWRITE_FONT_WEIGHT_HEAVY         = 900, | 
|  | DWRITE_FONT_WEIGHT_EXTRA_BLACK   = 950, | 
|  | DWRITE_FONT_WEIGHT_ULTRA_BLACK   = 950 | 
|  | } DWRITE_FONT_WEIGHT; | 
|  |  | 
|  | typedef enum DWRITE_LINE_SPACING_METHOD { | 
|  | DWRITE_LINE_SPACING_METHOD_DEFAULT = 0, | 
|  | DWRITE_LINE_SPACING_METHOD_UNIFORM | 
|  | } DWRITE_LINE_SPACING_METHOD; | 
|  |  | 
|  | typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD { | 
|  | DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0, | 
|  | DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL, | 
|  | DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE, | 
|  | DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL, | 
|  | DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL | 
|  | } DWRITE_NUMBER_SUBSTITUTION_METHOD; | 
|  |  | 
|  | typedef enum DWRITE_PARAGRAPH_ALIGNMENT { | 
|  | DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0, | 
|  | DWRITE_PARAGRAPH_ALIGNMENT_FAR, | 
|  | DWRITE_PARAGRAPH_ALIGNMENT_CENTER | 
|  | } DWRITE_PARAGRAPH_ALIGNMENT; | 
|  |  | 
|  | typedef enum DWRITE_PIXEL_GEOMETRY { | 
|  | DWRITE_PIXEL_GEOMETRY_FLAT = 0, | 
|  | DWRITE_PIXEL_GEOMETRY_RGB, | 
|  | DWRITE_PIXEL_GEOMETRY_BGR | 
|  | } DWRITE_PIXEL_GEOMETRY; | 
|  |  | 
|  | typedef enum DWRITE_READING_DIRECTION { | 
|  | DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, | 
|  | DWRITE_READING_DIRECTION_RIGHT_TO_LEFT | 
|  | } DWRITE_READING_DIRECTION; | 
|  |  | 
|  | typedef enum DWRITE_RENDERING_MODE { | 
|  | DWRITE_RENDERING_MODE_DEFAULT = 0, | 
|  | DWRITE_RENDERING_MODE_ALIASED, | 
|  | DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC, | 
|  | DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL, | 
|  | DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL, | 
|  | DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC, | 
|  | DWRITE_RENDERING_MODE_OUTLINE | 
|  | } DWRITE_RENDERING_MODE; | 
|  |  | 
|  | typedef enum DWRITE_SCRIPT_SHAPES { | 
|  | DWRITE_SCRIPT_SHAPES_DEFAULT     = 0, | 
|  | DWRITE_SCRIPT_SHAPES_NO_VISUAL   = 1 | 
|  | } DWRITE_SCRIPT_SHAPES; | 
|  |  | 
|  | typedef enum DWRITE_TEXT_ALIGNMENT { | 
|  | DWRITE_TEXT_ALIGNMENT_LEADING = 0, | 
|  | DWRITE_TEXT_ALIGNMENT_TRAILING, | 
|  | DWRITE_TEXT_ALIGNMENT_CENTER | 
|  | } DWRITE_TEXT_ALIGNMENT; | 
|  |  | 
|  | typedef enum DWRITE_TEXTURE_TYPE { | 
|  | DWRITE_TEXTURE_ALIASED_1x1 = 0, | 
|  | DWRITE_TEXTURE_CLEARTYPE_3x1 | 
|  | } DWRITE_TEXTURE_TYPE; | 
|  |  | 
|  | typedef enum DWRITE_TRIMMING_GRANULARITY { | 
|  | DWRITE_TRIMMING_GRANULARITY_NONE, | 
|  | DWRITE_TRIMMING_GRANULARITY_CHARACTER, | 
|  | DWRITE_TRIMMING_GRANULARITY_WORD | 
|  | } DWRITE_TRIMMING_GRANULARITY; | 
|  |  | 
|  | typedef enum DWRITE_WORD_WRAPPING { | 
|  | DWRITE_WORD_WRAPPING_WRAP, | 
|  | DWRITE_WORD_WRAPPING_NO_WRAP | 
|  | } DWRITE_WORD_WRAPPING; | 
|  |  | 
|  | typedef struct _DWRITE_OVERHANG_METRICS { | 
|  | FLOAT left; | 
|  | FLOAT top; | 
|  | FLOAT right; | 
|  | FLOAT bottom; | 
|  | } DWRITE_OVERHANG_METRICS, *PDWRITE_OVERHANG_METRICS; | 
|  |  | 
|  | typedef struct DWRITE_CLUSTER_METRICS { | 
|  | FLOAT  width; | 
|  | UINT16 length; | 
|  | UINT16 canWrapLineAfter  :1; | 
|  | UINT16 isWhitespace  :1; | 
|  | UINT16 isNewline  :1; | 
|  | UINT16 isSoftHyphen  :1; | 
|  | UINT16 isRightToLeft  :1; | 
|  | UINT16 padding  :11; | 
|  | } DWRITE_CLUSTER_METRICS; | 
|  |  | 
|  | typedef struct DWRITE_FONT_FEATURE { | 
|  | DWRITE_FONT_FEATURE_TAG nameTag; | 
|  | UINT32                  parameter; | 
|  | } DWRITE_FONT_FEATURE; | 
|  |  | 
|  | typedef struct DWRITE_FONT_METRICS { | 
|  | UINT16 designUnitsPerEm; | 
|  | UINT16 ascent; | 
|  | UINT16 descent; | 
|  | INT16  lineGap; | 
|  | UINT16 capHeight; | 
|  | UINT16 xHeight; | 
|  | INT16  underlinePosition; | 
|  | UINT16 underlineThickness; | 
|  | INT16  strikethroughPosition; | 
|  | UINT16 strikethroughThickness; | 
|  | } DWRITE_FONT_METRICS; | 
|  |  | 
|  | typedef struct DWRITE_GLYPH_METRICS { | 
|  | INT32  leftSideBearing; | 
|  | UINT32 advanceWidth; | 
|  | INT32  rightSideBearing; | 
|  | INT32  topSideBearing; | 
|  | UINT32 advanceHeight; | 
|  | INT32  bottomSideBearing; | 
|  | INT32  verticalOriginY; | 
|  | } DWRITE_GLYPH_METRICS; | 
|  |  | 
|  | typedef struct DWRITE_GLYPH_OFFSET { | 
|  | FLOAT advanceOffset; | 
|  | FLOAT ascenderOffset; | 
|  | } DWRITE_GLYPH_OFFSET; | 
|  |  | 
|  | typedef struct DWRITE_GLYPH_RUN { | 
|  | IDWriteFontFace           *fontFace; | 
|  | FLOAT                     fontEmSize; | 
|  | UINT32                    glyphCount; | 
|  | const UINT16              *glyphIndices; | 
|  | const FLOAT               *glyphAdvances; | 
|  | const DWRITE_GLYPH_OFFSET *glyphOffsets; | 
|  | WINBOOL                   isSideways; | 
|  | UINT32                    bidiLevel; | 
|  | } DWRITE_GLYPH_RUN; | 
|  |  | 
|  | typedef struct DWRITE_GLYPH_RUN_DESCRIPTION { | 
|  | const WCHAR  *localeName; | 
|  | const WCHAR  *string; | 
|  | UINT32       stringLength; | 
|  | const UINT16 *clusterMap; | 
|  | UINT32       textPosition; | 
|  | } DWRITE_GLYPH_RUN_DESCRIPTION; | 
|  |  | 
|  | typedef struct DWRITE_HIT_TEST_METRICS { | 
|  | UINT32  textPosition; | 
|  | UINT32  length; | 
|  | FLOAT   left; | 
|  | FLOAT   top; | 
|  | FLOAT   width; | 
|  | FLOAT   height; | 
|  | UINT32  bidiLevel; | 
|  | WINBOOL isText; | 
|  | } DWRITE_HIT_TEST_METRICS; | 
|  |  | 
|  | typedef struct DWRITE_INLINE_OBJECT_METRICS { | 
|  | FLOAT   width; | 
|  | FLOAT   height; | 
|  | FLOAT   baseline; | 
|  | WINBOOL supportsSideways; | 
|  | } DWRITE_INLINE_OBJECT_METRICS; | 
|  |  | 
|  | typedef struct DWRITE_LINE_BREAKPOINT { | 
|  | UINT8 breakConditionBefore  :2; | 
|  | UINT8 breakConditionAfter  :2; | 
|  | UINT8 isWhitespace  :1; | 
|  | UINT8 isSoftHyphen  :1; | 
|  | UINT8 padding  :2; | 
|  | } DWRITE_LINE_BREAKPOINT; | 
|  |  | 
|  | typedef struct DWRITE_LINE_METRICS { | 
|  | UINT32  length; | 
|  | UINT32  trailingWhitespaceLength; | 
|  | UINT32  newlineLength; | 
|  | FLOAT   height; | 
|  | FLOAT   baseline; | 
|  | WINBOOL isTrimmed; | 
|  | } DWRITE_LINE_METRICS; | 
|  |  | 
|  | typedef struct DWRITE_MATRIX { | 
|  | FLOAT m11; | 
|  | FLOAT m12; | 
|  | FLOAT m21; | 
|  | FLOAT m22; | 
|  | FLOAT dx; | 
|  | FLOAT dy; | 
|  | } DWRITE_MATRIX; | 
|  |  | 
|  | typedef struct DWRITE_SCRIPT_ANALYSIS { | 
|  | UINT16               script; | 
|  | DWRITE_SCRIPT_SHAPES shapes; | 
|  | } DWRITE_SCRIPT_ANALYSIS; | 
|  |  | 
|  | typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES { | 
|  | UINT16 justification  :4; | 
|  | UINT16 isClusterStart  :1; | 
|  | UINT16 isDiacritic  :1; | 
|  | UINT16 isZeroWidthSpace  :1; | 
|  | UINT16 reserved  :9; | 
|  | } DWRITE_SHAPING_GLYPH_PROPERTIES; | 
|  |  | 
|  | typedef struct DWRITE_SHAPING_TEXT_PROPERTIES { | 
|  | UINT16 isShapedAlone  :1; | 
|  | UINT16 reserved  :15; | 
|  | } DWRITE_SHAPING_TEXT_PROPERTIES; | 
|  |  | 
|  | typedef struct DWRITE_STRIKETHROUGH { | 
|  | FLOAT                    width; | 
|  | FLOAT                    thickness; | 
|  | FLOAT                    offset; | 
|  | DWRITE_READING_DIRECTION readingDirection; | 
|  | DWRITE_FLOW_DIRECTION    flowDirection; | 
|  | const WCHAR              *localeName; | 
|  | DWRITE_MEASURING_MODE    measuringMode; | 
|  | } DWRITE_STRIKETHROUGH; | 
|  |  | 
|  | typedef struct DWRITE_TEXT_METRICS { | 
|  | FLOAT  left; | 
|  | FLOAT  top; | 
|  | FLOAT  width; | 
|  | FLOAT  widthIncludingTrailingWhitespace; | 
|  | FLOAT  height; | 
|  | FLOAT  layoutWidth; | 
|  | FLOAT  layoutHeight; | 
|  | UINT32 maxBidiReorderingDepth; | 
|  | } DWRITE_TEXT_METRICS; | 
|  |  | 
|  | typedef struct DWRITE_TEXT_RANGE { | 
|  | UINT32 startPosition; | 
|  | UINT32 length; | 
|  | } DWRITE_TEXT_RANGE; | 
|  |  | 
|  | typedef struct DWRITE_TRIMMING { | 
|  | DWRITE_TRIMMING_GRANULARITY granularity; | 
|  | UINT32                      delimiter; | 
|  | UINT32                      delimiterCount; | 
|  | } DWRITE_TRIMMING; | 
|  |  | 
|  | typedef struct DWRITE_TYPOGRAPHIC_FEATURES { | 
|  | DWRITE_FONT_FEATURE *features; | 
|  | UINT32              featureCount; | 
|  | } DWRITE_TYPOGRAPHIC_FEATURES; | 
|  |  | 
|  | typedef struct DWRITE_UNDERLINE { | 
|  | FLOAT                    width; | 
|  | FLOAT                    thickness; | 
|  | FLOAT                    offset; | 
|  | FLOAT                    runHeight; | 
|  | DWRITE_READING_DIRECTION readingDirection; | 
|  | DWRITE_FLOW_DIRECTION    flowDirection; | 
|  | const WCHAR              *localeName; | 
|  | DWRITE_MEASURING_MODE    measuringMode; | 
|  | } DWRITE_UNDERLINE; | 
|  |  | 
|  | #define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \ | 
|  | (static_cast<UINT32>(static_cast<UINT8>(d)) << 24) | \ | 
|  | (static_cast<UINT32>(static_cast<UINT8>(c)) << 16) | \ | 
|  | (static_cast<UINT32>(static_cast<UINT8>(b)) << 8) | \ | 
|  | static_cast<UINT32>(static_cast<UINT8>(a))) | 
|  |  | 
|  | #ifndef __MINGW_DEF_ARG_VAL | 
|  | #ifdef __cplusplus | 
|  | #define __MINGW_DEF_ARG_VAL(x) = x | 
|  | #else | 
|  | #define __MINGW_DEF_ARG_VAL(x) | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteBitmapRenderTarget | 
|  | DECLARE_INTERFACE_(IDWriteBitmapRenderTarget,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteBitmapRenderTarget methods */ | 
|  | STDMETHOD(DrawGlyphRun)(THIS_ | 
|  | FLOAT baselineOriginX, | 
|  | FLOAT baselineOriginY, | 
|  | DWRITE_MEASURING_MODE measuringMode, | 
|  | DWRITE_GLYPH_RUN const *glyphRun, | 
|  | IDWriteRenderingParams *renderingParams, | 
|  | COLORREF textColor, | 
|  | RECT *blackBoxRect __MINGW_DEF_ARG_VAL(NULL)) PURE; | 
|  |  | 
|  | STDMETHOD_(HDC, GetMemoryDC)(THIS) PURE; | 
|  | STDMETHOD_(FLOAT, GetPixelsPerDip)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(SetPixelsPerDip)(THIS_ | 
|  | FLOAT pixelsPerDip) PURE; | 
|  |  | 
|  | STDMETHOD(GetCurrentTransform)(THIS_ | 
|  | DWRITE_MATRIX* transform) PURE; | 
|  |  | 
|  | STDMETHOD(SetCurrentTransform)(THIS_ | 
|  | DWRITE_MATRIX const *transform) PURE; | 
|  |  | 
|  | STDMETHOD(GetSize)(THIS_ | 
|  | SIZE *size) PURE; | 
|  |  | 
|  | STDMETHOD(Resize)(THIS_ | 
|  | UINT32 width, | 
|  | UINT32 height) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteBitmapRenderTarget_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteBitmapRenderTarget_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteBitmapRenderTarget_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteBitmapRenderTarget_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuringMode,glyphRun,renderingParams,textColor,blackBoxRect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuringMode,glyphRun,renderingParams,textColor,blackBoxRect) | 
|  | #define IDWriteBitmapRenderTarget_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) | 
|  | #define IDWriteBitmapRenderTarget_GetMemoryDC() (This)->lpVtbl->GetMemoryDC(This) | 
|  | #define IDWriteBitmapRenderTarget_GetPixelsPerDip() (This)->lpVtbl->GetPixelsPerDip(This) | 
|  | #define IDWriteBitmapRenderTarget_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) | 
|  | #define IDWriteBitmapRenderTarget_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) | 
|  | #define IDWriteBitmapRenderTarget_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) | 
|  | #define IDWriteBitmapRenderTarget_SetPixelsPerDip(This,pixelsPerDip) (This)->lpVtbl->SetPixelsPerDip(This,pixelsPerDip) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFactory | 
|  | DECLARE_INTERFACE_(IDWriteFactory,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFactory methods */ | 
|  | STDMETHOD(GetSystemFontCollection)(THIS_ | 
|  | IDWriteFontCollection **fontCollection, | 
|  | BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE; | 
|  |  | 
|  | STDMETHOD(CreateCustomFontCollection)(THIS_ | 
|  | IDWriteFontCollectionLoader *collectionLoader, | 
|  | void const *collectionKey, | 
|  | UINT32 collectionKeySize, | 
|  | IDWriteFontCollection **fontCollection) PURE; | 
|  |  | 
|  | STDMETHOD(RegisterFontCollectionLoader)(THIS_ | 
|  | IDWriteFontCollectionLoader *fontCollectionLoader) PURE; | 
|  |  | 
|  | STDMETHOD(UnregisterFontCollectionLoader)(THIS_ | 
|  | IDWriteFontCollectionLoader *fontCollectionLoader) PURE; | 
|  |  | 
|  | STDMETHOD(CreateFontFileReference)(THIS_ | 
|  | WCHAR const *filePath, | 
|  | FILETIME const *lastWriteTime, | 
|  | IDWriteFontFile **fontFile) PURE; | 
|  |  | 
|  | STDMETHOD(CreateCustomFontFileReference)(THIS_ | 
|  | void const *fontFileReferenceKey, | 
|  | UINT32 fontFileReferenceKeySize, | 
|  | IDWriteFontFileLoader *fontFileLoader, | 
|  | IDWriteFontFile **fontFile) PURE; | 
|  |  | 
|  | STDMETHOD(CreateFontFace)(THIS_ | 
|  | DWRITE_FONT_FACE_TYPE fontFaceType, | 
|  | UINT32 numberOfFiles, | 
|  | IDWriteFontFile *const *fontFiles, | 
|  | UINT32 faceIndex, | 
|  | DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, | 
|  | IDWriteFontFace **fontFace) PURE; | 
|  |  | 
|  | STDMETHOD(CreateRenderingParams)(THIS_ | 
|  | IDWriteRenderingParams **renderingParams) PURE; | 
|  |  | 
|  | STDMETHOD(CreateMonitorRenderingParams)(THIS_ | 
|  | HMONITOR monitor, | 
|  | IDWriteRenderingParams **renderingParams) PURE; | 
|  |  | 
|  | STDMETHOD(CreateCustomRenderingParams)(THIS_ | 
|  | FLOAT gamma, | 
|  | FLOAT enhancedContrast, | 
|  | FLOAT clearTypeLevel, | 
|  | DWRITE_PIXEL_GEOMETRY pixelGeometry, | 
|  | DWRITE_RENDERING_MODE renderingMode, | 
|  | IDWriteRenderingParams **renderingParams) PURE; | 
|  |  | 
|  | STDMETHOD(RegisterFontFileLoader)(THIS_ | 
|  | IDWriteFontFileLoader *fontFileLoader) PURE; | 
|  |  | 
|  | STDMETHOD(UnregisterFontFileLoader)(THIS_ | 
|  | IDWriteFontFileLoader *fontFileLoader) PURE; | 
|  |  | 
|  | STDMETHOD(CreateTextFormat)(THIS_ | 
|  | WCHAR const *fontFamilyName, | 
|  | IDWriteFontCollection *fontCollection, | 
|  | DWRITE_FONT_WEIGHT fontWeight, | 
|  | DWRITE_FONT_STYLE fontStyle, | 
|  | DWRITE_FONT_STRETCH fontStretch, | 
|  | FLOAT fontSize, | 
|  | WCHAR const *localeName, | 
|  | IDWriteTextFormat **textFormat) PURE; | 
|  |  | 
|  | STDMETHOD(CreateTypography)(THIS_ | 
|  | IDWriteTypography **typography) PURE; | 
|  |  | 
|  | STDMETHOD(GetGdiInterop)(THIS_ | 
|  | IDWriteGdiInterop **gdiInterop) PURE; | 
|  |  | 
|  | STDMETHOD(CreateTextLayout)(THIS_ | 
|  | WCHAR const *string, | 
|  | UINT32 stringLength, | 
|  | IDWriteTextFormat *textFormat, | 
|  | FLOAT maxWidth, | 
|  | FLOAT maxHeight, | 
|  | IDWriteTextLayout **textLayout) PURE; | 
|  |  | 
|  | STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_ | 
|  | WCHAR const *string, | 
|  | UINT32 stringLength, | 
|  | IDWriteTextFormat *textFormat, | 
|  | FLOAT layoutWidth, | 
|  | FLOAT layoutHeight, | 
|  | FLOAT pixelsPerDip, | 
|  | DWRITE_MATRIX const *transform, | 
|  | BOOL useGdiNatural, | 
|  | IDWriteTextLayout **textLayout) PURE; | 
|  |  | 
|  | STDMETHOD(CreateEllipsisTrimmingSign)(THIS_ | 
|  | IDWriteTextFormat *textFormat, | 
|  | IDWriteInlineObject **trimmingSign) PURE; | 
|  |  | 
|  | STDMETHOD(CreateTextAnalyzer)(THIS_ | 
|  | IDWriteTextAnalyzer **textAnalyzer) PURE; | 
|  |  | 
|  | STDMETHOD(CreateNumberSubstitution)(THIS_ | 
|  | DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, | 
|  | WCHAR const *localeName, | 
|  | BOOL ignoreUserOverride, | 
|  | IDWriteNumberSubstitution **numberSubstitution) PURE; | 
|  |  | 
|  | STDMETHOD(CreateGlyphRunAnalysis)(THIS_ | 
|  | DWRITE_GLYPH_RUN const *glyphRun, | 
|  | FLOAT pixelsPerDip, | 
|  | DWRITE_MATRIX const *transform, | 
|  | DWRITE_RENDERING_MODE renderingMode, | 
|  | DWRITE_MEASURING_MODE measuringMode, | 
|  | FLOAT baselineOriginX, | 
|  | FLOAT baselineOriginY, | 
|  | IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFactory_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFactory_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFactory_CreateCustomFontCollection(This,collectionLoader,collectionKey,collectionKeySize,fontCollection) (This)->lpVtbl->CreateCustomFontCollection(This,collectionLoader,collectionKey,collectionKeySize,fontCollection) | 
|  | #define IDWriteFactory_CreateCustomFontFileReference(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileLoader,fontFile) (This)->lpVtbl->CreateCustomFontFileReference(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileLoader,fontFile) | 
|  | #define IDWriteFactory_CreateCustomRenderingParams(This,gamma,enhancedContrast,clearTypeLevel,pixelGeometry,renderingMode,renderingParams) (This)->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,clearTypeLevel,pixelGeometry,renderingMode,renderingParams) | 
|  | #define IDWriteFactory_CreateGdiCompatibleTextLayout(This,string,stringLength,textFormat,layoutWidth,layoutHeight,pixelsPerDip,transform,useGdiNatural,textLayout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,stringLength,textFormat,layoutWidth,layoutHeight,pixelsPerDip,transform,useGdiNatural,textLayout) | 
|  | #define IDWriteFactory_CreateEllipsisTrimmingSign(This,textFormat,trimmingSign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,textFormat,trimmingSign) | 
|  | #define IDWriteFactory_CreateFontFace(This,fontFaceType,numberOfFiles,fontFiles,faceIndex,fontFaceSimulationFlags,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFaceType,numberOfFiles,fontFiles,faceIndex,fontFaceSimulationFlags,fontFace) | 
|  | #define IDWriteFactory_CreateFontFileReference(This,filePath,lastWriteTime,fontFile) (This)->lpVtbl->CreateFontFileReference(This,filePath,lastWriteTime,fontFile) | 
|  | #define IDWriteFactory_CreateGlyphRunAnalysis(This,glyphRun,pixelsPerDip,transform,renderingMode,measuringMode,baselineOriginX,baselineOriginY,glyphRunAnalysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyphRun,pixelsPerDip,transform,renderingMode,measuringMode,baselineOriginX,baselineOriginY,glyphRunAnalysis) | 
|  | #define IDWriteFactory_CreateMonitorRenderingParams(This,monitor,renderingParams) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,renderingParams) | 
|  | #define IDWriteFactory_CreateNumberSubstitution(This,substitutionMethod,localeName,ignoreUserOverride,numberSubstitution) (This)->lpVtbl->CreateNumberSubstitution(This,substitutionMethod,localeName,ignoreUserOverride,numberSubstitution) | 
|  | #define IDWriteFactory_CreateRenderingParams(This,renderingParams) (This)->lpVtbl->CreateRenderingParams(This,renderingParams) | 
|  | #define IDWriteFactory_CreateTextAnalyzer(This,textAnalyzer) (This)->lpVtbl->CreateTextAnalyzer(This,textAnalyzer) | 
|  | #define IDWriteFactory_CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat) (This)->lpVtbl->CreateTextFormat(This,fontFamilyName,fontCollection,fontWeight,fontStyle,fontStretch,fontSize,localeName,textFormat) | 
|  | #define IDWriteFactory_CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout) (This)->lpVtbl->CreateTextLayout(This,string,stringLength,textFormat,maxWidth,maxHeight,textLayout) | 
|  | #define IDWriteFactory_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) | 
|  | #define IDWriteFactory_GetGdiInterop(This,gdiInterop) (This)->lpVtbl->GetGdiInterop(This,gdiInterop) | 
|  | #define IDWriteFactory_GetSystemFontCollection(This,fontCollection,checkForUpdates) (This)->lpVtbl->GetSystemFontCollection(This,fontCollection,checkForUpdates) | 
|  | #define IDWriteFactory_RegisterFontCollectionLoader(This,fontCollectionLoader) (This)->lpVtbl->RegisterFontCollectionLoader(This,fontCollectionLoader) | 
|  | #define IDWriteFactory_RegisterFontFileLoader(This,fontFileLoader) (This)->lpVtbl->RegisterFontFileLoader(This,fontFileLoader) | 
|  | #define IDWriteFactory_UnregisterFontCollectionLoader(This,fontCollectionLoader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,fontCollectionLoader) | 
|  | #define IDWriteFactory_UnregisterFontFileLoader(This,fontFileLoader) (This)->lpVtbl->UnregisterFontFileLoader(This,fontFileLoader) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFont | 
|  | DECLARE_INTERFACE_(IDWriteFont,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFont methods */ | 
|  | STDMETHOD(GetFontFamily)(THIS_ | 
|  | IDWriteFontFamily **fontFamily) PURE; | 
|  |  | 
|  | STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE; | 
|  | STDMETHOD_(BOOL, IsSymbolFont)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(GetFaceNames)(THIS_ | 
|  | IDWriteLocalizedStrings **names) PURE; | 
|  |  | 
|  | STDMETHOD(GetInformationalStrings)(THIS_ | 
|  | DWRITE_INFORMATIONAL_STRING_ID informationalStringID, | 
|  | IDWriteLocalizedStrings **informationalStrings, | 
|  | BOOL *exists) PURE; | 
|  |  | 
|  | STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD_(void, GetMetrics)(THIS_ | 
|  | DWRITE_FONT_METRICS *fontMetrics) PURE; | 
|  |  | 
|  | STDMETHOD(HasCharacter)(THIS_ | 
|  | UINT32 unicodeValue, | 
|  | BOOL *exists) PURE; | 
|  |  | 
|  | STDMETHOD(CreateFontFace)(THIS_ | 
|  | IDWriteFontFace **fontFace) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFont_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFont_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFont_CreateFontFace(This,fontFace) (This)->lpVtbl->CreateFontFace(This,fontFace) | 
|  | #define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) | 
|  | #define IDWriteFont_GetFontFamily(This,fontFamily) (This)->lpVtbl->GetFontFamily(This,fontFamily) | 
|  | #define IDWriteFont_GetInformationalStrings(This,informationalStringID,informationalStrings,exists) (This)->lpVtbl->GetInformationalStrings(This,informationalStringID,informationalStrings,exists) | 
|  | #define IDWriteFont_GetMetrics(This,fontMetrics) (This)->lpVtbl->GetMetrics(This,fontMetrics) | 
|  | #define IDWriteFont_GetSimulations() (This)->lpVtbl->GetSimulations(This) | 
|  | #define IDWriteFont_GetStretch() (This)->lpVtbl->GetStretch(This) | 
|  | #define IDWriteFont_GetStyle() (This)->lpVtbl->GetStyle(This) | 
|  | #define IDWriteFont_GetWeight() (This)->lpVtbl->GetWeight(This) | 
|  | #define IDWriteFont_HasCharacter(This,unicodeValue,exists) (This)->lpVtbl->HasCharacter(This,unicodeValue,exists) | 
|  | #define IDWriteFont_IsSymbolFont() (This)->lpVtbl->IsSymbolFont(This) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontCollection | 
|  | DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontCollection methods */ | 
|  | STDMETHOD_(UINT32, GetFontFamilyCount)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(GetFontFamily)(THIS_ | 
|  | UINT32 index, | 
|  | IDWriteFontFamily **fontFamily) PURE; | 
|  |  | 
|  | STDMETHOD(FindFamilyName)(THIS_ | 
|  | WCHAR const *familyName, | 
|  | UINT32 *index, | 
|  | BOOL *exists) PURE; | 
|  |  | 
|  | STDMETHOD(GetFontFromFontFace)(THIS_ | 
|  | IDWriteFontFace* fontFace, | 
|  | IDWriteFont **font) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontCollection_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontCollection_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontCollection_FindFamilyName(This,familyName,index,exists) (This)->lpVtbl->FindFamilyName(This,familyName,index,exists) | 
|  | #define IDWriteFontCollection_GetFontFamily(This,index,fontFamily) (This)->lpVtbl->GetFontFamily(This,index,fontFamily) | 
|  | #define IDWriteFontCollection_GetFontFamilyCount() (This)->lpVtbl->GetFontFamilyCount(This) | 
|  | #define IDWriteFontCollection_GetFontFromFontFace(This,fontFace,font) (This)->lpVtbl->GetFontFromFontFace(This,fontFace,font) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontFace | 
|  | DECLARE_INTERFACE_(IDWriteFontFace,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontFace methods */ | 
|  | STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(GetFiles)(THIS_ | 
|  | UINT32 *numberOfFiles, | 
|  | IDWriteFontFile **fontFiles) PURE; | 
|  |  | 
|  | STDMETHOD_(UINT32, GetIndex)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE; | 
|  | STDMETHOD_(BOOL, IsSymbolFont)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD_(void, GetMetrics)(THIS_ | 
|  | DWRITE_FONT_METRICS *fontFaceMetrics) PURE; | 
|  |  | 
|  | STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(GetDesignGlyphMetrics)(THIS_ | 
|  | UINT16 const *glyphIndices, | 
|  | UINT32 glyphCount, | 
|  | DWRITE_GLYPH_METRICS *glyphMetrics, | 
|  | BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE; | 
|  |  | 
|  | STDMETHOD(GetGlyphIndices)(THIS_ | 
|  | UINT32 const *codePoints, | 
|  | UINT32 codePointCount, | 
|  | UINT16 *glyphIndices) PURE; | 
|  |  | 
|  | STDMETHOD(TryGetFontTable)(THIS_ | 
|  | UINT32 openTypeTableTag, | 
|  | const void **tableData, | 
|  | UINT32 *tableSize, | 
|  | void **tableContext, | 
|  | BOOL *exists) PURE; | 
|  |  | 
|  | STDMETHOD_(void, ReleaseFontTable)(THIS_ | 
|  | void *tableContext) PURE; | 
|  |  | 
|  | STDMETHOD(GetGlyphRunOutline)(THIS_ | 
|  | FLOAT emSize, | 
|  | UINT16 const *glyphIndices, | 
|  | FLOAT const *glyphAdvances, | 
|  | DWRITE_GLYPH_OFFSET const *glyphOffsets, | 
|  | UINT32 glyphCount, | 
|  | BOOL isSideways, | 
|  | BOOL isRightToLeft, | 
|  | IDWriteGeometrySink *geometrySink) PURE; | 
|  |  | 
|  | STDMETHOD(GetRecommendedRenderingMode)(THIS_ | 
|  | FLOAT emSize, | 
|  | FLOAT pixelsPerDip, | 
|  | DWRITE_MEASURING_MODE measuringMode, | 
|  | IDWriteRenderingParams *renderingParams, | 
|  | DWRITE_RENDERING_MODE *renderingMode) PURE; | 
|  |  | 
|  | STDMETHOD(GetGdiCompatibleMetrics)(THIS_ | 
|  | FLOAT emSize, | 
|  | FLOAT pixelsPerDip, | 
|  | DWRITE_MATRIX const *transform, | 
|  | DWRITE_FONT_METRICS *fontFaceMetrics) PURE; | 
|  |  | 
|  |  | 
|  | STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_ | 
|  | FLOAT emSize, | 
|  | FLOAT pixelsPerDip, | 
|  | DWRITE_MATRIX const *transform, | 
|  | BOOL useGdiNatural, | 
|  | UINT16 const *glyphIndices, | 
|  | UINT32 glyphCount, | 
|  | DWRITE_GLYPH_METRICS *glyphMetrics, | 
|  | BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontFace_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontFace_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontFace_GetDesignGlyphMetrics(This,glyphIndices,glyphCount,glyphMetrics,isSideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyphIndices,glyphCount,glyphMetrics,isSideways) | 
|  | #define IDWriteFontFace_GetFiles(This,fontFiles) (This)->lpVtbl->GetFiles(This,fontFiles) | 
|  | #define IDWriteFontFace_GetGdiCompatibleMetrics(This,emSize,pixelsPerDip,transform,fontFaceMetrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixelsPerDip,transform,fontFaceMetrics) | 
|  | #define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This,emSize,pixelsPerDip,transform,useGdiNatural,glyphIndices,glyphCount,glyphMetrics,isSideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixelsPerDip,transform,useGdiNatural,glyphIndices,glyphCount,glyphMetrics,isSideways) | 
|  | #define IDWriteFontFace_GetGlyphCount() (This)->lpVtbl->GetGlyphCount(This) | 
|  | #define IDWriteFontFace_GetGlyphIndices(This,codePoints,codePointCount,glyphIndices) (This)->lpVtbl->GetGlyphIndices(This,codePoints,codePointCount,glyphIndices) | 
|  | #define IDWriteFontFace_GetGlyphRunOutline(This,emSize,glyphIndices,glyphOffsets,glyphCount,isSideways,isRightToLeft,geometrySink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyphIndices,glyphOffsets,glyphCount,isSideways,isRightToLeft,geometrySink) | 
|  | #define IDWriteFontFace_GetIndex() (This)->lpVtbl->GetIndex(This) | 
|  | #define IDWriteFontFace_GetMetrics(This,fontFaceMetrics) (This)->lpVtbl->GetMetrics(This,fontFaceMetrics) | 
|  | #define IDWriteFontFace_GetRecommendedRenderingMode(This,emSize,pixelsPerDip,measuringMode,renderingParams,renderingMode) (This)->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixelsPerDip,measuringMode,renderingParams,renderingMode) | 
|  | #define IDWriteFontFace_GetSimulations() (This)->lpVtbl->GetSimulations(This) | 
|  | #define IDWriteFontFace_GetType() (This)->lpVtbl->GetType(This) | 
|  | #define IDWriteFontFace_IsSymbolFont() (This)->lpVtbl->IsSymbolFont(This) | 
|  | #define IDWriteFontFace_ReleaseFontTable(This,tableContext) (This)->lpVtbl->ReleaseFontTable(This,tableContext) | 
|  | #define IDWriteFontFace_TryGetFontTable(This,openTypeTableTag,tableData,tableSize,tableContext,exists) (This)->lpVtbl->TryGetFontTable(This,openTypeTableTag,tableData,tableSize,tableContext,exists) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontList | 
|  | DECLARE_INTERFACE_(IDWriteFontList,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontList methods */ | 
|  | STDMETHOD(GetFontCollection)(THIS_ | 
|  | IDWriteFontCollection** fontCollection) PURE; | 
|  |  | 
|  | STDMETHOD_(UINT32, GetFontCount)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(GetFont)(THIS_ | 
|  | UINT32 index, | 
|  | IDWriteFont **font) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontList_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontList_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontList_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontList_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) | 
|  | #define IDWriteFontList_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection) | 
|  | #define IDWriteFontList_GetFontCount() (This)->lpVtbl->GetFontCount(This) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontFamily | 
|  | DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontList methods */ | 
|  | STDMETHOD(GetFontCollection)(THIS_ | 
|  | IDWriteFontCollection** fontCollection) PURE; | 
|  |  | 
|  | STDMETHOD_(UINT32, GetFontCount)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(GetFont)(THIS_ | 
|  | UINT32 index, | 
|  | IDWriteFont **font) PURE; | 
|  |  | 
|  | /* IDWriteFontFamily methods */ | 
|  | STDMETHOD(GetFamilyNames)(THIS_ | 
|  | IDWriteLocalizedStrings **names) PURE; | 
|  |  | 
|  | STDMETHOD(GetFirstMatchingFont)(THIS_ | 
|  | DWRITE_FONT_WEIGHT weight, | 
|  | DWRITE_FONT_STRETCH stretch, | 
|  | DWRITE_FONT_STYLE style, | 
|  | IDWriteFont **matchingFont) PURE; | 
|  |  | 
|  | STDMETHOD(GetMatchingFonts)(THIS_ | 
|  | DWRITE_FONT_WEIGHT weight, | 
|  | DWRITE_FONT_STRETCH stretch, | 
|  | DWRITE_FONT_STYLE style, | 
|  | IDWriteFontList **matchingFonts) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontFamily_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontFamily_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) | 
|  | #define IDWriteFontFamily_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection) | 
|  | #define IDWriteFontFamily_GetFontCount() (This)->lpVtbl->GetFontCount(This) | 
|  | #define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) | 
|  | #define IDWriteFontFamily_GetFirstMatchingFont(This,weight,stretch,style,matchingFont) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,matchingFont) | 
|  | #define IDWriteFontFamily_GetMatchingFonts(This,weight,stretch,style,matchingFonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,matchingFonts) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontFile | 
|  | DECLARE_INTERFACE_(IDWriteFontFile,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontFile methods */ | 
|  | STDMETHOD(GetReferenceKey)(THIS_ | 
|  | void const **fontFileReferenceKey, | 
|  | UINT32 *fontFileReferenceKeySize) PURE; | 
|  |  | 
|  | STDMETHOD(GetLoader)(THIS_ | 
|  | IDWriteFontFileLoader **fontFileLoader) PURE; | 
|  |  | 
|  | STDMETHOD(Analyze)(THIS_ | 
|  | BOOL *isSupportedFontType, | 
|  | DWRITE_FONT_FILE_TYPE *fontFileType, | 
|  | DWRITE_FONT_FACE_TYPE *fontFaceType, | 
|  | UINT32 *numberOfFaces) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontFile_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontFile_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontFile_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontFile_Analyze(This,isSupportedFontType,fontFileType,fontFaceType,numberOfFaces) (This)->lpVtbl->Analyze(This,isSupportedFontType,fontFileType,fontFaceType,numberOfFaces) | 
|  | #define IDWriteFontFile_GetLoader(This,fontFileLoader) (This)->lpVtbl->GetLoader(This,fontFileLoader) | 
|  | #define IDWriteFontFile_GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize) (This)->lpVtbl->GetReferenceKey(This,fontFileReferenceKey,fontFileReferenceKeySize) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontFileLoader | 
|  | DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontFileLoader methods */ | 
|  | STDMETHOD(CreateStreamFromKey)( | 
|  | void const *fontFileReferenceKey, | 
|  | UINT32 fontFileReferenceKeySize, | 
|  | IDWriteFontFileStream **fontFileStream) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontFileLoader_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontFileLoader_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontFileLoader_CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream) (This)->lpVtbl->CreateStreamFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,fontFileStream) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontFileStream | 
|  | DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontFileStream methods */ | 
|  | STDMETHOD(ReadFileFragment)(THIS_ | 
|  | void const **fragmentStart, | 
|  | UINT64 fileOffset, | 
|  | UINT64 fragmentSize, | 
|  | void** fragmentContext) PURE; | 
|  |  | 
|  | STDMETHOD_(void, ReleaseFileFragment)(THIS_ | 
|  | void *fragmentContext) PURE; | 
|  |  | 
|  | STDMETHOD(GetFileSize)(THIS_ | 
|  | UINT64 *fileSize) PURE; | 
|  |  | 
|  | STDMETHOD(GetLastWriteTime)(THIS_ | 
|  | UINT64 *lastWriteTime) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontFileStream_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontFileStream_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontFileStream_GetFileSize(This,fileSize) (This)->lpVtbl->GetFileSize(This,fileSize) | 
|  | #define IDWriteFontFileStream_GetLastWriteTime(This,lastWriteTime) (This)->lpVtbl->GetLastWriteTime(This,lastWriteTime) | 
|  | #define IDWriteFontFileStream_ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext) (This)->lpVtbl->ReadFileFragment(This,fragmentStart,fileOffset,fragmentSize,fragmentContext) | 
|  | #define IDWriteFontFileStream_ReleaseFileFragment(This,fragmentContext) (This)->lpVtbl->ReleaseFileFragment(This,fragmentContext) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontCollectionLoader | 
|  | DECLARE_INTERFACE_(IDWriteFontCollectionLoader,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontCollectionLoader methods */ | 
|  | STDMETHOD_(HRESULT,CreateEnumeratorFromKey)(THIS_ IDWriteFactory * factory,const void * collectionKey,UINT32  collectionKeySize,IDWriteFontFileEnumerator ** fontFileEnumerator) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontCollectionLoader_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontCollectionLoader_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontCollectionLoader_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This,factory,collectionKey,collectionKeySize,fontFileEnumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This,factory,collectionKey,collectionKeySize,fontFileEnumerator) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteFontFileEnumerator | 
|  | DECLARE_INTERFACE_(IDWriteFontFileEnumerator,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteFontFileEnumerator methods */ | 
|  | STDMETHOD_(HRESULT,GetCurrentFontFile)(THIS_ IDWriteFontFile ** fontFile) PURE; | 
|  | STDMETHOD_(HRESULT,MoveNext)(THIS_ WINBOOL * hasCurrentFile) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteFontFileEnumerator_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteFontFileEnumerator_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteFontFileEnumerator_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteFontFileEnumerator_GetCurrentFontFile(This,fontFile) (This)->lpVtbl->GetCurrentFontFile(This,fontFile) | 
|  | #define IDWriteFontFileEnumerator_MoveNext(This,hasCurrentFile) (This)->lpVtbl->MoveNext(This,hasCurrentFile) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteGdiInterop | 
|  | DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteGdiInterop methods */ | 
|  | STDMETHOD(CreateFontFromLOGFONT)(THIS_ | 
|  | LOGFONTW const *logFont, | 
|  | IDWriteFont **font) PURE; | 
|  |  | 
|  | STDMETHOD(ConvertFontToLOGFONT)(THIS_ | 
|  | IDWriteFont *font, | 
|  | LOGFONTW *logFont, | 
|  | BOOL *isSystemFont) PURE; | 
|  |  | 
|  | STDMETHOD(ConvertFontFaceToLOGFONT)(THIS_ | 
|  | IDWriteFontFace *font, | 
|  | LOGFONTW *logFont) PURE; | 
|  |  | 
|  | STDMETHOD(CreateFontFaceFromHdc)(THIS_ | 
|  | HDC hdc, | 
|  | IDWriteFontFace **fontFace) PURE; | 
|  |  | 
|  | STDMETHOD(CreateBitmapRenderTarget)(THIS_ | 
|  | HDC hdc, | 
|  | UINT32 width, | 
|  | UINT32 height, | 
|  | IDWriteBitmapRenderTarget **renderTarget) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteGdiInterop_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteGdiInterop_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This,font,logFont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logFont) | 
|  | #define IDWriteGdiInterop_ConvertFontToLOGFONT(This,font,logFont,isSystemFont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logFont,isSystemFont) | 
|  | #define IDWriteGdiInterop_CreateBitmapRenderTarget(This,hdc,width,height,renderTarget) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,renderTarget) | 
|  | #define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontFace) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontFace) | 
|  | #define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logFont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logFont,font) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteGlyphRunAnalysis | 
|  | DECLARE_INTERFACE_(IDWriteGlyphRunAnalysis,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteGlyphRunAnalysis methods */ | 
|  | STDMETHOD(GetAlphaTextureBounds)(THIS_ | 
|  | DWRITE_TEXTURE_TYPE textureType, | 
|  | RECT *textureBounds) PURE; | 
|  |  | 
|  | STDMETHOD(CreateAlphaTexture)(THIS_ | 
|  | DWRITE_TEXTURE_TYPE textureType, | 
|  | RECT const *textureBounds, | 
|  | BYTE *alphaValues, | 
|  | UINT32 bufferSize) PURE; | 
|  |  | 
|  | STDMETHOD(GetAlphaBlendParams)(THIS_ | 
|  | IDWriteRenderingParams *renderingParams, | 
|  | FLOAT *blendGamma, | 
|  | FLOAT *blendEnhancedContrast, | 
|  | FLOAT *blendClearTypeLevel) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteGlyphRunAnalysis_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteGlyphRunAnalysis_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteGlyphRunAnalysis_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This,textureType,textureBounds,alphaValues,bufferSize) (This)->lpVtbl->CreateAlphaTexture(This,textureType,textureBounds,alphaValues,bufferSize) | 
|  | #define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) | 
|  | #define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This,textureType,textureBounds) (This)->lpVtbl->GetAlphaTextureBounds(This,textureType,textureBounds) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteInlineObject | 
|  | DECLARE_INTERFACE_(IDWriteInlineObject,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteInlineObject methods */ | 
|  | STDMETHOD_(HRESULT,Draw)(THIS_ void * clientDrawingContext,IDWriteTextRenderer * renderer,FLOAT  originX,FLOAT  originY,WINBOOL  isSideways,WINBOOL  isRightToLeft,IUnknown * clientDrawingEffect) PURE; | 
|  | STDMETHOD_(HRESULT,GetBreakConditions)(THIS_ DWRITE_BREAK_CONDITION * breakConditionBefore,DWRITE_BREAK_CONDITION * breakConditionAfter) PURE; | 
|  | STDMETHOD_(HRESULT,GetMetrics)(THIS_ DWRITE_INLINE_OBJECT_METRICS * metrics) PURE; | 
|  | STDMETHOD_(HRESULT,GetOverhangMetrics)(THIS_ DWRITE_OVERHANG_METRICS *overhangs) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteInlineObject_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteInlineObject_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteInlineObject_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteInlineObject_Draw(This,clientDrawingContext,renderer,originX,originY,isSideways,isRightToLeft,clientDrawingEffect) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY,isSideways,isRightToLeft,clientDrawingEffect) | 
|  | #define IDWriteInlineObject_GetBreakConditions(This,breakConditionBefore,breakConditionAfter) (This)->lpVtbl->GetBreakConditions(This,breakConditionBefore,breakConditionAfter) | 
|  | #define IDWriteInlineObject_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) | 
|  | #define IDWriteInlineObject_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteLocalFontFileLoader | 
|  | DECLARE_INTERFACE_(IDWriteLocalFontFileLoader,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteLocalFontFileLoader methods */ | 
|  | STDMETHOD_(HRESULT,GetFilePathLengthFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,UINT32 *filePathLength) PURE; | 
|  | STDMETHOD_(HRESULT,GetFilePathFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,WCHAR *filePath,UINT32 filePathSize) PURE; | 
|  | STDMETHOD_(HRESULT,GetLastWriteTimeFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,FILETIME *lastWriteTime) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteLocalFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteLocalFontFileLoader_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteLocalFontFileLoader_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePathLength) (This)->lpVtbl->GetFilePathLengthFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePathLength) | 
|  | #define IDWriteLocalFontFileLoader_GetFilePathFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePath,filePathSize) (This)->lpVtbl->GetFilePathFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,filePath,filePathSize) | 
|  | #define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,lastWriteTime) (This)->lpVtbl->GetLastWriteTimeFromKey(This,fontFileReferenceKey,fontFileReferenceKeySize,lastWriteTime) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteLocalizedStrings | 
|  | DECLARE_INTERFACE_(IDWriteLocalizedStrings,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteLocalizedStrings methods */ | 
|  | STDMETHOD_(UINT32, GetCount)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(FindLocaleName)(THIS_ | 
|  | WCHAR const *localeName, | 
|  | UINT32 *index, | 
|  | BOOL *exists) PURE; | 
|  |  | 
|  | STDMETHOD(GetLocaleNameLength)(THIS_ | 
|  | UINT32 index, | 
|  | UINT32 *length) PURE; | 
|  |  | 
|  | STDMETHOD(GetLocaleName)(THIS_ | 
|  | UINT32 index, | 
|  | WCHAR *localeName, | 
|  | UINT32 size) PURE; | 
|  |  | 
|  | STDMETHOD(GetStringLength)(THIS_ | 
|  | UINT32 index, | 
|  | UINT32 *length) PURE; | 
|  |  | 
|  | STDMETHOD(GetString)(THIS_ | 
|  | UINT32 index, | 
|  | WCHAR *stringBuffer, | 
|  | UINT32 size) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteLocalizedStrings_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteLocalizedStrings_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteLocalizedStrings_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteLocalizedStrings_FindLocaleName(This,localeName,index,exists) (This)->lpVtbl->FindLocaleName(This,localeName,index,exists) | 
|  | #define IDWriteLocalizedStrings_GetCount() (This)->lpVtbl->GetCount(This) | 
|  | #define IDWriteLocalizedStrings_GetLocaleName(This,index,localeName,size) (This)->lpVtbl->GetLocaleName(This,index,localeName,size) | 
|  | #define IDWriteLocalizedStrings_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length) | 
|  | #define IDWriteLocalizedStrings_GetString(This,index,stringBuffer,size) (This)->lpVtbl->GetString(This,index,stringBuffer,size) | 
|  | #define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteNumberSubstitution | 
|  | DECLARE_INTERFACE_(IDWriteNumberSubstitution,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteNumberSubstitution methods */ | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteNumberSubstitution_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteNumberSubstitution_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteNumberSubstitution_Release(This) (This)->pVtbl->Release(This) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWritePixelSnapping | 
|  | DECLARE_INTERFACE_(IDWritePixelSnapping,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWritePixelSnapping methods */ | 
|  | STDMETHOD_(HRESULT,GetCurrentTransform)(THIS_ void * clientDrawingContext,DWRITE_MATRIX * transform) PURE; | 
|  | STDMETHOD_(HRESULT,GetPixelsPerDip)(THIS_ void * clientDrawingContext,FLOAT * pixelsPerDip) PURE; | 
|  | STDMETHOD_(HRESULT,IsPixelSnappingEnabled)(THIS_ void * clientDrawingContext,WINBOOL * isDisabled) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWritePixelSnapping_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWritePixelSnapping_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWritePixelSnapping_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWritePixelSnapping_GetCurrentTransform(This,clientDrawingContext,transform) (This)->lpVtbl->GetCurrentTransform(This,clientDrawingContext,transform) | 
|  | #define IDWritePixelSnapping_GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) (This)->lpVtbl->GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) | 
|  | #define IDWritePixelSnapping_IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) (This)->lpVtbl->IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteRenderingParams | 
|  | DECLARE_INTERFACE_(IDWriteRenderingParams,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteRenderingParams methods */ | 
|  | STDMETHOD_(FLOAT, GetGamma)(THIS) PURE; | 
|  | STDMETHOD_(FLOAT, GetEnhancedContrast)(THIS) PURE; | 
|  | STDMETHOD_(FLOAT, GetClearTypeLevel)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)(THIS) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteRenderingParams_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteRenderingParams_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteRenderingParams_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteRenderingParams_GetClearTypeLevel() (This)->lpVtbl->GetClearTypeLevel(This) | 
|  | #define IDWriteRenderingParams_GetEnhancedContrast() (This)->lpVtbl->GetEnhancedContrast(This) | 
|  | #define IDWriteRenderingParams_GetGamma() (This)->lpVtbl->GetGamma(This) | 
|  | #define IDWriteRenderingParams_GetPixelGeometry() (This)->lpVtbl->GetPixelGeometry(This) | 
|  | #define IDWriteRenderingParams_GetRenderingMode() (This)->lpVtbl->GetRenderingMode(This) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteTextAnalysisSink | 
|  | DECLARE_INTERFACE_(IDWriteTextAnalysisSink,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteTextAnalysisSink methods */ | 
|  | STDMETHOD(SetScriptAnalysis)( | 
|  | UINT32 textPosition, | 
|  | UINT32 textLength, | 
|  | DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis) PURE; | 
|  |  | 
|  | STDMETHOD(SetLineBreakpoints)( | 
|  | UINT32 textPosition, | 
|  | UINT32 textLength, | 
|  | DWRITE_LINE_BREAKPOINT const *lineBreakpoints) PURE; | 
|  |  | 
|  | STDMETHOD(SetBidiLevel)( | 
|  | UINT32 textPosition, | 
|  | UINT32 textLength, | 
|  | UINT8 explicitLevel, | 
|  | UINT8 resolvedLevel) PURE; | 
|  |  | 
|  | STDMETHOD(SetNumberSubstitution)( | 
|  | UINT32 textPosition, | 
|  | UINT32 textLength, | 
|  | IDWriteNumberSubstitution *numberSubstitution) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteTextAnalysisSink_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteTextAnalysisSink_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteTextAnalysisSink_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteTextAnalysisSink_SetBidiLevel(This,textPosition,textLength,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,textPosition,textLength,explicitLevel,resolvedLevel) | 
|  | #define IDWriteTextAnalysisSink_SetLineBreakpoints(This,textPosition,textLength,lineBreakpoints) (This)->lpVtbl->SetLineBreakpoints(This,textPosition,textLength,lineBreakpoints) | 
|  | #define IDWriteTextAnalysisSink_SetNumberSubstitution(This,textPosition,textLength,numberSubstitution) (This)->lpVtbl->SetNumberSubstitution(This,textPosition,textLength,numberSubstitution) | 
|  | #define IDWriteTextAnalysisSink_SetScriptAnalysis(This,textPosition,textLength,scriptAnalysis) (This)->lpVtbl->SetScriptAnalysis(This,textPosition,textLength,scriptAnalysis) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteTextAnalysisSource | 
|  | DECLARE_INTERFACE_(IDWriteTextAnalysisSource,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteTextAnalysisSource methods */ | 
|  | STDMETHOD(GetTextAtPosition)(THIS_ | 
|  | UINT32 textPosition, | 
|  | WCHAR const **textString, | 
|  | UINT32 *textLength) PURE; | 
|  |  | 
|  | STDMETHOD(GetTextBeforePosition)(THIS_ | 
|  | UINT32 textPosition, | 
|  | WCHAR const **textString, | 
|  | UINT32 *textLength) PURE; | 
|  |  | 
|  | STDMETHOD_(DWRITE_READING_DIRECTION, GetParagraphReadingDirection)(THIS) PURE; | 
|  |  | 
|  | STDMETHOD(GetLocaleName)(THIS_ | 
|  | UINT32 textPosition, | 
|  | UINT32 *textLength, | 
|  | WCHAR const **localeName) PURE; | 
|  |  | 
|  | STDMETHOD(GetNumberSubstitution)(THIS_ | 
|  | UINT32 textPosition, | 
|  | UINT32 *textLength, | 
|  | IDWriteNumberSubstitution **numberSubstitution) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteTextAnalysisSource_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteTextAnalysisSource_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteTextAnalysisSource_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteTextAnalysisSource_GetLocaleName(This,textPosition,textLength,localeName) (This)->lpVtbl->GetLocaleName(This,textPosition,textLength,localeName) | 
|  | #define IDWriteTextAnalysisSource_GetNumberSubstitution(This,textPosition,textLength,numberSubstitution) (This)->lpVtbl->GetNumberSubstitution(This,textPosition,textLength,numberSubstitution) | 
|  | #define IDWriteTextAnalysisSource_GetParagraphReadingDirection() (This)->lpVtbl->GetParagraphReadingDirection(This) | 
|  | #define IDWriteTextAnalysisSource_GetTextAtPosition(This,textPosition,textString,textLength) (This)->lpVtbl->GetTextAtPosition(This,textPosition,textString,textLength) | 
|  | #define IDWriteTextAnalysisSource_GetTextBeforePosition(This,textPosition,textString,textLength) (This)->lpVtbl->GetTextBeforePosition(This,textPosition,textString,textLength) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteTextAnalyzer | 
|  | DECLARE_INTERFACE_(IDWriteTextAnalyzer,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteTextAnalyzer methods */ | 
|  | STDMETHOD(AnalyzeScript)(THIS_ | 
|  | IDWriteTextAnalysisSource* analysisSource, | 
|  | UINT32 textPosition, | 
|  | UINT32 textLength, | 
|  | IDWriteTextAnalysisSink *analysisSink) PURE; | 
|  |  | 
|  | STDMETHOD(AnalyzeBidi)(THIS_ | 
|  | IDWriteTextAnalysisSource *analysisSource, | 
|  | UINT32 textPosition, | 
|  | UINT32 textLength, | 
|  | IDWriteTextAnalysisSink *analysisSink) PURE; | 
|  |  | 
|  | STDMETHOD(AnalyzeNumberSubstitution)(THIS_ | 
|  | IDWriteTextAnalysisSource *analysisSource, | 
|  | UINT32 textPosition, | 
|  | UINT32 textLength, | 
|  | IDWriteTextAnalysisSink *analysisSink) PURE; | 
|  |  | 
|  | STDMETHOD(AnalyzeLineBreakpoints)(THIS_ | 
|  | IDWriteTextAnalysisSource *analysisSource, | 
|  | UINT32 textPosition, | 
|  | UINT32 textLength, | 
|  | IDWriteTextAnalysisSink *analysisSink) PURE; | 
|  |  | 
|  | STDMETHOD(GetGlyphs)(THIS_ | 
|  | WCHAR const *textString, | 
|  | UINT32 textLength, | 
|  | IDWriteFontFace *fontFace, | 
|  | BOOL isSideways, | 
|  | BOOL isRightToLeft, | 
|  | DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis, | 
|  | WCHAR const *localeName, | 
|  | IDWriteNumberSubstitution *numberSubstitution, | 
|  | DWRITE_TYPOGRAPHIC_FEATURES const **features, | 
|  | UINT32 const *featureRangeLengths, | 
|  | UINT32 featureRanges, | 
|  | UINT32 maxGlyphCount, | 
|  | UINT16 *clusterMap, | 
|  | DWRITE_SHAPING_TEXT_PROPERTIES *textProps, | 
|  | UINT16 *glyphIndices, | 
|  | DWRITE_SHAPING_GLYPH_PROPERTIES *glyphProps, | 
|  | UINT32 *actualGlyphCount) PURE; | 
|  |  | 
|  | STDMETHOD(GetGlyphPlacements)(THIS_ | 
|  | WCHAR const *textString, | 
|  | UINT16 const *clusterMap, | 
|  | DWRITE_SHAPING_TEXT_PROPERTIES *textProps, | 
|  | UINT32 textLength, | 
|  | UINT16 const *glyphIndices, | 
|  | DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps, | 
|  | UINT32 glyphCount, | 
|  | IDWriteFontFace *fontFace, | 
|  | FLOAT fontEmSize, | 
|  | BOOL isSideways, | 
|  | BOOL isRightToLeft, | 
|  | DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis, | 
|  | WCHAR const *localeName, | 
|  | DWRITE_TYPOGRAPHIC_FEATURES const **features, | 
|  | UINT32 const *featureRangeLengths, | 
|  | UINT32 featureRanges, | 
|  | FLOAT *glyphAdvances, | 
|  | DWRITE_GLYPH_OFFSET *glyphOffsets) PURE; | 
|  |  | 
|  | STDMETHOD(GetGdiCompatibleGlyphPlacements)(THIS_ | 
|  | WCHAR const *textString, | 
|  | UINT16 const *clusterMap, | 
|  | DWRITE_SHAPING_TEXT_PROPERTIES *textProps, | 
|  | UINT32 textLength, | 
|  | UINT16 const *glyphIndices, | 
|  | DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps, | 
|  | UINT32 glyphCount, | 
|  | IDWriteFontFace *fontFace, | 
|  | FLOAT fontEmSize, | 
|  | FLOAT pixelsPerDip, | 
|  | DWRITE_MATRIX const *transform, | 
|  | BOOL useGdiNatural, | 
|  | BOOL isSideways, | 
|  | BOOL isRightToLeft, | 
|  | DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis, | 
|  | WCHAR const *localeName, | 
|  | DWRITE_TYPOGRAPHIC_FEATURES const **features, | 
|  | UINT32 const *featureRangeLengths, | 
|  | UINT32 featureRanges, | 
|  | FLOAT *glyphAdvances, | 
|  | DWRITE_GLYPH_OFFSET *glyphOffsets) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteTextAnalyzer_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteTextAnalyzer_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteTextAnalyzer_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteTextAnalyzer_AnalyzeBidi(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeBidi(This,analysisSource,textPosition,textLength,analysisSink) | 
|  | #define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,analysisSource,textPosition,textLength,analysisSink) | 
|  | #define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,analysisSource,textPosition,textLength,analysisSink) | 
|  | #define IDWriteTextAnalyzer_AnalyzeScript(This,analysisSource,textPosition,textLength,analysisSink) (This)->lpVtbl->AnalyzeScript(This,analysisSource,textPosition,textLength,analysisSink) | 
|  | #define IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,pixelsPerDip,transform,useGdiNatural,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,pixelsPerDip,transform,useGdiNatural,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets) | 
|  | #define IDWriteTextAnalyzer_GetGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets) (This)->lpVtbl->GetGlyphPlacements(This,textString,clusterMap,textProps,textLength,glyphIndices,glyphProps,glyphCount,fontFace,fontEmSize,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,glyphAdvances,glyphOffsets) | 
|  | #define IDWriteTextAnalyzer_GetGlyphs(This,textString,textLength,fontFace,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,maxGlyphCount,clusterMap,textProps,glyphIndices,glyphProps,actualGlyphCount) (This)->lpVtbl->GetGlyphs(This,textString,textLength,fontFace,isSideways,isRightToLeft,scriptAnalysis,featureRangeLengths,featureRanges,maxGlyphCount,clusterMap,textProps,glyphIndices,glyphProps,actualGlyphCount) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteTextFormat | 
|  | DECLARE_INTERFACE_(IDWriteTextFormat,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteTextFormat methods */ | 
|  | STDMETHOD_(DWRITE_FLOW_DIRECTION,GetFlowDirection)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontCollection)(THIS_ IDWriteFontCollection ** fontCollection) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontFamilyName)(THIS_ WCHAR * fontFamilyName,UINT32  nameSize) PURE; | 
|  | STDMETHOD_(UINT32,GetFontFamilyNameLength)(THIS) PURE; | 
|  | STDMETHOD_(FLOAT,GetFontSize)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_STRETCH,GetFontStretch)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_STYLE,GetFontStyle)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_WEIGHT,GetFontWeight)(THIS) PURE; | 
|  | STDMETHOD_(FLOAT,GetIncrementalTabStop)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,GetLineSpacing)(THIS_ DWRITE_LINE_SPACING_METHOD * lineSpacingMethod,FLOAT * lineSpacing,FLOAT * baseline) PURE; | 
|  | STDMETHOD_(HRESULT,GetLocaleName)(THIS_ WCHAR * localeName,UINT32  nameSize) PURE; | 
|  | STDMETHOD_(UINT32,GetLocaleNameLength)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT,GetParagraphAlignment)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_READING_DIRECTION,GetReadingDirection)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_TEXT_ALIGNMENT,GetTextAlignment)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,GetTrimming)(THIS_ DWRITE_TRIMMING * trimmingOptions,IDWriteInlineObject ** trimmingSign) PURE; | 
|  | STDMETHOD_(DWRITE_WORD_WRAPPING,GetWordWrapping)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,SetFlowDirection)(THIS_ DWRITE_FLOW_DIRECTION  flowDirection) PURE; | 
|  | STDMETHOD_(HRESULT,SetIncrementalTabStop)(THIS_ FLOAT  incrementalTabStop) PURE; | 
|  | STDMETHOD_(HRESULT,SetLineSpacing)(THIS_ DWRITE_LINE_SPACING_METHOD  lineSpacingMethod,FLOAT  lineSpacing,FLOAT  baseline) PURE; | 
|  | STDMETHOD_(HRESULT,SetParagraphAlignment)(THIS_ DWRITE_PARAGRAPH_ALIGNMENT  paragraphAlignment) PURE; | 
|  | STDMETHOD_(HRESULT,SetReadingDirection)(THIS_ DWRITE_READING_DIRECTION  readingDirection) PURE; | 
|  | STDMETHOD_(HRESULT,SetTextAlignment)(THIS_ DWRITE_TEXT_ALIGNMENT textAlignment) PURE; | 
|  | STDMETHOD_(HRESULT,SetTrimming)(THIS_ const DWRITE_TRIMMING * trimmingOptions,IDWriteInlineObject * trimmingSign) PURE; | 
|  | STDMETHOD_(HRESULT,SetWordWrapping)(THIS_ DWRITE_WORD_WRAPPING  wordWrapping) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteTextFormat_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteTextFormat_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteTextFormat_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteTextFormat_GetFlowDirection() (This)->lpVtbl->GetFlowDirection(This) | 
|  | #define IDWriteTextFormat_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection) | 
|  | #define IDWriteTextFormat_GetFontFamilyName(This,fontFamilyName,nameSize) (This)->lpVtbl->GetFontFamilyName(This,fontFamilyName,nameSize) | 
|  | #define IDWriteTextFormat_GetFontFamilyNameLength() (This)->lpVtbl->GetFontFamilyNameLength(This) | 
|  | #define IDWriteTextFormat_GetFontSize() (This)->lpVtbl->GetFontSize(This) | 
|  | #define IDWriteTextFormat_GetFontStretch() (This)->lpVtbl->GetFontStretch(This) | 
|  | #define IDWriteTextFormat_GetFontStyle() (This)->lpVtbl->GetFontStyle(This) | 
|  | #define IDWriteTextFormat_GetFontWeight() (This)->lpVtbl->GetFontWeight(This) | 
|  | #define IDWriteTextFormat_GetIncrementalTabStop() (This)->lpVtbl->GetIncrementalTabStop(This) | 
|  | #define IDWriteTextFormat_GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) | 
|  | #define IDWriteTextFormat_GetLocaleName(This,localeName,nameSize) (This)->lpVtbl->GetLocaleName(This,localeName,nameSize) | 
|  | #define IDWriteTextFormat_GetLocaleNameLength() (This)->lpVtbl->GetLocaleNameLength(This) | 
|  | #define IDWriteTextFormat_GetParagraphAlignment() (This)->lpVtbl->GetParagraphAlignment(This) | 
|  | #define IDWriteTextFormat_GetReadingDirection() (This)->lpVtbl->GetReadingDirection(This) | 
|  | #define IDWriteTextFormat_GetTextAlignment() (This)->lpVtbl->GetTextAlignment(This) | 
|  | #define IDWriteTextFormat_GetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->GetTrimming(This,trimmingOptions,trimmingSign) | 
|  | #define IDWriteTextFormat_GetWordWrapping() (This)->lpVtbl->GetWordWrapping(This) | 
|  | #define IDWriteTextFormat_SetFlowDirection(This,flowDirection) (This)->lpVtbl->SetFlowDirection(This,flowDirection) | 
|  | #define IDWriteTextFormat_SetIncrementalTabStop(This,incrementalTabStop) (This)->lpVtbl->SetIncrementalTabStop(This,incrementalTabStop) | 
|  | #define IDWriteTextFormat_SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) | 
|  | #define IDWriteTextFormat_SetParagraphAlignment(This,paragraphAlignment) (This)->lpVtbl->SetParagraphAlignment(This,paragraphAlignment) | 
|  | #define IDWriteTextFormat_SetReadingDirection(This,readingDirection) (This)->lpVtbl->SetReadingDirection(This,readingDirection) | 
|  | #define IDWriteTextFormat_SetTextAlignment(This,textAlignment) (This)->lpVtbl->SetTextAlignment(This,textAlignment) | 
|  | #define IDWriteTextFormat_SetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->SetTrimming(This,trimmingOptions,trimmingSign) | 
|  | #define IDWriteTextFormat_SetWordWrapping(This,wordWrapping) (This)->lpVtbl->SetWordWrapping(This,wordWrapping) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteTextLayout | 
|  | DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteTextFormat methods */ | 
|  | STDMETHOD_(DWRITE_FLOW_DIRECTION,GetFlowDirection)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontCollection)(THIS_ IDWriteFontCollection ** fontCollection) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontFamilyName)(THIS_ WCHAR * fontFamilyName,UINT32  nameSize) PURE; | 
|  | STDMETHOD_(UINT32,GetFontFamilyNameLength)(THIS) PURE; | 
|  | STDMETHOD_(FLOAT,GetFontSize)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_STRETCH,GetFontStretch)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_STYLE,GetFontStyle)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_FONT_WEIGHT,GetFontWeight)(THIS) PURE; | 
|  | STDMETHOD_(FLOAT,GetIncrementalTabStop)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,GetLineSpacing)(THIS_ DWRITE_LINE_SPACING_METHOD * lineSpacingMethod,FLOAT * lineSpacing,FLOAT * baseline) PURE; | 
|  | STDMETHOD_(HRESULT,GetLocaleName)(THIS_ WCHAR * localeName,UINT32  nameSize) PURE; | 
|  | STDMETHOD_(UINT32,GetLocaleNameLength)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT,GetParagraphAlignment)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_READING_DIRECTION,GetReadingDirection)(THIS) PURE; | 
|  | STDMETHOD_(DWRITE_TEXT_ALIGNMENT,GetTextAlignment)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,GetTrimming)(THIS_ DWRITE_TRIMMING * trimmingOptions,IDWriteInlineObject ** trimmingSign) PURE; | 
|  | STDMETHOD_(DWRITE_WORD_WRAPPING,GetWordWrapping)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,SetFlowDirection)(THIS_ DWRITE_FLOW_DIRECTION  flowDirection) PURE; | 
|  | STDMETHOD_(HRESULT,SetIncrementalTabStop)(THIS_ FLOAT  incrementalTabStop) PURE; | 
|  | STDMETHOD_(HRESULT,SetLineSpacing)(THIS_ DWRITE_LINE_SPACING_METHOD  lineSpacingMethod,FLOAT  lineSpacing,FLOAT  baseline) PURE; | 
|  | STDMETHOD_(HRESULT,SetParagraphAlignment)(THIS_ DWRITE_PARAGRAPH_ALIGNMENT  paragraphAlignment) PURE; | 
|  | STDMETHOD_(HRESULT,SetReadingDirection)(THIS_ DWRITE_READING_DIRECTION  readingDirection) PURE; | 
|  | STDMETHOD_(HRESULT,SetTextAlignment)(THIS_ DWRITE_TEXT_ALIGNMENT textAlignment) PURE; | 
|  | STDMETHOD_(HRESULT,SetTrimming)(THIS_ const DWRITE_TRIMMING * trimmingOptions,IDWriteInlineObject * trimmingSign) PURE; | 
|  | STDMETHOD_(HRESULT,SetWordWrapping)(THIS_ DWRITE_WORD_WRAPPING  wordWrapping) PURE; | 
|  |  | 
|  | /* IDWriteTextLayout methods */ | 
|  | STDMETHOD_(HRESULT,Draw)(THIS_ void * clientDrawingContext,IDWriteTextRenderer * renderer,FLOAT  originX,FLOAT  originY) PURE; | 
|  | STDMETHOD_(HRESULT,GetClusterMetrics)(THIS_ DWRITE_CLUSTER_METRICS * clusterMetrics,UINT32  maxClusterCount,UINT32 * actualClusterCount) PURE; | 
|  | STDMETHOD_(HRESULT,DetermineMinWidth)(THIS_ FLOAT *minWidth) PURE; | 
|  | STDMETHOD_(HRESULT,GetDrawingEffect)(THIS_ UINT32  currentPosition,IUnknown ** drawingEffect,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontCollection)(THIS_ UINT32  currentPosition,IDWriteFontCollection ** fontCollection,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontFamilyName)(THIS_ UINT32  currentPosition,WCHAR * fontFamilyName,UINT32  nameSize,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontFamilyNameLength)(THIS_ UINT32  currentPosition,UINT32 * nameLength,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontSize)(THIS_ UINT32  currentPosition,FLOAT * fontSize,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontStretch)(THIS_ UINT32  currentPosition,DWRITE_FONT_STRETCH * fontStretch,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontStyle)(THIS_ UINT32  currentPosition,DWRITE_FONT_STYLE * fontStyle,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontWeight)(THIS_ UINT32 currentPosition,DWRITE_FONT_WEIGHT * fontWeight,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetInlineObject)(THIS_ UINT32  currentPosition,IDWriteInlineObject ** inlineObject,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetLineMetrics)(THIS_ DWRITE_LINE_METRICS * lineMetrics,UINT32  maxLineCount,UINT32 * actualLineCount) PURE; | 
|  | STDMETHOD_(HRESULT,GetLocaleName)(THIS_ UINT32  currentPosition,WCHAR * localeName,UINT32  nameSize,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetLocaleNameLength)(THIS_ UINT32  currentPosition,UINT32 * nameLength,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(FLOAT,GetMaxHeight)(THIS) PURE; | 
|  | STDMETHOD_(FLOAT,GetMaxWidth)(THIS) PURE; | 
|  | STDMETHOD_(HRESULT,GetMetrics)(THIS_ DWRITE_TEXT_METRICS * textMetrics) PURE; | 
|  | STDMETHOD_(HRESULT,GetOverhangMetrics)(THIS_ DWRITE_OVERHANG_METRICS *overhangs) PURE; | 
|  | STDMETHOD_(HRESULT,GetStrikethrough)(THIS_ UINT32  currentPosition,WINBOOL * hasStrikethrough,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetTypography)(THIS_ UINT32  currentPosition,IDWriteTypography ** typography,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,GetUnderline)(THIS_ UINT32  currentPosition,WINBOOL * hasUnderline,DWRITE_TEXT_RANGE * textRange) PURE; | 
|  | STDMETHOD_(HRESULT,HitTestPoint)(THIS_ FLOAT  pointX,FLOAT  pointY,WINBOOL * isTrailingHit,WINBOOL * isInside,DWRITE_HIT_TEST_METRICS * hitTestMetrics) PURE; | 
|  | STDMETHOD_(HRESULT,HitTestTextPosition)(THIS_ UINT32  textPosition,WINBOOL isTrailingHit,FLOAT * pointX,FLOAT * pointY,DWRITE_HIT_TEST_METRICS * hitTestMetrics) PURE; | 
|  | STDMETHOD_(HRESULT,HitTestTextRange)(THIS_ UINT32  textPosition,UINT32  textLength,FLOAT  originX,FLOAT  originY,DWRITE_HIT_TEST_METRICS * hitTestMetrics,UINT32  maxHitTestMetricsCount,UINT32 * actualHitTestMetricsCount) PURE; | 
|  | STDMETHOD_(HRESULT,SetDrawingEffect)(THIS_ IUnknown * drawingEffect,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetFontCollection)(THIS_ IDWriteFontCollection * fontCollection,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetFontFamilyName)(THIS_ const WCHAR * fontFamilyName,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetFontSize)(THIS_ FLOAT  fontSize,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetFontStretch)(THIS_ DWRITE_FONT_STRETCH  fontStretch,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetFontStyle)(THIS_ DWRITE_FONT_STYLE  fontStyle,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetFontWeight)(THIS_ DWRITE_FONT_WEIGHT  fontWeight,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetInlineObject)(THIS_ IDWriteInlineObject * inlineObject,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetLocaleName)(THIS_ const WCHAR * localeName,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetMaxHeight)(THIS_ FLOAT  maxHeight) PURE; | 
|  | STDMETHOD_(HRESULT,SetMaxWidth)(THIS_ FLOAT  maxWidth) PURE; | 
|  | STDMETHOD_(HRESULT,SetStrikethrough)(THIS_ WINBOOL hasStrikethrough,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetTypography)(THIS_ IDWriteTypography *typography,DWRITE_TEXT_RANGE  textRange) PURE; | 
|  | STDMETHOD_(HRESULT,SetUnderline)(THIS_ WINBOOL hasUnderline,DWRITE_TEXT_RANGE textRange) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteTextLayout_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteTextLayout_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteTextLayout_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteTextLayout_GetFlowDirection() (This)->lpVtbl->GetFlowDirection(This) | 
|  | #define IDWriteTextLayout_GetFontCollection(This,fontCollection) (This)->lpVtbl->GetFontCollection(This,fontCollection) | 
|  | #define IDWriteTextLayout_GetFontFamilyName(This,fontFamilyName,nameSize) (This)->lpVtbl->GetFontFamilyName(This,fontFamilyName,nameSize) | 
|  | #define IDWriteTextLayout_GetFontFamilyNameLength() (This)->lpVtbl->GetFontFamilyNameLength(This) | 
|  | #define IDWriteTextLayout_GetFontSize() (This)->lpVtbl->GetFontSize(This) | 
|  | #define IDWriteTextLayout_GetFontStretch() (This)->lpVtbl->GetFontStretch(This) | 
|  | #define IDWriteTextLayout_GetFontStyle() (This)->lpVtbl->GetFontStyle(This) | 
|  | #define IDWriteTextLayout_GetFontWeight() (This)->lpVtbl->GetFontWeight(This) | 
|  | #define IDWriteTextLayout_GetIncrementalTabStop() (This)->lpVtbl->GetIncrementalTabStop(This) | 
|  | #define IDWriteTextLayout_GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->GetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) | 
|  | #define IDWriteTextLayout_GetLocaleName(This,localeName,nameSize) (This)->lpVtbl->GetLocaleName(This,localeName,nameSize) | 
|  | #define IDWriteTextLayout_GetLocaleNameLength() (This)->lpVtbl->GetLocaleNameLength(This) | 
|  | #define IDWriteTextLayout_GetParagraphAlignment() (This)->lpVtbl->GetParagraphAlignment(This) | 
|  | #define IDWriteTextLayout_GetReadingDirection() (This)->lpVtbl->GetReadingDirection(This) | 
|  | #define IDWriteTextLayout_GetTextAlignment() (This)->lpVtbl->GetTextAlignment(This) | 
|  | #define IDWriteTextLayout_GetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->GetTrimming(This,trimmingOptions,trimmingSign) | 
|  | #define IDWriteTextLayout_GetWordWrapping() (This)->lpVtbl->GetWordWrapping(This) | 
|  | #define IDWriteTextLayout_SetFlowDirection(This,flowDirection) (This)->lpVtbl->SetFlowDirection(This,flowDirection) | 
|  | #define IDWriteTextLayout_SetIncrementalTabStop(This,incrementalTabStop) (This)->lpVtbl->SetIncrementalTabStop(This,incrementalTabStop) | 
|  | #define IDWriteTextLayout_SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) (This)->lpVtbl->SetLineSpacing(This,lineSpacingMethod,lineSpacing,baseline) | 
|  | #define IDWriteTextLayout_SetParagraphAlignment(This,paragraphAlignment) (This)->lpVtbl->SetParagraphAlignment(This,paragraphAlignment) | 
|  | #define IDWriteTextLayout_SetReadingDirection(This,readingDirection) (This)->lpVtbl->SetReadingDirection(This,readingDirection) | 
|  | #define IDWriteTextLayout_SetTextAlignment(This,textAlignment) (This)->lpVtbl->SetTextAlignment(This,textAlignment) | 
|  | #define IDWriteTextLayout_SetTrimming(This,trimmingOptions,trimmingSign) (This)->lpVtbl->SetTrimming(This,trimmingOptions,trimmingSign) | 
|  | #define IDWriteTextLayout_SetWordWrapping(This,wordWrapping) (This)->lpVtbl->SetWordWrapping(This,wordWrapping) | 
|  | #define IDWriteTextLayout_Draw(This,clientDrawingContext,renderer,originX,originY) (This)->lpVtbl->Draw(This,clientDrawingContext,renderer,originX,originY) | 
|  | #define IDWriteTextLayout_GetClusterMetrics(This,clusterMetrics,maxClusterCount,actualClusterCount) (This)->lpVtbl->GetClusterMetrics(This,clusterMetrics,maxClusterCount,actualClusterCount) | 
|  | #define IDWriteTextLayout_DetermineMinWidth(This,minWidth) (This)->lpVtbl->DetermineMinWidth(This,minWidth) | 
|  | #define IDWriteTextLayout_GetDrawingEffect(This,currentPosition,drawingEffect,textRange) (This)->lpVtbl->GetDrawingEffect(This,currentPosition,drawingEffect,textRange) | 
|  | #define IDWriteTextLayout_GetFontCollection(This,currentPosition,fontCollection,textRange) (This)->lpVtbl->GetFontCollection(This,currentPosition,fontCollection,textRange) | 
|  | #define IDWriteTextLayout_GetFontFamilyName(This,currentPosition,fontFamilyName,nameSize,textRange) (This)->lpVtbl->GetFontFamilyName(This,currentPosition,fontFamilyName,nameSize,textRange) | 
|  | #define IDWriteTextLayout_GetFontFamilyNameLength(This,currentPosition,nameLength,textRange) (This)->lpVtbl->GetFontFamilyNameLength(This,currentPosition,nameLength,textRange) | 
|  | #define IDWriteTextLayout_GetFontSize(This,currentPosition,fontSize,textRange) (This)->lpVtbl->GetFontSize(This,currentPosition,fontSize,textRange) | 
|  | #define IDWriteTextLayout_GetFontStretch(This,currentPosition,fontStretch,textRange) (This)->lpVtbl->GetFontStretch(This,currentPosition,fontStretch,textRange) | 
|  | #define IDWriteTextLayout_GetFontStyle(This,currentPosition,fontStyle,textRange) (This)->lpVtbl->GetFontStyle(This,currentPosition,fontStyle,textRange) | 
|  | #define IDWriteTextLayout_GetFontWeight(This,currentPosition,fontWeight,textRange) (This)->lpVtbl->GetFontWeight(This,currentPosition,fontWeight,textRange) | 
|  | #define IDWriteTextLayout_GetInlineObject(This,currentPosition,inlineObject,textRange) (This)->lpVtbl->GetInlineObject(This,currentPosition,inlineObject,textRange) | 
|  | #define IDWriteTextLayout_GetLineMetrics(This,lineMetrics,maxLineCount,actualLineCount) (This)->lpVtbl->GetLineMetrics(This,lineMetrics,maxLineCount,actualLineCount) | 
|  | #define IDWriteTextLayout_GetLocaleName(This,currentPosition,localeName,nameSize,textRange) (This)->lpVtbl->GetLocaleName(This,currentPosition,localeName,nameSize,textRange) | 
|  | #define IDWriteTextLayout_GetLocaleNameLength(This,currentPosition,nameLength,textRange) (This)->lpVtbl->GetLocaleNameLength(This,currentPosition,nameLength,textRange) | 
|  | #define IDWriteTextLayout_GetMaxHeight() (This)->lpVtbl->GetMaxHeight(This) | 
|  | #define IDWriteTextLayout_GetMaxWidth() (This)->lpVtbl->GetMaxWidth(This) | 
|  | #define IDWriteTextLayout_GetMetrics(This,textMetrics) (This)->lpVtbl->GetMetrics(This,textMetrics) | 
|  | #define IDWriteTextLayout_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) | 
|  | #define IDWriteTextLayout_GetStrikethrough(This,currentPosition,hasStrikethrough,textRange) (This)->lpVtbl->GetStrikethrough(This,currentPosition,hasStrikethrough,textRange) | 
|  | #define IDWriteTextLayout_GetTypography(This,currentPosition,typography,textRange) (This)->lpVtbl->GetTypography(This,currentPosition,typography,textRange) | 
|  | #define IDWriteTextLayout_GetUnderline(This,currentPosition,hasUnderline,textRange) (This)->lpVtbl->GetUnderline(This,currentPosition,hasUnderline,textRange) | 
|  | #define IDWriteTextLayout_HitTestPoint(This,pointX,pointY,isTrailingHit,isInside,hitTestMetrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,isTrailingHit,isInside,hitTestMetrics) | 
|  | #define IDWriteTextLayout_HitTestTextPosition(This,textPosition,isTrailingHit,pointX,pointY,hitTestMetrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,isTrailingHit,pointX,pointY,hitTestMetrics) | 
|  | #define IDWriteTextLayout_HitTestTextRange(This,textPosition,textLength,originX,originY,hitTestMetrics,maxHitTestMetricsCount,actualHitTestMetricsCount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,hitTestMetrics,maxHitTestMetricsCount,actualHitTestMetricsCount) | 
|  | #define IDWriteTextLayout_SetDrawingEffect(This,drawingEffect,textRange) (This)->lpVtbl->SetDrawingEffect(This,drawingEffect,textRange) | 
|  | #define IDWriteTextLayout_SetFontCollection(This,fontCollection,textRange) (This)->lpVtbl->SetFontCollection(This,fontCollection,textRange) | 
|  | #define IDWriteTextLayout_SetFontFamilyName(This,fontFamilyName,textRange) (This)->lpVtbl->SetFontFamilyName(This,fontFamilyName,textRange) | 
|  | #define IDWriteTextLayout_SetFontSize(This,fontSize,textRange) (This)->lpVtbl->SetFontSize(This,fontSize,textRange) | 
|  | #define IDWriteTextLayout_SetFontStretch(This,fontStretch,textRange) (This)->lpVtbl->SetFontStretch(This,fontStretch,textRange) | 
|  | #define IDWriteTextLayout_SetFontStyle(This,fontStyle,textRange) (This)->lpVtbl->SetFontStyle(This,fontStyle,textRange) | 
|  | #define IDWriteTextLayout_SetFontWeight(This,fontWeight,textRange) (This)->lpVtbl->SetFontWeight(This,fontWeight,textRange) | 
|  | #define IDWriteTextLayout_SetInlineObject(This,inlineObject,textRange) (This)->lpVtbl->SetInlineObject(This,inlineObject,textRange) | 
|  | #define IDWriteTextLayout_SetLocaleName(This,localeName,textRange) (This)->lpVtbl->SetLocaleName(This,localeName,textRange) | 
|  | #define IDWriteTextLayout_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) | 
|  | #define IDWriteTextLayout_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) | 
|  | #define IDWriteTextLayout_SetStrikethrough(This,hasStrikethrough,textRange) (This)->lpVtbl->SetStrikethrough(This,hasStrikethrough,textRange) | 
|  | #define IDWriteTextLayout_SetTypography(This,typography,textRange) (This)->lpVtbl->SetTypography(This,typography,textRange) | 
|  | #define IDWriteTextLayout_SetUnderline(This,hasUnderline,textRange) (This)->lpVtbl->SetUnderline(This,hasUnderline,textRange) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteTextRenderer | 
|  | DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWritePixelSnapping methods */ | 
|  | STDMETHOD_(HRESULT,GetCurrentTransform)(THIS_ void * clientDrawingContext,DWRITE_MATRIX * transform) PURE; | 
|  | STDMETHOD_(HRESULT,GetPixelsPerDip)(THIS_ void * clientDrawingContext,FLOAT * pixelsPerDip) PURE; | 
|  | STDMETHOD_(HRESULT,IsPixelSnappingEnabled)(THIS_ void * clientDrawingContext,WINBOOL * isDisabled) PURE; | 
|  |  | 
|  | /* IDWriteTextRenderer methods */ | 
|  | STDMETHOD_(HRESULT,DrawGlyphRun)(THIS_ void * clientDrawingContext,FLOAT  baselineOriginX,FLOAT  baselineOriginY,DWRITE_MEASURING_MODE  measuringMode,const DWRITE_GLYPH_RUN * glyphRun,const DWRITE_GLYPH_RUN_DESCRIPTION * glyphRunDescription,IUnknown * clientDrawingEffect) PURE; | 
|  | STDMETHOD_(HRESULT,DrawInlineObject)(THIS_ void * clientDrawingContext,FLOAT  originX,FLOAT  originY,IDWriteInlineObject * inlineObject,WINBOOL isSideways,WINBOOL isRightToLeft,IUnknown * clientDrawingEffect) PURE; | 
|  | STDMETHOD_(HRESULT,DrawStrikethrough)(THIS_ void * clientDrawingContext,FLOAT  baselineOriginX,FLOAT  baselineOriginY,const DWRITE_STRIKETHROUGH * strikethrough,IUnknown * clientDrawingEffect) PURE; | 
|  | STDMETHOD_(HRESULT,DrawUnderline)(THIS_ void * clientDrawingContext,FLOAT  baselineOriginX,FLOAT  baselineOriginY,const DWRITE_UNDERLINE * underline,IUnknown * clientDrawingEffect) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteTextRenderer_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteTextRenderer_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteTextRenderer_GetCurrentTransform(This,clientDrawingContext,transform) (This)->lpVtbl->GetCurrentTransform(This,clientDrawingContext,transform) | 
|  | #define IDWriteTextRenderer_GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) (This)->lpVtbl->GetPixelsPerDip(This,clientDrawingContext,pixelsPerDip) | 
|  | #define IDWriteTextRenderer_IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) (This)->lpVtbl->IsPixelSnappingEnabled(This,clientDrawingContext,isDisabled) | 
|  | #define IDWriteTextRenderer_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteTextRenderer_DrawGlyphRun(This,clientDrawingContext,baselineOriginX,baselineOriginY,measuringMode,glyphRun,glyphRunDescription,clientDrawingEffect) (This)->lpVtbl->DrawGlyphRun(This,clientDrawingContext,baselineOriginX,baselineOriginY,measuringMode,glyphRun,glyphRunDescription,clientDrawingEffect) | 
|  | #define IDWriteTextRenderer_DrawInlineObject(This,clientDrawingContext,originX,originY,inlineObject,isSideways,isRightToLeft,clientDrawingEffect) (This)->lpVtbl->DrawInlineObject(This,clientDrawingContext,originX,originY,inlineObject,isSideways,isRightToLeft,clientDrawingEffect) | 
|  | #define IDWriteTextRenderer_DrawStrikethrough(This,clientDrawingContext,baselineOriginX,baselineOriginY,strikethrough,clientDrawingEffect) (This)->lpVtbl->DrawStrikethrough(This,clientDrawingContext,baselineOriginX,baselineOriginY,strikethrough,clientDrawingEffect) | 
|  | #define IDWriteTextRenderer_DrawUnderline(This,clientDrawingContext,baselineOriginX,baselineOriginY,underline,clientDrawingEffect) (This)->lpVtbl->DrawUnderline(This,clientDrawingContext,baselineOriginX,baselineOriginY,underline,clientDrawingEffect) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | #undef  INTERFACE | 
|  | #define INTERFACE IDWriteTypography | 
|  | DECLARE_INTERFACE_(IDWriteTypography,IUnknown) | 
|  | { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /* IUnknown methods */ | 
|  | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
|  | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
|  | STDMETHOD_(ULONG, Release)(THIS) PURE; | 
|  |  | 
|  | /* IDWriteTypography methods */ | 
|  | STDMETHOD_(HRESULT,AddFontFeature)(THIS_ DWRITE_FONT_FEATURE  fontFeature) PURE; | 
|  | STDMETHOD_(HRESULT,GetFontFeature)(THIS_ UINT32  fontFeatureIndex,DWRITE_FONT_FEATURE * fontFeature) PURE; | 
|  | STDMETHOD_(UINT32,GetFontFeatureCount)(THIS) PURE; | 
|  |  | 
|  | END_INTERFACE | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDWriteTypography_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDWriteTypography_AddRef(This) (This)->pVtbl->AddRef(This) | 
|  | #define IDWriteTypography_Release(This) (This)->pVtbl->Release(This) | 
|  | #define IDWriteTypography_AddFontFeature(This,fontFeature) (This)->lpVtbl->AddFontFeature(This,fontFeature) | 
|  | #define IDWriteTypography_GetFontFeature(This,fontFeatureIndex,fontFeature) (This)->lpVtbl->GetFontFeature(This,fontFeatureIndex,fontFeature) | 
|  | #define IDWriteTypography_GetFontFeatureCount() (This)->lpVtbl->GetFontFeatureCount(This) | 
|  | #endif /*COBJMACROS*/ | 
|  |  | 
|  | DWRITEAPI HRESULT WINAPI DWriteCreateFactory( | 
|  | DWRITE_FACTORY_TYPE factoryType, | 
|  | REFIID iid, | 
|  | IUnknown **factory | 
|  | ); | 
|  |  | 
|  | __CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3,0x8dff,0x4773,0x9f,0xf6,0x06,0x96,0xea,0xb7,0x72,0x67); | 
|  | __CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a,0xd838,0x4b5b,0xa2,0xe8,0x1a,0xdc,0x7d,0x93,0xdb,0x48); | 
|  | __CRT_UUID_DECL(IDWriteFont, 0xacd16696,0x8c14,0x4f5d,0x87,0x7e,0xfe,0x3f,0xc1,0xd3,0x27,0x37); | 
|  | __CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02,0x3eea,0x4eee,0xa8,0x27,0x87,0xc1,0xa0,0x2a,0x0f,0xcc); | 
|  | __CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d,0x7024,0x4d43,0xbf,0xa9,0xd2,0x59,0x84,0xf5,0x38,0x49); | 
|  | __CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438,0x1d97,0x4ec1,0xae,0xf9,0xa2,0xfb,0x86,0xed,0x6a,0xcb); | 
|  | __CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef,0x812a,0x4c43,0x98,0x02,0x62,0xec,0x4a,0xbd,0x7a,0xdd); | 
|  | __CRT_UUID_DECL(IDWriteFontFile, 0x739d886a,0xcef5,0x47dc,0x87,0x69,0x1a,0x8b,0x41,0xbe,0xbb,0xb0); | 
|  | __CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e,0xd6af,0x4c9e,0x8a,0x08,0xd6,0x95,0xb1,0x1c,0xaa,0x49); | 
|  | __CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe,0x0ab8,0x4d91,0x8f,0x62,0x5d,0xd6,0xbe,0x34,0xa3,0xe0); | 
|  | __CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491,0x9853,0x4299,0x89,0x8f,0x64,0x32,0x98,0x3b,0x6f,0x3a); | 
|  | __CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7,0xe085,0x42d4,0x81,0xe3,0x6a,0x88,0x3b,0xde,0xd1,0x18); | 
|  | __CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209,0x099a,0x4b34,0xb8,0x6d,0xc2,0x2b,0x11,0x0e,0x77,0x71); | 
|  | __CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a,0x2add,0x47cd,0x82,0xee,0xd9,0xec,0x34,0x68,0x8e,0x75); | 
|  | __CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44,0x0ca0,0x4701,0xb3,0xfa,0xbe,0xc5,0x18,0x2a,0xe4,0xf6); | 
|  | __CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58,0x5094,0x47c8,0xad,0xc8,0xfb,0xce,0xa6,0x0a,0xe9,0x2b); | 
|  | __CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e,0x7f46,0x43b4,0x84,0xb3,0xe4,0xe6,0x24,0x9c,0x36,0x5d); | 
|  |  | 
|  | #define IDWriteFontFileEnumerator __MINGW_POISON_NAME(IDWriteFontFileEnumerator) | 
|  | #define IDWriteInlineObject __MINGW_POISON_NAME(IDWriteInlineObject) | 
|  | #define IDWriteLocalFontFileLoader __MINGW_POISON_NAME(IDWriteLocalFontFileLoader) | 
|  | #define IDWritePixelSnapping __MINGW_POISON_NAME(IDWritePixelSnapping) | 
|  | #define IDWriteTextFormat __MINGW_POISON_NAME(IDWriteTextFormat) | 
|  | #define IDWriteTextLayout __MINGW_POISON_NAME(IDWriteTextLayout) | 
|  | #define IDWriteTextRenderer __MINGW_POISON_NAME(IDWriteTextRenderer) | 
|  | #define IDWriteTypography __MINGW_POISON_NAME(IDWriteTypography) | 
|  |  | 
|  | #endif /* __INC_DWRITE__ */ |