//
// 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.ApplicationModel.idl";
import "Windows.ApplicationModel.Activation.idl";
import "Windows.System.idl";
import "Windows.UI.Core.idl";

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Activation
        {
            runtimeclass BackgroundActivatedEventArgs;

            interface IActivatedEventArgs;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        runtimeclass AppDisplayInfo;

        runtimeclass AppInfo;

        runtimeclass EnteredBackgroundEventArgs;

        runtimeclass LeavingBackgroundEventArgs;

        runtimeclass SuspendingEventArgs;
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            interface IPropertySet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Deferral;

        interface IGetActivationFactory;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace System
    {
        runtimeclass DispatcherQueue;

        runtimeclass User;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            runtimeclass CoreDispatcher;

            runtimeclass CoreWindow;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Core
        {
            typedef enum AppRestartFailureReason AppRestartFailureReason;

            interface IAppListEntry;

            interface IAppListEntry2;

            interface IAppListEntry3;

            interface IAppListEntry4;

            interface ICoreApplication;

            interface ICoreApplication2;

            interface ICoreApplication3;

            interface ICoreApplicationExit;

            interface ICoreApplicationUnhandledError;

            interface ICoreApplicationUseCount;

            interface ICoreApplicationView;

            interface ICoreApplicationView2;

            interface ICoreApplicationView3;

            interface ICoreApplicationView5;

            interface ICoreApplicationView6;

            interface ICoreApplicationViewTitleBar;

            interface ICoreImmersiveApplication;

            interface ICoreImmersiveApplication2;

            interface ICoreImmersiveApplication3;

            interface IFrameworkView;

            interface IFrameworkViewSource;

            interface IHostedViewClosingEventArgs;

            interface IUnhandledError;

            interface IUnhandledErrorDetectedEventArgs;

            runtimeclass AppListEntry;

            runtimeclass CoreApplication;

            runtimeclass CoreApplicationView;

            runtimeclass CoreApplicationViewTitleBar;

            runtimeclass HostedViewClosingEventArgs;

            runtimeclass UnhandledError;

            runtimeclass UnhandledErrorDetectedEventArgs;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Core
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Core.AppListEntry*>;

                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Core.CoreApplicationView*>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.Core.AppListEntry*>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.Core.CoreApplicationView*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Core.AppListEntry*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Core.CoreApplicationView*>;

                interface Windows.Foundation.EventHandler<Windows.ApplicationModel.Core.UnhandledErrorDetectedEventArgs*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Core.AppRestartFailureReason>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Core.AppListEntry*>*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Core.CoreApplicationView*, Windows.ApplicationModel.Core.HostedViewClosingEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Core.CoreApplicationViewTitleBar*, IInspectable*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Core
        {
            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            enum AppRestartFailureReason
            {
                RestartPending  = 0,
                NotInForeground = 1,
                InvalidUser     = 2,
                Other           = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.AppListEntry)]
            [uuid(EF00F07F-2108-490A-877A-8A9F17C25FAD)]
            interface IAppListEntry : IInspectable
            {
                [propget] HRESULT DisplayInfo([out] [retval] Windows.ApplicationModel.AppDisplayInfo** value);
                HRESULT LaunchAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.Core.AppListEntry)]
            [uuid(D0A618AD-BF35-42AC-AC06-86EEEB41D04B)]
            interface IAppListEntry2 : IInspectable
            {
                [propget] HRESULT AppUserModelId([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.ApplicationModel.Core.AppListEntry)]
            [uuid(6099F28D-FC32-470A-BC69-4B061A76EF2E)]
            interface IAppListEntry3 : IInspectable
            {
                HRESULT LaunchForUserAsync([in] Windows.System.User* user, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 11.0)]
            [exclusiveto(Windows.ApplicationModel.Core.AppListEntry)]
            [uuid(2A131ED2-56F5-487C-8697-5166F3B33DA0)]
            interface IAppListEntry4 : IInspectable
            {
                [propget] HRESULT AppInfo([out] [retval] Windows.ApplicationModel.AppInfo** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(0AACF7A4-5E1D-49DF-8034-FB6A68BC5ED1)]
            interface ICoreApplication : IInspectable
            {
                [propget] HRESULT Id([out] [retval] HSTRING* value);
                [eventadd] HRESULT Suspending([in] Windows.Foundation.EventHandler<Windows.ApplicationModel.SuspendingEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Suspending([in] EventRegistrationToken token);
                [eventadd] HRESULT Resuming([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Resuming([in] EventRegistrationToken token);
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IPropertySet** value);
                HRESULT GetCurrentView([out] [retval] Windows.ApplicationModel.Core.CoreApplicationView** value);
                HRESULT Run([in] Windows.ApplicationModel.Core.IFrameworkViewSource* viewSource);
                HRESULT RunWithActivationFactories([in] Windows.Foundation.IGetActivationFactory* activationFactoryCallback);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(998681FB-1AB6-4B7F-BE4A-9A0645224C04)]
            interface ICoreApplication2 : IInspectable
            {
                [eventadd] HRESULT BackgroundActivated([in] Windows.Foundation.EventHandler<Windows.ApplicationModel.Activation.BackgroundActivatedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BackgroundActivated([in] EventRegistrationToken token);
                [eventadd] HRESULT LeavingBackground([in] Windows.Foundation.EventHandler<Windows.ApplicationModel.LeavingBackgroundEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT LeavingBackground([in] EventRegistrationToken token);
                [eventadd] HRESULT EnteredBackground([in] Windows.Foundation.EventHandler<Windows.ApplicationModel.EnteredBackgroundEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT EnteredBackground([in] EventRegistrationToken token);
                HRESULT EnablePrelaunch([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(FEEC0D39-598B-4507-8A67-772632580A57)]
            interface ICoreApplication3 : IInspectable
            {
                HRESULT RequestRestartAsync([in] HSTRING launchArguments, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Core.AppRestartFailureReason>** operation);
                HRESULT RequestRestartForUserAsync([in] Windows.System.User* user, [in] HSTRING launchArguments, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Core.AppRestartFailureReason>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(CF86461D-261E-4B72-9ACD-44ED2ACE6A29)]
            interface ICoreApplicationExit : IInspectable
            {
                HRESULT Exit();
                [eventadd] HRESULT Exiting([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Exiting([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(F0E24AB0-DD09-42E1-B0BC-E0E131F78D7E)]
            interface ICoreApplicationUnhandledError : IInspectable
            {
                [eventadd] HRESULT UnhandledErrorDetected([in] Windows.Foundation.EventHandler<Windows.ApplicationModel.Core.UnhandledErrorDetectedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT UnhandledErrorDetected([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(518DC408-C077-475B-809E-0BC0C57E4B74)]
            interface ICoreApplicationUseCount : IInspectable
            {
                HRESULT IncrementApplicationUseCount();
                HRESULT DecrementApplicationUseCount();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView)]
            [uuid(638BB2DB-451D-4661-B099-414F34FFB9F1)]
            interface ICoreApplicationView : IInspectable
            {
                [propget] HRESULT CoreWindow([out] [retval] Windows.UI.Core.CoreWindow** value);
                [eventadd] HRESULT Activated([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Core.CoreApplicationView*, Windows.ApplicationModel.Activation.IActivatedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Activated([in] EventRegistrationToken token);
                [propget] HRESULT IsMain([out] [retval] boolean* value);
                [propget] HRESULT IsHosted([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView)]
            [uuid(68EB7ADF-917F-48EB-9AEB-7DE53E086AB1)]
            interface ICoreApplicationView2 : IInspectable
            {
                [propget] HRESULT Dispatcher([out] [retval] Windows.UI.Core.CoreDispatcher** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView)]
            [uuid(07EBE1B3-A4CF-4550-AB70-B07E85330BC8)]
            interface ICoreApplicationView3 : IInspectable
            {
                [propget] HRESULT IsComponent([out] [retval] boolean* value);
                [propget] HRESULT TitleBar([out] [retval] Windows.ApplicationModel.Core.CoreApplicationViewTitleBar** value);
                [eventadd] HRESULT HostedViewClosing([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Core.CoreApplicationView*, Windows.ApplicationModel.Core.HostedViewClosingEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT HostedViewClosing([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView)]
            [uuid(2BC095A8-8EF0-446D-9E60-3A3E0428C671)]
            interface ICoreApplicationView5 : IInspectable
            {
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IPropertySet** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView)]
            [uuid(C119D49A-0679-49BA-803F-B79C5CF34CCA)]
            interface ICoreApplicationView6 : IInspectable
            {
                [propget] HRESULT DispatcherQueue([out] [retval] Windows.System.DispatcherQueue** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplicationViewTitleBar)]
            [uuid(006D35E3-E1F1-431B-9508-29B96926AC53)]
            interface ICoreApplicationViewTitleBar : IInspectable
            {
                [propput] HRESULT ExtendViewIntoTitleBar([in] boolean value);
                [propget] HRESULT ExtendViewIntoTitleBar([out] [retval] boolean* value);
                [propget] HRESULT SystemOverlayLeftInset([out] [retval] DOUBLE* value);
                [propget] HRESULT SystemOverlayRightInset([out] [retval] DOUBLE* value);
                [propget] HRESULT Height([out] [retval] DOUBLE* value);
                [eventadd] HRESULT LayoutMetricsChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Core.CoreApplicationViewTitleBar*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT LayoutMetricsChanged([in] EventRegistrationToken token);
                [propget] HRESULT IsVisible([out] [retval] boolean* value);
                [eventadd] HRESULT IsVisibleChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Core.CoreApplicationViewTitleBar*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT IsVisibleChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(1ADA0E3E-E4A2-4123-B451-DC96BF800419)]
            interface ICoreImmersiveApplication : IInspectable
            {
                [propget] HRESULT Views([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Core.CoreApplicationView*>** value);
                [default_overload] [overload("CreateNewView")] HRESULT CreateNewView([in] HSTRING runtimeType, [in] HSTRING entryPoint, [out] [retval] Windows.ApplicationModel.Core.CoreApplicationView** view);
                [propget] HRESULT MainView([out] [retval] Windows.ApplicationModel.Core.CoreApplicationView** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(828E1E36-E9E3-4CFC-9B66-48B78EA9BB2C)]
            interface ICoreImmersiveApplication2 : IInspectable
            {
                [overload("CreateNewView")] HRESULT CreateNewViewFromMainView([out] [retval] Windows.ApplicationModel.Core.CoreApplicationView** view);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(34A05B2F-EE0D-41E5-8314-CF10C91BF0AF)]
            interface ICoreImmersiveApplication3 : IInspectable
            {
                [overload("CreateNewView")] HRESULT CreateNewViewWithViewSource([in] Windows.ApplicationModel.Core.IFrameworkViewSource* viewSource, [out] [retval] Windows.ApplicationModel.Core.CoreApplicationView** view);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(FAAB5CD0-8924-45AC-AD0F-A08FAE5D0324)]
            interface IFrameworkView : IInspectable
            {
                HRESULT Initialize([in] Windows.ApplicationModel.Core.CoreApplicationView* applicationView);
                HRESULT SetWindow([in] Windows.UI.Core.CoreWindow* window);
                HRESULT Load([in] HSTRING entryPoint);
                HRESULT Run();
                HRESULT Uninitialize();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(CD770614-65C4-426C-9494-34FC43554862)]
            interface IFrameworkViewSource : IInspectable
            {
                HRESULT CreateView([out] [retval] Windows.ApplicationModel.Core.IFrameworkView** viewProvider);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.HostedViewClosingEventArgs)]
            [uuid(D238943C-B24E-4790-ACB5-3E4243C4FF87)]
            interface IHostedViewClosingEventArgs : IInspectable
            {
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.UnhandledError)]
            [uuid(9459B726-53B5-4686-9EAF-FA8162DC3980)]
            interface IUnhandledError : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                HRESULT Propagate();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Core.UnhandledErrorDetectedEventArgs)]
            [uuid(679AB78B-B336-4822-AC40-0D750F0B7A2B)]
            interface IUnhandledErrorDetectedEventArgs : IInspectable
            {
                [propget] HRESULT UnhandledError([out] [retval] Windows.ApplicationModel.Core.UnhandledError** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AppListEntry
            {
                [default] interface Windows.ApplicationModel.Core.IAppListEntry;
                [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.ApplicationModel.Core.IAppListEntry2;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.ApplicationModel.Core.IAppListEntry3;
                [contract(Windows.Foundation.UniversalApiContract, 11.0)] interface Windows.ApplicationModel.Core.IAppListEntry4;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.Core.ICoreApplication, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.ApplicationModel.Core.ICoreApplication2, Windows.Foundation.UniversalApiContract, 3.0)]
            [static(Windows.ApplicationModel.Core.ICoreApplication3, Windows.Foundation.UniversalApiContract, 5.0)]
            [static(Windows.ApplicationModel.Core.ICoreApplicationExit, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.ApplicationModel.Core.ICoreApplicationUnhandledError, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.ApplicationModel.Core.ICoreApplicationUseCount, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.ApplicationModel.Core.ICoreImmersiveApplication, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.ApplicationModel.Core.ICoreImmersiveApplication2, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.ApplicationModel.Core.ICoreImmersiveApplication3, Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass CoreApplication
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            runtimeclass CoreApplicationView
            {
                [default] interface Windows.ApplicationModel.Core.ICoreApplicationView;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.Core.ICoreApplicationView2;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.Core.ICoreApplicationView3;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.Core.ICoreApplicationView5;
                [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.ApplicationModel.Core.ICoreApplicationView6;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            runtimeclass CoreApplicationViewTitleBar
            {
                [default] interface Windows.ApplicationModel.Core.ICoreApplicationViewTitleBar;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass HostedViewClosingEventArgs
            {
                [default] interface Windows.ApplicationModel.Core.IHostedViewClosingEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass UnhandledError
            {
                [default] interface Windows.ApplicationModel.Core.IUnhandledError;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass UnhandledErrorDetectedEventArgs
            {
                [default] interface Windows.ApplicationModel.Core.IUnhandledErrorDetectedEventArgs;
            }
        }
    }
}
