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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.UI.idl";
import "Windows.UI.Core.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(__windows2Eui2Ecore_h__)")
cpp_quote("#include <Windows.UI.Core.h>")
cpp_quote("#endif // !defined(__windows2Eui2Ecore_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

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

        typedef struct Rect Rect;

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

            typedef enum ApplicationViewOrientation ApplicationViewOrientation;

            typedef enum ApplicationViewSwitchingOptions ApplicationViewSwitchingOptions;

            typedef enum ViewSizePreference ViewSizePreference;

            typedef enum HandPreference HandPreference;

            typedef enum UIElementType UIElementType;

            interface IApplicationViewSwitcherStatics;

            interface IApplicationViewInteropStatics;

            interface IApplicationViewStatics;

            interface IApplicationViewStatics2;

            interface IApplicationView;

            interface IApplicationViewConsolidatedEventArgs;

            interface IProjectionManagerStatics;

            interface IInputPaneVisibilityEventArgs;

            interface IInputPane;

            interface IInputPaneStatics;

            interface IAccessibilitySettings;

            interface IUISettings;

            runtimeclass ApplicationView;

            runtimeclass ApplicationViewConsolidatedEventArgs;

            runtimeclass ApplicationViewSwitcher;

            runtimeclass ProjectionManager;

            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.ApplicationView*, Windows.UI.ViewManagement.ApplicationViewConsolidatedEventArgs*>;

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

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace ViewManagement
        {
            [deprecated("ApplicationViewState may be altered or unavailable for releases after Windows 8.1. Instead, query for window layout sizes directly.", deprecate, 0x06030000)]
            [version(0x06020000)]
            enum ApplicationViewState
            {
                FullScreenLandscape = 0,
                Filled              = 1,
                Snapped             = 2,
                FullScreenPortrait  = 3
            };

            [version(0x06030000)]
            enum ApplicationViewOrientation
            {
                Landscape = 0,
                Portrait  = 1
            };

            [flags]
            [version(0x06030000)]
            enum ApplicationViewSwitchingOptions
            {
                Default          = 0x0,
                SkipAnimation    = 0x1,
                ConsolidateViews = 0x2
            };

            [version(0x06030000)]
            enum ViewSizePreference
            {
                Default    = 0,
                UseLess    = 1,
                UseHalf    = 2,
                UseMore    = 3,
                UseMinimum = 4,
                UseNone    = 5
            };

            [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
            };

            [exclusiveto(Windows.UI.ViewManagement.ApplicationViewSwitcher)]
            [uuid(975F2F1E-E656-4C5E-A0A1-717C6FFA7D64)]
            [version(0x06030000)]
            interface IApplicationViewSwitcherStatics : IInspectable
            {
                HRESULT DisableShowingMainViewOnActivation();
                [overload("TryShowAsStandaloneAsync")] HRESULT TryShowAsStandaloneAsync([in] INT32 viewId, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("TryShowAsStandaloneAsync")] HRESULT TryShowAsStandaloneWithSizePreferenceAsync([in] INT32 viewId, [in] Windows.UI.ViewManagement.ViewSizePreference sizePreference, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("TryShowAsStandaloneAsync")] HRESULT TryShowAsStandaloneWithAnchorViewAndSizePreferenceAsync([in] INT32 viewId, [in] Windows.UI.ViewManagement.ViewSizePreference sizePreference, [in] INT32 anchorViewId, [in] Windows.UI.ViewManagement.ViewSizePreference anchorSizePreference, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("SwitchAsync")] HRESULT SwitchAsync([in] INT32 viewId, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [overload("SwitchAsync")] HRESULT SwitchFromViewAsync([in] INT32 toViewId, [in] INT32 fromViewId, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [overload("SwitchAsync")] HRESULT SwitchFromViewWithOptionsAsync([in] INT32 toViewId, [in] INT32 fromViewId, [in] Windows.UI.ViewManagement.ApplicationViewSwitchingOptions options, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT PrepareForCustomAnimatedSwitchAsync([in] INT32 toViewId, [in] INT32 fromViewId, [in] Windows.UI.ViewManagement.ApplicationViewSwitchingOptions options, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            }

            [exclusiveto(Windows.UI.ViewManagement.ApplicationView)]
            [uuid(C446FB5D-4793-4896-A8E2-BE57A8BB0F50)]
            [version(0x06030000)]
            interface IApplicationViewInteropStatics : IInspectable
            {
                HRESULT GetApplicationViewIdForWindow([in] Windows.UI.Core.ICoreWindow* window, [out] [retval] INT32* id);
            }

            [deprecated("ApplicationView static methods may be altered or unavailable for releases after Windows 8.1. Instead, use ApplicationView.GetForCurrentView to get an instance of ApplicationView.", deprecate, 0x06030000)]
            [exclusiveto(Windows.UI.ViewManagement.ApplicationView)]
            [uuid(010A6306-C433-44E5-A9F2-BD84D4030A95)]
            [version(0x06020000)]
            interface IApplicationViewStatics : IInspectable
            {
                [deprecated("Value may be altered or unavailable for releases after Windows 8.1. Instead, query for window layout sizes directly.", deprecate, 0x06030000)] [propget] HRESULT Value([out] [retval] Windows.UI.ViewManagement.ApplicationViewState* value);
                [deprecated("TryUnsnap may be altered or unavailable for releases after Windows 8.1. Apps can be continuously resized, but cannot be snapped, starting in Windows 8.1.", deprecate, 0x06030000)] HRESULT TryUnsnap([out] [retval] boolean* success);
            }

            [exclusiveto(Windows.UI.ViewManagement.ApplicationView)]
            [uuid(AF338AE5-CF64-423C-85E5-F3E72448FB23)]
            [version(0x06030000)]
            interface IApplicationViewStatics2 : IInspectable
            {
                HRESULT GetForCurrentView([out] [retval] Windows.UI.ViewManagement.ApplicationView** current);
                [propget] HRESULT TerminateAppOnFinalViewClose([out] [retval] boolean* value);
                [propput] HRESULT TerminateAppOnFinalViewClose([in] boolean value);
            }

            [exclusiveto(Windows.UI.ViewManagement.ApplicationView)]
            [uuid(D222D519-4361-451E-96C4-60F4F9742DB0)]
            [version(0x06030000)]
            interface IApplicationView : IInspectable
            {
                [propget] HRESULT Orientation([out] [retval] Windows.UI.ViewManagement.ApplicationViewOrientation* value);
                [propget] HRESULT AdjacentToLeftDisplayEdge([out] [retval] boolean* value);
                [propget] HRESULT AdjacentToRightDisplayEdge([out] [retval] boolean* value);
                [propget] HRESULT IsFullScreen([out] [retval] boolean* value);
                [propget] HRESULT IsOnLockScreen([out] [retval] boolean* value);
                [propget] HRESULT IsScreenCaptureEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsScreenCaptureEnabled([in] boolean value);
                [propput] HRESULT Title([in] HSTRING value);
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propget] HRESULT Id([out] [retval] INT32* value);
                [eventadd] HRESULT Consolidated([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.ApplicationView*, Windows.UI.ViewManagement.ApplicationViewConsolidatedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Consolidated([in] EventRegistrationToken token);
            }

            [exclusiveto(Windows.UI.ViewManagement.ApplicationViewConsolidatedEventArgs)]
            [uuid(514449EC-7EA2-4DE7-A6A6-7DFBAAEBB6FB)]
            [version(0x06030000)]
            interface IApplicationViewConsolidatedEventArgs : IInspectable
            {
                [propget] HRESULT IsUserInitiated([out] [retval] boolean* value);
            }

            [exclusiveto(Windows.UI.ViewManagement.ProjectionManager)]
            [uuid(B65F913D-E2F0-4FFD-BA95-34241647E45C)]
            [version(0x06030000)]
            interface IProjectionManagerStatics : IInspectable
            {
                HRESULT StartProjectingAsync([in] INT32 projectionViewId, [in] INT32 anchorViewId, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT SwapDisplaysForViewsAsync([in] INT32 projectionViewId, [in] INT32 anchorViewId, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT StopProjectingAsync([in] INT32 projectionViewId, [in] INT32 anchorViewId, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [propget] HRESULT ProjectionDisplayAvailable([out] [retval] boolean* value);
                [eventadd] HRESULT ProjectionDisplayAvailableChanged([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ProjectionDisplayAvailableChanged([in] EventRegistrationToken token);
            }

            [exclusiveto(Windows.UI.ViewManagement.InputPaneVisibilityEventArgs)]
            [uuid(D243E016-D907-4FCC-BB8D-F77BAA5028F1)]
            [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);
            }

            [exclusiveto(Windows.UI.ViewManagement.InputPane)]
            [uuid(640ADA70-06F3-4C87-A678-9829C9127C28)]
            [version(0x06020000)]
            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);
            }

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

            [exclusiveto(Windows.UI.ViewManagement.AccessibilitySettings)]
            [uuid(FE0E8147-C4C0-4562-B962-1327B52AD5B9)]
            [version(0x06020000)]
            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);
            }

            [exclusiveto(Windows.UI.ViewManagement.UISettings)]
            [uuid(85361600-1C63-4627-BCB1-3A89E0BC9C55)]
            [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);
            }

            [marshaling_behavior(agile)]
            [static(Windows.UI.ViewManagement.IApplicationViewInteropStatics, 0x06030000)]
            [static(Windows.UI.ViewManagement.IApplicationViewStatics, 0x06020000)]
            [static(Windows.UI.ViewManagement.IApplicationViewStatics2, 0x06030000)]
            [threading(both)]
            [version(0x06020000)]
            runtimeclass ApplicationView
            {
                [default] [version(0x06030000)] interface Windows.UI.ViewManagement.IApplicationView;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass ApplicationViewConsolidatedEventArgs
            {
                [default] interface Windows.UI.ViewManagement.IApplicationViewConsolidatedEventArgs;
            }

            [marshaling_behavior(agile)]
            [static(Windows.UI.ViewManagement.IApplicationViewSwitcherStatics, 0x06030000)]
            [threading(both)]
            [version(0x06030000)]
            runtimeclass ApplicationViewSwitcher
            {
            }

            [marshaling_behavior(agile)]
            [static(Windows.UI.ViewManagement.IProjectionManagerStatics, 0x06030000)]
            [threading(both)]
            [version(0x06030000)]
            runtimeclass ProjectionManager
            {
            }

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

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

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

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