//
// 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.Storage.idl";
import "Windows.Storage.Streams.idl";
import "Windows.UI.idl";

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

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFile;

        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStream;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        runtimeclass UIContext;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Resources
        {
            namespace Core
            {
                typedef enum ResourceCandidateKind ResourceCandidateKind;

                typedef enum ResourceQualifierPersistence ResourceQualifierPersistence;

                typedef struct ResourceLayoutInfo ResourceLayoutInfo;

                interface INamedResource;

                interface IResourceCandidate;

                interface IResourceCandidate2;

                interface IResourceCandidate3;

                interface IResourceContext;

                interface IResourceContextStatics;

                interface IResourceContextStatics2;

                interface IResourceContextStatics3;

                interface IResourceContextStatics4;

                interface IResourceManager;

                interface IResourceManager2;

                interface IResourceManagerStatics;

                interface IResourceMap;

                interface IResourceQualifier;

                runtimeclass NamedResource;

                runtimeclass ResourceCandidate;

                runtimeclass ResourceCandidateVectorView;

                runtimeclass ResourceContext;

                runtimeclass ResourceContextLanguagesVectorView;

                runtimeclass ResourceManager;

                runtimeclass ResourceMap;

                runtimeclass ResourceMapIterator;

                runtimeclass ResourceMapMapView;

                runtimeclass ResourceMapMapViewIterator;

                runtimeclass ResourceQualifier;

                runtimeclass ResourceQualifierMapView;

                runtimeclass ResourceQualifierObservableMap;

                runtimeclass ResourceQualifierVectorView;
            }
        }
    }
}

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

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

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

                    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.NamedResource*>;

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

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

                    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.NamedResource*>;

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

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

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

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Resources
        {
            namespace Core
            {
                [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                enum ResourceCandidateKind
                {
                    String       = 0,
                    File         = 1,
                    EmbeddedData = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum ResourceQualifierPersistence
                {
                    None         = 0,
                    LocalMachine = 1
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                struct ResourceLayoutInfo
                {
                    UINT32 MajorVersion;
                    UINT32 MinorVersion;
                    UINT32 ResourceSubtreeCount;
                    UINT32 NamedResourceCount;
                    INT32 Checksum;
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.NamedResource)]
                [uuid(1C98C219-0B13-4240-89A5-D495DC189A00)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceCandidate)]
                [uuid(AF5207D9-C433-4764-B3FD-8FA6BFBCBADC)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceCandidate)]
                [uuid(69E5B468-F6FC-4013-AAA2-D53F1757D3B5)]
                interface IResourceCandidate2 : IInspectable
                {
                    HRESULT GetValueAsStreamAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceCandidate)]
                [uuid(08AE97F8-517A-4674-958C-4A3C7CD2CC6B)]
                interface IResourceCandidate3 : IInspectable
                {
                    [propget] HRESULT Kind([out] [retval] Windows.ApplicationModel.Resources.Core.ResourceCandidateKind* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceContext)]
                [uuid(2FA22F4B-707E-4B27-AD0D-D0D8CD468FD2)]
                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);
                }

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

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceContext)]
                [uuid(41F752EF-12AF-41B9-AB36-B1EB4B512460)]
                interface IResourceContextStatics2 : IInspectable
                {
                    HRESULT GetForCurrentView([out] [retval] Windows.ApplicationModel.Resources.Core.ResourceContext** value);
                    [overload("SetGlobalQualifierValue")] HRESULT SetGlobalQualifierValue([in] HSTRING key, [in] HSTRING value);
                    [overload("ResetGlobalQualifierValues")] HRESULT ResetGlobalQualifierValues();
                    [overload("ResetGlobalQualifierValues")] HRESULT ResetGlobalQualifierValuesForSpecifiedQualifiers([in] Windows.Foundation.Collections.IIterable<HSTRING>* qualifierNames);
                    HRESULT GetForViewIndependentUse([out] [retval] Windows.ApplicationModel.Resources.Core.ResourceContext** loader);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceContext)]
                [uuid(20CF492C-AF0F-450B-9DA6-106DD0C29A39)]
                interface IResourceContextStatics3 : IInspectable
                {
                    [overload("SetGlobalQualifierValue")] HRESULT SetGlobalQualifierValueWithPersistence([in] HSTRING key, [in] HSTRING value, [in] Windows.ApplicationModel.Resources.Core.ResourceQualifierPersistence persistence);
                }

                [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceContext)]
                [uuid(22EB9CCD-FB31-4BFA-B86B-DF9D9D7BDC39)]
                interface IResourceContextStatics4 : IInspectable
                {
                    HRESULT GetForUIContext([in] Windows.UI.UIContext* context, [out] [retval] Windows.ApplicationModel.Resources.Core.ResourceContext** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceManager)]
                [uuid(F744D97B-9988-44FB-ABD6-5378844CFA8B)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceManager)]
                [uuid(9D66FE6C-A4D7-4C23-9E85-675F304C252D)]
                interface IResourceManager2 : IInspectable
                {
                    HRESULT GetAllNamedResourcesForPackage([in] HSTRING packageName, [in] Windows.ApplicationModel.Resources.Core.ResourceLayoutInfo resourceLayoutInfo, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.NamedResource*>** table);
                    HRESULT GetAllSubtreesForPackage([in] HSTRING packageName, [in] Windows.ApplicationModel.Resources.Core.ResourceLayoutInfo resourceLayoutInfo, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceMap*>** table);
                }

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

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceMap)]
                [uuid(72284824-DB8C-42F8-B08C-53FF357DAD82)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Resources.Core.ResourceQualifier)]
                [uuid(785DA5B2-4AFD-4376-A888-C5F9A6B7A05C)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass NamedResource
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.INamedResource;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceCandidate
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceCandidate;
                    interface Windows.ApplicationModel.Resources.Core.IResourceCandidate2;
                    [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.ApplicationModel.Resources.Core.IResourceCandidate3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [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*>;
                }

                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.ApplicationModel.Resources.Core.IResourceContextStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [static(Windows.ApplicationModel.Resources.Core.IResourceContextStatics2, Windows.Foundation.UniversalApiContract, 1.0)]
                [static(Windows.ApplicationModel.Resources.Core.IResourceContextStatics3, Windows.Foundation.UniversalApiContract, 1.0)]
                [static(Windows.ApplicationModel.Resources.Core.IResourceContextStatics4, Windows.Foundation.UniversalApiContract, 8.0)]
                [threading(both)]
                runtimeclass ResourceContext
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceContext;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceContextLanguagesVectorView
                {
                    [default] interface Windows.Foundation.Collections.IVectorView<HSTRING>;
                    interface Windows.Foundation.Collections.IIterable<HSTRING>;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.ApplicationModel.Resources.Core.IResourceManagerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass ResourceManager
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceManager;
                    interface Windows.ApplicationModel.Resources.Core.IResourceManager2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [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*>*>;
                }

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

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [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*>*>;
                }

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

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceQualifier
                {
                    [default] interface Windows.ApplicationModel.Resources.Core.IResourceQualifier;
                }

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

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [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>*>;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass ResourceQualifierVectorView
                {
                    [default] interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Resources.Core.ResourceQualifier*>;
                    interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Resources.Core.ResourceQualifier*>;
                }
            }
        }
    }
}
