//
// 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.ApplicationModel.idl";
import "Windows.ApplicationModel.Activation.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(__windows2Eapplicationmodel_h__)")
cpp_quote("#include <Windows.ApplicationModel.h>")
cpp_quote("#endif // !defined(__windows2Eapplicationmodel_h__)")
cpp_quote("#if !defined(__windows2Eapplicationmodel2Eactivation_h__)")
cpp_quote("#include <Windows.ApplicationModel.Activation.h>")
cpp_quote("#endif // !defined(__windows2Eapplicationmodel2Eactivation_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 ApplicationModel
    {
        namespace Activation
        {
            interface IActivatedEventArgs;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        runtimeclass SuspendingEventArgs;
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            interface IPropertySet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IGetActivationFactory;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            runtimeclass CoreDispatcher;

            runtimeclass CoreWindow;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Core
        {
            interface IFrameworkView;

            interface IFrameworkViewSource;

            interface ICoreApplication;

            interface ICoreApplicationUseCount;

            interface ICoreApplicationExit;

            interface ICoreImmersiveApplication;

            interface ICoreImmersiveApplication2;

            interface ICoreApplicationUnhandledError;

            interface ICoreApplicationView;

            interface ICoreApplicationView2;

            interface IUnhandledErrorDetectedEventArgs;

            interface IUnhandledError;

            runtimeclass CoreApplication;

            runtimeclass CoreApplicationView;

            runtimeclass UnhandledErrorDetectedEventArgs;

            runtimeclass UnhandledError;
        }
    }
}

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

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

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

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

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Core
        {
            [uuid(FAAB5CD0-8924-45AC-AD0F-A08FAE5D0324)]
            [version(0x06020000)]
            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();
            }

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

            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(0AACF7A4-5E1D-49DF-8034-FB6A68BC5ED1)]
            [version(0x06020000)]
            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);
            }

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

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

            [exclusiveto(Windows.ApplicationModel.Core.CoreApplication)]
            [uuid(1ADA0E3E-E4A2-4123-B451-DC96BF800419)]
            [version(0x06020000)]
            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);
            }

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

            [uuid(F0E24AB0-DD09-42E1-B0BC-E0E131F78D7E)]
            [version(0x06030000)]
            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);
            }

            [exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView)]
            [uuid(638BB2DB-451D-4661-B099-414F34FFB9F1)]
            [version(0x06020000)]
            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);
            }

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

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

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

            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.Core.ICoreApplicationUnhandledError, 0x06030000)]
            [static(Windows.ApplicationModel.Core.ICoreImmersiveApplication, 0x06020000)]
            [static(Windows.ApplicationModel.Core.ICoreApplication, 0x06020000)]
            [static(Windows.ApplicationModel.Core.ICoreImmersiveApplication2, 0x06030000)]
            [static(Windows.ApplicationModel.Core.ICoreApplicationExit, 0x06020000)]
            [static(Windows.ApplicationModel.Core.ICoreApplicationUseCount, 0x06020000)]
            [version(0x06020000)]
            runtimeclass CoreApplication
            {
            }

            [marshaling_behavior(standard)]
            [version(0x06020000)]
            runtimeclass CoreApplicationView
            {
                [default] interface Windows.ApplicationModel.Core.ICoreApplicationView;
                [version(0x06030000)] interface Windows.ApplicationModel.Core.ICoreApplicationView2;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass UnhandledErrorDetectedEventArgs
            {
                [default] interface Windows.ApplicationModel.Core.IUnhandledErrorDetectedEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass UnhandledError
            {
                [default] interface Windows.ApplicationModel.Core.IUnhandledError;
            }
        }
    }
}
