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

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

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            namespace Preview
            {
                typedef enum StorePreviewProductPurchaseStatus StorePreviewProductPurchaseStatus;

                typedef enum StoreSystemFeature StoreSystemFeature;

                interface IStorePreviewProductInfo;

                interface IStorePreviewSkuInfo;

                interface IStorePreviewPurchaseResults;

                interface IStorePreview;

                interface IStoreHardwareManufacturerInfo;

                interface IStoreConfigurationStatics;

                runtimeclass StorePreviewSkuInfo;

                runtimeclass StorePreviewPurchaseResults;

                runtimeclass StorePreviewProductInfo;

                runtimeclass StoreHardwareManufacturerInfo;

                runtimeclass StorePreview;

                runtimeclass StoreConfiguration;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            namespace Preview
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Store.Preview.StorePreviewProductInfo*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Store.Preview.StorePreviewSkuInfo*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Store.Preview.StoreSystemFeature>;

                    interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.Store.Preview.StorePreviewProductInfo*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.Store.Preview.StorePreviewSkuInfo*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.Store.Preview.StoreSystemFeature>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.StorePreviewProductInfo*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.StorePreviewSkuInfo*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.StoreSystemFeature>;

                    interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.StorePreviewPurchaseResults*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.StorePreviewProductInfo*>*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.StoreSystemFeature>*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            namespace Preview
            {
                [version(0x0A000000)]
                enum StorePreviewProductPurchaseStatus
                {
                    Succeeded        = 0,
                    AlreadyPurchased = 1,
                    NotFulfilled     = 2,
                    NotPurchased     = 3
                };

                [version(0x0A000000)]
                enum StoreSystemFeature
                {
                    ArchitectureX86      = 0,
                    ArchitectureX64      = 1,
                    ArchitectureArm      = 2,
                    DirectX9             = 3,
                    DirectX10            = 4,
                    DirectX11            = 5,
                    D3D12HardwareFL11    = 6,
                    D3D12HardwareFL12    = 7,
                    Memory300MB          = 8,
                    Memory750MB          = 9,
                    Memory1GB            = 10,
                    Memory2GB            = 11,
                    CameraFront          = 12,
                    CameraRear           = 13,
                    Gyroscope            = 14,
                    Hover                = 15,
                    Magnetometer         = 16,
                    Nfc                  = 17,
                    Resolution720P       = 18,
                    ResolutionWvga       = 19,
                    ResolutionWvgaOr720P = 20,
                    ResolutionWxga       = 21,
                    ResolutionWvgaOrWxga = 22,
                    ResolutionWxgaOr720P = 23
                };

                [exclusiveto(Windows.ApplicationModel.Store.Preview.StorePreviewProductInfo)]
                [uuid(1937DBB3-6C01-4C9D-85CD-5BABAAC2B351)]
                [version(0x0A000000)]
                interface IStorePreviewProductInfo : IInspectable
                {
                    [propget] HRESULT ProductId([out] [retval] HSTRING* value);
                    [propget] HRESULT ProductType([out] [retval] HSTRING* value);
                    [propget] HRESULT Title([out] [retval] HSTRING* value);
                    [propget] HRESULT Description([out] [retval] HSTRING* value);
                    [propget] HRESULT SkuInfoList([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.StorePreviewSkuInfo*>** value);
                }

                [exclusiveto(Windows.ApplicationModel.Store.Preview.StorePreviewSkuInfo)]
                [uuid(81FD76E2-0B26-48D9-98CE-27461C669D6C)]
                [version(0x0A000000)]
                interface IStorePreviewSkuInfo : IInspectable
                {
                    [propget] HRESULT ProductId([out] [retval] HSTRING* value);
                    [propget] HRESULT SkuId([out] [retval] HSTRING* value);
                    [propget] HRESULT SkuType([out] [retval] HSTRING* value);
                    [propget] HRESULT Title([out] [retval] HSTRING* value);
                    [propget] HRESULT Description([out] [retval] HSTRING* value);
                    [propget] HRESULT CustomDeveloperData([out] [retval] HSTRING* value);
                    [propget] HRESULT CurrencyCode([out] [retval] HSTRING* value);
                    [propget] HRESULT FormattedListPrice([out] [retval] HSTRING* value);
                    [propget] HRESULT ExtendedData([out] [retval] HSTRING* value);
                }

                [exclusiveto(Windows.ApplicationModel.Store.Preview.StorePreviewPurchaseResults)]
                [uuid(B0DAAED1-D6C5-4E53-A043-FBA0D8E61231)]
                [version(0x0A000000)]
                interface IStorePreviewPurchaseResults : IInspectable
                {
                    [propget] HRESULT ProductPurchaseStatus([out] [retval] Windows.ApplicationModel.Store.Preview.StorePreviewProductPurchaseStatus* value);
                }

                [exclusiveto(Windows.ApplicationModel.Store.Preview.StorePreview)]
                [uuid(8A157241-840E-49A9-BC01-5D5B01FBC8E9)]
                [version(0x0A000000)]
                interface IStorePreview : IInspectable
                {
                    HRESULT RequestProductPurchaseByProductIdAndSkuIdAsync([in] HSTRING productId, [in] HSTRING skuId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.StorePreviewPurchaseResults*>** requestPurchaseBySkuIdOperation);
                    HRESULT LoadAddOnProductInfosAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.StorePreviewProductInfo*>*>** loadAddOnProductInfosOperation);
                }

                [exclusiveto(Windows.ApplicationModel.Store.Preview.StoreHardwareManufacturerInfo)]
                [uuid(F292DC08-C654-43AC-A21F-34801C9D3388)]
                [version(0x0A000000)]
                interface IStoreHardwareManufacturerInfo : IInspectable
                {
                    [propget] HRESULT HardwareManufacturerId([out] [retval] HSTRING* value);
                    [propget] HRESULT StoreContentModifierId([out] [retval] HSTRING* value);
                    [propget] HRESULT ModelName([out] [retval] HSTRING* value);
                    [propget] HRESULT ManufacturerName([out] [retval] HSTRING* value);
                }

                [exclusiveto(Windows.ApplicationModel.Store.Preview.StoreConfiguration)]
                [uuid(728F7FC0-8628-42EC-84A2-07780EB44D8B)]
                [version(0x0A000000)]
                interface IStoreConfigurationStatics : IInspectable
                {
                    HRESULT SetSystemConfiguration([in] HSTRING catalogHardwareManufacturerId, [in] HSTRING catalogStoreContentModifierId, [in] Windows.Foundation.DateTime systemConfigurationExpiration, [in] HSTRING catalogHardwareDescriptor);
                    HRESULT SetMobileOperatorConfiguration([in] HSTRING mobileOperatorId, [in] UINT32 appDownloadLimitInMegabytes, [in] UINT32 updateDownloadLimitInMegabytes);
                    HRESULT SetStoreWebAccountId([in] HSTRING webAccountId);
                    HRESULT IsStoreWebAccountId([in] HSTRING webAccountId, [out] [retval] boolean* value);
                    [propget] HRESULT HardwareManufacturerInfo([out] [retval] Windows.ApplicationModel.Store.Preview.StoreHardwareManufacturerInfo** value);
                    HRESULT FilterUnsupportedSystemFeaturesAsync([in] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Store.Preview.StoreSystemFeature>* systemFeatures, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.StoreSystemFeature>*>** operation);
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass StorePreviewSkuInfo
                {
                    [default] interface Windows.ApplicationModel.Store.Preview.IStorePreviewSkuInfo;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass StorePreviewPurchaseResults
                {
                    [default] interface Windows.ApplicationModel.Store.Preview.IStorePreviewPurchaseResults;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass StorePreviewProductInfo
                {
                    [default] interface Windows.ApplicationModel.Store.Preview.IStorePreviewProductInfo;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass StoreHardwareManufacturerInfo
                {
                    [default] interface Windows.ApplicationModel.Store.Preview.IStoreHardwareManufacturerInfo;
                }

                [marshaling_behavior(agile)]
                [static(Windows.ApplicationModel.Store.Preview.IStorePreview, 0x0A000000)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass StorePreview
                {
                }

                [static(Windows.ApplicationModel.Store.Preview.IStoreConfigurationStatics, 0x0A000000)]
                [version(0x0A000000)]
                runtimeclass StoreConfiguration
                {
                }
            }
        }
    }
}
