//
// 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.Phone.idl";

// Forward Declare
namespace Windows
{
    namespace Phone
    {
        apicontract PhoneInternalContract;
    }
}
namespace Windows
{
    namespace Phone
    {
        namespace UI
        {
            namespace Core
            {
                typedef enum CoreInputScope CoreInputScope;

                interface ICoreSelectionChangedEventArgs;

                interface ICoreTextChangedEventArgs;

                interface ICoreWindowKeyboardInput;

                interface IKeyboardInputBuffer;

                runtimeclass CoreSelectionChangedEventArgs;

                runtimeclass CoreTextChangedEventArgs;

                runtimeclass KeyboardInputBuffer;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Phone
    {
        namespace UI
        {
            namespace Core
            {
                declare
                {
                    interface Windows.Foundation.TypedEventHandler<Windows.Phone.UI.Core.KeyboardInputBuffer*, Windows.Phone.UI.Core.CoreSelectionChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Phone.UI.Core.KeyboardInputBuffer*, Windows.Phone.UI.Core.CoreTextChangedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Phone
    {
        namespace UI
        {
            namespace Core
            {
                [contract(Windows.Phone.PhoneInternalContract, 1.0)]
                enum CoreInputScope
                {
                    Default          = 0,
                    Url              = 1,
                    EmailSmtpAddress = 5,
                    Number           = 29,
                    TelephoneNumber  = 32,
                    Text             = 49,
                    Search           = 51
                };

                [contract(Windows.Phone.PhoneInternalContract, 1.0)]
                [exclusiveto(Windows.Phone.UI.Core.CoreSelectionChangedEventArgs)]
                [uuid(C2941949-3955-4EC2-8F88-3F2BFC04D0F1)]
                interface ICoreSelectionChangedEventArgs : IInspectable
                {
                    [propget] HRESULT Start([out] [retval] UINT32* value);
                    [propget] HRESULT Length([out] [retval] UINT32* value);
                }

                [contract(Windows.Phone.PhoneInternalContract, 1.0)]
                [exclusiveto(Windows.Phone.UI.Core.CoreTextChangedEventArgs)]
                [uuid(7E3C9572-60E4-4FEB-8683-4CF0E0FA7659)]
                interface ICoreTextChangedEventArgs : IInspectable
                {
                    [propget] HRESULT Start([out] [retval] UINT32* value);
                    [propget] HRESULT OldLength([out] [retval] UINT32* value);
                    [propget] HRESULT NewText([out] [retval] HSTRING* value);
                }

                [contract(Windows.Phone.PhoneInternalContract, 1.0)]
                [uuid(196B175E-1A33-4B17-9935-338EF6443477)]
                interface ICoreWindowKeyboardInput : IInspectable
                {
                    [propget] HRESULT IsKeyboardInputEnabled([out] [retval] boolean* value);
                    [propput] HRESULT IsKeyboardInputEnabled([in] boolean value);
                    [propget] HRESULT KeyboardInputBuffer([out] [retval] Windows.Phone.UI.Core.KeyboardInputBuffer** value);
                    [propput] HRESULT KeyboardInputBuffer([in] Windows.Phone.UI.Core.KeyboardInputBuffer* value);
                }

                [contract(Windows.Phone.PhoneInternalContract, 1.0)]
                [exclusiveto(Windows.Phone.UI.Core.KeyboardInputBuffer)]
                [uuid(3776EE93-8079-40CC-8C2F-A7A997CF9D6E)]
                interface IKeyboardInputBuffer : IInspectable
                {
                    [propget] HRESULT Text([out] [retval] HSTRING* value);
                    [propput] HRESULT Text([in] HSTRING value);
                    [propget] HRESULT SelectionStart([out] [retval] UINT32* value);
                    [propget] HRESULT SelectionLength([out] [retval] UINT32* value);
                    HRESULT Select([in] UINT32 start, [in] UINT32 length);
                    HRESULT SelectFromTap([in] UINT32 characterIndex);
                    [propget] HRESULT InputScope([out] [retval] Windows.Phone.UI.Core.CoreInputScope* value);
                    [propput] HRESULT InputScope([in] Windows.Phone.UI.Core.CoreInputScope value);
                    [eventadd] HRESULT TextChanged([in] Windows.Foundation.TypedEventHandler<Windows.Phone.UI.Core.KeyboardInputBuffer*, Windows.Phone.UI.Core.CoreTextChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT TextChanged([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT SelectionChanged([in] Windows.Foundation.TypedEventHandler<Windows.Phone.UI.Core.KeyboardInputBuffer*, Windows.Phone.UI.Core.CoreSelectionChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT SelectionChanged([in] EventRegistrationToken cookie);
                }

                [contract(Windows.Phone.PhoneInternalContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass CoreSelectionChangedEventArgs
                {
                    [default] interface Windows.Phone.UI.Core.ICoreSelectionChangedEventArgs;
                }

                [contract(Windows.Phone.PhoneInternalContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass CoreTextChangedEventArgs
                {
                    [default] interface Windows.Phone.UI.Core.ICoreTextChangedEventArgs;
                }

                [activatable(Windows.Phone.PhoneInternalContract, 1.0)]
                [contract(Windows.Phone.PhoneInternalContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass KeyboardInputBuffer
                {
                    [default] interface Windows.Phone.UI.Core.IKeyboardInputBuffer;
                }
            }
        }
    }
}
