| /* | 
 |  * Copyright 2013 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 "dwrite.idl"; | 
 |  | 
 | typedef enum DWRITE_PANOSE_FAMILY | 
 | { | 
 |     DWRITE_PANOSE_FAMILY_ANY, | 
 |     DWRITE_PANOSE_FAMILY_NO_FIT, | 
 |     DWRITE_PANOSE_FAMILY_TEXT_DISPLAY, | 
 |     DWRITE_PANOSE_FAMILY_SCRIPT, | 
 |     DWRITE_PANOSE_FAMILY_DECORATIVE, | 
 |     DWRITE_PANOSE_FAMILY_SYMBOL, | 
 |     DWRITE_PANOSE_FAMILY_PICTORIAL = DWRITE_PANOSE_FAMILY_SYMBOL | 
 | } DWRITE_PANOSE_FAMILY; | 
 |  | 
 | typedef enum DWRITE_PANOSE_SERIF_STYLE | 
 | { | 
 |     DWRITE_PANOSE_SERIF_STYLE_ANY, | 
 |     DWRITE_PANOSE_SERIF_STYLE_NO_FIT, | 
 |     DWRITE_PANOSE_SERIF_STYLE_COVE, | 
 |     DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE, | 
 |     DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE, | 
 |     DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE, | 
 |     DWRITE_PANOSE_SERIF_STYLE_SQUARE, | 
 |     DWRITE_PANOSE_SERIF_STYLE_THIN, | 
 |     DWRITE_PANOSE_SERIF_STYLE_OVAL, | 
 |     DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED, | 
 |     DWRITE_PANOSE_SERIF_STYLE_TRIANGLE, | 
 |     DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS, | 
 |     DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS, | 
 |     DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS, | 
 |     DWRITE_PANOSE_SERIF_STYLE_FLARED, | 
 |     DWRITE_PANOSE_SERIF_STYLE_ROUNDED, | 
 |     DWRITE_PANOSE_SERIF_STYLE_SCRIPT, | 
 |     DWRITE_PANOSE_SERIF_STYLE_PERP_SANS = DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS, | 
 |     DWRITE_PANOSE_SERIF_STYLE_BONE = DWRITE_PANOSE_SERIF_STYLE_OVAL | 
 | } DWRITE_PANOSE_SERIF_STYLE; | 
 |  | 
 | typedef enum DWRITE_PANOSE_WEIGHT | 
 | { | 
 |     DWRITE_PANOSE_WEIGHT_ANY, | 
 |     DWRITE_PANOSE_WEIGHT_NO_FIT, | 
 |     DWRITE_PANOSE_WEIGHT_VERY_LIGHT, | 
 |     DWRITE_PANOSE_WEIGHT_LIGHT, | 
 |     DWRITE_PANOSE_WEIGHT_THIN, | 
 |     DWRITE_PANOSE_WEIGHT_BOOK, | 
 |     DWRITE_PANOSE_WEIGHT_MEDIUM, | 
 |     DWRITE_PANOSE_WEIGHT_DEMI, | 
 |     DWRITE_PANOSE_WEIGHT_BOLD, | 
 |     DWRITE_PANOSE_WEIGHT_HEAVY, | 
 |     DWRITE_PANOSE_WEIGHT_BLACK, | 
 |     DWRITE_PANOSE_WEIGHT_EXTRA_BLACK, | 
 |     DWRITE_PANOSE_WEIGHT_NORD = DWRITE_PANOSE_WEIGHT_EXTRA_BLACK | 
 | } DWRITE_PANOSE_WEIGHT; | 
 |  | 
 | typedef enum DWRITE_PANOSE_PROPORTION | 
 | { | 
 |     DWRITE_PANOSE_PROPORTION_ANY, | 
 |     DWRITE_PANOSE_PROPORTION_NO_FIT, | 
 |     DWRITE_PANOSE_PROPORTION_OLD_STYLE, | 
 |     DWRITE_PANOSE_PROPORTION_MODERN, | 
 |     DWRITE_PANOSE_PROPORTION_EVEN_WIDTH, | 
 |     DWRITE_PANOSE_PROPORTION_EXPANDED, | 
 |     DWRITE_PANOSE_PROPORTION_CONDENSED, | 
 |     DWRITE_PANOSE_PROPORTION_VERY_EXPANDED, | 
 |     DWRITE_PANOSE_PROPORTION_VERY_CONDENSED, | 
 |     DWRITE_PANOSE_PROPORTION_MONOSPACED | 
 | } DWRITE_PANOSE_PROPORTION; | 
 |  | 
 | typedef enum DWRITE_PANOSE_CONTRAST | 
 | { | 
 |     DWRITE_PANOSE_CONTRAST_ANY, | 
 |     DWRITE_PANOSE_CONTRAST_NO_FIT, | 
 |     DWRITE_PANOSE_CONTRAST_NONE, | 
 |     DWRITE_PANOSE_CONTRAST_VERY_LOW, | 
 |     DWRITE_PANOSE_CONTRAST_LOW, | 
 |     DWRITE_PANOSE_CONTRAST_MEDIUM_LOW, | 
 |     DWRITE_PANOSE_CONTRAST_MEDIUM, | 
 |     DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH, | 
 |     DWRITE_PANOSE_CONTRAST_HIGH, | 
 |     DWRITE_PANOSE_CONTRAST_VERY_HIGH, | 
 |     DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW, | 
 |     DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM, | 
 |     DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH, | 
 |     DWRITE_PANOSE_CONTRAST_BROKEN | 
 | } DWRITE_PANOSE_CONTRAST; | 
 |  | 
 | typedef enum DWRITE_PANOSE_STROKE_VARIATION | 
 | { | 
 |     DWRITE_PANOSE_STROKE_VARIATION_ANY, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_NO_FIT, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL, | 
 |     DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL | 
 | } DWRITE_PANOSE_STROKE_VARIATION; | 
 |  | 
 | typedef enum DWRITE_PANOSE_ARM_STYLE | 
 | { | 
 |     DWRITE_PANOSE_ARM_STYLE_ANY, | 
 |     DWRITE_PANOSE_ARM_STYLE_NO_FIT, | 
 |     DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL, | 
 |     DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE, | 
 |     DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL, | 
 |     DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF, | 
 |     DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF, | 
 |     DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL, | 
 |     DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE, | 
 |     DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL, | 
 |     DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF, | 
 |     DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF, | 
 |     DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL, | 
 |     DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL, | 
 |     DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL, | 
 |     DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE, | 
 |     DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL, | 
 |     DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF, | 
 |     DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF | 
 | } DWRITE_PANOSE_ARM_STYLE; | 
 |  | 
 | typedef enum DWRITE_PANOSE_LETTERFORM | 
 | { | 
 |     DWRITE_PANOSE_LETTERFORM_ANY, | 
 |     DWRITE_PANOSE_LETTERFORM_NO_FIT, | 
 |     DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT, | 
 |     DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED, | 
 |     DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED, | 
 |     DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED, | 
 |     DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED, | 
 |     DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER, | 
 |     DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE, | 
 |     DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT, | 
 |     DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED, | 
 |     DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED, | 
 |     DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED, | 
 |     DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED, | 
 |     DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER, | 
 |     DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE | 
 | } DWRITE_PANOSE_LETTERFORM; | 
 |  | 
 | typedef enum DWRITE_PANOSE_MIDLINE | 
 | { | 
 |     DWRITE_PANOSE_MIDLINE_ANY, | 
 |     DWRITE_PANOSE_MIDLINE_NO_FIT, | 
 |     DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED, | 
 |     DWRITE_PANOSE_MIDLINE_STANDARD_POINTED, | 
 |     DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED, | 
 |     DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED, | 
 |     DWRITE_PANOSE_MIDLINE_HIGH_POINTED, | 
 |     DWRITE_PANOSE_MIDLINE_HIGH_SERIFED, | 
 |     DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED, | 
 |     DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED, | 
 |     DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED, | 
 |     DWRITE_PANOSE_MIDLINE_LOW_TRIMMED, | 
 |     DWRITE_PANOSE_MIDLINE_LOW_POINTED, | 
 |     DWRITE_PANOSE_MIDLINE_LOW_SERIFED | 
 | } DWRITE_PANOSE_MIDLINE; | 
 |  | 
 | typedef enum DWRITE_PANOSE_XHEIGHT | 
 | { | 
 |     DWRITE_PANOSE_XHEIGHT_ANY, | 
 |     DWRITE_PANOSE_XHEIGHT_NO_FIT, | 
 |     DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL, | 
 |     DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD, | 
 |     DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE, | 
 |     DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL, | 
 |     DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD, | 
 |     DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE, | 
 |     DWRITE_PANOSE_XHEIGHT_CONSTANT_STD = DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD, | 
 |     DWRITE_PANOSE_XHEIGHT_DUCKING_STD = DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD | 
 | } DWRITE_PANOSE_XHEIGHT; | 
 |  | 
 | typedef enum DWRITE_PANOSE_TOOL_KIND | 
 | { | 
 |     DWRITE_PANOSE_TOOL_KIND_ANY, | 
 |     DWRITE_PANOSE_TOOL_KIND_NO_FIT, | 
 |     DWRITE_PANOSE_TOOL_KIND_FLAT_NIB, | 
 |     DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT, | 
 |     DWRITE_PANOSE_TOOL_KIND_ENGRAVED, | 
 |     DWRITE_PANOSE_TOOL_KIND_BALL, | 
 |     DWRITE_PANOSE_TOOL_KIND_BRUSH, | 
 |     DWRITE_PANOSE_TOOL_KIND_ROUGH, | 
 |     DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP, | 
 |     DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH | 
 | } DWRITE_PANOSE_TOOL_KIND; | 
 |  | 
 | typedef enum DWRITE_PANOSE_SPACING | 
 | { | 
 |     DWRITE_PANOSE_SPACING_ANY, | 
 |     DWRITE_PANOSE_SPACING_NO_FIT, | 
 |     DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED, | 
 |     DWRITE_PANOSE_SPACING_MONOSPACED | 
 | } DWRITE_PANOSE_SPACING; | 
 |  | 
 | typedef enum DWRITE_PANOSE_ASPECT_RATIO | 
 | { | 
 |     DWRITE_PANOSE_ASPECT_RATIO_ANY, | 
 |     DWRITE_PANOSE_ASPECT_RATIO_NO_FIT, | 
 |     DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED, | 
 |     DWRITE_PANOSE_ASPECT_RATIO_CONDENSED, | 
 |     DWRITE_PANOSE_ASPECT_RATIO_NORMAL, | 
 |     DWRITE_PANOSE_ASPECT_RATIO_EXPANDED, | 
 |     DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED | 
 | } DWRITE_PANOSE_ASPECT_RATIO; | 
 |  | 
 | typedef enum DWRITE_PANOSE_SCRIPT_TOPOLOGY | 
 | { | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING, | 
 |     DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED | 
 | } DWRITE_PANOSE_SCRIPT_TOPOLOGY; | 
 |  | 
 | typedef enum DWRITE_PANOSE_SCRIPT_FORM | 
 | { | 
 |     DWRITE_PANOSE_SCRIPT_FORM_ANY, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_NO_FIT, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING, | 
 |     DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING | 
 | } DWRITE_PANOSE_SCRIPT_FORM; | 
 |  | 
 | typedef enum DWRITE_PANOSE_FINIALS | 
 | { | 
 |     DWRITE_PANOSE_FINIALS_ANY, | 
 |     DWRITE_PANOSE_FINIALS_NO_FIT, | 
 |     DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS, | 
 |     DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS | 
 | } DWRITE_PANOSE_FINIALS; | 
 |  | 
 | typedef enum DWRITE_PANOSE_XASCENT | 
 | { | 
 |     DWRITE_PANOSE_XASCENT_ANY, | 
 |     DWRITE_PANOSE_XASCENT_NO_FIT, | 
 |     DWRITE_PANOSE_XASCENT_VERY_LOW, | 
 |     DWRITE_PANOSE_XASCENT_LOW, | 
 |     DWRITE_PANOSE_XASCENT_MEDIUM, | 
 |     DWRITE_PANOSE_XASCENT_HIGH, | 
 |     DWRITE_PANOSE_XASCENT_VERY_HIGH | 
 | } DWRITE_PANOSE_XASCENT; | 
 |  | 
 | typedef enum DWRITE_PANOSE_DECORATIVE_CLASS | 
 | { | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_ANY, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE, | 
 |     DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE | 
 | } DWRITE_PANOSE_DECORATIVE_CLASS; | 
 |  | 
 | typedef enum DWRITE_PANOSE_ASPECT | 
 | { | 
 |     DWRITE_PANOSE_ASPECT_ANY, | 
 |     DWRITE_PANOSE_ASPECT_NO_FIT, | 
 |     DWRITE_PANOSE_ASPECT_SUPER_CONDENSED, | 
 |     DWRITE_PANOSE_ASPECT_VERY_CONDENSED, | 
 |     DWRITE_PANOSE_ASPECT_CONDENSED, | 
 |     DWRITE_PANOSE_ASPECT_NORMAL, | 
 |     DWRITE_PANOSE_ASPECT_EXTENDED, | 
 |     DWRITE_PANOSE_ASPECT_VERY_EXTENDED, | 
 |     DWRITE_PANOSE_ASPECT_SUPER_EXTENDED, | 
 |     DWRITE_PANOSE_ASPECT_MONOSPACED | 
 | } DWRITE_PANOSE_ASPECT; | 
 |  | 
 | typedef enum DWRITE_PANOSE_FILL | 
 | { | 
 |     DWRITE_PANOSE_FILL_ANY, | 
 |     DWRITE_PANOSE_FILL_NO_FIT, | 
 |     DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL, | 
 |     DWRITE_PANOSE_FILL_NO_FILL, | 
 |     DWRITE_PANOSE_FILL_PATTERNED_FILL, | 
 |     DWRITE_PANOSE_FILL_COMPLEX_FILL, | 
 |     DWRITE_PANOSE_FILL_SHAPED_FILL, | 
 |     DWRITE_PANOSE_FILL_DRAWN_DISTRESSED | 
 | } DWRITE_PANOSE_FILL; | 
 |  | 
 | typedef enum DWRITE_PANOSE_LINING | 
 | { | 
 |     DWRITE_PANOSE_LINING_ANY, | 
 |     DWRITE_PANOSE_LINING_NO_FIT, | 
 |     DWRITE_PANOSE_LINING_NONE, | 
 |     DWRITE_PANOSE_LINING_INLINE, | 
 |     DWRITE_PANOSE_LINING_OUTLINE, | 
 |     DWRITE_PANOSE_LINING_ENGRAVED, | 
 |     DWRITE_PANOSE_LINING_SHADOW, | 
 |     DWRITE_PANOSE_LINING_RELIEF, | 
 |     DWRITE_PANOSE_LINING_BACKDROP | 
 | } DWRITE_PANOSE_LINING; | 
 |  | 
 | typedef enum DWRITE_PANOSE_DECORATIVE_TOPOLOGY | 
 | { | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER, | 
 |     DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE | 
 | } DWRITE_PANOSE_DECORATIVE_TOPOLOGY; | 
 |  | 
 | typedef enum DWRITE_PANOSE_CHARACTER_RANGES | 
 | { | 
 |     DWRITE_PANOSE_CHARACTER_RANGES_ANY, | 
 |     DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT, | 
 |     DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION, | 
 |     DWRITE_PANOSE_CHARACTER_RANGES_LITERALS, | 
 |     DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE, | 
 |     DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS | 
 | } DWRITE_PANOSE_CHARACTER_RANGES; | 
 |  | 
 | typedef enum DWRITE_PANOSE_SYMBOL_KIND | 
 | { | 
 |     DWRITE_PANOSE_SYMBOL_KIND_ANY, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_NO_FIT, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_MONTAGES, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_PICTURES, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_SHAPES, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_MUSIC, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_EXPERT, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_PATTERNS, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_BOARDERS, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_ICONS, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_LOGOS, | 
 |     DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC | 
 | } DWRITE_PANOSE_SYMBOL_KIND; | 
 |  | 
 | typedef enum DWRITE_PANOSE_SYMBOL_ASPECT_RATIO | 
 | { | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW, | 
 |     DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW | 
 | } DWRITE_PANOSE_SYMBOL_ASPECT_RATIO; | 
 |  | 
 | typedef enum DWRITE_OUTLINE_THRESHOLD | 
 | { | 
 |     DWRITE_OUTLINE_THRESHOLD_ANTIALIASED, | 
 |     DWRITE_OUTLINE_THRESHOLD_ALIASED | 
 | } DWRITE_OUTLINE_THRESHOLD; | 
 |  | 
 | typedef enum DWRITE_BASELINE | 
 | { | 
 |     DWRITE_BASELINE_DEFAULT, | 
 |     DWRITE_BASELINE_ROMAN, | 
 |     DWRITE_BASELINE_CENTRAL, | 
 |     DWRITE_BASELINE_MATH, | 
 |     DWRITE_BASELINE_HANGING, | 
 |     DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM, | 
 |     DWRITE_BASELINE_IDEOGRAPHIC_TOP, | 
 |     DWRITE_BASELINE_MINIMUM, | 
 |     DWRITE_BASELINE_MAXIMUM | 
 | } DWRITE_BASELINE; | 
 |  | 
 | typedef enum DWRITE_VERTICAL_GLYPH_ORIENTATION | 
 | { | 
 |     DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT, | 
 |     DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED | 
 | } DWRITE_VERTICAL_GLYPH_ORIENTATION; | 
 |  | 
 | typedef enum DWRITE_GLYPH_ORIENTATION_ANGLE | 
 | { | 
 |     DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES, | 
 |     DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES, | 
 |     DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES, | 
 |     DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES | 
 | } DWRITE_GLYPH_ORIENTATION_ANGLE; | 
 |  | 
 | typedef struct DWRITE_FONT_METRICS1 | 
 | { | 
 |     UINT16 designUnitsPerEm; | 
 |     UINT16 ascent; | 
 |     UINT16 descent; | 
 |     INT16 lineGap; | 
 |     UINT16 capHeight; | 
 |     UINT16 xHeight; | 
 |     INT16 underlinePosition; | 
 |     UINT16 underlineThickness; | 
 |     INT16 strikethroughPosition; | 
 |     UINT16 strikethroughThickness; | 
 |     INT16 glyphBoxLeft; | 
 |     INT16 glyphBoxTop; | 
 |     INT16 glyphBoxRight; | 
 |     INT16 glyphBoxBottom; | 
 |     INT16 subscriptPositionX; | 
 |     INT16 subscriptPositionY; | 
 |     INT16 subscriptSizeX; | 
 |     INT16 subscriptSizeY; | 
 |     INT16 superscriptPositionX; | 
 |     INT16 superscriptPositionY; | 
 |     INT16 superscriptSizeX; | 
 |     INT16 superscriptSizeY; | 
 |     BOOL hasTypographicMetrics; | 
 | } DWRITE_FONT_METRICS1; | 
 |  | 
 | typedef struct DWRITE_CARET_METRICS | 
 | { | 
 |     INT16 slopeRise; | 
 |     INT16 slopeRun; | 
 |     INT16 offset; | 
 | } DWRITE_CARET_METRICS; | 
 |  | 
 | typedef union DWRITE_PANOSE | 
 | { | 
 |     UINT8 values[10]; | 
 |     UINT8 familyKind; | 
 |     struct | 
 |     { | 
 |         UINT8 familyKind; | 
 |         UINT8 serifStyle; | 
 |         UINT8 weight; | 
 |         UINT8 proportion; | 
 |         UINT8 contrast; | 
 |         UINT8 strokeVariation; | 
 |         UINT8 armStyle; | 
 |         UINT8 letterform; | 
 |         UINT8 midline; | 
 |         UINT8 xHeight; | 
 |     } text; | 
 |     struct | 
 |     { | 
 |         UINT8 familyKind; | 
 |         UINT8 toolKind; | 
 |         UINT8 weight; | 
 |         UINT8 spacing; | 
 |         UINT8 aspectRatio; | 
 |         UINT8 contrast; | 
 |         UINT8 scriptTopology; | 
 |         UINT8 scriptForm; | 
 |         UINT8 finials; | 
 |         UINT8 xAscent; | 
 |     } script; | 
 |     struct | 
 |     { | 
 |         UINT8 familyKind; | 
 |         UINT8 decorativeClass; | 
 |         UINT8 weight; | 
 |         UINT8 aspect; | 
 |         UINT8 contrast; | 
 |         UINT8 serifVariant; | 
 |         UINT8 fill; | 
 |         UINT8 lining; | 
 |         UINT8 decorativeTopology; | 
 |         UINT8 characterRange; | 
 |     } decorative; | 
 |     struct | 
 |     { | 
 |         UINT8 familyKind; | 
 |         UINT8 symbolKind; | 
 |         UINT8 weight; | 
 |         UINT8 spacing; | 
 |         UINT8 aspectRatioAndContrast; | 
 |         UINT8 aspectRatio94; | 
 |         UINT8 aspectRatio119; | 
 |         UINT8 aspectRatio157; | 
 |         UINT8 aspectRatio163; | 
 |         UINT8 aspectRatio211; | 
 |     } symbol; | 
 | } DWRITE_PANOSE; | 
 |  | 
 | typedef struct DWRITE_UNICODE_RANGE | 
 | { | 
 |     UINT32 first; | 
 |     UINT32 last; | 
 | } DWRITE_UNICODE_RANGE; | 
 |  | 
 | typedef struct DWRITE_SCRIPT_PROPERTIES | 
 | { | 
 |     UINT32 isoScriptCode; | 
 |     UINT32 isoScriptNumber; | 
 |     UINT32 clusterLookahead; | 
 |     UINT32 justificationCharacter; | 
 |     UINT32 restrictCaretToClusters : 1; | 
 |     UINT32 usesWordDividers : 1; | 
 |     UINT32 isDiscreteWriting : 1; | 
 |     UINT32 isBlockWriting : 1; | 
 |     UINT32 isDistributedWithinCluster : 1; | 
 |     UINT32 isConnectedWriting : 1; | 
 |     UINT32 isCursiveWriting : 1; | 
 |     UINT32 reserved : 25; | 
 | } DWRITE_SCRIPT_PROPERTIES; | 
 |  | 
 | typedef struct DWRITE_JUSTIFICATION_OPPORTUNITY | 
 | { | 
 |     FLOAT expansionMinimum; | 
 |     FLOAT expansionMaximum; | 
 |     FLOAT compressionMaximum; | 
 |     UINT32 expansionPriority : 8; | 
 |     UINT32 compressionPriority : 8; | 
 |     UINT32 allowResidualExpansion : 1; | 
 |     UINT32 allowResidualCompression : 1; | 
 |     UINT32 applyToLeadingEdge : 1; | 
 |     UINT32 applyToTrailingEdge : 1; | 
 |     UINT32 reserved : 12; | 
 | } DWRITE_JUSTIFICATION_OPPORTUNITY; | 
 |  | 
 | interface IDWriteTextAnalysisSource1; | 
 | interface IDWriteTextAnalysisSink1; | 
 | interface IDWriteRenderingParams1; | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(30572f99-dac6-41db-a16e-0486307e606a) | 
 | ] | 
 | interface IDWriteFactory1 : IDWriteFactory | 
 | { | 
 |     HRESULT GetEudcFontCollection(IDWriteFontCollection **collection, | 
 |                                   [defaultvalue(FALSE)] BOOL check_for_updates); | 
 |     HRESULT CreateCustomRenderingParams(FLOAT gamma, | 
 |                                         FLOAT enhcontrast, | 
 |                                         FLOAT enhcontrast_grayscale, | 
 |                                         FLOAT cleartype_level, | 
 |                                         DWRITE_PIXEL_GEOMETRY geometry, | 
 |                                         DWRITE_RENDERING_MODE mode, | 
 |                                         IDWriteRenderingParams1** params); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(a71efdb4-9fdb-4838-ad90-cfc3be8c3daf) | 
 | ] | 
 | interface IDWriteFontFace1 : IDWriteFontFace | 
 | { | 
 |     void GetMetrics(DWRITE_FONT_METRICS1 *metrics); | 
 |     HRESULT GetGdiCompatibleMetrics(FLOAT em_size, | 
 |                                     FLOAT pixels_per_dip, | 
 |                                     const DWRITE_MATRIX *transform, | 
 |                                     DWRITE_FONT_METRICS1 *metrics); | 
 |     void GetCaretMetrics(DWRITE_CARET_METRICS *metrics); | 
 |     HRESULT GetUnicodeRanges(UINT32 max_count, | 
 |                              DWRITE_UNICODE_RANGE *ranges, | 
 |                              UINT32 *count); | 
 |     BOOL IsMonospacedFont(); | 
 |     HRESULT GetDesignGlyphAdvances(UINT32 glyph_count, | 
 |                                    UINT16 const *indices, | 
 |                                    INT32 *advances, | 
 |                                    [defaultvalue(FALSE)] BOOL is_sideways); | 
 |     HRESULT GetGdiCompatibleGlyphAdvances(FLOAT em_size, | 
 |                                           FLOAT pixels_per_dip, | 
 |                                           const DWRITE_MATRIX *transform, | 
 |                                           BOOL use_gdi_natural, | 
 |                                           BOOL is_sideways, | 
 |                                           UINT32 glyph_count, | 
 |                                           const UINT16 *indices, | 
 |                                           INT32 *advances); | 
 |  | 
 |     HRESULT GetKerningPairAdjustments(UINT32 glyph_count, | 
 |                                       const UINT16 *indices, | 
 |                                       INT32 *adjustments); | 
 |     BOOL HasKerningPairs(); | 
 |     HRESULT GetRecommendedRenderingMode(FLOAT font_emsize, | 
 |                                         FLOAT dpiX, | 
 |                                         FLOAT dpiY, | 
 |                                         const DWRITE_MATRIX *transform, | 
 |                                         BOOL is_sideways, | 
 |                                         DWRITE_OUTLINE_THRESHOLD threshold, | 
 |                                         DWRITE_MEASURING_MODE measuring_mode, | 
 |                                         DWRITE_RENDERING_MODE *rendering_mode); | 
 |  | 
 |     HRESULT GetVerticalGlyphVariants(UINT32 glyph_count, | 
 |                                      const UINT16 *nominal_indices, | 
 |                                      UINT16 *vertical_indices); | 
 |     BOOL HasVerticalGlyphVariants(); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(acd16696-8c14-4f5d-877e-fe3fc1d32738) | 
 | ] | 
 | interface IDWriteFont1 : IDWriteFont | 
 | { | 
 |     void GetMetrics(DWRITE_FONT_METRICS1 *metrics); | 
 |     void GetPanose(DWRITE_PANOSE *panose); | 
 |     HRESULT GetUnicodeRanges(UINT32 max_count, | 
 |                              DWRITE_UNICODE_RANGE *ranges, | 
 |                              UINT32 *count); | 
 |     BOOL IsMonospacedFont(); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(94413cf4-a6fc-4248-8b50-6674348fcad3) | 
 | ] | 
 | interface IDWriteRenderingParams1 : IDWriteRenderingParams | 
 | { | 
 |     FLOAT GetGrayscaleEnhancedContrast(); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(80dad800-e21f-4e83-96ce-bfcce500db7c) | 
 | ] | 
 | interface IDWriteTextAnalyzer1 : IDWriteTextAnalyzer | 
 | { | 
 |     HRESULT ApplyCharacterSpacing(FLOAT leading_spacing, | 
 |                                   FLOAT trailing_spacing, | 
 |                                   FLOAT min_advance_width, | 
 |                                   UINT32 len, | 
 |                                   UINT32 glyph_count, | 
 |                                   UINT16 const *clustermap, | 
 |                                   FLOAT const *advances, | 
 |                                   DWRITE_GLYPH_OFFSET const *offsets, | 
 |                                   DWRITE_SHAPING_GLYPH_PROPERTIES const *props, | 
 |                                   FLOAT *modified_advances, | 
 |                                   DWRITE_GLYPH_OFFSET *modified_offsets); | 
 |     HRESULT GetBaseline(IDWriteFontFace *face, | 
 |                         DWRITE_BASELINE baseline, | 
 |                         BOOL vertical, | 
 |                         BOOL is_simulation_allowed, | 
 |                         DWRITE_SCRIPT_ANALYSIS sa, | 
 |                         const WCHAR *localeName, | 
 |                         INT32 *baseline_coord, | 
 |                         BOOL *exists); | 
 |  | 
 |     HRESULT AnalyzeVerticalGlyphOrientation( | 
 |         IDWriteTextAnalysisSource1* source, | 
 |         UINT32 text_pos, | 
 |         UINT32 len, | 
 |         IDWriteTextAnalysisSink1 *sink); | 
 |  | 
 |     HRESULT GetGlyphOrientationTransform( | 
 |         DWRITE_GLYPH_ORIENTATION_ANGLE angle, | 
 |         BOOL is_sideways, | 
 |         DWRITE_MATRIX *transform); | 
 |  | 
 |     HRESULT GetScriptProperties(DWRITE_SCRIPT_ANALYSIS sa, DWRITE_SCRIPT_PROPERTIES *props); | 
 |  | 
 |     HRESULT GetTextComplexity(const WCHAR *text, | 
 |                               UINT32 len, | 
 |                               IDWriteFontFace *face, | 
 |                               BOOL *is_simple, | 
 |                               UINT32 *len_read, | 
 |                               UINT16 *indices); | 
 |     HRESULT GetJustificationOpportunities( | 
 |         IDWriteFontFace *face, | 
 |         FLOAT font_em_size, | 
 |         DWRITE_SCRIPT_ANALYSIS sa, | 
 |         UINT32 length, | 
 |         UINT32 glyph_count, | 
 |         const WCHAR *text, | 
 |         const UINT16 *clustermap, | 
 |         const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, | 
 |         DWRITE_JUSTIFICATION_OPPORTUNITY *jo); | 
 |  | 
 |     HRESULT JustifyGlyphAdvances( | 
 |         FLOAT width, | 
 |         UINT32 glyph_count, | 
 |         const DWRITE_JUSTIFICATION_OPPORTUNITY *jo, | 
 |         const FLOAT *advances, | 
 |         const DWRITE_GLYPH_OFFSET *offsets, | 
 |         FLOAT *justifiedadvances, | 
 |         DWRITE_GLYPH_OFFSET *justifiedoffsets); | 
 |  | 
 |     HRESULT GetJustifiedGlyphs( | 
 |         IDWriteFontFace *face, | 
 |         FLOAT font_em_size, | 
 |         DWRITE_SCRIPT_ANALYSIS sa, | 
 |         UINT32 length, | 
 |         UINT32 glyph_count, | 
 |         UINT32 max_glyphcount, | 
 |         const UINT16 *clustermap, | 
 |         const UINT16 *indices, | 
 |         const FLOAT *advances, | 
 |         const FLOAT *justifiedadvances, | 
 |         const DWRITE_GLYPH_OFFSET *justifiedoffsets, | 
 |         const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, | 
 |         UINT32 *actual_count, | 
 |         UINT16 *modified_clustermap, | 
 |         UINT16 *modified_indices, | 
 |         FLOAT *modified_advances, | 
 |         DWRITE_GLYPH_OFFSET *modified_offsets); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(639cfad8-0fb4-4b21-a58a-067920120009) | 
 | ] | 
 | interface IDWriteTextAnalysisSource1 : IDWriteTextAnalysisSource | 
 | { | 
 |     HRESULT GetVerticalGlyphOrientation( | 
 |         UINT32 pos, | 
 |         UINT32 *length, | 
 |         DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation, | 
 |         UINT8 *bidi_level); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(b0d941a0-85e7-4d8b-9fd3-5ced9934482a) | 
 | ] | 
 | interface IDWriteTextAnalysisSink1 : IDWriteTextAnalysisSink | 
 | { | 
 |     HRESULT SetGlyphOrientation( | 
 |         UINT32 pos, | 
 |         UINT32 length, | 
 |         DWRITE_GLYPH_ORIENTATION_ANGLE angle, | 
 |         UINT8 adjusted_bidilevel, | 
 |         BOOL is_sideways, | 
 |         BOOL is_rtl); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(9064d822-80a7-465c-a986-df65f78b8feb) | 
 | ] | 
 | interface IDWriteTextLayout1 : IDWriteTextLayout | 
 | { | 
 |     HRESULT SetPairKerning( | 
 |         BOOL is_pairkerning_enabled, | 
 |         DWRITE_TEXT_RANGE range); | 
 |  | 
 |     HRESULT GetPairKerning( | 
 |         UINT32 position, | 
 |         BOOL *is_pairkerning_enabled, | 
 |         DWRITE_TEXT_RANGE *range); | 
 |  | 
 |     HRESULT SetCharacterSpacing( | 
 |         FLOAT leading_spacing, | 
 |         FLOAT trailing_spacing, | 
 |         FLOAT minimum_advance_width, | 
 |         DWRITE_TEXT_RANGE range); | 
 |  | 
 |     HRESULT GetCharacterSpacing( | 
 |         UINT32 position, | 
 |         FLOAT* leading_spacing, | 
 |         FLOAT* trailing_spacing, | 
 |         FLOAT* minimum_advance_width, | 
 |         [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range); | 
 | } | 
 |  | 
 | typedef enum DWRITE_TEXT_ANTIALIAS_MODE | 
 | { | 
 |     DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE, | 
 |     DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE | 
 | } DWRITE_TEXT_ANTIALIAS_MODE; | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid(791e8298-3ef3-4230-9880-c9bdecc42064) | 
 | ] | 
 | interface IDWriteBitmapRenderTarget1 : IDWriteBitmapRenderTarget | 
 | { | 
 |     DWRITE_TEXT_ANTIALIAS_MODE GetTextAntialiasMode(); | 
 |     HRESULT SetTextAntialiasMode(DWRITE_TEXT_ANTIALIAS_MODE mode); | 
 | } |