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

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace UI
    {
        runtimeclass UIContext;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Resources
        {
            interface IResourceLoader;

            interface IResourceLoader2;

            interface IResourceLoaderFactory;

            interface IResourceLoaderStatics;

            interface IResourceLoaderStatics2;

            interface IResourceLoaderStatics3;

            interface IResourceLoaderStatics4;

            runtimeclass ResourceLoader;
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Resources
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Resources.ResourceLoader)]
            [uuid(08524908-16EF-45AD-A602-293637D7E61A)]
            interface IResourceLoader : IInspectable
            {
                HRESULT GetString([in] HSTRING resource, [out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Resources.ResourceLoader)]
            [uuid(10EB6EC6-8138-48C1-BC65-E1F14207367C)]
            interface IResourceLoader2 : IInspectable
            {
                HRESULT GetStringForUri([in] Windows.Foundation.Uri* uri, [out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Resources.ResourceLoader)]
            [uuid(C33A3603-69DC-4285-A077-D5C0E47CCBE8)]
            interface IResourceLoaderFactory : IInspectable
            {
                HRESULT CreateResourceLoaderByName([in] HSTRING name, [out] [retval] Windows.ApplicationModel.Resources.ResourceLoader** loader);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Resources.ResourceLoader)]
            [uuid(BF777CE1-19C8-49C2-953C-47E9227B334E)]
            interface IResourceLoaderStatics : IInspectable
            {
                HRESULT GetStringForReference([in] Windows.Foundation.Uri* uri, [out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.Resources.ResourceLoader)]
            [uuid(0CC04141-6466-4989-9494-0B82DFC53F1F)]
            interface IResourceLoaderStatics2 : IInspectable
            {
                [overload("GetForCurrentView")] HRESULT GetForCurrentView([out] [retval] Windows.ApplicationModel.Resources.ResourceLoader** loader);
                [overload("GetForCurrentView")] HRESULT GetForCurrentViewWithName([in] HSTRING name, [out] [retval] Windows.ApplicationModel.Resources.ResourceLoader** loader);
                [overload("GetForViewIndependentUse")] HRESULT GetForViewIndependentUse([out] [retval] Windows.ApplicationModel.Resources.ResourceLoader** loader);
                [overload("GetForViewIndependentUse")] HRESULT GetForViewIndependentUseWithName([in] HSTRING name, [out] [retval] Windows.ApplicationModel.Resources.ResourceLoader** loader);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.ApplicationModel.Resources.ResourceLoader)]
            [uuid(64609DFB-64AC-491B-8100-0E558D61C1D0)]
            interface IResourceLoaderStatics3 : IInspectable
            {
                HRESULT GetForUIContext([in] Windows.UI.UIContext* context, [out] [retval] Windows.ApplicationModel.Resources.ResourceLoader** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [exclusiveto(Windows.ApplicationModel.Resources.ResourceLoader)]
            [uuid(9FB36C32-6C8C-4316-962E-909539B5C259)]
            interface IResourceLoaderStatics4 : IInspectable
            {
                HRESULT GetDefaultPriPath([in] HSTRING packageFullName, [out] [retval] HSTRING* value);
            }

            [activatable(Windows.ApplicationModel.Resources.IResourceLoaderFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.Resources.IResourceLoaderStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.ApplicationModel.Resources.IResourceLoaderStatics2, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.ApplicationModel.Resources.IResourceLoaderStatics3, Windows.Foundation.UniversalApiContract, 8.0)]
            [static(Windows.ApplicationModel.Resources.IResourceLoaderStatics4, Windows.Foundation.UniversalApiContract, 12.0)]
            [threading(both)]
            runtimeclass ResourceLoader
            {
                [default] interface Windows.ApplicationModel.Resources.IResourceLoader;
                interface Windows.ApplicationModel.Resources.IResourceLoader2;
            }
        }
    }
}
