//
// 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.System.idl";
import "Windows.UI.Input.idl";
import "Windows.UI.Popups.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(__windows2Esystem_h__)")
cpp_quote("#include <Windows.System.h>")
cpp_quote("#endif // !defined(__windows2Esystem_h__)")
cpp_quote("#if !defined(__windows2Eui2Einput_h__)")
cpp_quote("#include <Windows.UI.Input.h>")
cpp_quote("#endif // !defined(__windows2Eui2Einput_h__)")
cpp_quote("#if !defined(__windows2Eui2Epopups_h__)")
cpp_quote("#include <Windows.UI.Popups.h>")
cpp_quote("#endif // !defined(__windows2Eui2Epopups_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            interface IPropertySet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        typedef struct Point Point;

        typedef struct Rect Rect;

        typedef struct Size Size;
    }
}
namespace Windows
{
    namespace System
    {
        typedef enum VirtualKey VirtualKey;

        typedef enum VirtualKeyModifiers VirtualKeyModifiers;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            runtimeclass PointerPoint;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Popups
        {
            interface IUICommand;

            delegate UICommandInvokedHandler;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            typedef enum CoreWindowActivationState CoreWindowActivationState;

            typedef enum CoreCursorType CoreCursorType;

            typedef enum CoreDispatcherPriority CoreDispatcherPriority;

            typedef enum CoreProcessEventsOption CoreProcessEventsOption;

            typedef enum CoreWindowFlowDirection CoreWindowFlowDirection;

            typedef enum CoreVirtualKeyStates CoreVirtualKeyStates;

            typedef enum CoreAcceleratorKeyEventType CoreAcceleratorKeyEventType;

            typedef enum CoreProximityEvaluationScore CoreProximityEvaluationScore;

            typedef struct CorePhysicalKeyStatus CorePhysicalKeyStatus;

            typedef struct CoreProximityEvaluation CoreProximityEvaluation;

            delegate DispatchedHandler;

            delegate IdleDispatchedHandler;

            interface ICoreWindowEventArgs;

            interface IAutomationProviderRequestedEventArgs;

            interface ICharacterReceivedEventArgs;

            interface IInputEnabledEventArgs;

            interface IKeyEventArgs;

            interface IPointerEventArgs;

            interface ITouchHitTestingEventArgs;

            interface IWindowActivatedEventArgs;

            interface IWindowSizeChangedEventArgs;

            interface IVisibilityChangedEventArgs;

            interface ICoreWindow;

            interface ICoreWindowStatic;

            interface IAcceleratorKeyEventArgs;

            interface ICoreAcceleratorKeys;

            interface ICoreDispatcher;

            interface IIdleDispatchedHandlerArgs;

            interface ICoreCursor;

            interface ICoreCursorFactory;

            interface IInitializeWithCoreWindow;

            interface ICoreWindowResizeManager;

            interface ICoreWindowResizeManagerStatics;

            interface ICoreWindowPopupShowingEventArgs;

            interface ICoreWindowDialog;

            interface ICoreWindowDialogFactory;

            interface ICoreWindowFlyout;

            interface ICoreWindowFlyoutFactory;

            runtimeclass CoreDispatcher;

            runtimeclass CoreCursor;

            runtimeclass CoreWindow;

            runtimeclass WindowActivatedEventArgs;

            runtimeclass AutomationProviderRequestedEventArgs;

            runtimeclass CharacterReceivedEventArgs;

            runtimeclass CoreWindowEventArgs;

            runtimeclass InputEnabledEventArgs;

            runtimeclass KeyEventArgs;

            runtimeclass PointerEventArgs;

            runtimeclass TouchHitTestingEventArgs;

            runtimeclass WindowSizeChangedEventArgs;

            runtimeclass VisibilityChangedEventArgs;

            runtimeclass IdleDispatchedHandlerArgs;

            runtimeclass AcceleratorKeyEventArgs;

            runtimeclass CoreAcceleratorKeys;

            runtimeclass CoreWindowResizeManager;

            runtimeclass CoreWindowPopupShowingEventArgs;

            runtimeclass CoreWindowDialog;

            runtimeclass CoreWindowFlyout;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            declare
            {
                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreDispatcher*, Windows.UI.Core.AcceleratorKeyEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.AutomationProviderRequestedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.CharacterReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.CoreWindowEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.CoreWindowPopupShowingEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.InputEnabledEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.KeyEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.PointerEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.TouchHitTestingEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.VisibilityChangedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.WindowActivatedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.WindowSizeChangedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            [version(0x06020000)]
            enum CoreWindowActivationState
            {
                CodeActivated    = 0,
                Deactivated      = 1,
                PointerActivated = 2
            };

            [version(0x06020000)]
            enum CoreCursorType
            {
                Arrow                  = 0,
                Cross                  = 1,
                Custom                 = 2,
                Hand                   = 3,
                Help                   = 4,
                IBeam                  = 5,
                SizeAll                = 6,
                SizeNortheastSouthwest = 7,
                SizeNorthSouth         = 8,
                SizeNorthwestSoutheast = 9,
                SizeWestEast           = 10,
                UniversalNo            = 11,
                UpArrow                = 12,
                Wait                   = 13
            };

            [version(0x06020000)]
            enum CoreDispatcherPriority
            {
                Low    = -1,
                Normal = 0,
                High   = 1
            };

            [version(0x06020000)]
            enum CoreProcessEventsOption
            {
                ProcessOneAndAllPending = 0,
                ProcessOneIfPresent     = 1,
                ProcessUntilQuit        = 2,
                ProcessAllIfPresent     = 3
            };

            [version(0x06020000)]
            enum CoreWindowFlowDirection
            {
                LeftToRight = 0,
                RightToLeft = 1
            };

            [version(0x06020000)]
            [flags]
            enum CoreVirtualKeyStates
            {
                None   = 0x0,
                Down   = 0x1,
                Locked = 0x2
            };

            [version(0x06020000)]
            enum CoreAcceleratorKeyEventType
            {
                Character           = 2,
                DeadCharacter       = 3,
                KeyDown             = 0,
                KeyUp               = 1,
                SystemCharacter     = 6,
                SystemDeadCharacter = 7,
                SystemKeyDown       = 4,
                SystemKeyUp         = 5,
                UnicodeCharacter    = 8
            };

            [version(0x06020000)]
            enum CoreProximityEvaluationScore
            {
                Closest  = 0,
                Farthest = 2147483647
            };

            [version(0x06020000)]
            struct CorePhysicalKeyStatus
            {
                UINT32 RepeatCount;
                UINT32 ScanCode;
                boolean IsExtendedKey;
                boolean IsMenuKeyDown;
                boolean WasKeyDown;
                boolean IsKeyReleased;
            };

            [version(0x06020000)]
            struct CoreProximityEvaluation
            {
                INT32 Score;
                Windows.Foundation.Point AdjustedPoint;
            };

            [uuid(D1F276C4-98D8-4636-BF49-EB79507548E9)]
            [version(0x06020000)]
            delegate
                HRESULT DispatchedHandler();

            [uuid(A42B0C24-7F21-4ABC-99C1-8F01007F0880)]
            [version(0x06020000)]
            delegate
                HRESULT IdleDispatchedHandler([in] Windows.UI.Core.IdleDispatchedHandlerArgs* e);

            [uuid(272B1EF3-C633-4DA5-A26C-C6D0F56B29DA)]
            [version(0x06020000)]
            interface ICoreWindowEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
            }

            [uuid(961FF258-21BF-4B42-A298-FA479D4C52E2)]
            [exclusiveto(Windows.UI.Core.AutomationProviderRequestedEventArgs)]
            [version(0x06020000)]
            interface IAutomationProviderRequestedEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT AutomationProvider([out] [retval] IInspectable** value);
                [propput] HRESULT AutomationProvider([in] IInspectable* value);
            }

