//
// 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.Management.Deployment.idl";
import "Windows.System.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Management
    {
        namespace Deployment
        {
            runtimeclass PackageVolume;
        }
    }
}
namespace Windows
{
    namespace System
    {
        runtimeclass User;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            namespace Preview
            {
                namespace InstallControl
                {
                    typedef enum AppInstallState AppInstallState;

                    typedef enum AppInstallType AppInstallType;

                    typedef enum AppInstallationToastNotificationMode AppInstallationToastNotificationMode;

                    typedef enum AutoUpdateSetting AutoUpdateSetting;

                    typedef enum GetEntitlementStatus GetEntitlementStatus;

                    interface IAppInstallItem;

                    interface IAppInstallItem2;

                    interface IAppInstallItem3;

                    interface IAppInstallItem4;

                    interface IAppInstallItem5;

                    interface IAppInstallManager;

                    interface IAppInstallManager2;

                    interface IAppInstallManager3;

                    interface IAppInstallManager4;

                    interface IAppInstallManager5;

                    interface IAppInstallManager6;

                    interface IAppInstallManager7;

                    interface IAppInstallManagerItemEventArgs;

                    interface IAppInstallOptions;

                    interface IAppInstallOptions2;

                    interface IAppInstallStatus;

                    interface IAppInstallStatus2;

                    interface IAppInstallStatus3;

                    interface IAppUpdateOptions;

                    interface IAppUpdateOptions2;

                    interface IGetEntitlementResult;

                    interface IGetEntitlementResult2;

                    runtimeclass AppInstallItem;

                    runtimeclass AppInstallManager;

                    runtimeclass AppInstallManagerItemEventArgs;

                    runtimeclass AppInstallOptions;

                    runtimeclass AppInstallStatus;

                    runtimeclass AppUpdateOptions;

                    runtimeclass GetEntitlementResult;
                }
            }
        }
    }
}

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

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

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

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

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

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

                        interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*, IInspectable*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager*, Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManagerItemEventArgs*>;
                    }
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Store
        {
            namespace Preview
            {
                namespace InstallControl
                {
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    enum AppInstallState
                    {
                        Pending               = 0,
                        Starting              = 1,
                        AcquiringLicense      = 2,
                        Downloading           = 3,
                        RestoringData         = 4,
                        Installing            = 5,
                        Completed             = 6,
                        Canceled              = 7,
                        Paused                = 8,
                        Error                 = 9,
                        PausedLowBattery      = 10,
                        PausedWiFiRecommended = 11,
                        PausedWiFiRequired    = 12,
                        ReadyToDownload       = 13
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    enum AppInstallType
                    {
                        Install = 0,
                        Update  = 1,
                        Repair  = 2
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                    enum AppInstallationToastNotificationMode
                    {
                        Default           = 0,
                        Toast             = 1,
                        ToastWithoutPopup = 2,
                        NoToast           = 3
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    enum AutoUpdateSetting
                    {
                        Disabled         = 0,
                        Enabled          = 1,
                        DisabledByPolicy = 2,
                        EnabledByPolicy  = 3
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    enum GetEntitlementStatus
                    {
                        Succeeded      = 0,
                        NoStoreAccount = 1,
                        NetworkError   = 2,
                        ServerError    = 3
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem)]
                    [uuid(49D3DFAB-168A-4CBF-A93A-9E448C82737D)]
                    interface IAppInstallItem : IInspectable
                    {
                        [propget] HRESULT ProductId([out] [retval] HSTRING* value);
                        [propget] HRESULT PackageFamilyName([out] [retval] HSTRING* value);
                        [propget] HRESULT InstallType([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallType* value);
                        [propget] HRESULT IsUserInitiated([out] [retval] boolean* value);
                        HRESULT GetCurrentStatus([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallStatus** result);
                        HRESULT Cancel();
                        HRESULT Pause();
                        HRESULT Restart();
                        [eventadd] HRESULT Completed([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT Completed([in] EventRegistrationToken token);
                        [eventadd] HRESULT StatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT StatusChanged([in] EventRegistrationToken token);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem)]
                    [uuid(D3972AF8-40C0-4FD7-AA6C-0AA13CA6188C)]
                    interface IAppInstallItem2 : IInspectable
                    {
                        [overload("Cancel")] HRESULT CancelWithTelemetry([in] HSTRING correlationVector);
                        [overload("Pause")] HRESULT PauseWithTelemetry([in] HSTRING correlationVector);
                        [overload("Restart")] HRESULT RestartWithTelemetry([in] HSTRING correlationVector);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem)]
                    [uuid(6F3DC998-DD47-433C-9234-560172D67A45)]
                    interface IAppInstallItem3 : IInspectable
                    {
                        [propget] HRESULT Children([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** value);
                        [propget] HRESULT ItemOperationsMightAffectOtherItems([out] [retval] boolean* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem)]
                    [uuid(C2D1CE12-71FF-4FC8-B540-453D4B37E1D1)]
                    interface IAppInstallItem4 : IInspectable
                    {
                        [propget] HRESULT LaunchAfterInstall([out] [retval] boolean* value);
                        [propput] HRESULT LaunchAfterInstall([in] boolean value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem)]
                    [uuid(5510E7CC-4076-4A0B-9472-C21D9D380E55)]
                    interface IAppInstallItem5 : IInspectable
                    {
                        [propget] HRESULT PinToDesktopAfterInstall([out] [retval] boolean* value);
                        [propput] HRESULT PinToDesktopAfterInstall([in] boolean value);
                        [propget] HRESULT PinToStartAfterInstall([out] [retval] boolean* value);
                        [propput] HRESULT PinToStartAfterInstall([in] boolean value);
                        [propget] HRESULT PinToTaskbarAfterInstall([out] [retval] boolean* value);
                        [propput] HRESULT PinToTaskbarAfterInstall([in] boolean value);
                        [propget] HRESULT CompletedInstallToastNotificationMode([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallationToastNotificationMode* value);
                        [propput] HRESULT CompletedInstallToastNotificationMode([in] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallationToastNotificationMode value);
                        [propget] HRESULT InstallInProgressToastNotificationMode([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallationToastNotificationMode* value);
                        [propput] HRESULT InstallInProgressToastNotificationMode([in] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallationToastNotificationMode value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager)]
                    [uuid(9353E170-8441-4B45-BD72-7C2FA925BEEE)]
                    interface IAppInstallManager : IInspectable
                    {
                        [propget] HRESULT AppInstallItems([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** value);
                        HRESULT Cancel([in] HSTRING productId);
                        HRESULT Pause([in] HSTRING productId);
                        HRESULT Restart([in] HSTRING productId);
                        [eventadd] HRESULT ItemCompleted([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager*, Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManagerItemEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT ItemCompleted([in] EventRegistrationToken token);
                        [eventadd] HRESULT ItemStatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager*, Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManagerItemEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT ItemStatusChanged([in] EventRegistrationToken token);
                        [propget] HRESULT AutoUpdateSetting([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AutoUpdateSetting* value);
                        [propput] HRESULT AutoUpdateSetting([in] Windows.ApplicationModel.Store.Preview.InstallControl.AutoUpdateSetting value);
                        [propget] HRESULT AcquisitionIdentity([out] [retval] HSTRING* value);
                        [propput] HRESULT AcquisitionIdentity([in] HSTRING value);
                        HRESULT GetIsApplicableAsync([in] HSTRING productId, [in] HSTRING skuId, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                        HRESULT StartAppInstallAsync([in] HSTRING productId, [in] HSTRING skuId, [in] boolean repair, [in] boolean forceUseOfNonRemovableStorage, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        HRESULT UpdateAppByPackageFamilyNameAsync([in] HSTRING packageFamilyName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        HRESULT SearchForUpdatesAsync([in] HSTRING productId, [in] HSTRING skuId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        HRESULT SearchForAllUpdatesAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        HRESULT IsStoreBlockedByPolicyAsync([in] HSTRING storeClientName, [in] HSTRING storeClientPublisher, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                        HRESULT GetIsAppAllowedToInstallAsync([in] HSTRING productId, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager)]
                    [uuid(16937851-ED37-480D-8314-52E27C03F04A)]
                    interface IAppInstallManager2 : IInspectable
                    {
                        [overload("StartAppInstallAsync")] HRESULT StartAppInstallWithTelemetryAsync([in] HSTRING productId, [in] HSTRING skuId, [in] boolean repair, [in] boolean forceUseOfNonRemovableStorage, [in] HSTRING catalogId, [in] HSTRING bundleId, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        [overload("UpdateAppByPackageFamilyNameAsync")] HRESULT UpdateAppByPackageFamilyNameWithTelemetryAsync([in] HSTRING packageFamilyName, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        [overload("SearchForUpdatesAsync")] HRESULT SearchForUpdatesWithTelemetryAsync([in] HSTRING productId, [in] HSTRING skuId, [in] HSTRING catalogId, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        [overload("SearchForAllUpdatesAsync")] HRESULT SearchForAllUpdatesWithTelemetryAsync([in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        [overload("GetIsAppAllowedToInstallAsync")] HRESULT GetIsAppAllowedToInstallWithTelemetryAsync([in] HSTRING productId, [in] HSTRING skuId, [in] HSTRING catalogId, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                        [overload("Cancel")] HRESULT CancelWithTelemetry([in] HSTRING productId, [in] HSTRING correlationVector);
                        [overload("Pause")] HRESULT PauseWithTelemetry([in] HSTRING productId, [in] HSTRING correlationVector);
                        [overload("Restart")] HRESULT RestartWithTelemetry([in] HSTRING productId, [in] HSTRING correlationVector);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager)]
                    [uuid(95B24B17-E96A-4D0E-84E1-C8CB417A0178)]
                    interface IAppInstallManager3 : IInspectable
                    {
                        HRESULT StartProductInstallAsync([in] HSTRING productId, [in] HSTRING catalogId, [in] HSTRING flightId, [in] HSTRING clientId, [in] boolean repair, [in] boolean forceUseOfNonRemovableStorage, [in] HSTRING correlationVector, [in] Windows.Management.Deployment.PackageVolume* targetVolume, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        HRESULT StartProductInstallForUserAsync([in] Windows.System.User* user, [in] HSTRING productId, [in] HSTRING catalogId, [in] HSTRING flightId, [in] HSTRING clientId, [in] boolean repair, [in] boolean forceUseOfNonRemovableStorage, [in] HSTRING correlationVector, [in] Windows.Management.Deployment.PackageVolume* targetVolume, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        HRESULT UpdateAppByPackageFamilyNameForUserAsync([in] Windows.System.User* user, [in] HSTRING packageFamilyName, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        HRESULT SearchForUpdatesForUserAsync([in] Windows.System.User* user, [in] HSTRING productId, [in] HSTRING skuId, [in] HSTRING catalogId, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        HRESULT SearchForAllUpdatesForUserAsync([in] Windows.System.User* user, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        HRESULT GetIsAppAllowedToInstallForUserAsync([in] Windows.System.User* user, [in] HSTRING productId, [in] HSTRING skuId, [in] HSTRING catalogId, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                        HRESULT GetIsApplicableForUserAsync([in] Windows.System.User* user, [in] HSTRING productId, [in] HSTRING skuId, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                        HRESULT MoveToFrontOfDownloadQueue([in] HSTRING productId, [in] HSTRING correlationVector);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager)]
                    [uuid(260A2A16-5A9E-4EBD-B944-F2BA75C31159)]
                    interface IAppInstallManager4 : IInspectable
                    {
                        HRESULT GetFreeUserEntitlementAsync([in] HSTRING storeId, [in] HSTRING campaignId, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.GetEntitlementResult*>** ppAsyncOperation);
                        HRESULT GetFreeUserEntitlementForUserAsync([in] Windows.System.User* user, [in] HSTRING storeId, [in] HSTRING campaignId, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.GetEntitlementResult*>** ppAsyncOperation);
                        HRESULT GetFreeDeviceEntitlementAsync([in] HSTRING storeId, [in] HSTRING campaignId, [in] HSTRING correlationVector, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.GetEntitlementResult*>** ppAsyncOperation);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager)]
                    [uuid(3CD7BE4C-1BE9-4F7F-B675-AA1D64A529B2)]
                    interface IAppInstallManager5 : IInspectable
                    {
                        [propget] HRESULT AppInstallItemsWithGroupSupport([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager)]
                    [uuid(C9E7D408-F27A-4471-B2F4-E76EFCBEBCCA)]
                    interface IAppInstallManager6 : IInspectable
                    {
                        [overload("SearchForAllUpdatesAsync")] HRESULT SearchForAllUpdatesWithUpdateOptionsAsync([in] HSTRING correlationVector, [in] HSTRING clientId, [in] Windows.ApplicationModel.Store.Preview.InstallControl.AppUpdateOptions* updateOptions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        [overload("SearchForAllUpdatesForUserAsync")] HRESULT SearchForAllUpdatesWithUpdateOptionsForUserAsync([in] Windows.System.User* user, [in] HSTRING correlationVector, [in] HSTRING clientId, [in] Windows.ApplicationModel.Store.Preview.InstallControl.AppUpdateOptions* updateOptions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        [overload("SearchForUpdatesAsync")] HRESULT SearchForUpdatesWithUpdateOptionsAsync([in] HSTRING productId, [in] HSTRING skuId, [in] HSTRING correlationVector, [in] HSTRING clientId, [in] Windows.ApplicationModel.Store.Preview.InstallControl.AppUpdateOptions* updateOptions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        [overload("SearchForUpdatesForUserAsync")] HRESULT SearchForUpdatesWithUpdateOptionsForUserAsync([in] Windows.System.User* user, [in] HSTRING productId, [in] HSTRING skuId, [in] HSTRING correlationVector, [in] HSTRING clientId, [in] Windows.ApplicationModel.Store.Preview.InstallControl.AppUpdateOptions* updateOptions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>** operation);
                        [overload("StartProductInstallAsync")] HRESULT StartProductInstallWithOptionsAsync([in] HSTRING productId, [in] HSTRING flightId, [in] HSTRING clientId, [in] HSTRING correlationVector, [in] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallOptions* installOptions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        [overload("StartProductInstallForUserAsync")] HRESULT StartProductInstallWithOptionsForUserAsync([in] Windows.System.User* user, [in] HSTRING productId, [in] HSTRING flightId, [in] HSTRING clientId, [in] HSTRING correlationVector, [in] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallOptions* installOptions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem*>*>** operation);
                        HRESULT GetIsPackageIdentityAllowedToInstallAsync([in] HSTRING correlationVector, [in] HSTRING packageIdentityName, [in] HSTRING publisherCertificateName, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                        HRESULT GetIsPackageIdentityAllowedToInstallForUserAsync([in] Windows.System.User* user, [in] HSTRING correlationVector, [in] HSTRING packageIdentityName, [in] HSTRING publisherCertificateName, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager)]
                    [uuid(A5EE7B30-D5E4-49A3-9853-3DB03203321D)]
                    interface IAppInstallManager7 : IInspectable
                    {
                        [propget] HRESULT CanInstallForAllUsers([out] [retval] boolean* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManagerItemEventArgs)]
                    [uuid(BC505743-4674-4DD1-957E-C25682086A14)]
                    interface IAppInstallManagerItemEventArgs : IInspectable
                    {
                        [propget] HRESULT Item([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallItem** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallOptions)]
                    [uuid(C9808300-1CB8-4EB6-8C9F-6A30C64A5B51)]
                    interface IAppInstallOptions : IInspectable
                    {
                        [propget] HRESULT CatalogId([out] [retval] HSTRING* value);
                        [propput] HRESULT CatalogId([in] HSTRING value);
                        [propget] HRESULT ForceUseOfNonRemovableStorage([out] [retval] boolean* value);
                        [propput] HRESULT ForceUseOfNonRemovableStorage([in] boolean value);
                        [propget] HRESULT AllowForcedAppRestart([out] [retval] boolean* value);
                        [propput] HRESULT AllowForcedAppRestart([in] boolean value);
                        [propget] HRESULT Repair([out] [retval] boolean* value);
                        [propput] HRESULT Repair([in] boolean value);
                        [propget] HRESULT TargetVolume([out] [retval] Windows.Management.Deployment.PackageVolume** value);
                        [propput] HRESULT TargetVolume([in] Windows.Management.Deployment.PackageVolume* value);
                        [propget] HRESULT LaunchAfterInstall([out] [retval] boolean* value);
                        [propput] HRESULT LaunchAfterInstall([in] boolean value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallOptions)]
                    [uuid(8A04C0D7-C94B-425E-95B4-BF27FAEAEE89)]
                    interface IAppInstallOptions2 : IInspectable
                    {
                        [propget] HRESULT PinToDesktopAfterInstall([out] [retval] boolean* value);
                        [propput] HRESULT PinToDesktopAfterInstall([in] boolean value);
                        [propget] HRESULT PinToStartAfterInstall([out] [retval] boolean* value);
                        [propput] HRESULT PinToStartAfterInstall([in] boolean value);
                        [propget] HRESULT PinToTaskbarAfterInstall([out] [retval] boolean* value);
                        [propput] HRESULT PinToTaskbarAfterInstall([in] boolean value);
                        [propget] HRESULT CompletedInstallToastNotificationMode([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallationToastNotificationMode* value);
                        [propput] HRESULT CompletedInstallToastNotificationMode([in] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallationToastNotificationMode value);
                        [propget] HRESULT InstallInProgressToastNotificationMode([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallationToastNotificationMode* value);
                        [propput] HRESULT InstallInProgressToastNotificationMode([in] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallationToastNotificationMode value);
                        [propget] HRESULT InstallForAllUsers([out] [retval] boolean* value);
                        [propput] HRESULT InstallForAllUsers([in] boolean value);
                        [propget] HRESULT StageButDoNotInstall([out] [retval] boolean* value);
                        [propput] HRESULT StageButDoNotInstall([in] boolean value);
                        [propget] HRESULT CampaignId([out] [retval] HSTRING* value);
                        [propput] HRESULT CampaignId([in] HSTRING value);
                        [propget] HRESULT ExtendedCampaignId([out] [retval] HSTRING* value);
                        [propput] HRESULT ExtendedCampaignId([in] HSTRING value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallStatus)]
                    [uuid(936DCCFA-2450-4126-88B1-6127A644DD5C)]
                    interface IAppInstallStatus : IInspectable
                    {
                        [propget] HRESULT InstallState([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallState* value);
                        [propget] HRESULT DownloadSizeInBytes([out] [retval] UINT64* value);
                        [propget] HRESULT BytesDownloaded([out] [retval] UINT64* value);
                        [propget] HRESULT PercentComplete([out] [retval] DOUBLE* value);
                        [propget] HRESULT ErrorCode([out] [retval] HRESULT* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallStatus)]
                    [uuid(96E7818A-5E92-4AA9-8EDC-58FED4B87E00)]
                    interface IAppInstallStatus2 : IInspectable
                    {
                        [propget] HRESULT User([out] [retval] Windows.System.User** value);
                        [propget] HRESULT ReadyForLaunch([out] [retval] boolean* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallStatus)]
                    [uuid(CB880C56-837B-4B4C-9EBB-6D44A0A96307)]
                    interface IAppInstallStatus3 : IInspectable
                    {
                        [propget] HRESULT IsStaged([out] [retval] boolean* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppUpdateOptions)]
                    [uuid(26F0B02F-C2F3-4AEA-AF8C-6308DD9DB85F)]
                    interface IAppUpdateOptions : IInspectable
                    {
                        [propget] HRESULT CatalogId([out] [retval] HSTRING* value);
                        [propput] HRESULT CatalogId([in] HSTRING value);
                        [propget] HRESULT AllowForcedAppRestart([out] [retval] boolean* value);
                        [propput] HRESULT AllowForcedAppRestart([in] boolean value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.AppUpdateOptions)]
                    [uuid(F4646E08-ED26-4BF9-9679-48F628E53DF8)]
                    interface IAppUpdateOptions2 : IInspectable
                    {
                        [propget] HRESULT AutomaticallyDownloadAndInstallUpdateIfFound([out] [retval] boolean* value);
                        [propput] HRESULT AutomaticallyDownloadAndInstallUpdateIfFound([in] boolean value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.GetEntitlementResult)]
                    [uuid(74FC843F-1A9E-4609-8E4D-819086D08A3D)]
                    interface IGetEntitlementResult : IInspectable
                    {
                        [propget] HRESULT Status([out] [retval] Windows.ApplicationModel.Store.Preview.InstallControl.GetEntitlementStatus* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                    [exclusiveto(Windows.ApplicationModel.Store.Preview.InstallControl.GetEntitlementResult)]
                    [uuid(E3906641-A981-4302-8C68-FF836666BB3B)]
                    interface IGetEntitlementResult2 : IInspectable
                    {
                        [propget] HRESULT IsAlreadyOwned([out] [retval] boolean* value);
                        [propget] HRESULT OrderId([out] [retval] HSTRING* value);
                        [propget] HRESULT SkuId([out] [retval] HSTRING* value);
                        [propget] HRESULT AvailabilityId([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass AppInstallItem
                    {
                        [default] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallItem;
                        [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallItem2;
                        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallItem3;
                        [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallItem4;
                        [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallItem5;
                    }

                    [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass AppInstallManager
                    {
                        [default] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallManager;
                        [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallManager2;
                        [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallManager3;
                        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallManager4;
                        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallManager5;
                        [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallManager6;
                        [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallManager7;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass AppInstallManagerItemEventArgs
                    {
                        [default] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallManagerItemEventArgs;
                    }

                    [activatable(Windows.Foundation.UniversalApiContract, 6.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass AppInstallOptions
                    {
                        [default] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallOptions;
                        [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallOptions2;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass AppInstallStatus
                    {
                        [default] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallStatus;
                        [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallStatus2;
                        [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppInstallStatus3;
                    }

                    [activatable(Windows.Foundation.UniversalApiContract, 6.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass AppUpdateOptions
                    {
                        [default] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppUpdateOptions;
                        [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IAppUpdateOptions2;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass GetEntitlementResult
                    {
                        [default] interface Windows.ApplicationModel.Store.Preview.InstallControl.IGetEntitlementResult;
                        [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.ApplicationModel.Store.Preview.InstallControl.IGetEntitlementResult2;
                    }
                }
            }
        }
    }
}
