/* * 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_VARIANTION; 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 { HRESULT 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 *properties, */ 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 *properties); */ 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); };