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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.System.idl";
import "Windows.UI.idl";
import "Windows.UI.Core.idl";
import "Windows.UI.Text.idl";
import "Windows.UI.Text.Core.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        typedef struct Rect Rect;
    }
}
namespace Windows
{
    namespace System
    {
        typedef enum VirtualKey VirtualKey;
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            typedef struct CorePhysicalKeyStatus CorePhysicalKeyStatus;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Text
        {
            namespace Core
            {
                typedef enum CoreTextFormatUpdatingReason CoreTextFormatUpdatingReason;

                typedef enum CoreTextInputScope CoreTextInputScope;

                typedef struct CoreTextRange CoreTextRange;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Text
        {
            typedef enum UnderlineType UnderlineType;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Preview
            {
                namespace Text
                {
                    apicontract PreviewTextContract;

                    typedef enum KeyEventDeviceType KeyEventDeviceType;

                    typedef enum PayloadResult PayloadResult;

                    typedef enum TextBoxContentAttribute TextBoxContentAttribute;

                    typedef enum TextBoxFeatures TextBoxFeatures;

                    typedef enum TextBoxSettings TextBoxSettings;

                    typedef enum TextChangeSource TextChangeSource;

                    typedef enum TextConversionMode TextConversionMode;

                    typedef enum TextStyleAttributes TextStyleAttributes;

                    typedef struct TextBoxId TextBoxId;

                    typedef struct TextInputServiceSubscription TextInputServiceSubscription;

                    typedef struct TextStyle TextStyle;

                    interface IConversionModeChangedEventArgs;

                    interface IFocusEnteredEventArgs;

                    interface IInputDelegationModeChangedEventArgs;

                    interface IKeyEventReceivedEventArgs;

                    interface IKeyboardInputProcessor;

                    interface IReconversionRequestedEventArgs;

                    interface ITextBoxContentChangedEventArgs;

                    interface ITextBoxInfo;

                    interface ITextBoxInfoChangedEventArgs;

                    interface ITextComposition;

                    interface ITextCompositionSegment;

                    interface ITextEditSession;

                    interface ITextInputProvider;

                    interface ITextInputService;

                    interface ITextInputServiceStatics;

                    runtimeclass ConversionModeChangedEventArgs;

                    runtimeclass FocusEnteredEventArgs;

                    runtimeclass InputDelegationModeChangedEventArgs;

                    runtimeclass KeyEventReceivedEventArgs;

                    runtimeclass KeyboardInputProcessor;

                    runtimeclass ReconversionRequestedEventArgs;

                    runtimeclass TextBoxContentChangedEventArgs;

                    runtimeclass TextBoxInfo;

                    runtimeclass TextBoxInfoChangedEventArgs;

                    runtimeclass TextComposition;

                    runtimeclass TextCompositionSegment;

                    runtimeclass TextEditSession;

                    runtimeclass TextInputProvider;

                    runtimeclass TextInputService;
                }
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Preview
            {
                namespace Text
                {
                    declare
                    {
                        interface Windows.Foundation.IAsyncOperation<Windows.UI.Input.Preview.Text.PayloadResult>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, IInspectable*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.ConversionModeChangedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.FocusEnteredEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.KeyEventReceivedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.ReconversionRequestedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.TextBoxContentChangedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.TextBoxInfoChangedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, IInspectable*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.FocusEnteredEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.InputDelegationModeChangedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.ReconversionRequestedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.TextBoxContentChangedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.TextBoxInfoChangedEventArgs*>;
                    }
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Preview
            {
                namespace Text
                {
                    [contractversion(1.0)]
                    apicontract PreviewTextContract
                    {
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    enum KeyEventDeviceType
                    {
                        Undefined        = 0,
                        HardwareKeyboard = 1,
                        SoftwareKeyboard = 2,
                        Gamepad          = 3,
                        Injection        = 4
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    enum PayloadResult
                    {
                        InEditing  = 0,
                        Pending    = 1,
                        Completed  = 2,
                        Overridden = 3,
                        Outrun     = 4,
                        Rejected   = 5,
                        Canceled   = 6
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    enum TextBoxContentAttribute
                    {
                        None      = 0,
                        Selection = 1,
                        Text      = 2,
                        Property  = 3,
                        Layout    = 4
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [flags]
                    enum TextBoxFeatures
                    {
                        None        = 0x0,
                        ReadText    = 0x1,
                        WriteText   = 0x2,
                        AugmentText = 0x4
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [flags]
                    enum TextBoxSettings
                    {
                        None            = 0x0,
                        Private         = 0x1,
                        Multiline       = 0x2,
                        VerticalWriting = 0x4
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    enum TextChangeSource
                    {
                        External             = 0,
                        HardwareKeyTyped     = 1,
                        SoftwareKeyTyped     = 2,
                        KeyboardImeInsertion = 3,
                        OtherImeInsertion    = 4,
                        Reconversion         = 5,
                        AutoCompletion       = 6,
                        Mixed                = 7
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    enum TextConversionMode
                    {
                        Undefined                   = 0,
                        AlphanumericHalfWidth       = 1,
                        AlphanumericFullWidth       = 2,
                        NativeHalfWidth             = 3,
                        NativeFullWidth             = 4,
                        KatakanaHalfWidth           = 5,
                        KatakanaFullWidth           = 6,
                        NativeHalfWidthNativeSymbol = 7,
                        NativeFullWidthNativeSymbol = 8,
                        NoConversion                = 9,
                        RequestConversion           = 10,
                        NativeEudc                  = 11
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [flags]
                    enum TextStyleAttributes
                    {
                        None            = 0x0,
                        TextColor       = 0x1,
                        BackgroundColor = 0x2,
                        UnderlineColor  = 0x4,
                        UnderlineType   = 0x8
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    struct TextBoxId
                    {
                        UINT32 Value;
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    struct TextInputServiceSubscription
                    {
                        Windows.UI.Input.Preview.Text.TextBoxFeatures requiredEnabledFeatures;
                        Windows.UI.Input.Preview.Text.TextBoxFeatures requiredDisabledFeatures;
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    struct TextStyle
                    {
                        Windows.UI.Input.Preview.Text.TextStyleAttributes mask;
                        Windows.UI.Color textColor;
                        Windows.UI.Color backgroundColor;
                        Windows.UI.Color underlineColor;
                        Windows.UI.Text.UnderlineType underlineType;
                    };

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.ConversionModeChangedEventArgs)]
                    [uuid(B49761F9-5B21-513C-B6C0-78F27D26B010)]
                    interface IConversionModeChangedEventArgs : IInspectable
                    {
                        [propget] HRESULT NewConversionMode([out] [retval] Windows.UI.Input.Preview.Text.TextConversionMode* value);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.FocusEnteredEventArgs)]
                    [uuid(CA4DC200-875F-501D-AF14-413A0AA1ED5F)]
                    interface IFocusEnteredEventArgs : IInspectable
                    {
                        [propget] HRESULT FocusedTextBoxInfo([out] [retval] Windows.UI.Input.Preview.Text.TextBoxInfo** value);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.InputDelegationModeChangedEventArgs)]
                    [uuid(4BB448B2-67BA-5215-8783-B444BD28EED3)]
                    interface IInputDelegationModeChangedEventArgs : IInspectable
                    {
                        [propget] HRESULT DelegationOn([out] [retval] boolean* value);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.KeyEventReceivedEventArgs)]
                    [uuid(0C30F686-A058-5ECC-ABD2-9CC861C1185B)]
                    interface IKeyEventReceivedEventArgs : IInspectable
                    {
                        [propget] HRESULT VirtualKey([out] [retval] Windows.System.VirtualKey* value);
                        [propget] HRESULT KeyStatus([out] [retval] Windows.UI.Core.CorePhysicalKeyStatus* value);
                        [propget] HRESULT Unicode([out] [retval] HSTRING* value);
                        [propget] HRESULT Source([out] [retval] Windows.UI.Input.Preview.Text.KeyEventDeviceType* value);
                        HRESULT IsKeyPressed([in] Windows.System.VirtualKey vkey, [out] [retval] boolean* result);
                        HRESULT IsToggleKeyOn([in] Windows.System.VirtualKey vkey, [out] [retval] boolean* result);
                        [propget] HRESULT EditSession([out] [retval] Windows.UI.Input.Preview.Text.TextEditSession** value);
                        [propget] HRESULT Handled([out] [retval] boolean* value);
                        [propput] HRESULT Handled([in] boolean value);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.KeyboardInputProcessor)]
                    [uuid(2AFE79B6-5818-50E0-8FA8-81BC96428C46)]
                    interface IKeyboardInputProcessor : IInspectable
                    {
                        [propget] HRESULT InputProfile([out] [retval] HSTRING* value);
                        [propget] HRESULT IsActive([out] [retval] boolean* value);
                        [propget] HRESULT HasFocusedTextBox([out] [retval] boolean* value);
                        [propget] HRESULT FocusedTextBoxId([out] [retval] Windows.UI.Input.Preview.Text.TextBoxId* value);
                        [propget] HRESULT FocusedTextBoxInfo([out] [retval] Windows.UI.Input.Preview.Text.TextBoxInfo** value);
                        [propget] HRESULT FocusedTextBoxBounds([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Rect>** value);
                        [propget] HRESULT SelectionBounds([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Rect>** value);
                        [propget] HRESULT ConversionMode([out] [retval] Windows.UI.Input.Preview.Text.TextConversionMode* value);
                        [propput] HRESULT ConversionMode([in] Windows.UI.Input.Preview.Text.TextConversionMode value);
                        HRESULT CreateEditSession([out] [retval] Windows.UI.Input.Preview.Text.TextEditSession** result);
                        [eventadd] HRESULT Activated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT Activated([in] EventRegistrationToken token);
                        [eventadd] HRESULT Deactivated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT Deactivated([in] EventRegistrationToken token);
                        [eventadd] HRESULT KeyEventReceived([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.KeyEventReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT KeyEventReceived([in] EventRegistrationToken token);
                        [eventadd] HRESULT FocusEntered([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.FocusEnteredEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT FocusEntered([in] EventRegistrationToken token);
                        [eventadd] HRESULT FocusRemoved([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT FocusRemoved([in] EventRegistrationToken token);
                        [eventadd] HRESULT ConversionModeChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.ConversionModeChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT ConversionModeChanged([in] EventRegistrationToken token);
                        [eventadd] HRESULT TextBoxInfoChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.TextBoxInfoChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT TextBoxInfoChanged([in] EventRegistrationToken token);
                        [eventadd] HRESULT TextBoxContentChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.TextBoxContentChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT TextBoxContentChanged([in] EventRegistrationToken token);
                        [eventadd] HRESULT CompositionTerminated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT CompositionTerminated([in] EventRegistrationToken token);
                        [eventadd] HRESULT ReconversionRequested([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.KeyboardInputProcessor*, Windows.UI.Input.Preview.Text.ReconversionRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT ReconversionRequested([in] EventRegistrationToken token);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.ReconversionRequestedEventArgs)]
                    [uuid(73852244-D202-55FE-9EDF-BEB7EC19F937)]
                    interface IReconversionRequestedEventArgs : IInspectable
                    {
                        [propget] HRESULT Range([out] [retval] Windows.UI.Text.Core.CoreTextRange* value);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextBoxContentChangedEventArgs)]
                    [uuid(2CB70A41-5AED-58C5-B4C1-8EE4E1492F9E)]
                    interface ITextBoxContentChangedEventArgs : IInspectable
                    {
                        [propget] HRESULT TextBoxId([out] [retval] Windows.UI.Input.Preview.Text.TextBoxId* value);
                        [propget] HRESULT Source([out] [retval] Windows.UI.Input.Preview.Text.TextChangeSource* value);
                        [propget] HRESULT SelectionBounds([out] [retval] Windows.Foundation.Rect* value);
                        HRESULT IsContentAttributeChanged([in] Windows.UI.Input.Preview.Text.TextBoxContentAttribute value, [out] [retval] boolean* result);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextBoxInfo)]
                    [uuid(B122443D-E8F7-5F8B-813D-AAA0941D5FA0)]
                    interface ITextBoxInfo : IInspectable
                    {
                        [propget] HRESULT Id([out] [retval] Windows.UI.Input.Preview.Text.TextBoxId* value);
                        [propget] HRESULT InputScope([out] [retval] Windows.UI.Text.Core.CoreTextInputScope* value);
                        [propget] HRESULT AppName([out] [retval] HSTRING* value);
                        [propget] HRESULT Url([out] [retval] HSTRING* value);
                        [propget] HRESULT Settings([out] [retval] Windows.UI.Input.Preview.Text.TextBoxSettings* value);
                        [propget] HRESULT DisabledFeatures([out] [retval] Windows.UI.Input.Preview.Text.TextBoxFeatures* value);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextBoxInfoChangedEventArgs)]
                    [uuid(AC1275AF-648C-5BAC-B29F-D1EA17E9E6D6)]
                    interface ITextBoxInfoChangedEventArgs : IInspectable
                    {
                        [propget] HRESULT TextBoxInfo([out] [retval] Windows.UI.Input.Preview.Text.TextBoxInfo** value);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextComposition)]
                    [uuid(5CEA9AEA-524D-50A4-B08A-C83D8D25EC6E)]
                    interface ITextComposition : IInspectable
                    {
                        [propget] HRESULT Text([out] [retval] HSTRING* value);
                        [propget] HRESULT FirstSegment([out] [retval] Windows.UI.Input.Preview.Text.TextCompositionSegment** value);
                        [propget] HRESULT SelectedSegment([out] [retval] Windows.UI.Input.Preview.Text.TextCompositionSegment** value);
                        [propget] HRESULT CaretPosition([out] [retval] UINT32* value);
                        [propput] HRESULT CaretPosition([in] UINT32 value);
                        HRESULT InsertText([in] HSTRING text, [out] [retval] Windows.UI.Input.Preview.Text.TextCompositionSegment** result);
                        HRESULT Complete();
                        HRESULT CompleteUnconverted();
                        HRESULT CompleteFirstSegment();
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextCompositionSegment)]
                    [uuid(0543F6C6-EB98-56D6-8808-2ECA6D02F6A5)]
                    interface ITextCompositionSegment : IInspectable
                    {
                        [propget] HRESULT Text([out] [retval] HSTRING* value);
                        [propput] HRESULT Text([in] HSTRING value);
                        [propget] HRESULT ConvertedText([out] [retval] HSTRING* value);
                        [propput] HRESULT ConvertedText([in] HSTRING value);
                        [propget] HRESULT UnconvertedText([out] [retval] HSTRING* value);
                        [propput] HRESULT UnconvertedText([in] HSTRING value);
                        [propget] HRESULT Range([out] [retval] Windows.UI.Text.Core.CoreTextRange* value);
                        [propget] HRESULT ConversionState([out] [retval] Windows.UI.Text.Core.CoreTextFormatUpdatingReason* value);
                        [propput] HRESULT ConversionState([in] Windows.UI.Text.Core.CoreTextFormatUpdatingReason value);
                        [propget] HRESULT Next([out] [retval] Windows.UI.Input.Preview.Text.TextCompositionSegment** value);
                        [propget] HRESULT Previous([out] [retval] Windows.UI.Input.Preview.Text.TextCompositionSegment** value);
                        HRESULT GetTextStyle([out] [retval] Windows.UI.Input.Preview.Text.TextStyle* result);
                        HRESULT SetTextStyle([in] Windows.UI.Input.Preview.Text.TextStyle value);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextEditSession)]
                    [uuid(0BCAD18A-D31B-5787-AFF9-995EE743AEA8)]
                    interface ITextEditSession : IInspectable
                    {
                        [propget] HRESULT TextBoxId([out] [retval] Windows.UI.Input.Preview.Text.TextBoxId* value);
                        [propget] HRESULT TextLength([out] [retval] INT32* value);
                        [propget] HRESULT PopulatedRange([out] [retval] Windows.UI.Text.Core.CoreTextRange* value);
                        HRESULT PopulateAsync([in] Windows.UI.Text.Core.CoreTextRange range, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                        HRESULT GetText([in] Windows.UI.Text.Core.CoreTextRange range, [out] [retval] HSTRING* result);
                        HRESULT GetSelectedRange([out] [retval] Windows.UI.Text.Core.CoreTextRange* result);
                        HRESULT SetSelectedRange([in] Windows.UI.Text.Core.CoreTextRange value);
                        HRESULT ReplaceText([in] Windows.UI.Text.Core.CoreTextRange replaceRange, [in] HSTRING text, [out] [retval] Windows.UI.Text.Core.CoreTextRange* result);
                        [propget] HRESULT Composition([out] [retval] Windows.UI.Input.Preview.Text.TextComposition** value);
                        HRESULT StartComposition([out] [retval] Windows.UI.Input.Preview.Text.TextComposition** result);
                        HRESULT StartReconversion([in] Windows.UI.Text.Core.CoreTextRange range, [out] [retval] Windows.UI.Input.Preview.Text.TextComposition** result);
                        HRESULT SubmitPayload([out] [retval] boolean* result);
                        HRESULT SubmitPayloadAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.UI.Input.Preview.Text.PayloadResult>** operation);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextInputProvider)]
                    [uuid(B0885FB7-E9F8-5849-B0EF-F8155ECF60D1)]
                    interface ITextInputProvider : IInspectable
                    {
                        HRESULT GetSubscription([out] [retval] Windows.UI.Input.Preview.Text.TextInputServiceSubscription* result);
                        HRESULT SetSubscription([in] Windows.UI.Input.Preview.Text.TextInputServiceSubscription subscription);
                        [propget] HRESULT HasFocusedTextBox([out] [retval] boolean* value);
                        [propget] HRESULT FocusedTextBoxId([out] [retval] Windows.UI.Input.Preview.Text.TextBoxId* value);
                        [propget] HRESULT FocusedTextBoxInfo([out] [retval] Windows.UI.Input.Preview.Text.TextBoxInfo** value);
                        [propget] HRESULT FocusedTextBoxBounds([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Rect>** value);
                        [propget] HRESULT SelectionBounds([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Rect>** value);
                        HRESULT CreateEditSession([out] [retval] Windows.UI.Input.Preview.Text.TextEditSession** result);
                        HRESULT TryStartDelegation([out] [retval] boolean* result);
                        HRESULT StopDelegation();
                        [eventadd] HRESULT FocusEntered([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.FocusEnteredEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT FocusEntered([in] EventRegistrationToken token);
                        [eventadd] HRESULT FocusRemoved([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT FocusRemoved([in] EventRegistrationToken token);
                        [eventadd] HRESULT TextBoxInfoChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.TextBoxInfoChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT TextBoxInfoChanged([in] EventRegistrationToken token);
                        [eventadd] HRESULT TextBoxContentChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.TextBoxContentChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT TextBoxContentChanged([in] EventRegistrationToken token);
                        [eventadd] HRESULT CompositionTerminated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT CompositionTerminated([in] EventRegistrationToken token);
                        [eventadd] HRESULT ReconversionRequested([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.ReconversionRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT ReconversionRequested([in] EventRegistrationToken token);
                        [eventadd] HRESULT InputDelegationModeChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Preview.Text.TextInputProvider*, Windows.UI.Input.Preview.Text.InputDelegationModeChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT InputDelegationModeChanged([in] EventRegistrationToken token);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextInputService)]
                    [uuid(8E23F89C-AB1F-551A-8751-7D4F29E34D88)]
                    interface ITextInputService : IInspectable
                    {
                        HRESULT CreateKeyboardInputProcessor([in] HSTRING inputProfile, [out] [retval] Windows.UI.Input.Preview.Text.KeyboardInputProcessor** result);
                        HRESULT CreateTextInputProvider([in] HSTRING inputProfile, [out] [retval] Windows.UI.Input.Preview.Text.TextInputProvider** result);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Preview.Text.TextInputService)]
                    [uuid(91B68F5E-02ED-4E09-AE89-DFD735CF10BC)]
                    interface ITextInputServiceStatics : IInspectable
                    {
                        HRESULT GetForCurrentThread([out] [retval] Windows.UI.Input.Preview.Text.TextInputService** result);
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass ConversionModeChangedEventArgs
                    {
                        [default] interface Windows.UI.Input.Preview.Text.IConversionModeChangedEventArgs;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass FocusEnteredEventArgs
                    {
                        [default] interface Windows.UI.Input.Preview.Text.IFocusEnteredEventArgs;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass InputDelegationModeChangedEventArgs
                    {
                        [default] interface Windows.UI.Input.Preview.Text.IInputDelegationModeChangedEventArgs;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass KeyEventReceivedEventArgs
                    {
                        [default] interface Windows.UI.Input.Preview.Text.IKeyEventReceivedEventArgs;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass KeyboardInputProcessor
                    {
                        [default] interface Windows.UI.Input.Preview.Text.IKeyboardInputProcessor;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass ReconversionRequestedEventArgs
                    {
                        [default] interface Windows.UI.Input.Preview.Text.IReconversionRequestedEventArgs;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass TextBoxContentChangedEventArgs
                    {
                        [default] interface Windows.UI.Input.Preview.Text.ITextBoxContentChangedEventArgs;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass TextBoxInfo
                    {
                        [default] interface Windows.UI.Input.Preview.Text.ITextBoxInfo;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass TextBoxInfoChangedEventArgs
                    {
                        [default] interface Windows.UI.Input.Preview.Text.ITextBoxInfoChangedEventArgs;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass TextComposition
                    {
                        [default] interface Windows.UI.Input.Preview.Text.ITextComposition;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass TextCompositionSegment
                    {
                        [default] interface Windows.UI.Input.Preview.Text.ITextCompositionSegment;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass TextEditSession
                    {
                        [default] interface Windows.UI.Input.Preview.Text.ITextEditSession;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass TextInputProvider
                    {
                        [default] interface Windows.UI.Input.Preview.Text.ITextInputProvider;
                    }

                    [contract(Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [static(Windows.UI.Input.Preview.Text.ITextInputServiceStatics, Windows.UI.Input.Preview.Text.PreviewTextContract, 1.0)]
                    [threading(both)]
                    runtimeclass TextInputService
                    {
                        [default] interface Windows.UI.Input.Preview.Text.ITextInputService;
                    }
                }
            }
        }
    }
}
