//
// 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";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            runtimeclass PropertySet;

            runtimeclass ValueSet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Management
    {
        namespace Update
        {
            apicontract WindowsUpdateContract;

            typedef enum WindowsSoftwareUpdateActionResult WindowsSoftwareUpdateActionResult;

            typedef enum WindowsSoftwareUpdateActionType WindowsSoftwareUpdateActionType;

            typedef enum WindowsSoftwareUpdateArchitecture WindowsSoftwareUpdateArchitecture;

            typedef enum WindowsSoftwareUpdateInstallationType WindowsSoftwareUpdateInstallationType;

            typedef enum WindowsSoftwareUpdateProviderRegistrationType WindowsSoftwareUpdateProviderRegistrationType;

            typedef enum WindowsSoftwareUpdateProviderTrustState WindowsSoftwareUpdateProviderTrustState;

            typedef enum WindowsSoftwareUpdateProviderType WindowsSoftwareUpdateProviderType;

            typedef enum WindowsSoftwareUpdateRestartReason WindowsSoftwareUpdateRestartReason;

            typedef enum WindowsUpdateAdministratorOptions WindowsUpdateAdministratorOptions;

            typedef enum WindowsUpdateAdministratorStatus WindowsUpdateAdministratorStatus;

            typedef enum WindowsUpdateAttentionRequiredReason WindowsUpdateAttentionRequiredReason;

            interface IPreviewBuildsManager;

            interface IPreviewBuildsManagerStatics;

            interface IPreviewBuildsState;

            interface IWindowsSoftwareUpdate;

            interface IWindowsSoftwareUpdateActionInfo;

            interface IWindowsSoftwareUpdateActionInfoFactory;

            interface IWindowsSoftwareUpdateActionProgress;

            interface IWindowsSoftwareUpdateActionResultInfo;

            interface IWindowsSoftwareUpdateAppPackageInfo;

            interface IWindowsSoftwareUpdateAppPackageInfoFactory;

            interface IWindowsSoftwareUpdateApprovalInfo;

            interface IWindowsSoftwareUpdateApprovalInfoFactory;

            interface IWindowsSoftwareUpdateExecutionInfo;

            interface IWindowsSoftwareUpdateExecutionInfoFactory;

            interface IWindowsSoftwareUpdateFactory;

            interface IWindowsSoftwareUpdateLocalizationInfo;

            interface IWindowsSoftwareUpdateLocalizationInfoFactory;

            interface IWindowsSoftwareUpdateOptionalActionInfo;

            interface IWindowsSoftwareUpdateOptionalActionInfoFactory;

            interface IWindowsSoftwareUpdateOptionalInfo;

            interface IWindowsSoftwareUpdateOptionalInfoFactory;

            interface IWindowsSoftwareUpdateProvider;

            interface IWindowsSoftwareUpdateProviderActionResult;

            interface IWindowsSoftwareUpdateProviderActionResultFactory;

            interface IWindowsSoftwareUpdateProviderFactory;

            interface IWindowsSoftwareUpdateProviderPayloadFileInfo;

            interface IWindowsSoftwareUpdateProviderStatus;

            interface IWindowsSoftwareUpdateProviderStatusFactory;

            interface IWindowsSoftwareUpdateResult;

            interface IWindowsSoftwareUpdateResultFactory;

            interface IWindowsSoftwareUpdateScanResult;

            interface IWindowsSoftwareUpdateScanResultFactory;

            interface IWindowsSoftwareUpdateVersion;

            interface IWindowsSoftwareUpdateVersionFactory;

            interface IWindowsUpdate;

            interface IWindowsUpdateActionCompletedEventArgs;

            interface IWindowsUpdateActionProgress;

            interface IWindowsUpdateActionResult;

            interface IWindowsUpdateAdministrator;

            interface IWindowsUpdateAdministratorStatics;

            interface IWindowsUpdateApprovalData;

            interface IWindowsUpdateAttentionRequiredInfo;

            interface IWindowsUpdateAttentionRequiredReasonChangedEventArgs;

            interface IWindowsUpdateGetAdministratorResult;

            interface IWindowsUpdateItem;

            interface IWindowsUpdateManager;

            interface IWindowsUpdateManager2;

            interface IWindowsUpdateManagerFactory;

            interface IWindowsUpdateManagerFactory2;

            interface IWindowsUpdateManagerScanOptions;

            interface IWindowsUpdateManagerScanOptionsFactory;

            interface IWindowsUpdateProgressChangedEventArgs;

            interface IWindowsUpdateRestartRequestOptions;

            interface IWindowsUpdateRestartRequestOptionsFactory;

            interface IWindowsUpdateScanCompletedEventArgs;

            runtimeclass PreviewBuildsManager;

            runtimeclass PreviewBuildsState;

            runtimeclass WindowsSoftwareUpdate;

            runtimeclass WindowsSoftwareUpdateActionInfo;

            runtimeclass WindowsSoftwareUpdateActionProgress;

            runtimeclass WindowsSoftwareUpdateActionResultInfo;

            runtimeclass WindowsSoftwareUpdateAppPackageInfo;

            runtimeclass WindowsSoftwareUpdateApprovalInfo;

            runtimeclass WindowsSoftwareUpdateExecutionInfo;

            runtimeclass WindowsSoftwareUpdateLocalizationInfo;

            runtimeclass WindowsSoftwareUpdateOptionalActionInfo;

            runtimeclass WindowsSoftwareUpdateOptionalInfo;

            runtimeclass WindowsSoftwareUpdateProvider;

            runtimeclass WindowsSoftwareUpdateProviderActionResult;

            runtimeclass WindowsSoftwareUpdateProviderPayloadFileInfo;

            runtimeclass WindowsSoftwareUpdateProviderStatus;

            runtimeclass WindowsSoftwareUpdateResult;

            runtimeclass WindowsSoftwareUpdateScanResult;

            runtimeclass WindowsSoftwareUpdateVersion;

            runtimeclass WindowsUpdate;

            runtimeclass WindowsUpdateActionCompletedEventArgs;

            runtimeclass WindowsUpdateActionProgress;

            runtimeclass WindowsUpdateActionResult;

            runtimeclass WindowsUpdateAdministrator;

            runtimeclass WindowsUpdateApprovalData;

            runtimeclass WindowsUpdateAttentionRequiredInfo;

            runtimeclass WindowsUpdateAttentionRequiredReasonChangedEventArgs;

            runtimeclass WindowsUpdateGetAdministratorResult;

            runtimeclass WindowsUpdateItem;

            runtimeclass WindowsUpdateManager;

            runtimeclass WindowsUpdateManagerScanOptions;

            runtimeclass WindowsUpdateProgressChangedEventArgs;

            runtimeclass WindowsUpdateRestartRequestOptions;

            runtimeclass WindowsUpdateScanCompletedEventArgs;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Management
    {
        namespace Update
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsSoftwareUpdate*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsSoftwareUpdateActionType>;

                interface Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsSoftwareUpdateProviderPayloadFileInfo*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsUpdate*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsUpdateItem*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Management.Update.WindowsSoftwareUpdate*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Management.Update.WindowsSoftwareUpdateActionType>;

                interface Windows.Foundation.Collections.IIterator<Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Management.Update.WindowsSoftwareUpdateProviderPayloadFileInfo*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Management.Update.WindowsUpdate*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Management.Update.WindowsUpdateItem*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdate*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdateActionType>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdateProviderPayloadFileInfo*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsUpdate*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsUpdateItem*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsUpdateItem*>*>;

                interface Windows.Foundation.IReference<Windows.Management.Update.WindowsSoftwareUpdateRestartReason>;

                interface Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsSoftwareUpdateProviderStatus*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, Windows.Management.Update.WindowsUpdateActionCompletedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, Windows.Management.Update.WindowsUpdateAttentionRequiredReasonChangedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, Windows.Management.Update.WindowsUpdateProgressChangedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, Windows.Management.Update.WindowsUpdateScanCompletedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Management
    {
        namespace Update
        {
            [contractversion(2.1)]
            apicontract WindowsUpdateContract
            {
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            enum WindowsSoftwareUpdateActionResult
            {
                Succeeded = 0,
                Continue  = 1,
                Failed    = 2,
                Canceled  = 3,
                Removed   = 4
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            enum WindowsSoftwareUpdateActionType
            {
                Download   = 0,
                Install    = 1,
                Deploy     = 2,
                Reboot     = 3,
                AppRestart = 4
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            enum WindowsSoftwareUpdateArchitecture
            {
                Neutral = 0,
                X86     = 1,
                X64     = 2,
                Arm     = 3,
                Arm64   = 4
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            enum WindowsSoftwareUpdateInstallationType
            {
                WindowsUpdate = 0,
                AppPackage    = 1,
                Executable    = 2,
                Powershell    = 3
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            enum WindowsSoftwareUpdateProviderRegistrationType
            {
                None         = 0,
                System       = 1,
                Windows      = 2,
                Pending      = 3,
                Registered   = 4,
                Unregistered = 5
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            enum WindowsSoftwareUpdateProviderTrustState
            {
                SignedTrusted   = 0,
                SignedUntrusted = 1,
                Unsigned        = 2
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            enum WindowsSoftwareUpdateProviderType
            {
                WindowsUpdate = 0,
                Executable    = 1,
                Powershell    = 2
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            enum WindowsSoftwareUpdateRestartReason
            {
                None       = 0,
                System     = 1,
                AppClose   = 2,
                AppRestart = 3
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [flags]
            enum WindowsUpdateAdministratorOptions
            {
                None                                   = 0x0,
                RequireAdministratorApprovalForScans   = 0x1,
                RequireAdministratorApprovalForUpdates = 0x2,
                RequireAdministratorApprovalForActions = 0x4
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            enum WindowsUpdateAdministratorStatus
            {
                Succeeded                      = 0,
                NoAdministratorRegistered      = 1,
                OtherAdministratorIsRegistered = 2
            };

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            enum WindowsUpdateAttentionRequiredReason
            {
                None                               = 0,
                SeekerUpdate                       = 1,
                ReadyToReboot                      = 2,
                NeedNonMeteredNetwork              = 3,
                NeedUserAgreementForMeteredNetwork = 4,
                NeedNetwork                        = 5,
                NeedMoreSpace                      = 6,
                BatterySaverEnabled                = 7,
                NeedUserInteraction                = 8,
                NeedUserAgreementForPolicy         = 9,
                CompatibilityError                 = 10,
                NeedUserInteractionForEula         = 11,
                NeedUserInteractionForCta          = 12,
                Regulated                          = 13,
                ExternalReboot                     = 14,
                OtherUpdate                        = 15,
                BlockedByProvider                  = 16,
                BlockedByPostRebootFailure         = 17,
                UserEngaged                        = 18,
                BlockedByBattery                   = 19,
                Exclusivity                        = 20,
                BlockedBySerialization             = 21,
                ConflictClass                      = 22,
                BlockedByAdminApproval             = 23,
                BlockedByTooManyAttempts           = 24,
                BlockedByFailure                   = 25,
                Demotion                           = 26,
                BlockedByActiveHours               = 27,
                ScheduledForMaintenance            = 28,
                PolicyScheduledInstallTime         = 29,
                BlockedByOobe                      = 30,
                DeferredDuringOobe                 = 31,
                DeferredForSustainableTime         = 32,
                [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
                BlockedByAppClose                  = 33,
                BlockedByAppRestart                = 34,
                [contract(Windows.Management.Update.WindowsUpdateContract, 2.1)]
                OtherUpdateReverting               = 35
            };

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Management.Update.PreviewBuildsManager)]
            [uuid(FA07DD61-7E4F-59F7-7C9F-DEF9051C5F62)]
            interface IPreviewBuildsManager : IInspectable
            {
                [propget] HRESULT ArePreviewBuildsAllowed([out] [retval] boolean* value);
                [propput] HRESULT ArePreviewBuildsAllowed([in] boolean value);
                HRESULT GetCurrentState([out] [retval] Windows.Management.Update.PreviewBuildsState** result);
                HRESULT SyncAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Management.Update.PreviewBuildsManager)]
            [uuid(3E422887-B112-5A70-7DA1-97D78D32AA29)]
            interface IPreviewBuildsManagerStatics : IInspectable
            {
                HRESULT GetDefault([out] [retval] Windows.Management.Update.PreviewBuildsManager** value);
                HRESULT IsSupported([out] [retval] boolean* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Management.Update.PreviewBuildsState)]
            [uuid(A2F2903E-B223-5F63-7546-3E8EAC070A2E)]
            interface IPreviewBuildsState : IInspectable
            {
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.ValueSet** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdate)]
            [uuid(D8F19211-98FE-58DD-AF0F-470532AA3341)]
            interface IWindowsSoftwareUpdate : IInspectable
            {
                [propget] HRESULT InstallationType([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateInstallationType* value);
                [propget] HRESULT ProviderId([out] [retval] HSTRING* value);
                [propget] HRESULT UpdateId([out] [retval] HSTRING* value);
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT MoreInfoUrl([out] [retval] Windows.Foundation.Uri** value);
                [propget] HRESULT DownloadSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT InstallSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SourceVersion([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateVersion** value);
                [propget] HRESULT TargetVersion([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateVersion** value);
                [propget] HRESULT ProductCode([out] [retval] Windows.Foundation.IReference<GUID>** value);
                [propget] HRESULT PackageFamilyName([out] [retval] HSTRING* value);
                HRESULT Approve([in] Windows.Management.Update.WindowsSoftwareUpdateApprovalInfo* approvalInfo, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** result);
                HRESULT ApproveCurrentAction([in] boolean approve, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** result);
                [propget] HRESULT CurrentAction([out] [retval] HSTRING* value);
                [propget] HRESULT ActionResultInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionResultInfo** value);
                [propget] HRESULT ApprovalInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateApprovalInfo** value);
                [propget] HRESULT ApprovedActions([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdateActionType>** value);
                [propget] HRESULT AttentionRequiredInfo([out] [retval] Windows.Management.Update.WindowsUpdateAttentionRequiredInfo** value);
                [propget] HRESULT ActionProgress([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionProgress** value);
                [propget] HRESULT RestartReason([out] [retval] Windows.Foundation.IReference<Windows.Management.Update.WindowsSoftwareUpdateRestartReason>** value);
                [propget] HRESULT AppPackageInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateAppPackageInfo** value);
                [propget] HRESULT ExecutionInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateExecutionInfo** value);
                [propget] HRESULT OptionalInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateOptionalInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateActionInfo)]
            [uuid(2F6723B5-F704-5362-B600-D18808F3973E)]
            interface IWindowsSoftwareUpdateActionInfo : IInspectable
            {
                [propget] HRESULT FileName([out] [retval] HSTRING* value);
                [propget] HRESULT FileArguments([out] [retval] HSTRING* value);
                [propget] HRESULT ActionType([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionType* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateActionInfo)]
            [uuid(5E83B58E-D982-5D93-A7CB-BF6C9B6EE5A6)]
            interface IWindowsSoftwareUpdateActionInfoFactory : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING fileName, [in] HSTRING fileArguments, [in] Windows.Management.Update.WindowsSoftwareUpdateActionType actionType, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateActionProgress)]
            [uuid(17DC15FD-75F2-522B-B555-359DA8DE5581)]
            interface IWindowsSoftwareUpdateActionProgress : IInspectable
            {
                [propget] HRESULT Action([out] [retval] HSTRING* value);
                [propget] HRESULT CurrentProgress([out] [retval] UINT64* value);
                [propget] HRESULT TotalProgress([out] [retval] UINT64* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateActionResultInfo)]
            [uuid(BCF26FBA-98C8-51CB-8B7E-1EEDC3D82A69)]
            interface IWindowsSoftwareUpdateActionResultInfo : IInspectable
            {
                [propget] HRESULT Timestamp([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT ResultCode([out] [retval] UINT32* value);
                [propget] HRESULT ExtendedError([out] [retval] UINT64* value);
                [propget] HRESULT Action([out] [retval] HSTRING* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateAppPackageInfo)]
            [uuid(A5BD59F4-E624-5552-82F9-267A4574A203)]
            interface IWindowsSoftwareUpdateAppPackageInfo : IInspectable
            {
                [propget] HRESULT PackageFamilyName([out] [retval] HSTRING* value);
                [propget] HRESULT PackageArchitecture([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateArchitecture* value);
                [propget] HRESULT InstallUri([out] [retval] Windows.Foundation.Uri** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateAppPackageInfo)]
            [uuid(A8BDA639-A4F6-5A4A-8A54-26C1C508CD0F)]
            interface IWindowsSoftwareUpdateAppPackageInfoFactory : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING packageFamilyName, [in] Windows.Management.Update.WindowsSoftwareUpdateArchitecture packageArchitecture, [in] Windows.Foundation.Uri* installUri, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateAppPackageInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateApprovalInfo)]
            [uuid(691E6B9E-80AF-5882-9404-25437ECB791B)]
            interface IWindowsSoftwareUpdateApprovalInfo : IInspectable
            {
                [propget] HRESULT UserInitiated([out] [retval] boolean* value);
                [propget] HRESULT AppClosure([out] [retval] boolean* value);
                [propget] HRESULT MeteredNetwork([out] [retval] boolean* value);
                [propget] HRESULT Seeker([out] [retval] boolean* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateApprovalInfo)]
            [uuid(AB291C7C-D29F-5AC5-B447-0BFCABDC2CC3)]
            interface IWindowsSoftwareUpdateApprovalInfoFactory : IInspectable
            {
                HRESULT CreateInstance([in] boolean userInitiated, [in] boolean appClosure, [in] boolean meteredNetwork, [in] boolean seeker, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateApprovalInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateExecutionInfo)]
            [uuid(091AEA19-9128-5F24-AFC1-A62252DF55C0)]
            interface IWindowsSoftwareUpdateExecutionInfo : IInspectable
            {
                [propget] HRESULT DownloadInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionInfo** value);
                [propget] HRESULT InstallInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionInfo** value);
                [propget] HRESULT DeployInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionInfo** value);
                [propget] HRESULT OptionalActionInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateOptionalActionInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateExecutionInfo)]
            [uuid(88596F7E-B9EF-5583-8135-94D62ED66ED4)]
            interface IWindowsSoftwareUpdateExecutionInfoFactory : IInspectable
            {
                HRESULT CreateInstance([in] Windows.Management.Update.WindowsSoftwareUpdateActionInfo* downloadInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateActionInfo* installInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateOptionalActionInfo* actions, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateExecutionInfo** value);
                HRESULT CreateInstance2([in] Windows.Management.Update.WindowsSoftwareUpdateActionInfo* deployInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateOptionalActionInfo* actions, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateExecutionInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdate)]
            [uuid(28E7E01B-4225-52C8-BB51-C68F0B071BE5)]
            interface IWindowsSoftwareUpdateFactory : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING providerId, [in] Windows.Management.Update.WindowsSoftwareUpdateInstallationType installationType, [in] HSTRING updateId, [in] HSTRING title, [in] HSTRING description, [in] Windows.Foundation.Uri* moreInfoUrl, [in] UINT64 downloadSizeInBytes, [in] UINT64 installSizeInBytes, [in] Windows.Management.Update.WindowsSoftwareUpdateVersion* sourceVersion, [in] Windows.Management.Update.WindowsSoftwareUpdateVersion* targetVersion, [in] Windows.Management.Update.WindowsSoftwareUpdateAppPackageInfo* appPackageInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateExecutionInfo* executionInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateOptionalInfo* optionalInfo, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdate** value);
                HRESULT CreateInstance2([in] HSTRING providerId, [in] Windows.Management.Update.WindowsSoftwareUpdateInstallationType installationType, [in] HSTRING updateId, [in] HSTRING title, [in] HSTRING description, [in] Windows.Foundation.Uri* moreInfoUrl, [in] UINT64 downloadSizeInBytes, [in] UINT64 installSizeInBytes, [in] Windows.Foundation.IReference<GUID>* productCode, [in] HSTRING packageFamilyName, [in] Windows.Management.Update.WindowsSoftwareUpdateVersion* sourceVersion, [in] Windows.Management.Update.WindowsSoftwareUpdateVersion* targetVersion, [in] Windows.Management.Update.WindowsSoftwareUpdateAppPackageInfo* appPackageInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateExecutionInfo* executionInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateOptionalInfo* optionalInfo, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdate** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo)]
            [uuid(ADC2DE4B-5966-5F9F-AE07-00D4A285D933)]
            interface IWindowsSoftwareUpdateLocalizationInfo : IInspectable
            {
                [propget] HRESULT LanguageId([out] [retval] UINT32* value);
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT MoreInfoUrl([out] [retval] Windows.Foundation.Uri** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo)]
            [uuid(76979B24-F5BD-5C8C-BDB7-A46187374AFF)]
            interface IWindowsSoftwareUpdateLocalizationInfoFactory : IInspectable
            {
                HRESULT CreateInstance([in] UINT32 languageId, [in] HSTRING title, [in] HSTRING description, [in] Windows.Foundation.Uri* moreInfoUrl, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateOptionalActionInfo)]
            [uuid(4AC035D0-E50E-5CCB-BFD8-A303562891D2)]
            interface IWindowsSoftwareUpdateOptionalActionInfo : IInspectable
            {
                [propget] HRESULT CloseAndDeployInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionInfo** value);
                [propget] HRESULT CloseAndInstallInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionInfo** value);
                [propget] HRESULT CloseAndRestartInfo([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateOptionalActionInfo)]
            [uuid(88D2FCC1-4791-51B6-B988-966EF93A180B)]
            interface IWindowsSoftwareUpdateOptionalActionInfoFactory : IInspectable
            {
                HRESULT CreateInstance([in] Windows.Management.Update.WindowsSoftwareUpdateActionInfo* closeAndDeployInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateActionInfo* closeAndInstallInfo, [in] Windows.Management.Update.WindowsSoftwareUpdateActionInfo* closeAndRestartInfo, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateOptionalActionInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateOptionalInfo)]
            [uuid(78084A73-50C4-5C33-A751-7A121F5AAE70)]
            interface IWindowsSoftwareUpdateOptionalInfo : IInspectable
            {
                [propget] HRESULT LocalizationInfo([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo*>** value);
                [propget] HRESULT ComplianceDeadlineInDays([out] [retval] Windows.Foundation.IReference<INT32>** value);
                [propget] HRESULT ComplianceGracePeriodInDays([out] [retval] Windows.Foundation.IReference<INT32>** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateOptionalInfo)]
            [uuid(D837DEED-A5F2-5C89-8BEB-852D2897B2EF)]
            interface IWindowsSoftwareUpdateOptionalInfoFactory : IInspectable
            {
                HRESULT CreateInstance([in] Windows.Foundation.IReference<INT32>* complianceDeadlineInDays, [in] Windows.Foundation.IReference<INT32>* complianceGracePeriodInDays, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateOptionalInfo** value);
                HRESULT CreateInstance2([in] Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo*>* localizationInfo, [in] Windows.Foundation.IReference<INT32>* complianceDeadlineInDays, [in] Windows.Foundation.IReference<INT32>* complianceGracePeriodInDays, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateOptionalInfo** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateProvider)]
            [uuid(20B67F4A-E28E-5D20-9C00-BF249922EFBE)]
            interface IWindowsSoftwareUpdateProvider : IInspectable
            {
                HRESULT Register([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** result);
                HRESULT Unregister([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** result);
                HRESULT Validate([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** result);
                [propget] HRESULT Id([out] [retval] HSTRING* value);
                [propget] HRESULT Version([out] [retval] HSTRING* value);
                [propget] HRESULT FolderPath([out] [retval] HSTRING* value);
                [propget] HRESULT CatalogFile([out] [retval] HSTRING* value);
                [propget] HRESULT ScanFileName([out] [retval] HSTRING* value);
                [propget] HRESULT ScanFileArguments([out] [retval] HSTRING* value);
                [propget] HRESULT Type([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateProviderType* value);
                [propget] HRESULT PayloadFiles([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdateProviderPayloadFileInfo*>** value);
                [propget] HRESULT TrustState([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateProviderTrustState* value);
                [propget] HRESULT RegistrationType([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateProviderRegistrationType* value);
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.PropertySet** value);
                HRESULT GetPropertyValue([in] HSTRING name, [out] [retval] IInspectable** result);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateProviderActionResult)]
            [uuid(AFD92B50-6BB9-54DE-BDDA-9DFB6CC17C16)]
            interface IWindowsSoftwareUpdateProviderActionResult : IInspectable
            {
                [propget] HRESULT Result([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateActionResult* value);
                [propget] HRESULT RestartReason([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateRestartReason* value);
                [propget] HRESULT ResultCode([out] [retval] UINT32* value);
                [propget] HRESULT ExtendedError([out] [retval] UINT64* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateProviderActionResult)]
            [uuid(0C002684-30C9-59E9-B53F-8846A85D2DC6)]
            interface IWindowsSoftwareUpdateProviderActionResultFactory : IInspectable
            {
                HRESULT CreateInstance([in] Windows.Management.Update.WindowsSoftwareUpdateActionResult actionResult, [in] Windows.Management.Update.WindowsSoftwareUpdateRestartReason restartReason, [in] UINT32 resultCode, [in] UINT64 extendedError, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateProviderActionResult** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateProvider)]
            [uuid(FC0D5FC4-E15E-5116-B2ED-DB0A64997FFA)]
            interface IWindowsSoftwareUpdateProviderFactory : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING folderPath, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateProvider** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateProviderPayloadFileInfo)]
            [uuid(F1DA16DA-1B01-5367-B4AE-20DB8CAE1E9B)]
            interface IWindowsSoftwareUpdateProviderPayloadFileInfo : IInspectable
            {
                [propget] HRESULT Filename([out] [retval] HSTRING* value);
                [propget] HRESULT FileHash([out] [retval] HSTRING* value);
                [propget] HRESULT CatalogFile([out] [retval] HSTRING* value);
                [propget] HRESULT TrustState([out] [retval] Windows.Management.Update.WindowsSoftwareUpdateProviderTrustState* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateProviderStatus)]
            [uuid(076741B8-7A8E-53B6-9FB7-E290B13C52E9)]
            interface IWindowsSoftwareUpdateProviderStatus : IInspectable
            {
                [eventadd] HRESULT CancelRequested([in] Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsSoftwareUpdateProviderStatus*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT CancelRequested([in] EventRegistrationToken token);
                HRESULT SetScanResult([in] boolean succeeded, [in] UINT32 resultCode, [in] UINT64 extendedError, [in] Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsSoftwareUpdate*>* updates, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** result);
                HRESULT SetActionProgress([in] UINT64 current, [in] UINT64 total, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** result);
                HRESULT SetActionResult([in] Windows.Management.Update.WindowsSoftwareUpdateProviderActionResult* actionResult, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** result);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateProviderStatus)]
            [uuid(D1E1B416-7DFD-55EF-9E3C-18D1459E3123)]
            interface IWindowsSoftwareUpdateProviderStatusFactory : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING providerId, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateProviderStatus** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateResult)]
            [uuid(A6D7ED98-6212-5AD3-AA9D-15E83BB85EE4)]
            interface IWindowsSoftwareUpdateResult : IInspectable
            {
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT CancelRequested([out] [retval] boolean* value);
                [propget] HRESULT ResultCode([out] [retval] UINT32* value);
                [propget] HRESULT ExtendedError([out] [retval] UINT64* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateResult)]
            [uuid(512CE0BF-9977-5301-9B29-9E5042C8CF7D)]
            interface IWindowsSoftwareUpdateResultFactory : IInspectable
            {
                HRESULT CreateInstance([in] boolean succeeded, [in] UINT32 resultCode, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** value);
                HRESULT CreateInstance2([in] boolean succeeded, [in] UINT32 resultCode, [in] UINT64 extendedError, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** value);
                HRESULT CreateInstance3([in] boolean succeeded, [in] boolean cancelRequested, [in] UINT32 resultCode, [in] UINT64 extendedError, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateResult** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateScanResult)]
            [uuid(43CA6D96-3E6D-56DA-A903-65D4AB729299)]
            interface IWindowsSoftwareUpdateScanResult : IInspectable
            {
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT ResultCode([out] [retval] UINT32* value);
                [propget] HRESULT ExtendedError([out] [retval] UINT64* value);
                [propget] HRESULT Updates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdate*>** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateScanResult)]
            [uuid(21148E4C-E7CE-574E-BFA7-69DC77457D21)]
            interface IWindowsSoftwareUpdateScanResultFactory : IInspectable
            {
                HRESULT CreateInstance([in] boolean succeeded, [in] UINT32 resultCode, [in] Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsSoftwareUpdate*>* updates, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateScanResult** value);
                HRESULT CreateInstance2([in] boolean succeeded, [in] UINT32 resultCode, [in] UINT64 extendedError, [in] Windows.Foundation.Collections.IIterable<Windows.Management.Update.WindowsSoftwareUpdate*>* updates, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateScanResult** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateVersion)]
            [uuid(215E22E7-6D57-5305-9C79-4ECD4A4D7871)]
            interface IWindowsSoftwareUpdateVersion : IInspectable
            {
                [propget] HRESULT Major([out] [retval] UINT32* value);
                [propget] HRESULT Minor([out] [retval] UINT32* value);
                [propget] HRESULT RevisionMajor([out] [retval] UINT32* value);
                [propget] HRESULT RevisionMinor([out] [retval] UINT32* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsSoftwareUpdateVersion)]
            [uuid(650ED994-0858-5528-A1F2-F73CA64DABC9)]
            interface IWindowsSoftwareUpdateVersionFactory : IInspectable
            {
                HRESULT CreateInstance([in] UINT32 major, [in] UINT32 minor, [in] UINT32 revisionMajor, [in] UINT32 revisionMinor, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateVersion** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdate)]
            [uuid(C3C88DD7-0EF3-52B2-A9AD-66BFC6BD9582)]
            interface IWindowsUpdate : IInspectable
            {
                [propget] HRESULT ProviderId([out] [retval] HSTRING* value);
                [propget] HRESULT UpdateId([out] [retval] HSTRING* value);
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT IsFeatureUpdate([out] [retval] boolean* value);
                [propget] HRESULT IsMinorImpact([out] [retval] boolean* value);
                [propget] HRESULT IsSecurity([out] [retval] boolean* value);
                [propget] HRESULT IsCritical([out] [retval] boolean* value);
                [propget] HRESULT IsForOS([out] [retval] boolean* value);
                [propget] HRESULT IsDriver([out] [retval] boolean* value);
                [propget] HRESULT IsMandatory([out] [retval] boolean* value);
                [propget] HRESULT IsUrgent([out] [retval] boolean* value);
                [propget] HRESULT IsSeeker([out] [retval] boolean* value);
                [propget] HRESULT MoreInfoUrl([out] [retval] Windows.Foundation.Uri** value);
                [propget] HRESULT SupportUrl([out] [retval] Windows.Foundation.Uri** value);
                [propget] HRESULT IsEulaAccepted([out] [retval] boolean* value);
                [propget] HRESULT EulaText([out] [retval] HSTRING* value);
                [propget] HRESULT Deadline([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                [propget] HRESULT AttentionRequiredInfo([out] [retval] Windows.Management.Update.WindowsUpdateAttentionRequiredInfo** value);
                [propget] HRESULT ActionResult([out] [retval] Windows.Management.Update.WindowsUpdateActionResult** value);
                [propget] HRESULT CurrentAction([out] [retval] HSTRING* value);
                [propget] HRESULT ActionProgress([out] [retval] Windows.Management.Update.WindowsUpdateActionProgress** value);
                HRESULT GetPropertyValue([in] HSTRING propertyName, [out] [retval] IInspectable** result);
                HRESULT AcceptEula();
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateActionCompletedEventArgs)]
            [uuid(2C44B950-A655-5321-AEC1-AEE762922131)]
            interface IWindowsUpdateActionCompletedEventArgs : IInspectable
            {
                [propget] HRESULT Update([out] [retval] Windows.Management.Update.WindowsUpdate** value);
                [propget] HRESULT Action([out] [retval] HSTRING* value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateActionProgress)]
            [uuid(83B22D8A-4BB0-549F-BA39-59724882D137)]
            interface IWindowsUpdateActionProgress : IInspectable
            {
                [propget] HRESULT Action([out] [retval] HSTRING* value);
                [propget] HRESULT Progress([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateActionResult)]
            [uuid(E6692C62-F697-51B7-AB7F-E73E5E688F12)]
            interface IWindowsUpdateActionResult : IInspectable
            {
                [propget] HRESULT Timestamp([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                [propget] HRESULT Action([out] [retval] HSTRING* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateAdministrator)]
            [uuid(7A60181C-BA1E-5CF9-AA65-304120B73D72)]
            interface IWindowsUpdateAdministrator : IInspectable
            {
                HRESULT StartAdministratorScan();
                HRESULT ApproveWindowsUpdateAction([in] HSTRING updateId, [in] HSTRING action);
                HRESULT RevokeWindowsUpdateActionApproval([in] HSTRING updateId, [in] HSTRING action);
                HRESULT ApproveWindowsUpdate([in] HSTRING updateId, [in] Windows.Management.Update.WindowsUpdateApprovalData* approvalData);
                HRESULT RevokeWindowsUpdateApproval([in] HSTRING updateId);
                HRESULT GetUpdates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsUpdate*>** result);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateAdministrator)]
            [uuid(013E6D36-EF69-53BC-8DB8-C403BCA550ED)]
            interface IWindowsUpdateAdministratorStatics : IInspectable
            {
                HRESULT GetRegisteredAdministrator([in] HSTRING organizationName, [out] [retval] Windows.Management.Update.WindowsUpdateGetAdministratorResult** result);
                HRESULT RegisterForAdministration([in] HSTRING organizationName, [in] Windows.Management.Update.WindowsUpdateAdministratorOptions options, [out] [retval] Windows.Management.Update.WindowsUpdateAdministratorStatus* result);
                HRESULT UnregisterForAdministration([in] HSTRING organizationName, [out] [retval] Windows.Management.Update.WindowsUpdateAdministratorStatus* result);
                HRESULT GetRegisteredAdministratorName([out] [retval] HSTRING* result);
                HRESULT RequestRestart([in] Windows.Management.Update.WindowsUpdateRestartRequestOptions* restartOptions, [out] [retval] HSTRING* result);
                HRESULT CancelRestartRequest([in] HSTRING requestRestartToken);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateApprovalData)]
            [uuid(AADF5BFD-84DB-59BC-85E2-AD4FC1F62F7C)]
            interface IWindowsUpdateApprovalData : IInspectable
            {
                [propget] HRESULT Seeker([out] [retval] Windows.Foundation.IReference<boolean>** value);
                [propput] HRESULT Seeker([in] Windows.Foundation.IReference<boolean>* value);
                [propget] HRESULT AllowDownloadOnMetered([out] [retval] Windows.Foundation.IReference<boolean>** value);
                [propput] HRESULT AllowDownloadOnMetered([in] Windows.Foundation.IReference<boolean>* value);
                [propget] HRESULT ComplianceDeadlineInDays([out] [retval] Windows.Foundation.IReference<INT32>** value);
                [propput] HRESULT ComplianceDeadlineInDays([in] Windows.Foundation.IReference<INT32>* value);
                [propget] HRESULT ComplianceGracePeriodInDays([out] [retval] Windows.Foundation.IReference<INT32>** value);
                [propput] HRESULT ComplianceGracePeriodInDays([in] Windows.Foundation.IReference<INT32>* value);
                [propget] HRESULT OptOutOfAutoReboot([out] [retval] Windows.Foundation.IReference<boolean>** value);
                [propput] HRESULT OptOutOfAutoReboot([in] Windows.Foundation.IReference<boolean>* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateAttentionRequiredInfo)]
            [uuid(44DF2579-74D3-5FFA-B6CE-09E187E1E0ED)]
            interface IWindowsUpdateAttentionRequiredInfo : IInspectable
            {
                [propget] HRESULT Reason([out] [retval] Windows.Management.Update.WindowsUpdateAttentionRequiredReason* value);
                [propget] HRESULT Timestamp([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateAttentionRequiredReasonChangedEventArgs)]
            [uuid(0627ABCA-DBB8-524A-B1D2-D9DF004EEB31)]
            interface IWindowsUpdateAttentionRequiredReasonChangedEventArgs : IInspectable
            {
                [propget] HRESULT Update([out] [retval] Windows.Management.Update.WindowsUpdate** value);
                [propget] HRESULT Reason([out] [retval] Windows.Management.Update.WindowsUpdateAttentionRequiredReason* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateGetAdministratorResult)]
            [uuid(BB39FFC4-2C42-5B1C-8995-343341C92C50)]
            interface IWindowsUpdateGetAdministratorResult : IInspectable
            {
                [propget] HRESULT Administrator([out] [retval] Windows.Management.Update.WindowsUpdateAdministrator** value);
                [propget] HRESULT Status([out] [retval] Windows.Management.Update.WindowsUpdateAdministratorStatus* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateItem)]
            [uuid(B222E44A-49B6-59BF-A033-EF617CD73A98)]
            interface IWindowsUpdateItem : IInspectable
            {
                [propget] HRESULT ProviderId([out] [retval] HSTRING* value);
                [propget] HRESULT UpdateId([out] [retval] HSTRING* value);
                [propget] HRESULT Timestamp([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT MoreInfoUrl([out] [retval] Windows.Foundation.Uri** value);
                [propget] HRESULT Category([out] [retval] HSTRING* value);
                [propget] HRESULT Operation([out] [retval] HSTRING* value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateManager)]
            [uuid(5DD966C0-A71A-5602-BBD0-09A70E4573FA)]
            interface IWindowsUpdateManager : IInspectable
            {
                [eventadd] HRESULT ScanningStateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ScanningStateChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT WorkingStateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT WorkingStateChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT ProgressChanged([in] Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, Windows.Management.Update.WindowsUpdateProgressChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ProgressChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT AttentionRequiredReasonChanged([in] Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, Windows.Management.Update.WindowsUpdateAttentionRequiredReasonChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AttentionRequiredReasonChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT ActionCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, Windows.Management.Update.WindowsUpdateActionCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ActionCompleted([in] EventRegistrationToken token);
                [eventadd] HRESULT ScanCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Management.Update.WindowsUpdateManager*, Windows.Management.Update.WindowsUpdateScanCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ScanCompleted([in] EventRegistrationToken token);
                [propget] HRESULT IsScanning([out] [retval] boolean* value);
                [propget] HRESULT IsWorking([out] [retval] boolean* value);
                [propget] HRESULT LastSuccessfulScanTimestamp([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                HRESULT GetApplicableUpdates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsUpdate*>** result);
                HRESULT GetMostRecentCompletedUpdates([in] INT32 count, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsUpdateItem*>** result);
                HRESULT GetMostRecentCompletedUpdatesAsync([in] INT32 count, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsUpdateItem*>*>** operation);
                HRESULT StartScan([in] boolean userInitiated);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateManager)]
            [uuid(564E7683-BD21-57A4-B17F-7BF6350F4C75)]
            interface IWindowsUpdateManager2 : IInspectable
            {
                HRESULT GetProvider([in] HSTRING id, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateProvider** result);
                [propget] HRESULT ProviderIds([out] UINT32* __valueSize, [out] [retval] [size_is(, *__valueSize)] HSTRING** value);
                HRESULT GetApplicableSoftwareUpdates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsSoftwareUpdate*>** result);
                HRESULT PerformScan([in] Windows.Management.Update.WindowsUpdateManagerScanOptions* options, [out] [retval] Windows.Management.Update.WindowsSoftwareUpdateScanResult** result);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateManager)]
            [uuid(1B394DF8-DECB-5F44-B47C-6CCF3BCFDB37)]
            interface IWindowsUpdateManagerFactory : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING clientId, [out] [retval] Windows.Management.Update.WindowsUpdateManager** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateManager)]
            [uuid(BA08D663-D160-59B9-9898-97A186AD52EA)]
            interface IWindowsUpdateManagerFactory2 : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING clientId, [in] UINT32 __providerIdFilterSize, [in] [size_is(__providerIdFilterSize)] HSTRING* providerIdFilter, [out] [retval] Windows.Management.Update.WindowsUpdateManager** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateManagerScanOptions)]
            [uuid(B7C30113-5E4B-59D8-99AD-F58D67B2AEFC)]
            interface IWindowsUpdateManagerScanOptions : IInspectable
            {
                [propget] HRESULT IsUserInitiated([out] [retval] boolean* value);
                [propput] HRESULT IsUserInitiated([in] boolean value);
                [propget] HRESULT AllowBypassThrottling([out] [retval] boolean* value);
                [propput] HRESULT AllowBypassThrottling([in] boolean value);
                [propget] HRESULT PerformUpdateActions([out] [retval] boolean* value);
                [propput] HRESULT PerformUpdateActions([in] boolean value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateManagerScanOptions)]
            [uuid(1A0F9198-F18D-5CFD-8CB9-08F3FB74DA70)]
            interface IWindowsUpdateManagerScanOptionsFactory : IInspectable
            {
                HRESULT CreateInstance([in] boolean isUserInitiated, [out] [retval] Windows.Management.Update.WindowsUpdateManagerScanOptions** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateProgressChangedEventArgs)]
            [uuid(BBFBDEEB-94C8-5AA7-B0FB-66C67C233B0A)]
            interface IWindowsUpdateProgressChangedEventArgs : IInspectable
            {
                [propget] HRESULT Update([out] [retval] Windows.Management.Update.WindowsUpdate** value);
                [propget] HRESULT ActionProgress([out] [retval] Windows.Management.Update.WindowsUpdateActionProgress** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateRestartRequestOptions)]
            [uuid(38CFB7D3-4188-5222-905C-6C4443C951EE)]
            interface IWindowsUpdateRestartRequestOptions : IInspectable
            {
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propput] HRESULT Title([in] HSTRING value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propput] HRESULT Description([in] HSTRING value);
                [propget] HRESULT MoreInfoUrl([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT MoreInfoUrl([in] Windows.Foundation.Uri* value);
                [propget] HRESULT ComplianceDeadlineInDays([out] [retval] INT32* value);
                [propput] HRESULT ComplianceDeadlineInDays([in] INT32 value);
                [propget] HRESULT ComplianceGracePeriodInDays([out] [retval] INT32* value);
                [propput] HRESULT ComplianceGracePeriodInDays([in] INT32 value);
                [propget] HRESULT OrganizationName([out] [retval] HSTRING* value);
                [propput] HRESULT OrganizationName([in] HSTRING value);
                [propget] HRESULT OptOutOfAutoReboot([out] [retval] boolean* value);
                [propput] HRESULT OptOutOfAutoReboot([in] boolean value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateRestartRequestOptions)]
            [uuid(75F41D04-0E17-50D0-8C15-6B9D0539B3A9)]
            interface IWindowsUpdateRestartRequestOptionsFactory : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING title, [in] HSTRING description, [in] Windows.Foundation.Uri* moreInfoUrl, [in] INT32 complianceDeadlineInDays, [in] INT32 complianceGracePeriodInDays, [out] [retval] Windows.Management.Update.WindowsUpdateRestartRequestOptions** value);
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [exclusiveto(Windows.Management.Update.WindowsUpdateScanCompletedEventArgs)]
            [uuid(95B6953E-BA5C-5FE8-B115-12DE184A6BB0)]
            interface IWindowsUpdateScanCompletedEventArgs : IInspectable
            {
                [propget] HRESULT ProviderId([out] [retval] HSTRING* value);
                [propget] HRESULT Succeeded([out] [retval] boolean* value);
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                [propget] HRESULT Updates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Management.Update.WindowsUpdate*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Management.Update.IPreviewBuildsManagerStatics, Windows.Foundation.UniversalApiContract, 6.0)]
            [threading(both)]
            runtimeclass PreviewBuildsManager
            {
                [default] interface Windows.Management.Update.IPreviewBuildsManager;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass PreviewBuildsState
            {
                [default] interface Windows.Management.Update.IPreviewBuildsState;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdate
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdate;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateActionInfoFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateActionInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateActionInfo;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsSoftwareUpdateActionProgress
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateActionProgress;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsSoftwareUpdateActionResultInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateActionResultInfo;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateAppPackageInfoFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateAppPackageInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateAppPackageInfo;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateApprovalInfoFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateApprovalInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateApprovalInfo;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateExecutionInfoFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateExecutionInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateExecutionInfo;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateLocalizationInfoFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateLocalizationInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateLocalizationInfo;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateOptionalActionInfoFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateOptionalActionInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateOptionalActionInfo;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateOptionalInfoFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateOptionalInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateOptionalInfo;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateProviderFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateProvider
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateProvider;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateProviderActionResultFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateProviderActionResult
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateProviderActionResult;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsSoftwareUpdateProviderPayloadFileInfo
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateProviderPayloadFileInfo;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateProviderStatusFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateProviderStatus
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateProviderStatus;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateResultFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateResult
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateResult;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateScanResultFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateScanResult
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateScanResult;
            }

            [activatable(Windows.Management.Update.IWindowsSoftwareUpdateVersionFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsSoftwareUpdateVersion
            {
                [default] interface Windows.Management.Update.IWindowsSoftwareUpdateVersion;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdate
            {
                [default] interface Windows.Management.Update.IWindowsUpdate;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateActionCompletedEventArgs
            {
                [default] interface Windows.Management.Update.IWindowsUpdateActionCompletedEventArgs;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateActionProgress
            {
                [default] interface Windows.Management.Update.IWindowsUpdateActionProgress;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateActionResult
            {
                [default] interface Windows.Management.Update.IWindowsUpdateActionResult;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Management.Update.IWindowsUpdateAdministratorStatics, Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [threading(both)]
            runtimeclass WindowsUpdateAdministrator
            {
                [default] interface Windows.Management.Update.IWindowsUpdateAdministrator;
            }

            [activatable(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsUpdateApprovalData
            {
                [default] interface Windows.Management.Update.IWindowsUpdateApprovalData;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateAttentionRequiredInfo
            {
                [default] interface Windows.Management.Update.IWindowsUpdateAttentionRequiredInfo;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateAttentionRequiredReasonChangedEventArgs
            {
                [default] interface Windows.Management.Update.IWindowsUpdateAttentionRequiredReasonChangedEventArgs;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateGetAdministratorResult
            {
                [default] interface Windows.Management.Update.IWindowsUpdateGetAdministratorResult;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateItem
            {
                [default] interface Windows.Management.Update.IWindowsUpdateItem;
            }

            [activatable(Windows.Management.Update.IWindowsUpdateManagerFactory, Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [activatable(Windows.Management.Update.IWindowsUpdateManagerFactory2, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsUpdateManager
            {
                [default] interface Windows.Management.Update.IWindowsUpdateManager;
                [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)] interface Windows.Management.Update.IWindowsUpdateManager2;
            }

            [activatable(Windows.Management.Update.IWindowsUpdateManagerScanOptionsFactory, Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [activatable(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsUpdateManagerScanOptions
            {
                [default] interface Windows.Management.Update.IWindowsUpdateManagerScanOptions;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateProgressChangedEventArgs
            {
                [default] interface Windows.Management.Update.IWindowsUpdateProgressChangedEventArgs;
            }

            [activatable(Windows.Management.Update.IWindowsUpdateRestartRequestOptionsFactory, Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [activatable(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WindowsUpdateRestartRequestOptions
            {
                [default] interface Windows.Management.Update.IWindowsUpdateRestartRequestOptions;
            }

            [contract(Windows.Management.Update.WindowsUpdateContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass WindowsUpdateScanCompletedEventArgs
            {
                [default] interface Windows.Management.Update.IWindowsUpdateScanCompletedEventArgs;
            }
        }
    }
}
