//
// 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.UI.Core.idl";

// Forward Declare
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            apicontract CoreWindowFactoryContract;

            interface ICoreWindowFactory;

            runtimeclass HostedCoreWindowFactory;

            runtimeclass ImmersiveCoreWindowFactory;

            runtimeclass UAPCoreWindowFactory;
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            [contractversion(1.0)]
            apicontract CoreWindowFactoryContract
            {
            }

            [contract(Windows.UI.Core.CoreWindowFactoryContract, 1.0)]
            [uuid(CD292360-2763-4085-8A9F-74B224A29175)]
            interface ICoreWindowFactory : IInspectable
            {
                HRESULT CreateCoreWindow([in] HSTRING windowTitle, [out] [retval] Windows.UI.Core.CoreWindow** window);
                [propget] HRESULT WindowReuseAllowed([out] [retval] boolean* value);
            }

            [contract(Windows.UI.Core.CoreWindowFactoryContract, 1.0)]
            runtimeclass HostedCoreWindowFactory
            {
                [default] interface Windows.UI.Core.ICoreWindowFactory;
            }

            [contract(Windows.UI.Core.CoreWindowFactoryContract, 1.0)]
            runtimeclass ImmersiveCoreWindowFactory
            {
                [default] interface Windows.UI.Core.ICoreWindowFactory;
            }

            [contract(Windows.UI.Core.CoreWindowFactoryContract, 1.0)]
            runtimeclass UAPCoreWindowFactory
            {
                [default] interface Windows.UI.Core.ICoreWindowFactory;
            }
        }
    }
}
