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

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

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            namespace LicenseManagement
            {
                interface ILicenseManagerStatics;

                interface ILicenseSatisfactionInfo;

                interface ILicenseSatisfactionResult;

                runtimeclass LicenseManager;

                runtimeclass LicenseSatisfactionInfo;

                runtimeclass LicenseSatisfactionResult;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            namespace LicenseManagement
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionInfo*>*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionInfo*>*>;

                    interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionInfo*>;

                    interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionInfo*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionResult*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            namespace LicenseManagement
            {
                [exclusiveto(Windows.ApplicationModel.Store.LicenseManagement.LicenseManager)]
                [uuid(B5AC3AE0-DA47-4F20-9A23-09182C9476FF)]
                [version(0x0A000002)]
                interface ILicenseManagerStatics : IInspectable
                {
                    HRESULT AddLicenseAsync([in] Windows.Storage.Streams.IBuffer* license, [out] [retval] Windows.Foundation.IAsyncAction** action);
                    HRESULT GetSatisfactionInfosAsync([in] Windows.Foundation.Collections.IIterable<HSTRING>* contentIds, [in] Windows.Foundation.Collections.IIterable<HSTRING>* keyIds, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionResult*>** operation);
                }

                [exclusiveto(Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionInfo)]
                [uuid(3CCBB08F-DB31-48D5-8384-FA17C81474E2)]
                [version(0x0A000002)]
                interface ILicenseSatisfactionInfo : IInspectable
                {
                    [propget] HRESULT SatisfiedByDevice([out] [retval] boolean* value);
                    [propget] HRESULT SatisfiedByOpenLicense([out] [retval] boolean* value);
                    [propget] HRESULT SatisfiedByTrial([out] [retval] boolean* value);
                    [propget] HRESULT SatisfiedByPass([out] [retval] boolean* value);
                    [propget] HRESULT SatisfiedByInstallMedia([out] [retval] boolean* value);
                    [propget] HRESULT SatisfiedBySignedInUser([out] [retval] boolean* value);
                    [propget] HRESULT IsSatisfied([out] [retval] boolean* value);
                }

                [exclusiveto(Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionResult)]
                [uuid(3C674F73-3C87-4EE1-8201-F428359BD3AF)]
                [version(0x0A000002)]
                interface ILicenseSatisfactionResult : IInspectable
                {
                    [propget] HRESULT LicenseSatisfactionInfos([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Store.LicenseManagement.LicenseSatisfactionInfo*>** value);
                    [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                }

                [marshaling_behavior(agile)]
                [static(Windows.ApplicationModel.Store.LicenseManagement.ILicenseManagerStatics, 0x0A000002)]
                [threading(both)]
                [version(0x0A000002)]
                runtimeclass LicenseManager
                {
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000002)]
                runtimeclass LicenseSatisfactionInfo
                {
                    [default] interface Windows.ApplicationModel.Store.LicenseManagement.ILicenseSatisfactionInfo;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000002)]
                runtimeclass LicenseSatisfactionResult
                {
                    [default] interface Windows.ApplicationModel.Store.LicenseManagement.ILicenseSatisfactionResult;
                }
            }
        }
    }
}
