//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0008
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.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(__windows2Estorage_h__)")
cpp_quote("#include <Windows.Storage.h>")
cpp_quote("#endif // !defined(__windows2Estorage_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFile;

        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Resources
        {
            namespace Core
            {
                interface IResourceManager;

                interface IResourceManagerStatics;

                interface IResourceQualifier;

                interface IResourceContext;

                interface IResourceContextStatics;

                interface IResourceCandidate;

                interface INamedResource;

                interface IResourceMap;

                runtimeclass ResourceMap;

                runtimeclass ResourceContext;

                runtimeclass ResourceManager;

                runtimeclass ResourceQualifier;

                runtimeclass ResourceCandidate;

                runtimeclass NamedResource;

                runtimeclass ResourceMapIterator;

                runtimeclass ResourceMapMapView;

                runtimeclass ResourceMapMapViewIterator;

                runtimeclass ResourceQualifierObservableMap;

                runtimeclass ResourceQualifierMapView;

                runtimeclass ResourceQualifierVectorView;

                runtimeclass ResourceCandidateVectorView;

                runtimeclass ResourceContextLanguagesVectorView;
            }
        }
    }
}

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

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

                    interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.ResourceMap*>*>;

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

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

                    interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.ResourceMap*>*>;

                    interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>;

                    interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.ResourceMap*>;

                    interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>;

                    interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Resources.Core.ResourceMap*>;

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

                    interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceQualifier*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Resources
        {
            namespace Core
            {
                [uuid(F744D97B-9988-44FB-ABD6-5378844CFA8B)]
                [version(0x06020000)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceManager)]
                interface IResourceManager : IInspectable
                {
                    [propget] HRESULT MainResourceMap([out] [retval] Windows.ApplicationModel.Resources.Core.ResourceMap** value);
                    [propget] HRESULT AllResourceMaps([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Resources.Core.ResourceMap*>** maps);
                    [propget] HRESULT DefaultContext([out] [retval] Windows.ApplicationModel.Resources.Core.ResourceContext** value);
                    HRESULT LoadPriFiles([in] Windows.Foundation.Collections.IIterable<Windows.Storage.IStorageFile*>* files);
                    HRESULT UnloadPriFiles([in] Windows.Foundation.Collections.IIterable<Windows.Storage.IStorageFile*>* files);
                }

                [uuid(1CC0FDFC-69EE-4E43-9901-47F12687BAF7)]
                [version(0x06020000)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceManager)]
                interface IResourceManagerStatics : IInspectable
                {
                    [propget] HRESULT Current([out] [retval] Windows.ApplicationModel.Resources.Core.ResourceManager** value);
                    HRESULT IsResourceReference([in] HSTRING resourceReference, [out] [retval] boolean* isReference);
                }

                [uuid(785DA5B2-4AFD-4376-A888-C5F9A6B7A05C)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceQualifier)]
                [version(0x06020000)]
                interface IResourceQualifier : IInspectable
                {
                    [propget] HRESULT QualifierName([out] [retval] HSTRING* value);
                    [propget] HRESULT QualifierValue([out] [retval] HSTRING* value);
                    [propget] HRESULT IsDefault([out] [retval] boolean* value);
                    [propget] HRESULT IsMatch([out] [retval] boolean* value);
                    [propget] HRESULT Score([out] [retval] DOUBLE* value);
                }

                [uuid(2FA22F4B-707E-4B27-AD0D-D0D8CD468FD2)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceContext)]
                [version(0x06020000)]
                interface IResourceContext : IInspectable
                {
                    [propget] HRESULT QualifierValues([out] [retval] Windows.Foundation.Collections.IObservableMap<HSTRING, HSTRING>** value);
                    [overload("Reset")] HRESULT Reset();
                    [overload("Reset")] HRESULT ResetQualifierValues([in] Windows.Foundation.Collections.IIterable<HSTRING>* qualifierNames);
                    HRESULT OverrideToMatch([in] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Resources.Core.ResourceQualifier*>* result);
                    HRESULT Clone([out] [retval] Windows.ApplicationModel.Resources.Core.ResourceContext** clone);
                    [propget] HRESULT Languages([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                    [propput] HRESULT Languages([in] Windows.Foundation.Collections.IVectorView<HSTRING>* languages);
                }

                [uuid(98BE9D6C-6338-4B31-99DF-B2B442F17149)]
                [version(0x06020000)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceContext)]
                interface IResourceContextStatics : IInspectable
                {
                    HRESULT CreateMatchingContext([in] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Resources.Core.ResourceQualifier*>* result, [out] [retval] Windows.ApplicationModel.Resources.Core.ResourceContext** value);
                }

                [uuid(AF5207D9-C433-4764-B3FD-8FA6BFBCBADC)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceCandidate)]
                [version(0x06020000)]
                interface IResourceCandidate : IInspectable
                {
                    [propget] HRESULT Qualifiers([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceQualifier*>** value);
                    [propget] HRESULT IsMatch([out] [retval] boolean* value);
                    [propget] HRESULT IsMatchAsDefault([out] [retval] boolean* value);
                    [propget] HRESULT IsDefault([out] [retval] boolean* value);
                    [propget] HRESULT ValueAsString([out] [retval] HSTRING* result);
                    HRESULT GetValueAsFileAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
                    HRESULT GetQualifierValue([in] HSTRING qualifierName, [out] [retval] HSTRING* value);
                }

                [uuid(1C98C219-0B13-4240-89A5-D495DC189A00)]
                [version(0x06020000)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.NamedResource)]
                interface INamedResource : IInspectable
                {
                    [propget] HRESULT Uri([out] [retval] Windows.Foundation.Uri** uri);
                    [propget] HRESULT Candidates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceCandidate*>** value);
                    [overload("Resolve")] HRESULT Resolve([out] [retval] Windows.ApplicationModel.Resources.Core.ResourceCandidate** result);
                    [overload("Resolve")] HRESULT ResolveForContext([in] Windows.ApplicationModel.Resources.Core.ResourceContext* resourceContext, [out] [retval] Windows.ApplicationModel.Resources.Core.ResourceCandidate** result);
                    [overload("ResolveAll")] HRESULT ResolveAll([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceCandidate*>** result);
                    [overload("ResolveAll")] HRESULT ResolveAllForContext([in] Windows.ApplicationModel.Resources.Core.ResourceContext* resourceContext, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceCandidate*>** instances);
                }

                [uuid(72284824-DB8C-42F8-B08C-53FF357DAD82)]
                [version(0x06020000)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceMap)]
                interface IResourceMap : IInspectable
                    requires
                        Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>,
                        Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>*>
                {
                    [propget] HRESULT Uri([out] [retval] Windows.Foundation.Uri** uri);
                    [overload("GetValue")] HRESULT GetValue([in] HSTRING resource, [out] [retval] Windows.ApplicationModel.Resources.Core.ResourceCandidate** value);
                    [overload("GetValue")] HRESULT GetValueForContext([in] HSTRING resource, [in] Windows.ApplicationModel.Resources.Core.ResourceContext* context, [out] [retval] Windows.ApplicationModel.Resources.Core.ResourceCandidate** value);
                    HRESULT GetSubtree([in] HSTRING reference, [out] [retval] Windows.ApplicationModel.Resources.Core.ResourceMap** map);
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceMap
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceMap;
                    interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>;
                    interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>*>;
                }

                [marshaling_behavior(agile)]
                [activatable(0x06020000)]
                [threading(both)]
                [static(Windows.ApplicationModel.Resources.Core.IResourceContextStatics, 0x06020000)]
                [version(0x06020000)]
                runtimeclass ResourceContext
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceContext;
                }

                [static(Windows.ApplicationModel.Resources.Core.IResourceManagerStatics, 0x06020000)]
                [marshaling_behavior(agile)]
                [version(0x06020000)]
                [threading(both)]
                runtimeclass ResourceManager
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceManager;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceQualifier
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceQualifier;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceCandidate
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceCandidate;
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass NamedResource
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.INamedResource;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceMapIterator
                {
                    [default] interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.NamedResource*>*>;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceMapMapView
                {
                    [default] interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Resources.Core.ResourceMap*>;
                    interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.ResourceMap*>*>;
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass ResourceMapMapViewIterator
                {
                    [default] interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Resources.Core.ResourceMap*>*>;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceQualifierObservableMap
                {
                    [default] interface Windows.Foundation.Collections.IObservableMap<HSTRING, HSTRING>;
                    interface Windows.Foundation.Collections.IMap<HSTRING, HSTRING>;
                    interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, HSTRING>*>;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceQualifierMapView
                {
                    [default] interface Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>;
                    interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, HSTRING>*>;
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass ResourceQualifierVectorView
                {
                    [default] interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceQualifier*>;
                    interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Resources.Core.ResourceQualifier*>;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceCandidateVectorView
                {
                    [default] interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceCandidate*>;
                    interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Resources.Core.ResourceCandidate*>;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceContextLanguagesVectorView
                {
                    [default] interface Windows.Foundation.Collections.IVectorView<HSTRING>;
                    interface Windows.Foundation.Collections.IIterable<HSTRING>;
                }
            }
        }
    }
}
