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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.UI.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Eui_h__)")
cpp_quote("#include <Windows.UI.h>")
cpp_quote("#endif // !defined(__windows2Eui_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

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

        typedef struct Size Size;
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace ViewManagement
        {
            typedef enum ApplicationViewState ApplicationViewState;

            typedef enum HandPreference HandPreference;

            typedef enum UIElementType UIElementType;

            interface IApplicationViewStatics;

            interface IInputPaneVisibilityEventArgs;

            interface IInputPane;

            interface IInputPaneStatics;

            interface IAccessibilitySettings;

            interface IUISettings;

            runtimeclass ApplicationView;

            runtimeclass InputPaneVisibilityEventArgs;

            runtimeclass InputPane;

            runtimeclass AccessibilitySettings;

            runtimeclass UISettings;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace ViewManagement
        {
            declare
            {
                interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.AccessibilitySettings*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.InputPane*, Windows.UI.ViewManagement.InputPaneVisibilityEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace ViewManagement
        {
            [version(0x06020000)]
            enum ApplicationViewState
            {
                FullScreenLandscape = 0,
                Filled              = 1,
                Snapped             = 2,
                FullScreenPortrait  = 3
            };

            [version(0x06020000)]
            enum HandPreference
            {
                LeftHanded  = 0,
                RightHanded = 1
            };

            [version(0x06020000)]
            enum UIElementType
            {
                ActiveCaption       = 0,
                Background          = 1,
                ButtonFace          = 2,
                ButtonText          = 3,
                CaptionText         = 4,
                GrayText            = 5,
                Highlight           = 6,
                HighlightText       = 7,
                Hotlight            = 8,
                InactiveCaption     = 9,
                InactiveCaptionText = 10,
                Window              = 11,
                WindowText          = 12
            };

            [uuid(010A6306-C433-44E5-A9F2-BD84D4030A95)]
            [exclusiveto(Windows.UI.ViewManagement.ApplicationView)]
            [version(0x06020000)]
            interface IApplicationViewStatics : IInspectable
            {
                [propget] HRESULT Value([out] [retval] Windows.UI.ViewManagement.ApplicationViewState* value);
                HRESULT TryUnsnap([out] [retval] boolean* success);
            }

            [uuid(D243E016-D907-4FCC-BB8D-F77BAA5028F1)]
            [exclusiveto(Windows.UI.ViewManagement.InputPaneVisibilityEventArgs)]
            [version(0x06020000)]
            interface IInputPaneVisibilityEventArgs : IInspectable
            {
                [propget] HRESULT OccludedRect([out] [retval] Windows.Foundation.Rect* value);
                [propput] HRESULT EnsuredFocusedElementInView([in] boolean value);
                [propget] HRESULT EnsuredFocusedElementInView([out] [retval] boolean* value);
            }

            [uuid(640ADA70-06F3-4C87-A678-9829C9127C28)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.ViewManagement.InputPane)]
            interface IInputPane : IInspectable
            {
                [eventadd] HRESULT Showing([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.InputPane*, Windows.UI.ViewManagement.InputPaneVisibilityEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Showing([in] EventRegistrationToken token);
                [eventadd] HRESULT Hiding([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.InputPane*, Windows.UI.ViewManagement.InputPaneVisibilityEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Hiding([in] EventRegistrationToken token);
                [propget] HRESULT OccludedRect([out] [retval] Windows.Foundation.Rect* value);
            }

            [uuid(95F4AF3A-EF47-424A-9741-FD2815EBA2BD)]
            [exclusiveto(Windows.UI.ViewManagement.InputPane)]
            [version(0x06020000)]
            interface IInputPaneStatics : IInspectable
            {
                HRESULT GetForCurrentView([out] [retval] Windows.UI.ViewManagement.InputPane** inputPane);
            }

            [uuid(FE0E8147-C4C0-4562-B962-1327B52AD5B9)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.ViewManagement.AccessibilitySettings)]
            interface IAccessibilitySettings : IInspectable
            {
                [propget] HRESULT HighContrast([out] [retval] boolean* value);
                [propget] HRESULT HighContrastScheme([out] [retval] HSTRING* value);
                [eventadd] HRESULT HighContrastChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.AccessibilitySettings*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT HighContrastChanged([in] EventRegistrationToken cookie);
            }

            [uuid(85361600-1C63-4627-BCB1-3A89E0BC9C55)]
            [exclusiveto(Windows.UI.ViewManagement.UISettings)]
            [version(0x06020000)]
            interface IUISettings : IInspectable
            {
                [propget] HRESULT HandPreference([out] [retval] Windows.UI.ViewManagement.HandPreference* value);
                [propget] HRESULT CursorSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT ScrollBarSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT ScrollBarArrowSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT ScrollBarThumbBoxSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT MessageDuration([out] [retval] UINT32* value);
                [propget] HRESULT AnimationsEnabled([out] [retval] boolean* value);
                [propget] HRESULT CaretBrowsingEnabled([out] [retval] boolean* value);
                [propget] HRESULT CaretBlinkRate([out] [retval] UINT32* value);
                [propget] HRESULT CaretWidth([out] [retval] UINT32* value);
                [propget] HRESULT DoubleClickTime([out] [retval] UINT32* value);
                [propget] HRESULT MouseHoverTime([out] [retval] UINT32* value);
                HRESULT UIElementColor([in] Windows.UI.ViewManagement.UIElementType desiredElement, [out] [retval] Windows.UI.Color* value);
            }

            [threading(both)]
            [version(0x06020000)]
            [static(Windows.UI.ViewManagement.IApplicationViewStatics, 0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass ApplicationView
            {
            }

            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass InputPaneVisibilityEventArgs
            {
                [default] interface Windows.UI.ViewManagement.IInputPaneVisibilityEventArgs;
            }

            [version(0x06020000)]
            [static(Windows.UI.ViewManagement.IInputPaneStatics, 0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass InputPane
            {
                [default] interface Windows.UI.ViewManagement.IInputPane;
            }

            [activatable(0x06020000)]
            [version(0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass AccessibilitySettings
            {
                [default] interface Windows.UI.ViewManagement.IAccessibilitySettings;
            }

            [version(0x06020000)]
            [marshaling_behavior(agile)]
            [activatable(0x06020000)]
            runtimeclass UISettings
            {
                [default] interface Windows.UI.ViewManagement.IUISettings;
            }
        }
    }
}