            [uuid(C584659F-99B2-4BCC-BD33-04E63F42902E)]
            [exclusiveto(Windows.UI.Core.CharacterReceivedEventArgs)]
            [version(0x06020000)]
            interface ICharacterReceivedEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT KeyCode([out] [retval] UINT32* value);
                [propget] HRESULT KeyStatus([out] [retval] Windows.UI.Core.CorePhysicalKeyStatus* value);
            }

            [uuid(80371D4F-2FD8-4C24-AA86-3163A87B4E5A)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.InputEnabledEventArgs)]
            interface IInputEnabledEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT InputEnabled([out] [retval] boolean* value);
            }

            [uuid(5FF5E930-2544-4A17-BD78-1F2FDEBB106B)]
            [exclusiveto(Windows.UI.Core.KeyEventArgs)]
            [version(0x06020000)]
            interface IKeyEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT VirtualKey([out] [retval] Windows.System.VirtualKey* value);
                [propget] HRESULT KeyStatus([out] [retval] Windows.UI.Core.CorePhysicalKeyStatus* value);
            }

            [uuid(920D9CB1-A5FC-4A21-8C09-49DFE6FFE25F)]
            [exclusiveto(Windows.UI.Core.PointerEventArgs)]
            [version(0x06020000)]
            interface IPointerEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT CurrentPoint([out] [retval] Windows.UI.Input.PointerPoint** value);
                [propget] HRESULT KeyModifiers([out] [retval] Windows.System.VirtualKeyModifiers* value);
                HRESULT GetIntermediatePoints([out] [retval] Windows.Foundation.Collections.IVector<Windows.UI.Input.PointerPoint*>** value);
            }

            [uuid(22F3B823-0B7C-424E-9DF7-33D4F962931B)]
            [exclusiveto(Windows.UI.Core.TouchHitTestingEventArgs)]
            [version(0x06020000)]
            interface ITouchHitTestingEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT ProximityEvaluation([out] [retval] Windows.UI.Core.CoreProximityEvaluation* value);
                [propput] HRESULT ProximityEvaluation([in] Windows.UI.Core.CoreProximityEvaluation value);
                [propget] HRESULT Point([out] [retval] Windows.Foundation.Point* value);
                [propget] HRESULT BoundingBox([out] [retval] Windows.Foundation.Rect* value);
                [default_overload] [overload("EvaluateProximity")] HRESULT EvaluateProximityToRect([in] Windows.Foundation.Rect controlBoundingBox, [out] [retval] Windows.UI.Core.CoreProximityEvaluation* proximityEvaluation);
                [overload("EvaluateProximity")] HRESULT EvaluateProximityToPolygon([in] UINT32 __controlVerticesSize, [in] [size_is(__controlVerticesSize)] Windows.Foundation.Point* controlVertices, [out] [retval] Windows.UI.Core.CoreProximityEvaluation* proximityEvaluation);
            }

            [uuid(179D65E7-4658-4CB6-AA13-41D094EA255E)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.WindowActivatedEventArgs)]
            interface IWindowActivatedEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT WindowActivationState([out] [retval] Windows.UI.Core.CoreWindowActivationState* value);
            }

            [uuid(5A200EC7-0426-47DC-B86C-6F475915E451)]
            [exclusiveto(Windows.UI.Core.WindowSizeChangedEventArgs)]
            [version(0x06020000)]
            interface IWindowSizeChangedEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT Size([out] [retval] Windows.Foundation.Size* value);
            }

            [uuid(BF9918EA-D801-4564-A495-B1E84F8AD085)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.VisibilityChangedEventArgs)]
            interface IVisibilityChangedEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT Visible([out] [retval] boolean* value);
            }

            [uuid(79B9D5F2-879E-4B89-B798-79E47598030C)]
            [version(0x06020000)]
            interface ICoreWindow : IInspectable
            {
                [propget] HRESULT AutomationHostProvider([out] [retval] IInspectable** value);
                [propget] HRESULT Bounds([out] [retval] Windows.Foundation.Rect* value);
                [propget] HRESULT CustomProperties([out] [retval] Windows.Foundation.Collections.IPropertySet** value);
                [propget] HRESULT Dispatcher([out] [retval] Windows.UI.Core.CoreDispatcher** value);
                [propget] HRESULT FlowDirection([out] [retval] Windows.UI.Core.CoreWindowFlowDirection* value);
                [propput] HRESULT FlowDirection([in] Windows.UI.Core.CoreWindowFlowDirection value);
                [propget] HRESULT IsInputEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsInputEnabled([in] boolean value);
                [propget] HRESULT PointerCursor([out] [retval] Windows.UI.Core.CoreCursor** value);
                [propput] HRESULT PointerCursor([in] Windows.UI.Core.CoreCursor* value);
                [propget] HRESULT PointerPosition([out] [retval] Windows.Foundation.Point* value);
                [propget] HRESULT Visible([out] [retval] boolean* value);
                HRESULT Activate();
                HRESULT Close();
                HRESULT GetAsyncKeyState([in] Windows.System.VirtualKey virtualKey, [out] [retval] Windows.UI.Core.CoreVirtualKeyStates* KeyState);
                HRESULT GetKeyState([in] Windows.System.VirtualKey virtualKey, [out] [retval] Windows.UI.Core.CoreVirtualKeyStates* KeyState);
                HRESULT ReleasePointerCapture();
                HRESULT SetPointerCapture();
                [eventadd] HRESULT Activated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.WindowActivatedEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT Activated([in] EventRegistrationToken cookie);
                [eventadd] HRESULT AutomationProviderRequested([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.AutomationProviderRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT AutomationProviderRequested([in] EventRegistrationToken cookie);
                [eventadd] HRESULT CharacterReceived([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.CharacterReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT CharacterReceived([in] EventRegistrationToken cookie);
                [eventadd] HRESULT Closed([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.CoreWindowEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT Closed([in] EventRegistrationToken cookie);
                [eventadd] HRESULT InputEnabled([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.InputEnabledEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT InputEnabled([in] EventRegistrationToken cookie);
                [eventadd] HRESULT KeyDown([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.KeyEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT KeyDown([in] EventRegistrationToken cookie);
                [eventadd] HRESULT KeyUp([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.KeyEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT KeyUp([in] EventRegistrationToken cookie);
                [eventadd] HRESULT PointerCaptureLost([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT PointerCaptureLost([in] EventRegistrationToken cookie);
                [eventadd] HRESULT PointerEntered([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT PointerEntered([in] EventRegistrationToken cookie);
                [eventadd] HRESULT PointerExited([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT PointerExited([in] EventRegistrationToken cookie);
                [eventadd] HRESULT PointerMoved([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT PointerMoved([in] EventRegistrationToken cookie);
                [eventadd] HRESULT PointerPressed([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT PointerPressed([in] EventRegistrationToken cookie);
                [eventadd] HRESULT PointerReleased([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT PointerReleased([in] EventRegistrationToken cookie);
                [eventadd] HRESULT TouchHitTesting([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.TouchHitTestingEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT TouchHitTesting([in] EventRegistrationToken cookie);
                [eventadd] HRESULT PointerWheelChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT PointerWheelChanged([in] EventRegistrationToken cookie);
                [eventadd] HRESULT SizeChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.WindowSizeChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT SizeChanged([in] EventRegistrationToken cookie);
                [eventadd] HRESULT VisibilityChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.VisibilityChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT VisibilityChanged([in] EventRegistrationToken cookie);
            }

            [uuid(4D239005-3C2A-41B1-9022-536BB9CF93B1)]
            [exclusiveto(Windows.UI.Core.CoreWindow)]
            [version(0x06020000)]
            interface ICoreWindowStatic : IInspectable
            {
                HRESULT GetForCurrentThread([out] [retval] Windows.UI.Core.CoreWindow** ppWindow);
            }

            [uuid(FF1C4C4A-9287-470B-836E-9086E3126ADE)]
            [exclusiveto(Windows.UI.Core.AcceleratorKeyEventArgs)]
            [version(0x06020000)]
            interface IAcceleratorKeyEventArgs : IInspectable
                requires
                    Windows.UI.Core.ICoreWindowEventArgs
            {
                [propget] HRESULT EventType([out] [retval] Windows.UI.Core.CoreAcceleratorKeyEventType* value);
                [propget] HRESULT VirtualKey([out] [retval] Windows.System.VirtualKey* value);
                [propget] HRESULT KeyStatus([out] [retval] Windows.UI.Core.CorePhysicalKeyStatus* value);
            }

            [uuid(9FFDF7F5-B8C9-4EF0-B7D2-1DE626561FC8)]
            [version(0x06020000)]
            interface ICoreAcceleratorKeys : IInspectable
            {
                [eventadd] HRESULT AcceleratorKeyActivated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreDispatcher*, Windows.UI.Core.AcceleratorKeyEventArgs*>* handler, [out] [retval] EventRegistrationToken* pCookie);
                [eventremove] HRESULT AcceleratorKeyActivated([in] EventRegistrationToken cookie);
            }

            [uuid(60DB2FA8-B705-4FDE-A7D6-EBBB1891D39E)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.CoreDispatcher)]
            interface ICoreDispatcher : IInspectable
                requires
                    Windows.UI.Core.ICoreAcceleratorKeys
            {
                [propget] HRESULT HasThreadAccess([out] [retval] boolean* value);
                HRESULT ProcessEvents([in] Windows.UI.Core.CoreProcessEventsOption options);
                HRESULT RunAsync([in] Windows.UI.Core.CoreDispatcherPriority priority, [in] Windows.UI.Core.DispatchedHandler* agileCallback, [out] [retval] Windows.Foundation.IAsyncAction** asyncAction);
                HRESULT RunIdleAsync([in] Windows.UI.Core.IdleDispatchedHandler* agileCallback, [out] [retval] Windows.Foundation.IAsyncAction** asyncAction);
            }

            [uuid(98BB6A24-DC1C-43CB-B4ED-D1C0EB2391F3)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.IdleDispatchedHandlerArgs)]
            interface IIdleDispatchedHandlerArgs : IInspectable
            {
                [propget] HRESULT IsDispatcherIdle([out] [retval] boolean* value);
            }

            [uuid(96893ACF-111D-442C-8A77-B87992F8E2D6)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.CoreCursor)]
            interface ICoreCursor : IInspectable
            {
                [propget] HRESULT Id([out] [retval] UINT32* value);
                [propget] HRESULT Type([out] [retval] Windows.UI.Core.CoreCursorType* value);
            }

            [uuid(F6359621-A79D-4ED3-8C32-A9EF9D6B76A4)]
            [exclusiveto(Windows.UI.Core.CoreCursor)]
            [version(0x06020000)]
            interface ICoreCursorFactory : IInspectable
            {
                HRESULT CreateCursor([in] Windows.UI.Core.CoreCursorType type, [in] UINT32 id, [out] [retval] Windows.UI.Core.CoreCursor** cursor);
            }

            [uuid(188F20D6-9873-464A-ACE5-57E010F465E6)]
            [version(0x06020000)]
            interface IInitializeWithCoreWindow : IInspectable
            {
                HRESULT Initialize([in] Windows.UI.Core.CoreWindow* window);
            }

            [uuid(B8F0B925-B350-48B3-A198-5C1A84700243)]
            [exclusiveto(Windows.UI.Core.CoreWindowResizeManager)]
            [version(0x06020000)]
            interface ICoreWindowResizeManager : IInspectable
            {
                HRESULT NotifyLayoutCompleted();
            }

            [uuid(AE4A9045-6D70-49DB-8E68-46FFBD17D38D)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.CoreWindowResizeManager)]
            interface ICoreWindowResizeManagerStatics : IInspectable
            {
                HRESULT GetForCurrentView([out] [retval] Windows.UI.Core.CoreWindowResizeManager** CoreWindowResizeManager);
            }

            [uuid(26155FA2-5BA5-4EA4-A3B4-2DC7D63C8E26)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.CoreWindowPopupShowingEventArgs)]
            interface ICoreWindowPopupShowingEventArgs : IInspectable
            {
                HRESULT SetDesiredSize([in] Windows.Foundation.Size value);
            }

            [uuid(E7392CE0-C78D-427E-8B2C-01FF420C69D5)]
            [exclusiveto(Windows.UI.Core.CoreWindowDialog)]
            [version(0x06020000)]
            interface ICoreWindowDialog : IInspectable
            {
                [eventadd] HRESULT Showing([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.CoreWindowPopupShowingEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT Showing([in] EventRegistrationToken cookie);
                [propget] HRESULT MaxSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT MinSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propput] HRESULT Title([in] HSTRING value);
                [propget] HRESULT IsInteractionDelayed([out] [retval] INT32* value);
                [propput] HRESULT IsInteractionDelayed([in] INT32 value);
                [propget] HRESULT Commands([out] [retval] Windows.Foundation.Collections.IVector<Windows.UI.Popups.IUICommand*>** value);
                [propget] HRESULT DefaultCommandIndex([out] [retval] UINT32* value);
                [propput] HRESULT DefaultCommandIndex([in] UINT32 value);
                [propget] HRESULT CancelCommandIndex([out] [retval] UINT32* value);
                [propput] HRESULT CancelCommandIndex([in] UINT32 value);
                [propget] HRESULT BackButtonCommand([out] [retval] Windows.UI.Popups.UICommandInvokedHandler** value);
                [propput] HRESULT BackButtonCommand([in] Windows.UI.Popups.UICommandInvokedHandler* value);
                HRESULT ShowAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.UI.Popups.IUICommand*>** asyncInfo);
            }

            [uuid(CFB2A855-1C59-4B13-B1E5-16E29805F7C4)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.CoreWindowDialog)]
            interface ICoreWindowDialogFactory : IInspectable
            {
                HRESULT CreateWithTitle([in] HSTRING title, [out] [retval] Windows.UI.Core.CoreWindowDialog** coreWindowDialog);
            }

            [uuid(E89D854D-2050-40BB-B344-F6F355EEB314)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.Core.CoreWindowFlyout)]
            interface ICoreWindowFlyout : IInspectable
            {
                [eventadd] HRESULT Showing([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.CoreWindow*, Windows.UI.Core.CoreWindowPopupShowingEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT Showing([in] EventRegistrationToken cookie);
                [propget] HRESULT MaxSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT MinSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propput] HRESULT Title([in] HSTRING value);
                [propget] HRESULT IsInteractionDelayed([out] [retval] INT32* value);
                [propput] HRESULT IsInteractionDelayed([in] INT32 value);
                [propget] HRESULT Commands([out] [retval] Windows.Foundation.Collections.IVector<Windows.UI.Popups.IUICommand*>** value);
                [propget] HRESULT DefaultCommandIndex([out] [retval] UINT32* value);
                [propput] HRESULT DefaultCommandIndex([in] UINT32 value);
                [propget] HRESULT BackButtonCommand([out] [retval] Windows.UI.Popups.UICommandInvokedHandler** value);
                [propput] HRESULT BackButtonCommand([in] Windows.UI.Popups.UICommandInvokedHandler* value);
                HRESULT ShowAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.UI.Popups.IUICommand*>** asyncInfo);
            }

            [uuid(DEC4C6C4-93E8-4F7C-BE27-CEFAA1AF68A7)]
            [exclusiveto(Windows.UI.Core.CoreWindowFlyout)]
            [version(0x06020000)]
            interface ICoreWindowFlyoutFactory : IInspectable
            {
                HRESULT Create([in] Windows.Foundation.Point position, [out] [retval] Windows.UI.Core.CoreWindowFlyout** coreWindowFlyout);
                HRESULT CreateWithTitle([in] Windows.Foundation.Point position, [in] HSTRING title, [out] [retval] Windows.UI.Core.CoreWindowFlyout** coreWindowFlyout);
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass CoreDispatcher
            {
                [default] interface Windows.UI.Core.ICoreDispatcher;
                interface Windows.UI.Core.ICoreAcceleratorKeys;
            }

            [version(0x06020000)]
            [marshaling_behavior(agile)]
            [activatable(Windows.UI.Core.ICoreCursorFactory, 0x06020000)]
            runtimeclass CoreCursor
            {
                [default] interface Windows.UI.Core.ICoreCursor;
            }

            [marshaling_behavior(standard)]
            [version(0x06020000)]
            [static(Windows.UI.Core.ICoreWindowStatic, 0x06020000)]
            runtimeclass CoreWindow
            {
                [default] interface Windows.UI.Core.ICoreWindow;
            }

            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass WindowActivatedEventArgs
            {
                [default] interface Windows.UI.Core.IWindowActivatedEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [marshaling_behavior(standard)]
            [version(0x06020000)]
            runtimeclass AutomationProviderRequestedEventArgs
            {
                [default] interface Windows.UI.Core.IAutomationProviderRequestedEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass CharacterReceivedEventArgs
            {
                [default] interface Windows.UI.Core.ICharacterReceivedEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [marshaling_behavior(standard)]
            [version(0x06020000)]
            runtimeclass CoreWindowEventArgs
            {
                [default] interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass InputEnabledEventArgs
            {
                [default] interface Windows.UI.Core.IInputEnabledEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass KeyEventArgs
            {
                [default] interface Windows.UI.Core.IKeyEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [marshaling_behavior(standard)]
            [version(0x06020000)]
            runtimeclass PointerEventArgs
            {
                [default] interface Windows.UI.Core.IPointerEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [marshaling_behavior(standard)]
            [version(0x06020000)]
            runtimeclass TouchHitTestingEventArgs
            {
                [default] interface Windows.UI.Core.ITouchHitTestingEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass WindowSizeChangedEventArgs
            {
                [default] interface Windows.UI.Core.IWindowSizeChangedEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [marshaling_behavior(standard)]
            [version(0x06020000)]
            runtimeclass VisibilityChangedEventArgs
            {
                [default] interface Windows.UI.Core.IVisibilityChangedEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass IdleDispatchedHandlerArgs
            {
                [default] interface Windows.UI.Core.IIdleDispatchedHandlerArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass AcceleratorKeyEventArgs
            {
                [default] interface Windows.UI.Core.IAcceleratorKeyEventArgs;
                interface Windows.UI.Core.ICoreWindowEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass CoreAcceleratorKeys
            {
                [default] interface Windows.UI.Core.ICoreAcceleratorKeys;
            }

            [version(0x06020000)]
            [static(Windows.UI.Core.ICoreWindowResizeManagerStatics, 0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass CoreWindowResizeManager
            {
                [default] interface Windows.UI.Core.ICoreWindowResizeManager;
            }

            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass CoreWindowPopupShowingEventArgs
            {
                [default] interface Windows.UI.Core.ICoreWindowPopupShowingEventArgs;
            }

            [marshaling_behavior(standard)]
            [activatable(0x06020000)]
            [version(0x06020000)]
            [activatable(Windows.UI.Core.ICoreWindowDialogFactory, 0x06020000)]
            runtimeclass CoreWindowDialog
            {
                [default] interface Windows.UI.Core.ICoreWindowDialog;
            }

            [activatable(Windows.UI.Core.ICoreWindowFlyoutFactory, 0x06020000)]
            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass CoreWindowFlyout
            {
                [default] interface Windows.UI.Core.ICoreWindowFlyout;
            }
        }
    }
}
