diff --git a/.gitignore b/.gitignore index c6b63fb50ea..b13b6be2196 100644 --- a/.gitignore +++ b/.gitignore @@ -178,6 +178,7 @@ include/docobj.h include/docobjectservice.h include/downloadmgr.h include/dwrite.h +include/dwrite_1.h include/dxgi.h include/endpointvolume.h include/exdisp.h diff --git a/include/Makefile.in b/include/Makefile.in index ace89bb75f1..47df84caa87 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -33,6 +33,7 @@ PUBLIC_IDL_H_SRCS = \ docobjectservice.idl \ downloadmgr.idl \ dwrite.idl \ + dwrite_1.idl \ dxgi.idl \ endpointvolume.idl \ exdisp.idl \ diff --git a/include/dwrite_1.idl b/include/dwrite_1.idl new file mode 100644 index 00000000000..138b86948e4 --- /dev/null +++ b/include/dwrite_1.idl @@ -0,0 +1,827 @@ +/* + * 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); +};