Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  dwrite_1.rs   Sprache: unbekannt

 
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! Mappings for the content of dwrite_1.h
use shared::basetsd::{INT16, INT32, UINT16, UINT32, UINT8};
use shared::minwindef::{BOOL, FLOAT};
use um::dcommon::DWRITE_MEASURING_MODE;
use um::dwrite::{
    DWRITE_GLYPH_OFFSET, DWRITE_MATRIX, DWRITE_PIXEL_GEOMETRY, DWRITE_RENDERING_MODE,
    DWRITE_SCRIPT_ANALYSIS, DWRITE_SHAPING_GLYPH_PROPERTIES, DWRITE_TEXT_RANGE,
    IDWriteBitmapRenderTarget, IDWriteBitmapRenderTargetVtbl, IDWriteFactory, IDWriteFactoryVtbl,
    IDWriteFont, IDWriteFontCollection, IDWriteFontFace, IDWriteFontFaceVtbl, IDWriteFontVtbl,
    IDWriteRenderingParams, IDWriteRenderingParamsVtbl, IDWriteTextAnalysisSink,
    IDWriteTextAnalysisSinkVtbl, IDWriteTextAnalysisSource, IDWriteTextAnalysisSourceVtbl,
    IDWriteTextAnalyzer, IDWriteTextAnalyzerVtbl, IDWriteTextLayout, IDWriteTextLayoutVtbl,
};
use um::winnt::{HRESULT, WCHAR};
ENUM!{enum DWRITE_PANOSE_FAMILY {
    DWRITE_PANOSE_FAMILY_ANY = 0x0, // 0
    DWRITE_PANOSE_FAMILY_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_FAMILY_TEXT_DISPLAY = 0x2, // 2
    DWRITE_PANOSE_FAMILY_SCRIPT = 0x3, // 3
    DWRITE_PANOSE_FAMILY_DECORATIVE = 0x4, // 4
    DWRITE_PANOSE_FAMILY_SYMBOL = 0x5, // 5
    DWRITE_PANOSE_FAMILY_PICTORIAL = 0x5, // 5
}}
ENUM!{enum DWRITE_PANOSE_SERIF_STYLE {
    DWRITE_PANOSE_SERIF_STYLE_ANY = 0x0, // 0
    DWRITE_PANOSE_SERIF_STYLE_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_SERIF_STYLE_COVE = 0x2, // 2
    DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE = 0x3, // 3
    DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE = 0x4, // 4
    DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE = 0x5, // 5
    DWRITE_PANOSE_SERIF_STYLE_SQUARE = 0x6, // 6
    DWRITE_PANOSE_SERIF_STYLE_THIN = 0x7, // 7
    DWRITE_PANOSE_SERIF_STYLE_OVAL = 0x8, // 8
    DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED = 0x9, // 9
    DWRITE_PANOSE_SERIF_STYLE_TRIANGLE = 0xA, // 10
    DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS = 0xB, // 11
    DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS = 0xC, // 12
    DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS = 0xD, // 13
    DWRITE_PANOSE_SERIF_STYLE_FLARED = 0xE, // 14
    DWRITE_PANOSE_SERIF_STYLE_ROUNDED = 0xF, // 15
    DWRITE_PANOSE_SERIF_STYLE_SCRIPT = 0x10, // 16
    DWRITE_PANOSE_SERIF_STYLE_PERP_SANS = 0xD, // 13
    DWRITE_PANOSE_SERIF_STYLE_BONE = 0x8, // 8
}}
ENUM!{enum DWRITE_PANOSE_WEIGHT {
    DWRITE_PANOSE_WEIGHT_ANY = 0x0, // 0
    DWRITE_PANOSE_WEIGHT_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_WEIGHT_VERY_LIGHT = 0x2, // 2
    DWRITE_PANOSE_WEIGHT_LIGHT = 0x3, // 3
    DWRITE_PANOSE_WEIGHT_THIN = 0x4, // 4
    DWRITE_PANOSE_WEIGHT_BOOK = 0x5, // 5
    DWRITE_PANOSE_WEIGHT_MEDIUM = 0x6, // 6
    DWRITE_PANOSE_WEIGHT_DEMI = 0x7, // 7
    DWRITE_PANOSE_WEIGHT_BOLD = 0x8, // 8
    DWRITE_PANOSE_WEIGHT_HEAVY = 0x9, // 9
    DWRITE_PANOSE_WEIGHT_BLACK = 0xA, // 10
    DWRITE_PANOSE_WEIGHT_EXTRA_BLACK = 0xB, // 11
    DWRITE_PANOSE_WEIGHT_NORD = 0xB, // 11
}}
ENUM!{enum DWRITE_PANOSE_PROPORTION {
    DWRITE_PANOSE_PROPORTION_ANY = 0x0, // 0
    DWRITE_PANOSE_PROPORTION_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_PROPORTION_OLD_STYLE = 0x2, // 2
    DWRITE_PANOSE_PROPORTION_MODERN = 0x3, // 3
    DWRITE_PANOSE_PROPORTION_EVEN_WIDTH = 0x4, // 4
    DWRITE_PANOSE_PROPORTION_EXPANDED = 0x5, // 5
    DWRITE_PANOSE_PROPORTION_CONDENSED = 0x6, // 6
    DWRITE_PANOSE_PROPORTION_VERY_EXPANDED = 0x7, // 7
    DWRITE_PANOSE_PROPORTION_VERY_CONDENSED = 0x8, // 8
    DWRITE_PANOSE_PROPORTION_MONOSPACED = 0x9, // 9
}}
ENUM!{enum DWRITE_PANOSE_CONTRAST {
    DWRITE_PANOSE_CONTRAST_ANY = 0x0, // 0
    DWRITE_PANOSE_CONTRAST_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_CONTRAST_NONE = 0x2, // 2
    DWRITE_PANOSE_CONTRAST_VERY_LOW = 0x3, // 3
    DWRITE_PANOSE_CONTRAST_LOW = 0x4, // 4
    DWRITE_PANOSE_CONTRAST_MEDIUM_LOW = 0x5, // 5
    DWRITE_PANOSE_CONTRAST_MEDIUM = 0x6, // 6
    DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH = 0x7, // 7
    DWRITE_PANOSE_CONTRAST_HIGH = 0x8, // 8
    DWRITE_PANOSE_CONTRAST_VERY_HIGH = 0x9, // 9
    DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW = 0xA, // 10
    DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM = 0xB, // 11
    DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH = 0xC, // 12
    DWRITE_PANOSE_CONTRAST_BROKEN = 0xD, // 13
}}
ENUM!{enum DWRITE_PANOSE_STROKE_VARIATION {
    DWRITE_PANOSE_STROKE_VARIATION_ANY = 0x0, // 0
    DWRITE_PANOSE_STROKE_VARIATION_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION = 0x2, // 2
    DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL = 0x3, // 3
    DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL = 0x4, // 4
    DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL = 0x5, // 5
    DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL = 0x6, // 6
    DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL = 0x7, // 7
    DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL = 0x8, // 8
    DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL = 0x9, // 9
    DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL = 0xA, // 10
}}
ENUM!{enum DWRITE_PANOSE_ARM_STYLE {
    DWRITE_PANOSE_ARM_STYLE_ANY = 0x0, // 0
    DWRITE_PANOSE_ARM_STYLE_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL = 0x2, // 2
    DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE = 0x3, // 3
    DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL = 0x4, // 4
    DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF = 0x5, // 5
    DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF = 0x6, // 6
    DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL = 0x7, // 7
    DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE = 0x8, // 8
    DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL = 0x9, // 9
    DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF = 0xA, // 10
    DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF = 0xB, // 11
    DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ = 0x2, // 2
    DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT = 0x4, // 4
    DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ = 0x7, // 7
    DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE = 0x8, // 8
    DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT = 0x9, // 9
    DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF = 0xA, // 10
    DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF = 0xB, // 11
}}
ENUM!{enum DWRITE_PANOSE_LETTERFORM {
    DWRITE_PANOSE_LETTERFORM_ANY = 0x0, // 0
    DWRITE_PANOSE_LETTERFORM_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT = 0x2, // 2
    DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED = 0x3, // 3
    DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED = 0x4, // 4
    DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED = 0x5, // 5
    DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED = 0x6, // 6
    DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER = 0x7, // 7
    DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE = 0x8, // 8
    DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT = 0x9, // 9
    DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED = 0xA, // 10
    DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED = 0xB, // 11
    DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED = 0xC, // 12
    DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED = 0xD, // 13
    DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER = 0xE, // 14
    DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE = 0xF, // 15
}}
ENUM!{enum DWRITE_PANOSE_MIDLINE {
    DWRITE_PANOSE_MIDLINE_ANY = 0x0, // 0
    DWRITE_PANOSE_MIDLINE_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED = 0x2, // 2
    DWRITE_PANOSE_MIDLINE_STANDARD_POINTED = 0x3, // 3
    DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED = 0x4, // 4
    DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED = 0x5, // 5
    DWRITE_PANOSE_MIDLINE_HIGH_POINTED = 0x6, // 6
    DWRITE_PANOSE_MIDLINE_HIGH_SERIFED = 0x7, // 7
    DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED = 0x8, // 8
    DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED = 0x9, // 9
    DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED = 0xA, // 10
    DWRITE_PANOSE_MIDLINE_LOW_TRIMMED = 0xB, // 11
    DWRITE_PANOSE_MIDLINE_LOW_POINTED = 0xC, // 12
    DWRITE_PANOSE_MIDLINE_LOW_SERIFED = 0xD, // 13
}}
ENUM!{enum DWRITE_PANOSE_XHEIGHT {
    DWRITE_PANOSE_XHEIGHT_ANY = 0x0, // 0
    DWRITE_PANOSE_XHEIGHT_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL = 0x2, // 2
    DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD = 0x3, // 3
    DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE = 0x4, // 4
    DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL = 0x5, // 5
    DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD = 0x6, // 6
    DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE = 0x7, // 7
    DWRITE_PANOSE_XHEIGHT_CONSTANT_STD = 0x3, // 3
    DWRITE_PANOSE_XHEIGHT_DUCKING_STD = 0x6, // 6
}}
ENUM!{enum DWRITE_PANOSE_TOOL_KIND {
    DWRITE_PANOSE_TOOL_KIND_ANY = 0x0, // 0
    DWRITE_PANOSE_TOOL_KIND_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_TOOL_KIND_FLAT_NIB = 0x2, // 2
    DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT = 0x3, // 3
    DWRITE_PANOSE_TOOL_KIND_ENGRAVED = 0x4, // 4
    DWRITE_PANOSE_TOOL_KIND_BALL = 0x5, // 5
    DWRITE_PANOSE_TOOL_KIND_BRUSH = 0x6, // 6
    DWRITE_PANOSE_TOOL_KIND_ROUGH = 0x7, // 7
    DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP = 0x8, // 8
    DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH = 0x9, // 9
}}
ENUM!{enum DWRITE_PANOSE_SPACING {
    DWRITE_PANOSE_SPACING_ANY = 0x0, // 0
    DWRITE_PANOSE_SPACING_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED = 0x2, // 2
    DWRITE_PANOSE_SPACING_MONOSPACED = 0x3, // 3
}}
ENUM!{enum DWRITE_PANOSE_ASPECT_RATIO {
    DWRITE_PANOSE_ASPECT_RATIO_ANY = 0x0, // 0
    DWRITE_PANOSE_ASPECT_RATIO_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED = 0x2, // 2
    DWRITE_PANOSE_ASPECT_RATIO_CONDENSED = 0x3, // 3
    DWRITE_PANOSE_ASPECT_RATIO_NORMAL = 0x4, // 4
    DWRITE_PANOSE_ASPECT_RATIO_EXPANDED = 0x5, // 5
    DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED = 0x6, // 6
}}
ENUM!{enum DWRITE_PANOSE_SCRIPT_TOPOLOGY {
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY = 0x0, // 0
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED = 0x2, // 2
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING = 0x3, // 3
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED = 0x4, // 4
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED = 0x5, // 5
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING = 0x6, // 6
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED = 0x7, // 7
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED = 0x8, // 8
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING = 0x9, // 9
    DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED = 0xA, // 10
}}
ENUM!{enum DWRITE_PANOSE_SCRIPT_FORM {
    DWRITE_PANOSE_SCRIPT_FORM_ANY = 0x0, // 0
    DWRITE_PANOSE_SCRIPT_FORM_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING = 0x2, // 2
    DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING = 0x3, // 3
    DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING = 0x4, // 4
    DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING = 0x5, // 5
    DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING = 0x6, // 6
    DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING = 0x7, // 7
    DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING = 0x8, // 8
    DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING = 0x9, // 9
    DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING = 0xA, // 10
    DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING = 0xB, // 11
    DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING = 0xC, // 12
    DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING = 0xD, // 13
}}
ENUM!{enum DWRITE_PANOSE_FINIALS {
    DWRITE_PANOSE_FINIALS_ANY = 0x0, // 0
    DWRITE_PANOSE_FINIALS_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS = 0x2, // 2
    DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS = 0x3, // 3
    DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS = 0x4, // 4
    DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS = 0x5, // 5
    DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS = 0x6, // 6
    DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS = 0x7, // 7
    DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS = 0x8, // 8
    DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS = 0x9, // 9
    DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS = 0xA, // 10
    DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS = 0xB, // 11
    DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS = 0xC, // 12
    DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS = 0xD, // 13
}}
ENUM!{enum DWRITE_PANOSE_XASCENT {
    DWRITE_PANOSE_XASCENT_ANY = 0x0, // 0
    DWRITE_PANOSE_XASCENT_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_XASCENT_VERY_LOW = 0x2, // 2
    DWRITE_PANOSE_XASCENT_LOW = 0x3, // 3
    DWRITE_PANOSE_XASCENT_MEDIUM = 0x4, // 4
    DWRITE_PANOSE_XASCENT_HIGH = 0x5, // 5
    DWRITE_PANOSE_XASCENT_VERY_HIGH = 0x6, // 6
}}
ENUM!{enum DWRITE_PANOSE_DECORATIVE_CLASS {
    DWRITE_PANOSE_DECORATIVE_CLASS_ANY = 0x0, // 0
    DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE = 0x2, // 2
    DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY = 0x3, // 3
    DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS = 0x4, // 4
    DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT = 0x5, // 5
    DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS = 0x6, // 6
    DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON = 0x7, // 7
    DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS = 0x8, // 8
    DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED = 0x9, // 9
    DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND = 0xA, // 10
    DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE = 0xB, // 11
    DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE = 0xC, // 12
}}
ENUM!{enum DWRITE_PANOSE_ASPECT {
    DWRITE_PANOSE_ASPECT_ANY = 0x0, // 0
    DWRITE_PANOSE_ASPECT_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_ASPECT_SUPER_CONDENSED = 0x2, // 2
    DWRITE_PANOSE_ASPECT_VERY_CONDENSED = 0x3, // 3
    DWRITE_PANOSE_ASPECT_CONDENSED = 0x4, // 4
    DWRITE_PANOSE_ASPECT_NORMAL = 0x5, // 5
    DWRITE_PANOSE_ASPECT_EXTENDED = 0x6, // 6
    DWRITE_PANOSE_ASPECT_VERY_EXTENDED = 0x7, // 7
    DWRITE_PANOSE_ASPECT_SUPER_EXTENDED = 0x8, // 8
    DWRITE_PANOSE_ASPECT_MONOSPACED = 0x9, // 9
}}
ENUM!{enum DWRITE_PANOSE_FILL {
    DWRITE_PANOSE_FILL_ANY = 0x0, // 0
    DWRITE_PANOSE_FILL_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL = 0x2, // 2
    DWRITE_PANOSE_FILL_NO_FILL = 0x3, // 3
    DWRITE_PANOSE_FILL_PATTERNED_FILL = 0x4, // 4
    DWRITE_PANOSE_FILL_COMPLEX_FILL = 0x5, // 5
    DWRITE_PANOSE_FILL_SHAPED_FILL = 0x6, // 6
    DWRITE_PANOSE_FILL_DRAWN_DISTRESSED = 0x7, // 7
}}
ENUM!{enum DWRITE_PANOSE_LINING {
    DWRITE_PANOSE_LINING_ANY = 0x0, // 0
    DWRITE_PANOSE_LINING_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_LINING_NONE = 0x2, // 2
    DWRITE_PANOSE_LINING_INLINE = 0x3, // 3
    DWRITE_PANOSE_LINING_OUTLINE = 0x4, // 4
    DWRITE_PANOSE_LINING_ENGRAVED = 0x5, // 5
    DWRITE_PANOSE_LINING_SHADOW = 0x6, // 6
    DWRITE_PANOSE_LINING_RELIEF = 0x7, // 7
    DWRITE_PANOSE_LINING_BACKDROP = 0x8, // 8
}}
ENUM!{enum DWRITE_PANOSE_DECORATIVE_TOPOLOGY {
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY = 0x0, // 0
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD = 0x2, // 2
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE = 0x3, // 3
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT = 0x4, // 4
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO = 0x5, // 5
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING = 0x6, // 6
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS = 0x7, // 7
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS = 0x8, // 8
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS = 0x9, // 9
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE = 0xA, // 10
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY = 0xB, // 11
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A = 0xC, // 12
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE = 0xD, // 13
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER = 0xE, // 14
    DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE = 0xF, // 15
}}
ENUM!{enum DWRITE_PANOSE_CHARACTER_RANGES {
    DWRITE_PANOSE_CHARACTER_RANGES_ANY = 0x0, // 0
    DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION = 0x2, // 2
    DWRITE_PANOSE_CHARACTER_RANGES_LITERALS = 0x3, // 3
    DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE = 0x4, // 4
    DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS = 0x5, // 5
}}
ENUM!{enum DWRITE_PANOSE_SYMBOL_KIND {
    DWRITE_PANOSE_SYMBOL_KIND_ANY = 0x0, // 0
    DWRITE_PANOSE_SYMBOL_KIND_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_SYMBOL_KIND_MONTAGES = 0x2, // 2
    DWRITE_PANOSE_SYMBOL_KIND_PICTURES = 0x3, // 3
    DWRITE_PANOSE_SYMBOL_KIND_SHAPES = 0x4, // 4
    DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC = 0x5, // 5
    DWRITE_PANOSE_SYMBOL_KIND_MUSIC = 0x6, // 6
    DWRITE_PANOSE_SYMBOL_KIND_EXPERT = 0x7, // 7
    DWRITE_PANOSE_SYMBOL_KIND_PATTERNS = 0x8, // 8
    DWRITE_PANOSE_SYMBOL_KIND_BOARDERS = 0x9, // 9
    DWRITE_PANOSE_SYMBOL_KIND_ICONS = 0xA, // 10
    DWRITE_PANOSE_SYMBOL_KIND_LOGOS = 0xB, // 11
    DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC = 0xC, // 12
}}
ENUM!{enum DWRITE_PANOSE_SYMBOL_ASPECT_RATIO {
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY = 0x0, // 0
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT = 0x1, // 1
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH = 0x2, // 2
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE = 0x3, // 3
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE = 0x4, // 4
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE = 0x5, // 5
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE = 0x6, // 6
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL = 0x7, // 7
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW = 0x8, // 8
    DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW = 0x9, // 9
}}
ENUM!{enum DWRITE_OUTLINE_THRESHOLD {
    DWRITE_OUTLINE_THRESHOLD_ANTIALIASED = 0x0, // 0
    DWRITE_OUTLINE_THRESHOLD_ALIASED = 0x1, // 1
}}
ENUM!{enum DWRITE_BASELINE {
    DWRITE_BASELINE_DEFAULT = 0x0, // 0
    DWRITE_BASELINE_ROMAN = 0x1, // 1
    DWRITE_BASELINE_CENTRAL = 0x2, // 2
    DWRITE_BASELINE_MATH = 0x3, // 3
    DWRITE_BASELINE_HANGING = 0x4, // 4
    DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM = 0x5, // 5
    DWRITE_BASELINE_IDEOGRAPHIC_TOP = 0x6, // 6
    DWRITE_BASELINE_MINIMUM = 0x7, // 7
    DWRITE_BASELINE_MAXIMUM = 0x8, // 8
}}
ENUM!{enum DWRITE_VERTICAL_GLYPH_ORIENTATION {
    DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT = 0x0, // 0
    DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED = 0x1, // 1
}}
ENUM!{enum DWRITE_GLYPH_ORIENTATION_ANGLE {
    DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES = 0x0, // 0
    DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES = 0x1, // 1
    DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES = 0x2, // 2
    DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES = 0x3, // 3
}}
STRUCT!{struct DWRITE_FONT_METRICS1 {
    designUnitsPerEm: UINT16,
    ascent: UINT16,
    descent: UINT16,
    lineGap: INT16,
    capHeight: UINT16,
    xHeight: UINT16,
    underlinePosition: INT16,
    underlineThickness: UINT16,
    strikethroughPosition: INT16,
    strikethroughThickness: UINT16,
    glyphBoxLeft: INT16,
    glyphBoxTop: INT16,
    glyphBoxRight: INT16,
    glyphBoxBottom: INT16,
    subscriptPositionX: INT16,
    subscriptPositionY: INT16,
    subscriptSizeX: INT16,
    subscriptSizeY: INT16,
    superscriptPositionX: INT16,
    superscriptPositionY: INT16,
    superscriptSizeX: INT16,
    superscriptSizeY: INT16,
    hasTypographicMetrics: BOOL,
}}
STRUCT!{struct DWRITE_CARET_METRICS {
    slopeRise: INT16,
    slopeRun: INT16,
    offset: INT16,
}}
STRUCT!{struct DWRITE_PANOSE_text {
    familyKind: UINT8,
    serifStyle: UINT8,
    weight: UINT8,
    proportion: UINT8,
    contrast: UINT8,
    strokeVariation: UINT8,
    armStyle: UINT8,
    letterform: UINT8,
    midline: UINT8,
    xHeight: UINT8,
}}
STRUCT!{struct DWRITE_PANOSE_script {
    familyKind: UINT8,
    toolKind: UINT8,
    weight: UINT8,
    spacing: UINT8,
    aspectRatio: UINT8,
    contrast: UINT8,
    scriptTopology: UINT8,
    scriptForm: UINT8,
    finials: UINT8,
    xAscent: UINT8,
}}
STRUCT!{struct DWRITE_PANOSE_decorative {
    familyKind: UINT8,
    decorativeClass: UINT8,
    weight: UINT8,
    aspect: UINT8,
    contrast: UINT8,
    serifVariant: UINT8,
    fill: UINT8,
    lining: UINT8,
    decorativeTopology: UINT8,
    characterRange: UINT8,
}}
STRUCT!{struct DWRITE_PANOSE_symbol {
    familyKind: UINT8,
    symbolKind: UINT8,
    weight: UINT8,
    spacing: UINT8,
    aspectRatioAndContrast: UINT8,
    aspectRatio94: UINT8,
    aspectRatio119: UINT8,
    aspectRatio157: UINT8,
    aspectRatio163: UINT8,
    aspectRatio211: UINT8,
}}
UNION!{union DWRITE_PANOSE {
    [u8; 10],
    values values_mut: [UINT8; 10],
    familyKind familyKind_mut: UINT8,
    text text_mut: DWRITE_PANOSE_text,
    script script_mut: DWRITE_PANOSE_script,
    decorative decorative_mut: DWRITE_PANOSE_decorative,
    symbol symbol_mut: DWRITE_PANOSE_symbol,
}}
STRUCT!{struct DWRITE_UNICODE_RANGE {
    first: UINT32,
    last: UINT32,
}}
STRUCT!{struct DWRITE_SCRIPT_PROPERTIES {
    isoScriptCode: UINT32,
    isoScriptNumber: UINT32,
    clusterLookahead: UINT32,
    justificationCharacter: UINT32,
    bitfield0: UINT32,
}}
BITFIELD!{DWRITE_SCRIPT_PROPERTIES bitfield0: UINT32 [
    restrictCaretToClusters set_restrictCaretToClusters[0..1],
    usesWordDividers set_usesWordDividers[1..2],
    isDiscreteWriting set_isDiscreteWriting[2..3],
    isBlockWriting set_isBlockWriting[3..4],
    isDistributedWithinCluster set_isDistributedWithinCluster[4..5],
    isConnectedWriting set_isConnectedWriting[5..6],
    isCursiveWriting set_isCursiveWriting[6..7],
    reserved set_reserved[7..32],
]}
STRUCT!{struct DWRITE_JUSTIFICATION_OPPORTUNITY {
    expansionMinimum: FLOAT,
    expansionMaximum: FLOAT,
    compressionMaximum: FLOAT,
    bitfield0: UINT32,
}}
BITFIELD!{DWRITE_JUSTIFICATION_OPPORTUNITY bitfield0: UINT32 [
    expansionPriority set_expansionPriority[0..8],
    compressionPriority set_compressionPriority[8..16],
    allowResidualExpansion set_allowResidualExpansion[16..17],
    allowResidualCompression set_allowResidualCompression[17..18],
    applyToLeadingEdge set_applyToLeadingEdge[18..19],
    applyToTrailingEdge set_applyToTrailingEdge[19..20],
    reserved set_reserved[20..32],
]}
RIDL!{#[uuid(0x30572f99, 0xdac6, 0x41db, 0xa1, 0x6e, 0x04, 0x86, 0x30, 0x7e, 0x60, 0x6a)]
interface IDWriteFactory1(IDWriteFactory1Vtbl): IDWriteFactory(IDWriteFactoryVtbl) {
    fn GetEudcFontCollection(
        fontCollection: *mut *mut IDWriteFontCollection,
        checkForUpdates: BOOL,
    ) -> HRESULT,
    fn CreateCustomRenderingParams(
        gamma: FLOAT,
        enhancedContrast: FLOAT,
        enhancedContrastGrayscale: FLOAT,
        clearTypeLevel: FLOAT,
        pixelGeometry: DWRITE_PIXEL_GEOMETRY,
        renderingMode: DWRITE_RENDERING_MODE,
        renderingParams: *mut *mut IDWriteRenderingParams1,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0xa71efdb4, 0x9fdb, 0x4838, 0xad, 0x90, 0xcf, 0xc3, 0xbe, 0x8c, 0x3d, 0xaf)]
interface IDWriteFontFace1(IDWriteFontFace1Vtbl): IDWriteFontFace(IDWriteFontFaceVtbl) {
    fn GetMetrics(
        fontMetrics: *mut DWRITE_FONT_METRICS1,
    ) -> (),
    fn GetGdiCompatibleMetrics(
        emSize: FLOAT,
        pixelsPerDip: FLOAT,
        transform: *const DWRITE_MATRIX,
        fontMetrics: *mut DWRITE_FONT_METRICS1,
    ) -> HRESULT,
    fn GetCaretMetrics(
        caretMetrics: *mut DWRITE_CARET_METRICS,
    ) -> (),
    fn GetUnicodeRanges(
        maxRangeCount: UINT32,
        unicodeRanges: *mut DWRITE_UNICODE_RANGE,
        actualRangeCount: *mut UINT32,
    ) -> HRESULT,
    fn IsMonospacedFont() -> BOOL,
    fn GetDesignGlyphAdvances(
        glyphCount: UINT32,
        glyphIndices: *const UINT16,
        glyphAdvances: *mut INT32,
        isSideways: BOOL,
    ) -> HRESULT,
    fn GetGdiCompatibleGlyphAdvances(
        emSize: FLOAT,
        pixelsPerDip: FLOAT,
        transform: *const DWRITE_MATRIX,
        useGdiNatural: BOOL,
        isSideways: BOOL,
        glyphCount: UINT32,
        glyphIndices: *const UINT16,
        glyphAdvances: *mut INT32,
    ) -> HRESULT,
    fn GetKerningPairAdjustments(
        glyphCount: UINT32,
        glyphIndices: *const UINT16,
        glyphAdvanceAdjustments: *mut INT32,
    ) -> HRESULT,
    fn HasKerningPairs() -> BOOL,
    fn GetRecommendedRenderingMode(
        fontEmSize: FLOAT,
        dpiX: FLOAT,
        dpiY: FLOAT,
        transform: *const DWRITE_MATRIX,
        isSideways: BOOL,
        outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
        measuringMode: DWRITE_MEASURING_MODE,
        renderingMode: *mut DWRITE_RENDERING_MODE,
    ) -> HRESULT,
    fn GetVerticalGlyphVariants(
        glyphCount: UINT32,
        nominalGlyphIndices: *const UINT16,
        verticalGlyphIndices: *mut UINT16,
    ) -> HRESULT,
    fn HasVerticalGlyphVariants() -> BOOL,
}}
RIDL!{#[uuid(0xacd16696, 0x8c14, 0x4f5d, 0x87, 0x7e, 0xfe, 0x3f, 0xc1, 0xd3, 0x27, 0x38)]
interface IDWriteFont1(IDWriteFont1Vtbl): IDWriteFont(IDWriteFontVtbl) {
    fn GetMetrics(
        fontMetrics: *mut DWRITE_FONT_METRICS1,
    ) -> (),
    fn GetPanose(
        panose: *mut DWRITE_PANOSE,
    ) -> (),
    fn GetUnicodeRanges(
        maxRangeCount: UINT32,
        unicodeRanges: *mut DWRITE_UNICODE_RANGE,
        actualRangeCount: *mut UINT32,
    ) -> HRESULT,
    fn IsMonospacedFont() -> BOOL,
}}
RIDL!{#[uuid(0x94413cf4, 0xa6fc, 0x4248, 0x8b, 0x50, 0x66, 0x74, 0x34, 0x8f, 0xca, 0xd3)]
interface IDWriteRenderingParams1(IDWriteRenderingParams1Vtbl):
    IDWriteRenderingParams(IDWriteRenderingParamsVtbl) {
    fn GetGrayscaleEnhancedContrast() -> FLOAT,
}}
RIDL!{#[uuid(0x80dad800, 0xe21f, 0x4e83, 0x96, 0xce, 0xbf, 0xcc, 0xe5, 0x00, 0xdb, 0x7c)]
interface IDWriteTextAnalyzer1(IDWriteTextAnalyzer1Vtbl):
    IDWriteTextAnalyzer(IDWriteTextAnalyzerVtbl) {
    fn ApplyCharacterSpacing(
        leadingSpacing: FLOAT,
        trailingSpacing: FLOAT,
        minimumAdvanceWidth: FLOAT,
        textLength: UINT32,
        glyphCount: UINT32,
        clusterMap: *const UINT16,
        glyphAdvances: *const FLOAT,
        glyphOffsets: *const DWRITE_GLYPH_OFFSET,
        glyphProperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
        modifiedGlyphAdvances: *mut FLOAT,
        modifiedGlyphOffsets: *mut DWRITE_GLYPH_OFFSET,
    ) -> HRESULT,
    fn GetBaseline(
        fontFace: *mut IDWriteFontFace,
        baseline: DWRITE_BASELINE,
        isVertical: BOOL,
        isSimulationAllowed: BOOL,
        scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
        localeName: *const WCHAR,
        baselineCoordinate: *mut INT32,
        exists: *mut BOOL,
    ) -> HRESULT,
    fn AnalyzeVerticalGlyphOrientation(
        analysisSource: *mut IDWriteTextAnalysisSource1,
        textPosition: UINT32,
        textLength: UINT32,
        analysisSink: *mut IDWriteTextAnalysisSink1,
    ) -> HRESULT,
    fn GetGlyphOrientationTransform(
        glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
        isSideways: BOOL,
        transform: *mut DWRITE_MATRIX,
    ) -> HRESULT,
    fn GetScriptProperties(
        scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
        scriptProperties: *mut DWRITE_SCRIPT_PROPERTIES,
    ) -> HRESULT,
    fn GetTextComplexity(
        textString: *const WCHAR,
        textLength: UINT32,
        fontFace: *mut IDWriteFontFace,
        isTextSimple: *mut BOOL,
        textLengthRead: *mut UINT32,
        glyphIndices: *mut UINT16,
    ) -> HRESULT,
    fn GetJustificationOpportunities(
        fontFace: *mut IDWriteFontFace,
        fontEmSize: FLOAT,
        scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
        textLength: UINT32,
        glyphCount: UINT32,
        textString: *const WCHAR,
        clusterMap: *const UINT16,
        glyphProperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
        justificationOpportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY,
    ) -> HRESULT,
    fn JustifyGlyphAdvances(
        lineWidth: FLOAT,
        glyphCount: UINT32,
        justificationOpportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY,
        glyphAdvances: *const FLOAT,
        glyphOffsets: *const DWRITE_GLYPH_OFFSET,
        justifiedGlyphAdvances: *mut FLOAT,
        justifiedGlyphOffsets: *mut DWRITE_GLYPH_OFFSET,
    ) -> HRESULT,
    fn GetJustifiedGlyphs(
        fontFace: *mut IDWriteFontFace,
        fontEmSize: FLOAT,
        scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
        textLength: UINT32,
        glyphCount: UINT32,
        maxGlyphCount: UINT32,
        clusterMap: *const UINT16,
        glyphIndices: *const UINT16,
        glyphAdvances: *const FLOAT,
        justifiedGlyphAdvances: *const FLOAT,
        justifiedGlyphOffsets: *const DWRITE_GLYPH_OFFSET,
        glyphProperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
        actualGlyphCount: *mut UINT32,
        modifiedClusterMap: *mut UINT16,
        modifiedGlyphIndices: *mut UINT16,
        modifiedGlyphAdvances: *mut FLOAT,
        modifiedGlyphOffsets: *mut DWRITE_GLYPH_OFFSET,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0x639cfad8, 0x0fb4, 0x4b21, 0xa5, 0x8a, 0x06, 0x79, 0x20, 0x12, 0x00, 0x09)]
interface IDWriteTextAnalysisSource1(IDWriteTextAnalysisSource1Vtbl):
    IDWriteTextAnalysisSource(IDWriteTextAnalysisSourceVtbl) {
    fn GetVerticalGlyphOrientation(
        textPosition: UINT32,
        textLength: *mut UINT32,
        glyphOrientation: *mut DWRITE_VERTICAL_GLYPH_ORIENTATION,
        bidiLevel: *mut UINT8,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0xb0d941a0, 0x85e7, 0x4d8b, 0x9f, 0xd3, 0x5c, 0xed, 0x99, 0x34, 0x48, 0x2a)]
interface IDWriteTextAnalysisSink1(IDWriteTextAnalysisSink1Vtbl):
    IDWriteTextAnalysisSink(IDWriteTextAnalysisSinkVtbl) {
    fn SetGlyphOrientation(
        textPosition: UINT32,
        textLength: UINT32,
        glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
        adjustedBidiLevel: UINT8,
        isSideways: BOOL,
        isRightToLeft: BOOL,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0x9064d822, 0x80a7, 0x465c, 0xa9, 0x86, 0xdf, 0x65, 0xf7, 0x8b, 0x8f, 0xeb)]
interface IDWriteTextLayout1(IDWriteTextLayout1Vtbl):
    IDWriteTextLayout(IDWriteTextLayoutVtbl) {
    fn SetPairKerning(
        isPairKerningEnabled: BOOL,
        textRange: DWRITE_TEXT_RANGE,
    ) -> HRESULT,
    fn GetPairKerning(
        currentPosition: UINT32,
        isPairKerningEnabled: *mut BOOL,
        textRange: *mut DWRITE_TEXT_RANGE,
    ) -> HRESULT,
    fn SetCharacterSpacing(
        leadingSpacing: FLOAT,
        trailingSpacing: FLOAT,
        minimumAdvanceWidth: FLOAT,
        textRange: DWRITE_TEXT_RANGE,
    ) -> HRESULT,
    fn GetCharacterSpacing(
        currentPosition: UINT32,
        leadingSpacing: *mut FLOAT,
        trailingSpacing: *mut FLOAT,
        minimumAdvanceWidth: *mut FLOAT,
        textRange: *mut DWRITE_TEXT_RANGE,
    ) -> HRESULT,
}}
ENUM!{enum DWRITE_TEXT_ANTIALIAS_MODE {
    DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE = 0x0, // 0
    DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE = 0x1, // 1
}}
RIDL!{#[uuid(0x791e8298, 0x3ef3, 0x4230, 0x98, 0x80, 0xc9, 0xbd, 0xec, 0xc4, 0x20, 0x64)]
interface IDWriteBitmapRenderTarget1(IDWriteBitmapRenderTarget1Vtbl):
    IDWriteBitmapRenderTarget(IDWriteBitmapRenderTargetVtbl) {
    fn GetTextAntialiasMode() -> DWRITE_TEXT_ANTIALIAS_MODE,
    fn SetTextAntialiasMode(
        antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE,
    ) -> HRESULT,
}}

[ Dauer der Verarbeitung: 0.28 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge