//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0018
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.Streams.idl";
import "Windows.UI.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct Point Point;

        typedef struct Rect Rect;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStream;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Text
        {
            typedef enum CaretType CaretType;

            typedef enum FindOptions FindOptions;

            typedef enum FontStretch FontStretch;

            typedef enum FontStyle FontStyle;

            typedef enum FormatEffect FormatEffect;

            typedef enum HorizontalCharacterAlignment HorizontalCharacterAlignment;

            typedef enum LetterCase LetterCase;

            typedef enum LineSpacingRule LineSpacingRule;

            typedef enum LinkType LinkType;

            typedef enum MarkerAlignment MarkerAlignment;

            typedef enum MarkerStyle MarkerStyle;

            typedef enum MarkerType MarkerType;

            typedef enum ParagraphAlignment ParagraphAlignment;

            typedef enum ParagraphStyle ParagraphStyle;

            typedef enum PointOptions PointOptions;

            typedef enum RangeGravity RangeGravity;

            typedef enum SelectionOptions SelectionOptions;

            typedef enum SelectionType SelectionType;

            typedef enum TabAlignment TabAlignment;

            typedef enum TabLeader TabLeader;

            typedef enum TextDecorations TextDecorations;

            typedef enum TextGetOptions TextGetOptions;

            typedef enum TextRangeUnit TextRangeUnit;

            typedef enum TextScript TextScript;

            typedef enum TextSetOptions TextSetOptions;

            typedef enum UnderlineType UnderlineType;

            typedef enum VerticalCharacterAlignment VerticalCharacterAlignment;

            typedef struct FontWeight FontWeight;

            interface IFontWeights;

            interface IFontWeightsStatics;

            interface ITextCharacterFormat;

            interface ITextConstantsStatics;

            interface ITextDocument;

            interface ITextDocument2;

            interface ITextParagraphFormat;

            interface ITextRange;

            interface ITextSelection;

            runtimeclass FontWeights;

            runtimeclass RichEditTextDocument;

            runtimeclass TextConstants;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Text
        {
            declare
            {
                interface Windows.Foundation.IReference<Windows.UI.Text.UnderlineType>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Text
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum CaretType
            {
                Normal = 0,
                Null   = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [flags]
            enum FindOptions
            {
                None = 0x0,
                Word = 0x2,
                Case = 0x4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum FontStretch
            {
                Undefined      = 0,
                UltraCondensed = 1,
                ExtraCondensed = 2,
                Condensed      = 3,
                SemiCondensed  = 4,
                Normal         = 5,
                SemiExpanded   = 6,
                Expanded       = 7,
                ExtraExpanded  = 8,
                UltraExpanded  = 9
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum FontStyle
            {
                Normal  = 0,
                Oblique = 1,
                Italic  = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum FormatEffect
            {
                Off       = 0,
                On        = 1,
                Toggle    = 2,
                Undefined = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum HorizontalCharacterAlignment
            {
                Left   = 0,
                Right  = 1,
                Center = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum LetterCase
            {
                Lower = 0,
                Upper = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum LineSpacingRule
            {
                Undefined  = 0,
                Single     = 1,
                OneAndHalf = 2,
                Double     = 3,
                AtLeast    = 4,
                Exactly    = 5,
                Multiple   = 6,
                Percent    = 7
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum LinkType
            {
                Undefined           = 0,
                NotALink            = 1,
                ClientLink          = 2,
                FriendlyLinkName    = 3,
                FriendlyLinkAddress = 4,
                AutoLink            = 5,
                AutoLinkEmail       = 6,
                AutoLinkPhone       = 7,
                AutoLinkPath        = 8
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MarkerAlignment
            {
                Undefined = 0,
                Left      = 1,
                Center    = 2,
                Right     = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MarkerStyle
            {
                Undefined   = 0,
                Parenthesis = 1,
                Parentheses = 2,
                Period      = 3,
                Plain       = 4,
                Minus       = 5,
                NoNumber    = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MarkerType
            {
                Undefined              = 0,
                None                   = 1,
                Bullet                 = 2,
                Arabic                 = 3,
                LowercaseEnglishLetter = 4,
                UppercaseEnglishLetter = 5,
                LowercaseRoman         = 6,
                UppercaseRoman         = 7,
                UnicodeSequence        = 8,
                CircledNumber          = 9,
                BlackCircleWingding    = 10,
                WhiteCircleWingding    = 11,
                ArabicWide             = 12,
                SimplifiedChinese      = 13,
                TraditionalChinese     = 14,
                JapanSimplifiedChinese = 15,
                JapanKorea             = 16,
                ArabicDictionary       = 17,
                ArabicAbjad            = 18,
                Hebrew                 = 19,
                ThaiAlphabetic         = 20,
                ThaiNumeric            = 21,
                DevanagariVowel        = 22,
                DevanagariConsonant    = 23,
                DevanagariNumeric      = 24
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum ParagraphAlignment
            {
                Undefined = 0,
                Left      = 1,
                Center    = 2,
                Right     = 3,
                Justify   = 4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum ParagraphStyle
            {
                Undefined = 0,
                None      = 1,
                Normal    = 2,
                Heading1  = 3,
                Heading2  = 4,
                Heading3  = 5,
                Heading4  = 6,
                Heading5  = 7,
                Heading6  = 8,
                Heading7  = 9,
                Heading8  = 10,
                Heading9  = 11
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [flags]
            enum PointOptions
            {
                None               = 0x0,
                IncludeInset       = 0x1,
                Start              = 0x20,
                ClientCoordinates  = 0x100,
                AllowOffClient     = 0x200,
                Transform          = 0x400,
                NoHorizontalScroll = 0x10000,
                NoVerticalScroll   = 0x40000
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum RangeGravity
            {
                UIBehavior = 0,
                Backward   = 1,
                Forward    = 2,
                Inward     = 3,
                Outward    = 4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [flags]
            enum SelectionOptions
            {
                StartActive = 0x1,
                AtEndOfLine = 0x2,
                Overtype    = 0x4,
                Active      = 0x8,
                Replace     = 0x10
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SelectionType
            {
                None           = 0,
                InsertionPoint = 1,
                Normal         = 2,
                InlineShape    = 7,
                Shape          = 8
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum TabAlignment
            {
                Left    = 0,
                Center  = 1,
                Right   = 2,
                Decimal = 3,
                Bar     = 4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum TabLeader
            {
                Spaces     = 0,
                Dots       = 1,
                Dashes     = 2,
                Lines      = 3,
                ThickLines = 4,
                Equals     = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [flags]
            enum TextDecorations
            {
                None          = 0x0,
                Underline     = 0x1,
                Strikethrough = 0x2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [flags]
            enum TextGetOptions
            {
                None             = 0x0,
                AdjustCrlf       = 0x1,
                UseCrlf          = 0x2,
                UseObjectText    = 0x4,
                AllowFinalEop    = 0x8,
                NoHidden         = 0x20,
                IncludeNumbering = 0x40,
                FormatRtf        = 0x2000,
                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                UseLf            = 0x1000000
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum TextRangeUnit
            {
                Character       = 0,
                Word            = 1,
                Sentence        = 2,
                Paragraph       = 3,
                Line            = 4,
                Story           = 5,
                Screen          = 6,
                Section         = 7,
                Window          = 8,
                CharacterFormat = 9,
                ParagraphFormat = 10,
                Object          = 11,
                HardParagraph   = 12,
                Cluster         = 13,
                Bold            = 14,
                Italic          = 15,
                Underline       = 16,
                Strikethrough   = 17,
                ProtectedText   = 18,
                Link            = 19,
                SmallCaps       = 20,
                AllCaps         = 21,
                Hidden          = 22,
                Outline         = 23,
                Shadow          = 24,
                Imprint         = 25,
                Disabled        = 26,
                Revised         = 27,
                Subscript       = 28,
                Superscript     = 29,
                FontBound       = 30,
                LinkProtected   = 31
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum TextScript
            {
                Undefined     = 0,
                Ansi          = 1,
                EastEurope    = 2,
                Cyrillic      = 3,
                Greek         = 4,
                Turkish       = 5,
                Hebrew        = 6,
                Arabic        = 7,
                Baltic        = 8,
                Vietnamese    = 9,
                Default       = 10,
                Symbol        = 11,
                Thai          = 12,
                ShiftJis      = 13,
                GB2312        = 14,
                Hangul        = 15,
                Big5          = 16,
                PC437         = 17,
                Oem           = 18,
                Mac           = 19,
                Armenian      = 20,
                Syriac        = 21,
                Thaana        = 22,
                Devanagari    = 23,
                Bengali       = 24,
                Gurmukhi      = 25,
                Gujarati      = 26,
                Oriya         = 27,
                Tamil         = 28,
                Telugu        = 29,
                Kannada       = 30,
                Malayalam     = 31,
                Sinhala       = 32,
                Lao           = 33,
                Tibetan       = 34,
                Myanmar       = 35,
                Georgian      = 36,
                Jamo          = 37,
                Ethiopic      = 38,
                Cherokee      = 39,
                Aboriginal    = 40,
                Ogham         = 41,
                Runic         = 42,
                Khmer         = 43,
                Mongolian     = 44,
                Braille       = 45,
                Yi            = 46,
                Limbu         = 47,
                TaiLe         = 48,
                NewTaiLue     = 49,
                SylotiNagri   = 50,
                Kharoshthi    = 51,
                Kayahli       = 52,
                UnicodeSymbol = 53,
                Emoji         = 54,
                Glagolitic    = 55,
                Lisu          = 56,
                Vai           = 57,
                NKo           = 58,
                Osmanya       = 59,
                PhagsPa       = 60,
                Gothic        = 61,
                Deseret       = 62,
                Tifinagh      = 63
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [flags]
            enum TextSetOptions
            {
                None                     = 0x0,
                UnicodeBidi              = 0x1,
                Unlink                   = 0x8,
                Unhide                   = 0x10,
                CheckTextLimit           = 0x20,
                FormatRtf                = 0x2000,
                ApplyRtfDocumentDefaults = 0x4000
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum UnderlineType
            {
                Undefined       = 0,
                None            = 1,
                Single          = 2,
                Words           = 3,
                Double          = 4,
                Dotted          = 5,
                Dash            = 6,
                DashDot         = 7,
                DashDotDot      = 8,
                Wave            = 9,
                Thick           = 10,
                Thin            = 11,
                DoubleWave      = 12,
                HeavyWave       = 13,
                LongDash        = 14,
                ThickDash       = 15,
                ThickDashDot    = 16,
                ThickDashDotDot = 17,
                ThickDotted     = 18,
                ThickLongDash   = 19
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VerticalCharacterAlignment
            {
                Top      = 0,
                Baseline = 1,
                Bottom   = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            struct FontWeight
            {
                UINT16 Weight;
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.UI.Text.FontWeights)]
            [uuid(7880A444-01AB-4997-8517-DF822A0C45F1)]
            interface IFontWeights : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.UI.Text.FontWeights)]
            [uuid(B3B579D5-1BA9-48EB-9DAD-C095E8C23BA3)]
            interface IFontWeightsStatics : IInspectable
            {
                [propget] HRESULT Black([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT Bold([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT ExtraBlack([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT ExtraBold([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT ExtraLight([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT Light([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT Medium([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT Normal([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT SemiBold([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT SemiLight([out] [retval] Windows.UI.Text.FontWeight* value);
                [propget] HRESULT Thin([out] [retval] Windows.UI.Text.FontWeight* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(5ADEF3DB-05FB-442D-8065-642AFEA02CED)]
            interface ITextCharacterFormat : IInspectable
            {
                [propget] HRESULT AllCaps([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT AllCaps([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT BackgroundColor([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT BackgroundColor([in] Windows.UI.Color value);
                [propget] HRESULT Bold([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT Bold([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT FontStretch([out] [retval] Windows.UI.Text.FontStretch* value);
                [propput] HRESULT FontStretch([in] Windows.UI.Text.FontStretch value);
                [propget] HRESULT FontStyle([out] [retval] Windows.UI.Text.FontStyle* value);
                [propput] HRESULT FontStyle([in] Windows.UI.Text.FontStyle value);
                [propget] HRESULT ForegroundColor([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT ForegroundColor([in] Windows.UI.Color value);
                [propget] HRESULT Hidden([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT Hidden([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT Italic([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT Italic([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT Kerning([out] [retval] FLOAT* value);
                [propput] HRESULT Kerning([in] FLOAT value);
                [propget] HRESULT LanguageTag([out] [retval] HSTRING* value);
                [propput] HRESULT LanguageTag([in] HSTRING value);
                [propget] HRESULT LinkType([out] [retval] Windows.UI.Text.LinkType* value);
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propput] HRESULT Name([in] HSTRING value);
                [propget] HRESULT Outline([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT Outline([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT Position([out] [retval] FLOAT* value);
                [propput] HRESULT Position([in] FLOAT value);
                [propget] HRESULT ProtectedText([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT ProtectedText([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT Size([out] [retval] FLOAT* value);
                [propput] HRESULT Size([in] FLOAT value);
                [propget] HRESULT SmallCaps([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT SmallCaps([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT Spacing([out] [retval] FLOAT* value);
                [propput] HRESULT Spacing([in] FLOAT value);
                [propget] HRESULT Strikethrough([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT Strikethrough([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT Subscript([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT Subscript([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT Superscript([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT Superscript([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT TextScript([out] [retval] Windows.UI.Text.TextScript* value);
                [propput] HRESULT TextScript([in] Windows.UI.Text.TextScript value);
                [propget] HRESULT Underline([out] [retval] Windows.UI.Text.UnderlineType* value);
                [propput] HRESULT Underline([in] Windows.UI.Text.UnderlineType value);
                [propget] HRESULT Weight([out] [retval] INT32* value);
                [propput] HRESULT Weight([in] INT32 value);
                HRESULT SetClone([in] Windows.UI.Text.ITextCharacterFormat* value);
                HRESULT GetClone([out] [retval] Windows.UI.Text.ITextCharacterFormat** value);
                HRESULT IsEqual([in] Windows.UI.Text.ITextCharacterFormat* format, [out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.UI.Text.TextConstants)]
            [uuid(779E7C33-189D-4BFA-97C8-10DB135D976E)]
            interface ITextConstantsStatics : IInspectable
            {
                [propget] HRESULT AutoColor([out] [retval] Windows.UI.Color* value);
                [propget] HRESULT MinUnitCount([out] [retval] INT32* value);
                [propget] HRESULT MaxUnitCount([out] [retval] INT32* value);
                [propget] HRESULT UndefinedColor([out] [retval] Windows.UI.Color* value);
                [propget] HRESULT UndefinedFloatValue([out] [retval] FLOAT* value);
                [propget] HRESULT UndefinedInt32Value([out] [retval] INT32* value);
                [propget] HRESULT UndefinedFontStretch([out] [retval] Windows.UI.Text.FontStretch* value);
                [propget] HRESULT UndefinedFontStyle([out] [retval] Windows.UI.Text.FontStyle* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(BEEE4DDB-90B2-408C-A2F6-0A0AC31E33E4)]
            interface ITextDocument : IInspectable
            {
                [propget] HRESULT CaretType([out] [retval] Windows.UI.Text.CaretType* value);
                [propput] HRESULT CaretType([in] Windows.UI.Text.CaretType value);
                [propget] HRESULT DefaultTabStop([out] [retval] FLOAT* value);
                [propput] HRESULT DefaultTabStop([in] FLOAT value);
                [propget] HRESULT Selection([out] [retval] Windows.UI.Text.ITextSelection** value);
                [propget] HRESULT UndoLimit([out] [retval] UINT32* value);
                [propput] HRESULT UndoLimit([in] UINT32 value);
                HRESULT CanCopy([out] [retval] boolean* value);
                HRESULT CanPaste([out] [retval] boolean* value);
                HRESULT CanRedo([out] [retval] boolean* value);
                HRESULT CanUndo([out] [retval] boolean* value);
                HRESULT ApplyDisplayUpdates([out] [retval] INT32* count);
                HRESULT BatchDisplayUpdates([out] [retval] INT32* count);
                HRESULT BeginUndoGroup();
                HRESULT EndUndoGroup();
                HRESULT GetDefaultCharacterFormat([out] [retval] Windows.UI.Text.ITextCharacterFormat** value);
                HRESULT GetDefaultParagraphFormat([out] [retval] Windows.UI.Text.ITextParagraphFormat** value);
                HRESULT GetRange([in] INT32 startPosition, [in] INT32 endPosition, [out] [retval] Windows.UI.Text.ITextRange** value);
                HRESULT GetRangeFromPoint([in] Windows.Foundation.Point point, [in] Windows.UI.Text.PointOptions options, [out] [retval] Windows.UI.Text.ITextRange** value);
                HRESULT GetText([in] Windows.UI.Text.TextGetOptions options, [out] HSTRING* value);
                HRESULT LoadFromStream([in] Windows.UI.Text.TextSetOptions options, [in] Windows.Storage.Streams.IRandomAccessStream* value);
                HRESULT Redo();
                HRESULT SaveToStream([in] Windows.UI.Text.TextGetOptions options, [in] Windows.Storage.Streams.IRandomAccessStream* value);
                HRESULT SetDefaultCharacterFormat([in] Windows.UI.Text.ITextCharacterFormat* value);
                HRESULT SetDefaultParagraphFormat([in] Windows.UI.Text.ITextParagraphFormat* value);
                HRESULT SetText([in] Windows.UI.Text.TextSetOptions options, [in] HSTRING value);
                HRESULT Undo();
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Text.RichEditTextDocument)]
            [uuid(F2311112-8C89-49C9-9118-F057CBB814EE)]
            interface ITextDocument2 : IInspectable
                requires
                    Windows.UI.Text.ITextDocument
            {
                [propget] HRESULT AlignmentIncludesTrailingWhitespace([out] [retval] boolean* value);
                [propput] HRESULT AlignmentIncludesTrailingWhitespace([in] boolean value);
                [propget] HRESULT IgnoreTrailingCharacterSpacing([out] [retval] boolean* value);
                [propput] HRESULT IgnoreTrailingCharacterSpacing([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(2CF8CFA6-4676-498A-93F5-BBDBFC0BD883)]
            interface ITextParagraphFormat : IInspectable
            {
                [propget] HRESULT Alignment([out] [retval] Windows.UI.Text.ParagraphAlignment* value);
                [propput] HRESULT Alignment([in] Windows.UI.Text.ParagraphAlignment value);
                [propget] HRESULT FirstLineIndent([out] [retval] FLOAT* value);
                [propget] HRESULT KeepTogether([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT KeepTogether([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT KeepWithNext([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT KeepWithNext([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT LeftIndent([out] [retval] FLOAT* value);
                [propget] HRESULT LineSpacing([out] [retval] FLOAT* value);
                [propget] HRESULT LineSpacingRule([out] [retval] Windows.UI.Text.LineSpacingRule* value);
                [propget] HRESULT ListAlignment([out] [retval] Windows.UI.Text.MarkerAlignment* value);
                [propput] HRESULT ListAlignment([in] Windows.UI.Text.MarkerAlignment value);
                [propget] HRESULT ListLevelIndex([out] [retval] INT32* value);
                [propput] HRESULT ListLevelIndex([in] INT32 value);
                [propget] HRESULT ListStart([out] [retval] INT32* value);
                [propput] HRESULT ListStart([in] INT32 value);
                [propget] HRESULT ListStyle([out] [retval] Windows.UI.Text.MarkerStyle* value);
                [propput] HRESULT ListStyle([in] Windows.UI.Text.MarkerStyle value);
                [propget] HRESULT ListTab([out] [retval] FLOAT* value);
                [propput] HRESULT ListTab([in] FLOAT value);
                [propget] HRESULT ListType([out] [retval] Windows.UI.Text.MarkerType* value);
                [propput] HRESULT ListType([in] Windows.UI.Text.MarkerType value);
                [propget] HRESULT NoLineNumber([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT NoLineNumber([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT PageBreakBefore([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT PageBreakBefore([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT RightIndent([out] [retval] FLOAT* value);
                [propput] HRESULT RightIndent([in] FLOAT value);
                [propget] HRESULT RightToLeft([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT RightToLeft([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT Style([out] [retval] Windows.UI.Text.ParagraphStyle* value);
                [propput] HRESULT Style([in] Windows.UI.Text.ParagraphStyle value);
                [propget] HRESULT SpaceAfter([out] [retval] FLOAT* value);
                [propput] HRESULT SpaceAfter([in] FLOAT value);
                [propget] HRESULT SpaceBefore([out] [retval] FLOAT* value);
                [propput] HRESULT SpaceBefore([in] FLOAT value);
                [propget] HRESULT WidowControl([out] [retval] Windows.UI.Text.FormatEffect* value);
                [propput] HRESULT WidowControl([in] Windows.UI.Text.FormatEffect value);
                [propget] HRESULT TabCount([out] [retval] INT32* value);
                HRESULT AddTab([in] FLOAT position, [in] Windows.UI.Text.TabAlignment align, [in] Windows.UI.Text.TabLeader leader);
                HRESULT ClearAllTabs();
                HRESULT DeleteTab([in] FLOAT position);
                HRESULT GetClone([out] [retval] Windows.UI.Text.ITextParagraphFormat** value);
                HRESULT GetTab([in] INT32 index, [out] FLOAT* position, [out] Windows.UI.Text.TabAlignment* align, [out] Windows.UI.Text.TabLeader* leader);
                HRESULT IsEqual([in] Windows.UI.Text.ITextParagraphFormat* format, [out] [retval] boolean* value);
                HRESULT SetClone([in] Windows.UI.Text.ITextParagraphFormat* format);
                HRESULT SetIndents([in] FLOAT start, [in] FLOAT left, [in] FLOAT right);
                HRESULT SetLineSpacing([in] Windows.UI.Text.LineSpacingRule rule, [in] FLOAT spacing);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(5B9E4E57-C072-42A0-8945-AF503EE54768)]
            interface ITextRange : IInspectable
            {
                [propget] HRESULT Character([out] [retval] WCHAR* value);
                [propput] HRESULT Character([in] WCHAR value);
                [propget] HRESULT CharacterFormat([out] [retval] Windows.UI.Text.ITextCharacterFormat** value);
                [propput] HRESULT CharacterFormat([in] Windows.UI.Text.ITextCharacterFormat* value);
                [propget] HRESULT FormattedText([out] [retval] Windows.UI.Text.ITextRange** value);
                [propput] HRESULT FormattedText([in] Windows.UI.Text.ITextRange* value);
                [propget] HRESULT EndPosition([out] [retval] INT32* value);
                [propput] HRESULT EndPosition([in] INT32 value);
                [propget] HRESULT Gravity([out] [retval] Windows.UI.Text.RangeGravity* value);
                [propput] HRESULT Gravity([in] Windows.UI.Text.RangeGravity value);
                [propget] HRESULT Length([out] [retval] INT32* length);
                [propget] HRESULT Link([out] [retval] HSTRING* value);
                [propput] HRESULT Link([in] HSTRING value);
                [propget] HRESULT ParagraphFormat([out] [retval] Windows.UI.Text.ITextParagraphFormat** value);
                [propput] HRESULT ParagraphFormat([in] Windows.UI.Text.ITextParagraphFormat* value);
                [propget] HRESULT StartPosition([out] [retval] INT32* value);
                [propput] HRESULT StartPosition([in] INT32 value);
                [propget] HRESULT StoryLength([out] [retval] INT32* value);
                [propget] HRESULT Text([out] [retval] HSTRING* value);
                [propput] HRESULT Text([in] HSTRING value);
                HRESULT CanPaste([in] INT32 format, [out] [retval] boolean* value);
                HRESULT ChangeCase([in] Windows.UI.Text.LetterCase value);
                HRESULT Collapse([in] boolean value);
                HRESULT Copy();
                HRESULT Cut();
                HRESULT Delete([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 count, [out] [retval] INT32* delta);
                HRESULT EndOf([in] Windows.UI.Text.TextRangeUnit unit, [in] boolean extend, [out] [retval] INT32* delta);
                HRESULT Expand([in] Windows.UI.Text.TextRangeUnit unit, [out] [retval] INT32* delta);
                HRESULT FindText([in] HSTRING value, [in] INT32 scanLength, [in] Windows.UI.Text.FindOptions options, [out] [retval] INT32* length);
                HRESULT GetCharacterUtf32([out] UINT32* value, [in] INT32 offset);
                HRESULT GetClone([out] [retval] Windows.UI.Text.ITextRange** value);
                HRESULT GetIndex([in] Windows.UI.Text.TextRangeUnit unit, [out] [retval] INT32* index);
                HRESULT GetPoint([in] Windows.UI.Text.HorizontalCharacterAlignment horizontalAlign, [in] Windows.UI.Text.VerticalCharacterAlignment verticalAlign, [in] Windows.UI.Text.PointOptions options, [out] Windows.Foundation.Point* point);
                HRESULT GetRect([in] Windows.UI.Text.PointOptions options, [out] Windows.Foundation.Rect* rect, [out] INT32* hit);
                HRESULT GetText([in] Windows.UI.Text.TextGetOptions options, [out] HSTRING* value);
                HRESULT GetTextViaStream([in] Windows.UI.Text.TextGetOptions options, [in] Windows.Storage.Streams.IRandomAccessStream* value);
                HRESULT InRange([in] Windows.UI.Text.ITextRange* range, [out] [retval] boolean* value);
                HRESULT InsertImage([in] INT32 width, [in] INT32 height, [in] INT32 ascent, [in] Windows.UI.Text.VerticalCharacterAlignment verticalAlign, [in] HSTRING alternateText, [in] Windows.Storage.Streams.IRandomAccessStream* value);
                HRESULT InStory([in] Windows.UI.Text.ITextRange* range, [out] [retval] boolean* value);
                HRESULT IsEqual([in] Windows.UI.Text.ITextRange* range, [out] [retval] boolean* value);
                HRESULT Move([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 count, [out] [retval] INT32* delta);
                HRESULT MoveEnd([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 count, [out] [retval] INT32* delta);
                HRESULT MoveStart([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 count, [out] [retval] INT32* delta);
                HRESULT Paste([in] INT32 format);
                HRESULT ScrollIntoView([in] Windows.UI.Text.PointOptions value);
                HRESULT MatchSelection();
                HRESULT SetIndex([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 index, [in] boolean extend);
                HRESULT SetPoint([in] Windows.Foundation.Point point, [in] Windows.UI.Text.PointOptions options, [in] boolean extend);
                HRESULT SetRange([in] INT32 startPosition, [in] INT32 endPosition);
                HRESULT SetText([in] Windows.UI.Text.TextSetOptions options, [in] HSTRING value);
                HRESULT SetTextViaStream([in] Windows.UI.Text.TextSetOptions options, [in] Windows.Storage.Streams.IRandomAccessStream* value);
                HRESULT StartOf([in] Windows.UI.Text.TextRangeUnit unit, [in] boolean extend, [out] [retval] INT32* delta);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(A6D36724-F28F-430A-B2CF-C343671EC0E9)]
            interface ITextSelection : IInspectable
                requires
                    Windows.UI.Text.ITextRange
            {
                [propget] HRESULT Options([out] [retval] Windows.UI.Text.SelectionOptions* value);
                [propput] HRESULT Options([in] Windows.UI.Text.SelectionOptions value);
                [propget] HRESULT Type([out] [retval] Windows.UI.Text.SelectionType* value);
                HRESULT EndKey([in] Windows.UI.Text.TextRangeUnit unit, [in] boolean extend, [out] [retval] INT32* delta);
                HRESULT HomeKey([in] Windows.UI.Text.TextRangeUnit unit, [in] boolean extend, [out] [retval] INT32* delta);
                HRESULT MoveDown([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 count, [in] boolean extend, [out] [retval] INT32* delta);
                HRESULT MoveLeft([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 count, [in] boolean extend, [out] [retval] INT32* delta);
                HRESULT MoveRight([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 count, [in] boolean extend, [out] [retval] INT32* delta);
                HRESULT MoveUp([in] Windows.UI.Text.TextRangeUnit unit, [in] INT32 count, [in] boolean extend, [out] [retval] INT32* delta);
                HRESULT TypeText([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.UI.Text.IFontWeightsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass FontWeights
            {
                [default] interface Windows.UI.Text.IFontWeights;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            runtimeclass RichEditTextDocument
            {
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] [default] interface Windows.UI.Text.ITextDocument;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Text.ITextDocument2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.UI.Text.ITextConstantsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass TextConstants
            {
            }
        }
    }
}
