| /* | |
| * Copyright 2012 Nikolay Sivov for CodeWeavers | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| import "unknwn.idl"; | |
| import "dcommon.idl"; | |
| interface IDWriteFactory; | |
| interface IDWriteFontCollection; | |
| interface IDWriteFontFamily; | |
| interface IDWriteFontFace; | |
| interface IDWriteInlineObject; | |
| interface ID2D1SimplifiedGeometrySink; | |
| typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink; | |
| cpp_quote("#ifndef _WINDEF_") | |
| /* already defined in windef.h but needed for WIDL */ | |
| typedef void *HMONITOR; | |
| cpp_quote("#endif /* _WINDEF_ */") | |
| cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") | |
| cpp_quote("#undef GetGlyphIndices") | |
| cpp_quote("#endif") | |
| typedef enum DWRITE_FACTORY_TYPE | |
| { | |
| DWRITE_FACTORY_TYPE_SHARED, | |
| DWRITE_FACTORY_TYPE_ISOLATED | |
| } DWRITE_FACTORY_TYPE; | |
| typedef enum DWRITE_FONT_FILE_TYPE | |
| { | |
| DWRITE_FONT_FILE_TYPE_UNKNOWN, | |
| DWRITE_FONT_FILE_TYPE_CFF, | |
| DWRITE_FONT_FILE_TYPE_TRUETYPE, | |
| DWRITE_FONT_FILE_TYPE_OPENTYPE_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_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION | |
| } DWRITE_FONT_FILE_TYPE; | |
| typedef enum DWRITE_FONT_FACE_TYPE | |
| { | |
| DWRITE_FONT_FACE_TYPE_CFF, | |
| DWRITE_FONT_FACE_TYPE_TRUETYPE, | |
| DWRITE_FONT_FACE_TYPE_OPENTYPE_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_RAW_CFF, | |
| DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION | |
| } DWRITE_FONT_FACE_TYPE; | |
| 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_SEMI_LIGHT = 350, | |
| 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_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, | |
| DWRITE_FONT_STYLE_OBLIQUE, | |
| DWRITE_FONT_STYLE_ITALIC | |
| } DWRITE_FONT_STYLE; | |
| typedef enum DWRITE_INFORMATIONAL_STRING_ID | |
| { | |
| DWRITE_INFORMATIONAL_STRING_NONE, | |
| 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_TYPOGRAPHIC_FAMILY_NAMES, | |
| DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES, | |
| DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT, | |
| DWRITE_INFORMATIONAL_STRING_FULL_NAME, | |
| DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME, | |
| DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME, | |
| DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME, | |
| DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG, | |
| DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG, | |
| DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, | |
| DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES, | |
| DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME, | |
| } DWRITE_INFORMATIONAL_STRING_ID; | |
| typedef enum DWRITE_FONT_SIMULATIONS | |
| { | |
| DWRITE_FONT_SIMULATIONS_NONE, | |
| DWRITE_FONT_SIMULATIONS_BOLD, | |
| DWRITE_FONT_SIMULATIONS_OBLIQUE | |
| } DWRITE_FONT_SIMULATIONS; | |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS);") | |
| typedef enum DWRITE_PIXEL_GEOMETRY | |
| { | |
| DWRITE_PIXEL_GEOMETRY_FLAT, | |
| DWRITE_PIXEL_GEOMETRY_RGB, | |
| DWRITE_PIXEL_GEOMETRY_BGR | |
| } DWRITE_PIXEL_GEOMETRY; | |
| typedef enum DWRITE_RENDERING_MODE | |
| { | |
| DWRITE_RENDERING_MODE_DEFAULT, | |
| DWRITE_RENDERING_MODE_ALIASED, | |
| DWRITE_RENDERING_MODE_GDI_CLASSIC, | |
| DWRITE_RENDERING_MODE_GDI_NATURAL, | |
| DWRITE_RENDERING_MODE_NATURAL, | |
| DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC, | |
| DWRITE_RENDERING_MODE_OUTLINE, | |
| DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, | |
| DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, | |
| DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, | |
| DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC | |
| } DWRITE_RENDERING_MODE; | |
| typedef enum DWRITE_TEXT_ALIGNMENT | |
| { | |
| DWRITE_TEXT_ALIGNMENT_LEADING, | |
| DWRITE_TEXT_ALIGNMENT_TRAILING, | |
| DWRITE_TEXT_ALIGNMENT_CENTER, | |
| DWRITE_TEXT_ALIGNMENT_JUSTIFIED | |
| } DWRITE_TEXT_ALIGNMENT; | |
| typedef enum DWRITE_PARAGRAPH_ALIGNMENT | |
| { | |
| DWRITE_PARAGRAPH_ALIGNMENT_NEAR, | |
| DWRITE_PARAGRAPH_ALIGNMENT_FAR, | |
| DWRITE_PARAGRAPH_ALIGNMENT_CENTER | |
| } DWRITE_PARAGRAPH_ALIGNMENT; | |
| typedef enum DWRITE_WORD_WRAPPING | |
| { | |
| DWRITE_WORD_WRAPPING_WRAP, | |
| DWRITE_WORD_WRAPPING_NO_WRAP, | |
| DWRITE_WORD_WRAPPING_EMERGENCY_BREAK, | |
| DWRITE_WORD_WRAPPING_WHOLE_WORD, | |
| DWRITE_WORD_WRAPPING_CHARACTER | |
| } DWRITE_WORD_WRAPPING; | |
| typedef enum DWRITE_READING_DIRECTION | |
| { | |
| DWRITE_READING_DIRECTION_LEFT_TO_RIGHT, | |
| DWRITE_READING_DIRECTION_RIGHT_TO_LEFT, | |
| DWRITE_READING_DIRECTION_TOP_TO_BOTTOM, | |
| DWRITE_READING_DIRECTION_BOTTOM_TO_TOP | |
| } DWRITE_READING_DIRECTION; | |
| typedef enum DWRITE_FLOW_DIRECTION | |
| { | |
| DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM, | |
| DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP, | |
| DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT, | |
| DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT | |
| } DWRITE_FLOW_DIRECTION; | |
| typedef enum DWRITE_TRIMMING_GRANULARITY | |
| { | |
| DWRITE_TRIMMING_GRANULARITY_NONE, | |
| DWRITE_TRIMMING_GRANULARITY_CHARACTER, | |
| DWRITE_TRIMMING_GRANULARITY_WORD | |
| } DWRITE_TRIMMING_GRANULARITY; | |
| typedef enum DWRITE_BREAK_CONDITION | |
| { | |
| DWRITE_BREAK_CONDITION_NEUTRAL, | |
| DWRITE_BREAK_CONDITION_CAN_BREAK, | |
| DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, | |
| DWRITE_BREAK_CONDITION_MUST_BREAK | |
| } DWRITE_BREAK_CONDITION; | |
| typedef enum DWRITE_LINE_SPACING_METHOD | |
| { | |
| DWRITE_LINE_SPACING_METHOD_DEFAULT, | |
| DWRITE_LINE_SPACING_METHOD_UNIFORM, | |
| DWRITE_LINE_SPACING_METHOD_PROPORTIONAL | |
| } DWRITE_LINE_SPACING_METHOD; | |
| cpp_quote("#define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \\") | |
| cpp_quote(" ((UINT32)(UINT8)(d) << 24) | \\") | |
| cpp_quote(" ((UINT32)(UINT8)(c) << 16) | \\") | |
| cpp_quote(" ((UINT32)(UINT8)(b) << 8) | \\") | |
| cpp_quote(" (UINT32)(UINT8)(a))") | |
| typedef enum DWRITE_FONT_FEATURE_TAG | |
| { | |
| DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, /* 'afrc' */ | |
| DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, /* 'c2pc' */ | |
| DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, /* 'c2sc' */ | |
| DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, /* 'calt' */ | |
| DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, /* 'case' */ | |
| DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, /* 'ccmp' */ | |
| DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, /* 'clig' */ | |
| DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, /* 'cpsp' */ | |
| DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, /* 'cswh' */ | |
| DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, /* 'curs' */ | |
| DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664, /* 'dflt' */ | |
| DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, /* 'dlig' */ | |
| DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, /* 'expt' */ | |
| DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, /* 'frac' */ | |
| DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, /* 'fwid' */ | |
| DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, /* 'half' */ | |
| DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, /* 'haln' */ | |
| DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, /* 'halt' */ | |
| DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, /* 'hist' */ | |
| DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, /* 'hkna' */ | |
| DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, /* 'hlig' */ | |
| DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, /* 'hwid' */ | |
| DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, /* 'hojo' */ | |
| DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, /* 'jp04' */ | |
| DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, /* 'jp78' */ | |
| DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, /* 'jp83' */ | |
| DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, /* 'jp90' */ | |
| DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, /* 'kern' */ | |
| DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, /* 'liga' */ | |
| DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, /* 'lnum' */ | |
| DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, /* 'locl' */ | |
| DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, /* 'mark' */ | |
| DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, /* 'mgrk' */ | |
| DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, /* 'mkmk' */ | |
| DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, /* 'nalt' */ | |
| DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, /* 'nlck' */ | |
| DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, /* 'onum' */ | |
| DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, /* 'ordn' */ | |
| DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, /* 'palt' */ | |
| DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, /* 'pcap' */ | |
| DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, /* 'pnum' */ | |
| DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, /* 'pwid' */ | |
| DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, /* 'qwid' */ | |
| DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, /* 'rlig' */ | |
| DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, /* 'ruby' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, /* 'salt' */ | |
| DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, /* 'sinf' */ | |
| DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, /* 'smcp' */ | |
| DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, /* 'smpl' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, /* 'ss01' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, /* 'ss02' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, /* 'ss03' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, /* 'ss04' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, /* 'ss05' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, /* 'ss06' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, /* 'ss07' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, /* 'ss08' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, /* 'ss09' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, /* 'ss10' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, /* 'ss11' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, /* 'ss12' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, /* 'ss13' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, /* 'ss14' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, /* 'ss15' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, /* 'ss16' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, /* 'ss17' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, /* 'ss18' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, /* 'ss19' */ | |
| DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, /* 'ss20' */ | |
| DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, /* 'subs' */ | |
| DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, /* 'sups' */ | |
| DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, /* 'swsh' */ | |
| DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, /* 'titl' */ | |
| DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, /* 'tnam' */ | |
| DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, /* 'tnum' */ | |
| DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, /* 'trad' */ | |
| DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, /* 'twid' */ | |
| DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, /* 'unic' */ | |
| DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576, /* 'vert' */ | |
| DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION= 0x32747276, /* 'vrt2' */ | |
| DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a, /* 'zero' */ | |
| } DWRITE_FONT_FEATURE_TAG; | |
| typedef enum DWRITE_SCRIPT_SHAPES | |
| { | |
| DWRITE_SCRIPT_SHAPES_DEFAULT = 0, | |
| DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 | |
| } DWRITE_SCRIPT_SHAPES; | |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DWRITE_SCRIPT_SHAPES);") | |
| typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD | |
| { | |
| DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE, | |
| DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL, | |
| DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE, | |
| DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL, | |
| DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL | |
| } DWRITE_NUMBER_SUBSTITUTION_METHOD; | |
| cpp_quote("#define DWRITE_ALPHA_MAX 255") | |
| typedef enum DWRITE_TEXTURE_TYPE | |
| { | |
| DWRITE_TEXTURE_ALIASED_1x1, | |
| DWRITE_TEXTURE_CLEARTYPE_3x1 | |
| } DWRITE_TEXTURE_TYPE; | |
| 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_MATRIX | |
| { | |
| FLOAT m11; | |
| FLOAT m12; | |
| FLOAT m21; | |
| FLOAT m22; | |
| FLOAT dx; | |
| FLOAT dy; | |
| } DWRITE_MATRIX; | |
| typedef struct DWRITE_TRIMMING | |
| { | |
| DWRITE_TRIMMING_GRANULARITY granularity; | |
| UINT32 delimiter; | |
| UINT32 delimiterCount; | |
| } DWRITE_TRIMMING; | |
| cpp_quote("#ifndef __d2d1_h__") | |
| typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; | |
| cpp_quote("#endif /* __d2d1_h__ */") | |
| struct DWRITE_GLYPH_RUN | |
| { | |
| IDWriteFontFace* fontFace; | |
| FLOAT fontEmSize; | |
| UINT32 glyphCount; | |
| UINT16 const* glyphIndices; | |
| FLOAT const* glyphAdvances; | |
| DWRITE_GLYPH_OFFSET const* glyphOffsets; | |
| BOOL isSideways; | |
| UINT32 bidiLevel; | |
| }; | |
| cpp_quote("#ifndef __d2d1_1_h__") | |
| typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION; | |
| cpp_quote("#endif /* __d2d1_1_h__ */") | |
| struct DWRITE_GLYPH_RUN_DESCRIPTION | |
| { | |
| WCHAR const* localeName; | |
| WCHAR const* string; | |
| UINT32 stringLength; | |
| UINT16 const* clusterMap; | |
| UINT32 textPosition; | |
| }; | |
| typedef struct DWRITE_UNDERLINE | |
| { | |
| FLOAT width; | |
| FLOAT thickness; | |
| FLOAT offset; | |
| FLOAT runHeight; | |
| DWRITE_READING_DIRECTION readingDirection; | |
| DWRITE_FLOW_DIRECTION flowDirection; | |
| WCHAR const* localeName; | |
| DWRITE_MEASURING_MODE measuringMode; | |
| } DWRITE_UNDERLINE; | |
| typedef struct DWRITE_STRIKETHROUGH | |
| { | |
| FLOAT width; | |
| FLOAT thickness; | |
| FLOAT offset; | |
| DWRITE_READING_DIRECTION readingDirection; | |
| DWRITE_FLOW_DIRECTION flowDirection; | |
| WCHAR const* localeName; | |
| DWRITE_MEASURING_MODE measuringMode; | |
| } DWRITE_STRIKETHROUGH; | |
| typedef struct DWRITE_INLINE_OBJECT_METRICS | |
| { | |
| FLOAT width; | |
| FLOAT height; | |
| FLOAT baseline; | |
| BOOL supportsSideways; | |
| } DWRITE_INLINE_OBJECT_METRICS; | |
| typedef struct DWRITE_OVERHANG_METRICS | |
| { | |
| FLOAT left; | |
| FLOAT top; | |
| FLOAT right; | |
| FLOAT bottom; | |
| } DWRITE_OVERHANG_METRICS; | |
| typedef struct DWRITE_FONT_FEATURE | |
| { | |
| DWRITE_FONT_FEATURE_TAG nameTag; | |
| UINT32 parameter; | |
| } DWRITE_FONT_FEATURE; | |
| typedef struct DWRITE_TEXT_RANGE | |
| { | |
| UINT32 startPosition; | |
| UINT32 length; | |
| } DWRITE_TEXT_RANGE; | |
| typedef struct DWRITE_LINE_METRICS | |
| { | |
| UINT32 length; | |
| UINT32 trailingWhitespaceLength; | |
| UINT32 newlineLength; | |
| FLOAT height; | |
| FLOAT baseline; | |
| BOOL isTrimmed; | |
| } DWRITE_LINE_METRICS; | |
| typedef struct DWRITE_TEXT_METRICS | |
| { | |
| FLOAT left; | |
| FLOAT top; | |
| FLOAT width; | |
| FLOAT widthIncludingTrailingWhitespace; | |
| FLOAT height; | |
| FLOAT layoutWidth; | |
| FLOAT layoutHeight; | |
| UINT32 maxBidiReorderingDepth; | |
| UINT32 lineCount; | |
| } DWRITE_TEXT_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_HIT_TEST_METRICS | |
| { | |
| UINT32 textPosition; | |
| UINT32 length; | |
| FLOAT left; | |
| FLOAT top; | |
| FLOAT width; | |
| FLOAT height; | |
| UINT32 bidiLevel; | |
| BOOL isText; | |
| BOOL isTrimmed; | |
| } DWRITE_HIT_TEST_METRICS; | |
| typedef struct DWRITE_SCRIPT_ANALYSIS | |
| { | |
| UINT16 script; | |
| DWRITE_SCRIPT_SHAPES shapes; | |
| } DWRITE_SCRIPT_ANALYSIS; | |
| 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_TYPOGRAPHIC_FEATURES | |
| { | |
| DWRITE_FONT_FEATURE* features; | |
| UINT32 featureCount; | |
| } DWRITE_TYPOGRAPHIC_FEATURES; | |
| typedef struct DWRITE_SHAPING_TEXT_PROPERTIES | |
| { | |
| UINT16 isShapedAlone : 1; | |
| UINT16 reserved1 : 1; | |
| UINT16 canBreakShapingAfter : 1; | |
| UINT16 reserved : 13; | |
| } DWRITE_SHAPING_TEXT_PROPERTIES; | |
| 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; | |
| [ | |
| local, | |
| object, | |
| uuid(6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0) | |
| ] | |
| interface IDWriteFontFileStream : IUnknown | |
| { | |
| HRESULT ReadFileFragment( | |
| void const **fragment_start, | |
| UINT64 offset, | |
| UINT64 fragment_size, | |
| void **fragment_context); | |
| void ReleaseFileFragment(void *fragment_context); | |
| HRESULT GetFileSize(UINT64 *size); | |
| HRESULT GetLastWriteTime(UINT64 *last_writetime); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(727cad4e-d6af-4c9e-8a08-d695b11caa49) | |
| ] | |
| interface IDWriteFontFileLoader : IUnknown | |
| { | |
| HRESULT CreateStreamFromKey( | |
| void const *key, | |
| UINT32 key_size, | |
| IDWriteFontFileStream **stream); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2) | |
| ] | |
| interface IDWriteLocalFontFileLoader : IDWriteFontFileLoader | |
| { | |
| HRESULT GetFilePathLengthFromKey(void const *key, UINT32 key_size, UINT32 *length); | |
| HRESULT GetFilePathFromKey(void const *key, UINT32 key_size, WCHAR *path, UINT32 length); | |
| HRESULT GetLastWriteTimeFromKey(void const *key, UINT32 key_size, FILETIME *writetime); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(739d886a-cef5-47dc-8769-1a8b41bebbb0) | |
| ] | |
| interface IDWriteFontFile : IUnknown | |
| { | |
| HRESULT GetReferenceKey( | |
| void const **key, | |
| UINT32 *key_size); | |
| HRESULT GetLoader(IDWriteFontFileLoader **loader); | |
| HRESULT Analyze( | |
| BOOL *is_supported_fonttype, | |
| DWRITE_FONT_FILE_TYPE *file_type, | |
| DWRITE_FONT_FACE_TYPE *face_type, | |
| UINT32 *faces_num); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(72755049-5ff7-435d-8348-4be97cfa6c7c) | |
| ] | |
| interface IDWriteFontFileEnumerator : IUnknown | |
| { | |
| HRESULT MoveNext(BOOL *has_current_file); | |
| HRESULT GetCurrentFontFile(IDWriteFontFile **font_file); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(cca920e4-52f0-492b-bfa8-29c72ee0a468) | |
| ] | |
| interface IDWriteFontCollectionLoader : IUnknown | |
| { | |
| HRESULT CreateEnumeratorFromKey( | |
| IDWriteFactory* factory, | |
| void const* key, | |
| UINT32 key_size, | |
| IDWriteFontFileEnumerator **enumerator); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(08256209-099a-4b34-b86d-c22b110e7771) | |
| ] | |
| interface IDWriteLocalizedStrings : IUnknown | |
| { | |
| UINT32 GetCount(); | |
| HRESULT FindLocaleName( | |
| WCHAR const *locale_name, | |
| UINT32 *index, | |
| BOOL *exists); | |
| HRESULT GetLocaleNameLength(UINT32 index, UINT32 *length); | |
| HRESULT GetLocaleName(UINT32 index, WCHAR *locale_name, UINT32 size); | |
| HRESULT GetStringLength(UINT32 index, UINT32 *length); | |
| HRESULT GetString(UINT32 index, WCHAR *buffer, UINT32 size); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(2f0da53a-2add-47cd-82ee-d9ec34688e75) | |
| ] | |
| interface IDWriteRenderingParams : IUnknown | |
| { | |
| FLOAT GetGamma(); | |
| FLOAT GetEnhancedContrast(); | |
| FLOAT GetClearTypeLevel(); | |
| DWRITE_PIXEL_GEOMETRY GetPixelGeometry(); | |
| DWRITE_RENDERING_MODE GetRenderingMode(); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(5f49804d-7024-4d43-bfa9-d25984f53849) | |
| ] | |
| interface IDWriteFontFace : IUnknown | |
| { | |
| DWRITE_FONT_FACE_TYPE GetType(); | |
| HRESULT GetFiles(UINT32 *number_of_files, IDWriteFontFile **fontfiles); | |
| UINT32 GetIndex(); | |
| DWRITE_FONT_SIMULATIONS GetSimulations(); | |
| BOOL IsSymbolFont(); | |
| void GetMetrics(DWRITE_FONT_METRICS *metrics); | |
| UINT16 GetGlyphCount(); | |
| HRESULT GetDesignGlyphMetrics( | |
| UINT16 const *glyph_indices, | |
| UINT32 glyph_count, | |
| DWRITE_GLYPH_METRICS *metrics, | |
| [defaultvalue(FALSE)] BOOL is_sideways); | |
| HRESULT GetGlyphIndices( | |
| UINT32 const *codepoints, | |
| UINT32 count, | |
| UINT16 *glyph_indices); | |
| HRESULT TryGetFontTable( | |
| UINT32 table_tag, | |
| const void **table_data, | |
| UINT32 *table_size, | |
| void **context, | |
| BOOL *exists); | |
| void ReleaseFontTable(void *table_context); | |
| HRESULT GetGlyphRunOutline( | |
| FLOAT emSize, | |
| UINT16 const *glyph_indices, | |
| FLOAT const* glyph_advances, | |
| DWRITE_GLYPH_OFFSET const *glyph_offsets, | |
| UINT32 glyph_count, | |
| BOOL is_sideways, | |
| BOOL is_rtl, | |
| IDWriteGeometrySink *geometrysink); | |
| HRESULT GetRecommendedRenderingMode( | |
| FLOAT emSize, | |
| FLOAT pixels_per_dip, | |
| DWRITE_MEASURING_MODE mode, | |
| IDWriteRenderingParams* params, | |
| DWRITE_RENDERING_MODE* rendering_mode); | |
| HRESULT GetGdiCompatibleMetrics( | |
| FLOAT emSize, | |
| FLOAT pixels_per_dip, | |
| DWRITE_MATRIX const *transform, | |
| DWRITE_FONT_METRICS *metrics); | |
| HRESULT GetGdiCompatibleGlyphMetrics( | |
| FLOAT emSize, | |
| FLOAT pixels_per_dip, | |
| DWRITE_MATRIX const *transform, | |
| BOOL use_gdi_natural, | |
| UINT16 const *glyph_indices, | |
| UINT32 glyph_count, | |
| DWRITE_GLYPH_METRICS *metrics, | |
| [defaultvalue(FALSE)] BOOL is_sideways); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(acd16696-8c14-4f5d-877e-fe3fc1d32737) | |
| ] | |
| interface IDWriteFont : IUnknown | |
| { | |
| HRESULT GetFontFamily(IDWriteFontFamily **family); | |
| DWRITE_FONT_WEIGHT GetWeight(); | |
| DWRITE_FONT_STRETCH GetStretch(); | |
| DWRITE_FONT_STYLE GetStyle(); | |
| BOOL IsSymbolFont(); | |
| HRESULT GetFaceNames(IDWriteLocalizedStrings **names); | |
| HRESULT GetInformationalStrings( | |
| DWRITE_INFORMATIONAL_STRING_ID stringid, | |
| IDWriteLocalizedStrings **strings, | |
| BOOL *exists); | |
| DWRITE_FONT_SIMULATIONS GetSimulations(); | |
| void GetMetrics(DWRITE_FONT_METRICS *metrics); | |
| HRESULT HasCharacter(UINT32 value, BOOL *exists); | |
| HRESULT CreateFontFace(IDWriteFontFace **face); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb) | |
| ] | |
| interface IDWriteFontList : IUnknown | |
| { | |
| HRESULT GetFontCollection(IDWriteFontCollection **collection); | |
| UINT32 GetFontCount(); | |
| HRESULT GetFont(UINT32 index, IDWriteFont **font); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(da20d8ef-812a-4c43-9802-62ec4abd7add) | |
| ] | |
| interface IDWriteFontFamily : IDWriteFontList | |
| { | |
| HRESULT GetFamilyNames(IDWriteLocalizedStrings **names); | |
| HRESULT GetFirstMatchingFont( | |
| DWRITE_FONT_WEIGHT weight, | |
| DWRITE_FONT_STRETCH stretch, | |
| DWRITE_FONT_STYLE style, | |
| IDWriteFont **font); | |
| HRESULT GetMatchingFonts( | |
| DWRITE_FONT_WEIGHT weight, | |
| DWRITE_FONT_STRETCH stretch, | |
| DWRITE_FONT_STYLE style, | |
| IDWriteFontList **fonts); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(a84cee02-3eea-4eee-a827-87c1a02a0fcc) | |
| ] | |
| interface IDWriteFontCollection : IUnknown | |
| { | |
| UINT32 GetFontFamilyCount(); | |
| HRESULT GetFontFamily(UINT32 index, IDWriteFontFamily **family); | |
| HRESULT FindFamilyName(WCHAR const *name, UINT32 *index, BOOL *exists); | |
| HRESULT GetFontFromFontFace(IDWriteFontFace *face, IDWriteFont **font); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(eaf3a2da-ecf4-4d24-b644-b34f6842024b) | |
| ] | |
| interface IDWritePixelSnapping : IUnknown | |
| { | |
| HRESULT IsPixelSnappingDisabled( | |
| void *client_drawingcontext, | |
| BOOL *disabled); | |
| HRESULT GetCurrentTransform( | |
| void *client_drawingcontext, | |
| DWRITE_MATRIX *transform); | |
| HRESULT GetPixelsPerDip( | |
| void *client_drawingcontext, | |
| FLOAT *pixels_per_dip); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(ef8a8135-5cc6-45fe-8825-c5a0724eb819) | |
| ] | |
| interface IDWriteTextRenderer : IDWritePixelSnapping | |
| { | |
| HRESULT DrawGlyphRun( | |
| void* client_drawingcontext, | |
| FLOAT baselineOriginX, | |
| FLOAT baselineOriginY, | |
| DWRITE_MEASURING_MODE mode, | |
| DWRITE_GLYPH_RUN const *glyph_run, | |
| DWRITE_GLYPH_RUN_DESCRIPTION const *run_descr, | |
| IUnknown *drawing_effect); | |
| HRESULT DrawUnderline( | |
| void *client_drawingcontext, | |
| FLOAT baselineOriginX, | |
| FLOAT baselineOriginY, | |
| DWRITE_UNDERLINE const* underline, | |
| IUnknown *drawing_effect); | |
| HRESULT DrawStrikethrough( | |
| void *client_drawingcontext, | |
| FLOAT baselineOriginX, | |
| FLOAT baselineOriginY, | |
| DWRITE_STRIKETHROUGH const* strikethrough, | |
| IUnknown *drawing_effect); | |
| HRESULT DrawInlineObject( | |
| void *client_drawingcontext, | |
| FLOAT originX, | |
| FLOAT originY, | |
| IDWriteInlineObject *object, | |
| BOOL is_sideways, | |
| BOOL is_rtl, | |
| IUnknown *drawing_effect); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(8339fde3-106f-47ab-8373-1c6295eb10b3) | |
| ] | |
| interface IDWriteInlineObject : IUnknown | |
| { | |
| HRESULT Draw( | |
| void* client_drawingontext, | |
| IDWriteTextRenderer* renderer, | |
| FLOAT originX, | |
| FLOAT originY, | |
| BOOL is_sideways, | |
| BOOL is_rtl, | |
| IUnknown *drawing_effect); | |
| HRESULT GetMetrics(DWRITE_INLINE_OBJECT_METRICS *metrics); | |
| HRESULT GetOverhangMetrics(DWRITE_OVERHANG_METRICS *overhangs); | |
| HRESULT GetBreakConditions( | |
| DWRITE_BREAK_CONDITION* condition_before, | |
| DWRITE_BREAK_CONDITION* condition_after); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(9c906818-31d7-4fd3-a151-7c5e225db55a) | |
| ] | |
| interface IDWriteTextFormat : IUnknown | |
| { | |
| HRESULT SetTextAlignment(DWRITE_TEXT_ALIGNMENT alignment); | |
| HRESULT SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT alignment); | |
| HRESULT SetWordWrapping(DWRITE_WORD_WRAPPING wrapping); | |
| HRESULT SetReadingDirection(DWRITE_READING_DIRECTION direction); | |
| HRESULT SetFlowDirection(DWRITE_FLOW_DIRECTION direction); | |
| HRESULT SetIncrementalTabStop(FLOAT tabstop); | |
| HRESULT SetTrimming(DWRITE_TRIMMING const *trimming, IDWriteInlineObject *trimming_sign); | |
| HRESULT SetLineSpacing(DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline); | |
| DWRITE_TEXT_ALIGNMENT GetTextAlignment(); | |
| DWRITE_PARAGRAPH_ALIGNMENT GetParagraphAlignment(); | |
| DWRITE_WORD_WRAPPING GetWordWrapping(); | |
| DWRITE_READING_DIRECTION GetReadingDirection(); | |
| DWRITE_FLOW_DIRECTION GetFlowDirection(); | |
| FLOAT GetIncrementalTabStop(); | |
| HRESULT GetTrimming(DWRITE_TRIMMING *options, IDWriteInlineObject **trimming_sign); | |
| HRESULT GetLineSpacing( | |
| DWRITE_LINE_SPACING_METHOD *method, | |
| FLOAT *spacing, | |
| FLOAT *baseline); | |
| HRESULT GetFontCollection(IDWriteFontCollection **collection); | |
| UINT32 GetFontFamilyNameLength(); | |
| HRESULT GetFontFamilyName(WCHAR *name, UINT32 size); | |
| DWRITE_FONT_WEIGHT GetFontWeight(); | |
| DWRITE_FONT_STYLE GetFontStyle(); | |
| DWRITE_FONT_STRETCH GetFontStretch(); | |
| FLOAT GetFontSize(); | |
| UINT32 GetLocaleNameLength(); | |
| HRESULT GetLocaleName(WCHAR *name, UINT32 size); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(55f1112b-1dc2-4b3c-9541-f46894ed85b6) | |
| ] | |
| interface IDWriteTypography : IUnknown | |
| { | |
| HRESULT AddFontFeature(DWRITE_FONT_FEATURE feature); | |
| UINT32 GetFontFeatureCount(); | |
| HRESULT GetFontFeature(UINT32 index, DWRITE_FONT_FEATURE *feature); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(5e5a32a3-8dff-4773-9ff6-0696eab77267) | |
| ] | |
| interface IDWriteBitmapRenderTarget : IUnknown | |
| { | |
| HRESULT DrawGlyphRun( | |
| FLOAT baselineOriginX, | |
| FLOAT baselineOriginY, | |
| DWRITE_MEASURING_MODE measuring_mode, | |
| DWRITE_GLYPH_RUN const* glyph_run, | |
| IDWriteRenderingParams* params, | |
| COLORREF textColor, | |
| [defaultvalue(NULL)] RECT *blackbox_rect); | |
| HDC GetMemoryDC(); | |
| FLOAT GetPixelsPerDip(); | |
| HRESULT SetPixelsPerDip(FLOAT pixels_per_dip); | |
| HRESULT GetCurrentTransform(DWRITE_MATRIX *transform); | |
| HRESULT SetCurrentTransform(DWRITE_MATRIX const *transform); | |
| HRESULT GetSize(SIZE *size); | |
| HRESULT Resize(UINT32 width, UINT32 height); | |
| } | |
| cpp_quote("#ifndef _WINGDI_") | |
| /* already defined in wingdi.h but needed for WIDL */ | |
| #define LF_FACESIZE 32 | |
| typedef struct tagLOGFONTW | |
| { | |
| LONG lfHeight; | |
| LONG lfWidth; | |
| LONG lfEscapement; | |
| LONG lfOrientation; | |
| LONG lfWeight; | |
| BYTE lfItalic; | |
| BYTE lfUnderline; | |
| BYTE lfStrikeOut; | |
| BYTE lfCharSet; | |
| BYTE lfOutPrecision; | |
| BYTE lfClipPrecision; | |
| BYTE lfQuality; | |
| BYTE lfPitchAndFamily; | |
| WCHAR lfFaceName[LF_FACESIZE]; | |
| } LOGFONTW, *PLOGFONTW, *LPLOGFONTW; | |
| cpp_quote("#endif /* _WINGDI_ */") | |
| [ | |
| local, | |
| object, | |
| uuid(1edd9491-9853-4299-898f-6432983b6f3a) | |
| ] | |
| interface IDWriteGdiInterop : IUnknown | |
| { | |
| HRESULT CreateFontFromLOGFONT(LOGFONTW const *logfont, IDWriteFont **font); | |
| HRESULT ConvertFontToLOGFONT( | |
| IDWriteFont* font, | |
| LOGFONTW* logfont, | |
| BOOL *is_systemfont); | |
| HRESULT ConvertFontFaceToLOGFONT(IDWriteFontFace* font, LOGFONTW* logfont); | |
| HRESULT CreateFontFaceFromHdc(HDC hdc, IDWriteFontFace **fontface); | |
| HRESULT CreateBitmapRenderTarget(HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget **target); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(53737037-6d14-410b-9bfe-0b182bb70961) | |
| ] | |
| interface IDWriteTextLayout : IDWriteTextFormat | |
| { | |
| HRESULT SetMaxWidth(FLOAT maxWidth); | |
| HRESULT SetMaxHeight(FLOAT maxHeight); | |
| HRESULT SetFontCollection(IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range); | |
| HRESULT SetFontFamilyName(WCHAR const *name, DWRITE_TEXT_RANGE range); | |
| HRESULT SetFontWeight(DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range); | |
| HRESULT SetFontStyle(DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range); | |
| HRESULT SetFontStretch(DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range); | |
| HRESULT SetFontSize(FLOAT size, DWRITE_TEXT_RANGE range); | |
| HRESULT SetUnderline(BOOL underline, DWRITE_TEXT_RANGE range); | |
| HRESULT SetStrikethrough(BOOL strikethrough, DWRITE_TEXT_RANGE range); | |
| HRESULT SetDrawingEffect(IUnknown* effect, DWRITE_TEXT_RANGE range); | |
| HRESULT SetInlineObject(IDWriteInlineObject *object, DWRITE_TEXT_RANGE range); | |
| HRESULT SetTypography(IDWriteTypography* typography, DWRITE_TEXT_RANGE range); | |
| HRESULT SetLocaleName(WCHAR const* locale, DWRITE_TEXT_RANGE range); | |
| FLOAT GetMaxWidth(); | |
| FLOAT GetMaxHeight(); | |
| HRESULT GetFontCollection( | |
| UINT32 pos, | |
| IDWriteFontCollection** collection, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetFontFamilyNameLength( | |
| UINT32 pos, | |
| UINT32* len, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetFontFamilyName( | |
| UINT32 position, | |
| WCHAR* name, | |
| UINT32 name_size, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetFontWeight( | |
| UINT32 position, | |
| DWRITE_FONT_WEIGHT *weight, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetFontStyle( | |
| UINT32 currentPosition, | |
| DWRITE_FONT_STYLE *style, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetFontStretch( | |
| UINT32 position, | |
| DWRITE_FONT_STRETCH *stretch, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetFontSize( | |
| UINT32 position, | |
| FLOAT *size, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetUnderline( | |
| UINT32 position, | |
| BOOL *has_underline, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetStrikethrough( | |
| UINT32 position, | |
| BOOL *has_strikethrough, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetDrawingEffect( | |
| UINT32 position, | |
| IUnknown **effect, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetInlineObject( | |
| UINT32 position, | |
| IDWriteInlineObject **object, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetTypography( | |
| UINT32 position, | |
| IDWriteTypography** typography, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetLocaleNameLength( | |
| UINT32 position, | |
| UINT32* length, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT GetLocaleName( | |
| UINT32 position, | |
| WCHAR* name, | |
| UINT32 name_size, | |
| [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | |
| HRESULT Draw( | |
| void *context, | |
| IDWriteTextRenderer* renderer, | |
| FLOAT originX, | |
| FLOAT originY); | |
| HRESULT GetLineMetrics( | |
| DWRITE_LINE_METRICS *metrics, | |
| UINT32 max_count, | |
| UINT32 *actual_count); | |
| HRESULT GetMetrics(DWRITE_TEXT_METRICS *metrics); | |
| HRESULT GetOverhangMetrics(DWRITE_OVERHANG_METRICS *overhangs); | |
| HRESULT GetClusterMetrics( | |
| DWRITE_CLUSTER_METRICS *metrics, | |
| UINT32 max_count, | |
| UINT32* act_count); | |
| HRESULT DetermineMinWidth(FLOAT* min_width); | |
| HRESULT HitTestPoint( | |
| FLOAT pointX, | |
| FLOAT pointY, | |
| BOOL* is_trailinghit, | |
| BOOL* is_inside, | |
| DWRITE_HIT_TEST_METRICS *metrics); | |
| HRESULT HitTestTextPosition( | |
| UINT32 textPosition, | |
| BOOL is_trailinghit, | |
| FLOAT* pointX, | |
| FLOAT* pointY, | |
| DWRITE_HIT_TEST_METRICS *metrics); | |
| HRESULT HitTestTextRange( | |
| UINT32 textPosition, | |
| UINT32 textLength, | |
| FLOAT originX, | |
| FLOAT originY, | |
| DWRITE_HIT_TEST_METRICS *metrics, | |
| UINT32 max_metricscount, | |
| UINT32* actual_metricscount); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(14885cc9-bab0-4f90-b6ed-5c366a2cd03d) | |
| ] | |
| interface IDWriteNumberSubstitution : IUnknown | |
| { | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(688e1a58-5094-47c8-adc8-fbcea60ae92b) | |
| ] | |
| interface IDWriteTextAnalysisSource : IUnknown | |
| { | |
| HRESULT GetTextAtPosition( | |
| UINT32 position, | |
| WCHAR const** text, | |
| UINT32* text_len); | |
| HRESULT GetTextBeforePosition( | |
| UINT32 position, | |
| WCHAR const** text, | |
| UINT32* text_len); | |
| DWRITE_READING_DIRECTION GetParagraphReadingDirection(); | |
| HRESULT GetLocaleName( | |
| UINT32 position, | |
| UINT32* text_len, | |
| WCHAR const** locale); | |
| HRESULT GetNumberSubstitution( | |
| UINT32 position, | |
| UINT32* text_len, | |
| IDWriteNumberSubstitution **substitution); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(5810cd44-0ca0-4701-b3fa-bec5182ae4f6) | |
| ] | |
| interface IDWriteTextAnalysisSink : IUnknown | |
| { | |
| HRESULT SetScriptAnalysis( | |
| UINT32 position, | |
| UINT32 length, | |
| DWRITE_SCRIPT_ANALYSIS const* scriptanalysis); | |
| HRESULT SetLineBreakpoints( | |
| UINT32 position, | |
| UINT32 length, | |
| DWRITE_LINE_BREAKPOINT const* breakpoints); | |
| HRESULT SetBidiLevel( | |
| UINT32 position, | |
| UINT32 length, | |
| UINT8 explicitLevel, | |
| UINT8 resolvedLevel); | |
| HRESULT SetNumberSubstitution( | |
| UINT32 position, | |
| UINT32 length, | |
| IDWriteNumberSubstitution* substitution); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(b7e6163e-7f46-43b4-84b3-e4e6249c365d) | |
| ] | |
| interface IDWriteTextAnalyzer : IUnknown | |
| { | |
| HRESULT AnalyzeScript( | |
| IDWriteTextAnalysisSource* source, | |
| UINT32 position, | |
| UINT32 length, | |
| IDWriteTextAnalysisSink* sink); | |
| HRESULT AnalyzeBidi( | |
| IDWriteTextAnalysisSource* source, | |
| UINT32 position, | |
| UINT32 length, | |
| IDWriteTextAnalysisSink* sink); | |
| HRESULT AnalyzeNumberSubstitution( | |
| IDWriteTextAnalysisSource* source, | |
| UINT32 position, | |
| UINT32 length, | |
| IDWriteTextAnalysisSink* sink); | |
| HRESULT AnalyzeLineBreakpoints( | |
| IDWriteTextAnalysisSource* source, | |
| UINT32 position, | |
| UINT32 length, | |
| IDWriteTextAnalysisSink* sink); | |
| HRESULT GetGlyphs( | |
| WCHAR const* text, | |
| UINT32 length, | |
| IDWriteFontFace* font_face, | |
| BOOL is_sideways, | |
| BOOL is_rtl, | |
| DWRITE_SCRIPT_ANALYSIS const* analysis, | |
| WCHAR const* locale, | |
| IDWriteNumberSubstitution* substitution, | |
| DWRITE_TYPOGRAPHIC_FEATURES const** features, | |
| UINT32 const* feature_range_len, | |
| UINT32 feature_ranges, | |
| UINT32 max_glyph_count, | |
| UINT16* clustermap, | |
| DWRITE_SHAPING_TEXT_PROPERTIES* text_props, | |
| UINT16* glyph_indices, | |
| DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, | |
| UINT32* actual_glyph_count); | |
| HRESULT GetGlyphPlacements( | |
| WCHAR const* text, | |
| UINT16 const* clustermap, | |
| DWRITE_SHAPING_TEXT_PROPERTIES* props, | |
| UINT32 text_len, | |
| UINT16 const* glyph_indices, | |
| DWRITE_SHAPING_GLYPH_PROPERTIES const* glyph_props, | |
| UINT32 glyph_count, | |
| IDWriteFontFace * font_face, | |
| FLOAT fontEmSize, | |
| BOOL is_sideways, | |
| BOOL is_rtl, | |
| DWRITE_SCRIPT_ANALYSIS const* analysis, | |
| WCHAR const* locale, | |
| DWRITE_TYPOGRAPHIC_FEATURES const** features, | |
| UINT32 const* feature_range_len, | |
| UINT32 feature_ranges, | |
| FLOAT* glyph_advances, | |
| DWRITE_GLYPH_OFFSET* glyph_offsets); | |
| HRESULT GetGdiCompatibleGlyphPlacements( | |
| WCHAR const* text, | |
| UINT16 const* clustermap, | |
| DWRITE_SHAPING_TEXT_PROPERTIES* props, | |
| UINT32 text_len, | |
| UINT16 const* glyph_indices, | |
| DWRITE_SHAPING_GLYPH_PROPERTIES const* glyph_props, | |
| UINT32 glyph_count, | |
| IDWriteFontFace * font_face, | |
| FLOAT fontEmSize, | |
| FLOAT pixels_per_dip, | |
| DWRITE_MATRIX const* transform, | |
| BOOL use_gdi_natural, | |
| BOOL is_sideways, | |
| BOOL is_rtl, | |
| DWRITE_SCRIPT_ANALYSIS const* analysis, | |
| WCHAR const* locale, | |
| DWRITE_TYPOGRAPHIC_FEATURES const** features, | |
| UINT32 const* feature_range_lengths, | |
| UINT32 feature_ranges, | |
| FLOAT* glyph_advances, | |
| DWRITE_GLYPH_OFFSET* glyph_offsets); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(7d97dbf7-e085-42d4-81e3-6a883bded118) | |
| ] | |
| interface IDWriteGlyphRunAnalysis : IUnknown | |
| { | |
| HRESULT GetAlphaTextureBounds(DWRITE_TEXTURE_TYPE type, RECT* bounds); | |
| HRESULT CreateAlphaTexture(DWRITE_TEXTURE_TYPE type, RECT const* bounds, BYTE* alphaValues, UINT32 bufferSize); | |
| HRESULT GetAlphaBlendParams( | |
| IDWriteRenderingParams* renderingParams, | |
| FLOAT* blendGamma, | |
| FLOAT* blendEnhancedContrast, | |
| FLOAT* blendClearTypeLevel); | |
| } | |
| [ | |
| local, | |
| object, | |
| uuid(b859ee5a-d838-4b5b-a2e8-1adc7d93db48) | |
| ] | |
| interface IDWriteFactory : IUnknown | |
| { | |
| HRESULT GetSystemFontCollection(IDWriteFontCollection **collection, | |
| [defaultvalue(FALSE)] BOOL check_for_updates); | |
| HRESULT CreateCustomFontCollection( | |
| IDWriteFontCollectionLoader *loader, | |
| void const *key, | |
| UINT32 key_size, | |
| IDWriteFontCollection **collection); | |
| HRESULT RegisterFontCollectionLoader(IDWriteFontCollectionLoader *loader); | |
| HRESULT UnregisterFontCollectionLoader(IDWriteFontCollectionLoader *loader); | |
| HRESULT CreateFontFileReference( | |
| WCHAR const *path, | |
| FILETIME const *writetime, | |
| IDWriteFontFile **font_file); | |
| HRESULT CreateCustomFontFileReference( | |
| void const *reference_key, | |
| UINT32 key_size, | |
| IDWriteFontFileLoader *loader, | |
| IDWriteFontFile **font_file); | |
| HRESULT CreateFontFace( | |
| DWRITE_FONT_FACE_TYPE facetype, | |
| UINT32 files_number, | |
| IDWriteFontFile* const* font_files, | |
| UINT32 index, | |
| DWRITE_FONT_SIMULATIONS sim_flags, | |
| IDWriteFontFace **font_face); | |
| HRESULT CreateRenderingParams(IDWriteRenderingParams **params); | |
| HRESULT CreateMonitorRenderingParams( | |
| HMONITOR monitor, | |
| IDWriteRenderingParams **params); | |
| HRESULT CreateCustomRenderingParams( | |
| FLOAT gamma, | |
| FLOAT enhancedContrast, | |
| FLOAT cleartype_level, | |
| DWRITE_PIXEL_GEOMETRY geometry, | |
| DWRITE_RENDERING_MODE mode, | |
| IDWriteRenderingParams **params); | |
| HRESULT RegisterFontFileLoader(IDWriteFontFileLoader *loader); | |
| HRESULT UnregisterFontFileLoader(IDWriteFontFileLoader *loader); | |
| HRESULT CreateTextFormat( | |
| WCHAR const* family_name, | |
| IDWriteFontCollection *collection, | |
| DWRITE_FONT_WEIGHT weight, | |
| DWRITE_FONT_STYLE style, | |
| DWRITE_FONT_STRETCH stretch, | |
| FLOAT size, | |
| WCHAR const *locale, | |
| IDWriteTextFormat **format); | |
| HRESULT CreateTypography(IDWriteTypography **typography); | |
| HRESULT GetGdiInterop(IDWriteGdiInterop **gdi_interop); | |
| HRESULT CreateTextLayout( | |
| WCHAR const* string, | |
| UINT32 len, | |
| IDWriteTextFormat *format, | |
| FLOAT max_width, | |
| FLOAT max_height, | |
| IDWriteTextLayout **layout); | |
| HRESULT CreateGdiCompatibleTextLayout( | |
| WCHAR const* string, | |
| UINT32 len, | |
| IDWriteTextFormat *format, | |
| FLOAT layout_width, | |
| FLOAT layout_height, | |
| FLOAT pixels_per_dip, | |
| DWRITE_MATRIX const* transform, | |
| BOOL use_gdi_natural, | |
| IDWriteTextLayout **layout); | |
| HRESULT CreateEllipsisTrimmingSign( | |
| IDWriteTextFormat *format, | |
| IDWriteInlineObject **trimming_sign); | |
| HRESULT CreateTextAnalyzer(IDWriteTextAnalyzer **analyzer); | |
| HRESULT CreateNumberSubstitution( | |
| DWRITE_NUMBER_SUBSTITUTION_METHOD method, | |
| WCHAR const* locale, | |
| BOOL ignore_user_override, | |
| IDWriteNumberSubstitution **substitution); | |
| HRESULT CreateGlyphRunAnalysis( | |
| DWRITE_GLYPH_RUN const *glyph_run, | |
| FLOAT pixels_per_dip, | |
| DWRITE_MATRIX const* transform, | |
| DWRITE_RENDERING_MODE rendering_mode, | |
| DWRITE_MEASURING_MODE measuring_mode, | |
| FLOAT baseline_x, | |
| FLOAT baseline_y, | |
| IDWriteGlyphRunAnalysis **analysis); | |
| } | |
| cpp_quote("HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE,REFIID,IUnknown**);") | |
| /* error codes */ | |
| cpp_quote("#define FACILITY_DWRITE 0x898") | |
| cpp_quote("#define DWRITE_ERR_BASE 0x5000") | |
| cpp_quote("#define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code))") | |
| cpp_quote("#define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code)") |