//
// 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
    {
        typedef struct DateTime DateTime;

        interface IAsyncAction;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            delegate LicenseChangedEventHandler;

            interface ICurrentApp;

            interface ICurrentAppSimulator;

            interface ILicenseInformation;

            interface IProductLicense;

            interface IListingInformation;

            interface IProductListing;

            runtimeclass LicenseInformation;

            runtimeclass ListingInformation;

            runtimeclass ProductLicense;

            runtimeclass ProductListing;

            runtimeclass CurrentApp;

            runtimeclass CurrentAppSimulator;
        }
    }
}

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

                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.ApplicationModel.Store.ProductListing*>*>;

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

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

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

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

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

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

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

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            [uuid(D4A50255-1369-4C36-832F-6F2D88E3659B)]
            [version(0x06020000)]
            delegate
                HRESULT LicenseChangedEventHandler();

            [uuid(D52DC065-DA3F-4685-995E-9B482EB5E603)]
            [exclusiveto(Windows.ApplicationModel.Store.CurrentApp)]
            [version(0x06020000)]
            interface ICurrentApp : IInspectable
            {
                [propget] HRESULT LicenseInformation([out] [retval] Windows.ApplicationModel.Store.LicenseInformation** value);
                [propget] HRESULT LinkUri([out] [retval] Windows.Foundation.Uri** value);
                [propget] HRESULT AppId([out] [retval] GUID* value);
                HRESULT RequestAppPurchaseAsync([in] boolean includeReceipt, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** requestAppPurchaseOperation);
                HRESULT RequestProductPurchaseAsync([in] HSTRING productId, [in] boolean includeReceipt, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** requestProductPurchaseOperation);
                HRESULT LoadListingInformationAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.ListingInformation*>** loadListingOperation);
                HRESULT GetAppReceiptAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** appReceiptOperation);
                HRESULT GetProductReceiptAsync([in] HSTRING productId, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** getProductReceiptOperation);
            }

            [uuid(F17F9DB1-74CD-4787-9787-19866E9A5559)]
            [exclusiveto(Windows.ApplicationModel.Store.CurrentAppSimulator)]
            [version(0x06020000)]
            interface ICurrentAppSimulator : IInspectable
            {
                [propget] HRESULT LicenseInformation([out] [retval] Windows.ApplicationModel.Store.LicenseInformation** value);
                [propget] HRESULT LinkUri([out] [retval] Windows.Foundation.Uri** value);
                [propget] HRESULT AppId([out] [retval] GUID* value);
                HRESULT RequestAppPurchaseAsync([in] boolean includeReceipt, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** requestAppPurchaseOperation);
                HRESULT RequestProductPurchaseAsync([in] HSTRING productId, [in] boolean includeReceipt, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** requestProductPurchaseOperation);
                HRESULT LoadListingInformationAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.ListingInformation*>** loadListingOperation);
                HRESULT GetAppReceiptAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** appReceiptOperation);
                HRESULT GetProductReceiptAsync([in] HSTRING productId, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** getProductReceiptOperation);
                HRESULT ReloadSimulatorAsync([in] Windows.Storage.StorageFile* simulatorSettingsFile, [out] [retval] Windows.Foundation.IAsyncAction** reloadSimulatorOperation);
            }

            [uuid(8EB7DC30-F170-4ED5-8E21-1516DA3FD367)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.Store.LicenseInformation)]
            interface ILicenseInformation : IInspectable
            {
                [propget] HRESULT ProductLicenses([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Store.ProductLicense*>** value);
                [propget] HRESULT IsActive([out] [retval] boolean* value);
                [propget] HRESULT IsTrial([out] [retval] boolean* value);
                [propget] HRESULT ExpirationDate([out] [retval] Windows.Foundation.DateTime* value);
                [eventadd] HRESULT LicenseChanged([in] Windows.ApplicationModel.Store.LicenseChangedEventHandler* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT LicenseChanged([in] EventRegistrationToken cookie);
            }

            [uuid(363308C7-2BCF-4C0E-8F2F-E808AAA8F99D)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.Store.ProductLicense)]
            interface IProductLicense : IInspectable
            {
                [propget] HRESULT ProductId([out] [retval] HSTRING* value);
                [propget] HRESULT IsActive([out] [retval] boolean* value);
                [propget] HRESULT ExpirationDate([out] [retval] Windows.Foundation.DateTime* value);
            }

            [uuid(588B4ABF-BC74-4383-B78C-99606323DECE)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.Store.ListingInformation)]
            interface IListingInformation : IInspectable
            {
                [propget] HRESULT CurrentMarket([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT ProductListings([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.ApplicationModel.Store.ProductListing*>** value);
                [propget] HRESULT FormattedPrice([out] [retval] HSTRING* value);
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propget] HRESULT AgeRating([out] [retval] UINT32* value);
            }

            [uuid(45A7D6AD-C750-4D9C-947C-B00DCBF9E9C2)]
            [exclusiveto(Windows.ApplicationModel.Store.ProductListing)]
            [version(0x06020000)]
            interface IProductListing : IInspectable
            {
                [propget] HRESULT ProductId([out] [retval] HSTRING* value);
                [propget] HRESULT FormattedPrice([out] [retval] HSTRING* value);
                [propget] HRESULT Name([out] [retval] HSTRING* value);
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            [threading(both)]
            runtimeclass LicenseInformation
            {
                [default] interface Windows.ApplicationModel.Store.ILicenseInformation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x06020000)]
            runtimeclass ListingInformation
            {
                [default] interface Windows.ApplicationModel.Store.IListingInformation;
            }

            [version(0x06020000)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ProductLicense
            {
                [default] interface Windows.ApplicationModel.Store.IProductLicense;
            }

            [version(0x06020000)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ProductListing
            {
                [default] interface Windows.ApplicationModel.Store.IProductListing;
            }

            [threading(both)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.Store.ICurrentApp, 0x06020000)]
            [version(0x06020000)]
            runtimeclass CurrentApp
            {
            }

            [static(Windows.ApplicationModel.Store.ICurrentAppSimulator, 0x06020000)]
            [threading(both)]
            [version(0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass CurrentAppSimulator
            {
            }
        }
    }
}
