//
// 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";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Resources
            {
                interface ICustomXamlResourceLoader;

                interface ICustomXamlResourceLoaderFactory;

                interface ICustomXamlResourceLoaderOverrides;

                interface ICustomXamlResourceLoaderStatics;

                runtimeclass CustomXamlResourceLoader;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Resources
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Resources.CustomXamlResourceLoader)]
                [uuid(511A84AB-4A88-419F-852E-54083B90B078)]
                interface ICustomXamlResourceLoader : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Resources.CustomXamlResourceLoader)]
                [uuid(5BFD7E49-7886-44F3-8ED3-6FEC0463ED69)]
                interface ICustomXamlResourceLoaderFactory : IInspectable
                {
                    HRESULT CreateInstance([in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Resources.CustomXamlResourceLoader** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Resources.CustomXamlResourceLoader)]
                [uuid(F851E991-AF02-46E8-9AF8-427B7EBFE9F8)]
                interface ICustomXamlResourceLoaderOverrides : IInspectable
                {
                    HRESULT GetResource([in] HSTRING resourceId, [in] HSTRING objectType, [in] HSTRING propertyName, [in] HSTRING propertyType, [out] [retval] IInspectable** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Resources.CustomXamlResourceLoader)]
                [uuid(224FF617-E4DC-4C27-AD32-DB93D5D0E5DA)]
                interface ICustomXamlResourceLoaderStatics : IInspectable
                {
                    [propget] HRESULT Current([out] [retval] Windows.UI.Xaml.Resources.CustomXamlResourceLoader** value);
                    [propput] HRESULT Current([in] Windows.UI.Xaml.Resources.CustomXamlResourceLoader* value);
                }

                [composable(Windows.UI.Xaml.Resources.ICustomXamlResourceLoaderFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Resources.ICustomXamlResourceLoaderStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass CustomXamlResourceLoader
                {
                    [default] interface Windows.UI.Xaml.Resources.ICustomXamlResourceLoader;
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)] [overridable] interface Windows.UI.Xaml.Resources.ICustomXamlResourceLoaderOverrides;
                }
            }
        }
    }
}
