// C++/WinRT v2.0.250303.1

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

#pragma once
#ifndef WINRT_Windows_Management_Update_0_H
#define WINRT_Windows_Management_Update_0_H
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct EventRegistrationToken;
    struct HResult;
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IReference;
    template <typename TSender, typename TResult> struct WINRT_IMPL_EMPTY_BASES TypedEventHandler;
    struct Uri;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
{
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IIterable;
    struct PropertySet;
    struct ValueSet;
}
WINRT_EXPORT namespace winrt::Windows::Management::Update
{
    enum class WindowsSoftwareUpdateActionResult : int32_t
    {
        Succeeded = 0,
        Continue = 1,
        Failed = 2,
        Canceled = 3,
        Removed = 4,
    };
    enum class WindowsSoftwareUpdateActionType : int32_t
    {
        Download = 0,
        Install = 1,
        Deploy = 2,
        Reboot = 3,
        AppRestart = 4,
    };
    enum class WindowsSoftwareUpdateArchitecture : int32_t
    {
        Neutral = 0,
        X86 = 1,
        X64 = 2,
        Arm = 3,
        Arm64 = 4,
    };
    enum class WindowsSoftwareUpdateInstallationType : int32_t
    {
        WindowsUpdate = 0,
        AppPackage = 1,
        Executable = 2,
        Powershell = 3,
    };
    enum class WindowsSoftwareUpdateProviderRegistrationType : int32_t
    {
        None = 0,
        System = 1,
        Windows = 2,
        Pending = 3,
        Registered = 4,
        Unregistered = 5,
    };
    enum class WindowsSoftwareUpdateProviderTrustState : int32_t
    {
        SignedTrusted = 0,
        SignedUntrusted = 1,
        Unsigned = 2,
    };
    enum class WindowsSoftwareUpdateProviderType : int32_t
    {
        WindowsUpdate = 0,
        Executable = 1,
        Powershell = 2,
    };
    enum class WindowsSoftwareUpdateRestartReason : int32_t
    {
        None = 0,
        System = 1,
        AppClose = 2,
        AppRestart = 3,
    };
    enum class WindowsUpdateAdministratorOptions : uint32_t
    {
        None = 0,
        RequireAdministratorApprovalForScans = 0x1,
        RequireAdministratorApprovalForUpdates = 0x2,
        RequireAdministratorApprovalForActions = 0x4,
    };
    enum class WindowsUpdateAdministratorStatus : int32_t
    {
        Succeeded = 0,
        NoAdministratorRegistered = 1,
        OtherAdministratorIsRegistered = 2,
    };
    enum class WindowsUpdateAttentionRequiredReason : int32_t
    {
        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,
        BlockedByAppClose = 33,
        BlockedByAppRestart = 34,
        OtherUpdateReverting = 35,
    };
    struct IPreviewBuildsManager;
    struct IPreviewBuildsManagerStatics;
    struct IPreviewBuildsState;
    struct IWindowsSoftwareUpdate;
    struct IWindowsSoftwareUpdateActionInfo;
    struct IWindowsSoftwareUpdateActionInfoFactory;
    struct IWindowsSoftwareUpdateActionProgress;
    struct IWindowsSoftwareUpdateActionResultInfo;
    struct IWindowsSoftwareUpdateAppPackageInfo;
    struct IWindowsSoftwareUpdateAppPackageInfoFactory;
    struct IWindowsSoftwareUpdateApprovalInfo;
    struct IWindowsSoftwareUpdateApprovalInfoFactory;
    struct IWindowsSoftwareUpdateExecutionInfo;
    struct IWindowsSoftwareUpdateExecutionInfoFactory;
    struct IWindowsSoftwareUpdateFactory;
    struct IWindowsSoftwareUpdateLocalizationInfo;
    struct IWindowsSoftwareUpdateLocalizationInfoFactory;
    struct IWindowsSoftwareUpdateOptionalActionInfo;
    struct IWindowsSoftwareUpdateOptionalActionInfoFactory;
    struct IWindowsSoftwareUpdateOptionalInfo;
    struct IWindowsSoftwareUpdateOptionalInfoFactory;
    struct IWindowsSoftwareUpdateProvider;
    struct IWindowsSoftwareUpdateProviderActionResult;
    struct IWindowsSoftwareUpdateProviderActionResultFactory;
    struct IWindowsSoftwareUpdateProviderFactory;
    struct IWindowsSoftwareUpdateProviderPayloadFileInfo;
    struct IWindowsSoftwareUpdateProviderStatus;
    struct IWindowsSoftwareUpdateProviderStatusFactory;
    struct IWindowsSoftwareUpdateResult;
    struct IWindowsSoftwareUpdateResultFactory;
    struct IWindowsSoftwareUpdateScanResult;
    struct IWindowsSoftwareUpdateScanResultFactory;
    struct IWindowsSoftwareUpdateVersion;
    struct IWindowsSoftwareUpdateVersionFactory;
    struct IWindowsUpdate;
    struct IWindowsUpdateActionCompletedEventArgs;
    struct IWindowsUpdateActionProgress;
    struct IWindowsUpdateActionResult;
    struct IWindowsUpdateAdministrator;
    struct IWindowsUpdateAdministratorStatics;
    struct IWindowsUpdateApprovalData;
    struct IWindowsUpdateAttentionRequiredInfo;
    struct IWindowsUpdateAttentionRequiredReasonChangedEventArgs;
    struct IWindowsUpdateGetAdministratorResult;
    struct IWindowsUpdateItem;
    struct IWindowsUpdateManager;
    struct IWindowsUpdateManager2;
    struct IWindowsUpdateManagerFactory;
    struct IWindowsUpdateManagerFactory2;
    struct IWindowsUpdateManagerScanOptions;
    struct IWindowsUpdateManagerScanOptionsFactory;
    struct IWindowsUpdateProgressChangedEventArgs;
    struct IWindowsUpdateRestartRequestOptions;
    struct IWindowsUpdateRestartRequestOptionsFactory;
    struct IWindowsUpdateScanCompletedEventArgs;
    struct PreviewBuildsManager;
    struct PreviewBuildsState;
    struct WindowsSoftwareUpdate;
    struct WindowsSoftwareUpdateActionInfo;
    struct WindowsSoftwareUpdateActionProgress;
    struct WindowsSoftwareUpdateActionResultInfo;
    struct WindowsSoftwareUpdateAppPackageInfo;
    struct WindowsSoftwareUpdateApprovalInfo;
    struct WindowsSoftwareUpdateExecutionInfo;
    struct WindowsSoftwareUpdateLocalizationInfo;
    struct WindowsSoftwareUpdateOptionalActionInfo;
    struct WindowsSoftwareUpdateOptionalInfo;
    struct WindowsSoftwareUpdateProvider;
    struct WindowsSoftwareUpdateProviderActionResult;
    struct WindowsSoftwareUpdateProviderPayloadFileInfo;
    struct WindowsSoftwareUpdateProviderStatus;
    struct WindowsSoftwareUpdateResult;
    struct WindowsSoftwareUpdateScanResult;
    struct WindowsSoftwareUpdateVersion;
    struct WindowsUpdate;
    struct WindowsUpdateActionCompletedEventArgs;
    struct WindowsUpdateActionProgress;
    struct WindowsUpdateActionResult;
    struct WindowsUpdateAdministrator;
    struct WindowsUpdateApprovalData;
    struct WindowsUpdateAttentionRequiredInfo;
    struct WindowsUpdateAttentionRequiredReasonChangedEventArgs;
    struct WindowsUpdateGetAdministratorResult;
    struct WindowsUpdateItem;
    struct WindowsUpdateManager;
    struct WindowsUpdateManagerScanOptions;
    struct WindowsUpdateProgressChangedEventArgs;
    struct WindowsUpdateRestartRequestOptions;
    struct WindowsUpdateScanCompletedEventArgs;
    struct WindowsUpdateContract;
}
namespace winrt::impl
{
    template <> struct category<winrt::Windows::Management::Update::IPreviewBuildsManager>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IPreviewBuildsManagerStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IPreviewBuildsState>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdate>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfoFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionProgress>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionResultInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfoFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfoFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfoFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfoFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfoFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfoFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProvider>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResultFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderPayloadFileInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatus>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatusFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResultFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResultFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersion>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersionFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdate>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateActionCompletedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateActionProgress>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateActionResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateAdministrator>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateAdministratorStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateApprovalData>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredInfo>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredReasonChangedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateGetAdministratorResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateItem>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateManager>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateManager2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptions>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptionsFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateProgressChangedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptions>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptionsFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::IWindowsUpdateScanCompletedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Management::Update::PreviewBuildsManager>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::PreviewBuildsState>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdate>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionProgress>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionResultInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateAppPackageInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateApprovalInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateExecutionInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateLocalizationInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalActionInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateProvider>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderActionResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderPayloadFileInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderStatus>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateScanResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateVersion>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdate>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateActionCompletedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateActionProgress>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateActionResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateAdministrator>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateApprovalData>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredInfo>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredReasonChangedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateGetAdministratorResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateItem>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateManager>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateManagerScanOptions>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateProgressChangedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateRestartRequestOptions>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateScanCompletedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionResult>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionType>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateArchitecture>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateInstallationType>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderRegistrationType>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderTrustState>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderType>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsSoftwareUpdateRestartReason>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateAdministratorOptions>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateAdministratorStatus>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredReason>{ using type = enum_category; };
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::PreviewBuildsManager> = L"Windows.Management.Update.PreviewBuildsManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::PreviewBuildsState> = L"Windows.Management.Update.PreviewBuildsState";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdate> = L"Windows.Management.Update.WindowsSoftwareUpdate";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateActionInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionProgress> = L"Windows.Management.Update.WindowsSoftwareUpdateActionProgress";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionResultInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateActionResultInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateAppPackageInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateAppPackageInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateApprovalInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateApprovalInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateExecutionInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateExecutionInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateLocalizationInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateLocalizationInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalActionInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateOptionalActionInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateOptionalInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateProvider> = L"Windows.Management.Update.WindowsSoftwareUpdateProvider";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderActionResult> = L"Windows.Management.Update.WindowsSoftwareUpdateProviderActionResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderPayloadFileInfo> = L"Windows.Management.Update.WindowsSoftwareUpdateProviderPayloadFileInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderStatus> = L"Windows.Management.Update.WindowsSoftwareUpdateProviderStatus";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateResult> = L"Windows.Management.Update.WindowsSoftwareUpdateResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateScanResult> = L"Windows.Management.Update.WindowsSoftwareUpdateScanResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateVersion> = L"Windows.Management.Update.WindowsSoftwareUpdateVersion";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdate> = L"Windows.Management.Update.WindowsUpdate";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateActionCompletedEventArgs> = L"Windows.Management.Update.WindowsUpdateActionCompletedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateActionProgress> = L"Windows.Management.Update.WindowsUpdateActionProgress";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateActionResult> = L"Windows.Management.Update.WindowsUpdateActionResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateAdministrator> = L"Windows.Management.Update.WindowsUpdateAdministrator";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateApprovalData> = L"Windows.Management.Update.WindowsUpdateApprovalData";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredInfo> = L"Windows.Management.Update.WindowsUpdateAttentionRequiredInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredReasonChangedEventArgs> = L"Windows.Management.Update.WindowsUpdateAttentionRequiredReasonChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateGetAdministratorResult> = L"Windows.Management.Update.WindowsUpdateGetAdministratorResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateItem> = L"Windows.Management.Update.WindowsUpdateItem";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateManager> = L"Windows.Management.Update.WindowsUpdateManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateManagerScanOptions> = L"Windows.Management.Update.WindowsUpdateManagerScanOptions";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateProgressChangedEventArgs> = L"Windows.Management.Update.WindowsUpdateProgressChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateRestartRequestOptions> = L"Windows.Management.Update.WindowsUpdateRestartRequestOptions";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateScanCompletedEventArgs> = L"Windows.Management.Update.WindowsUpdateScanCompletedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionResult> = L"Windows.Management.Update.WindowsSoftwareUpdateActionResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionType> = L"Windows.Management.Update.WindowsSoftwareUpdateActionType";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateArchitecture> = L"Windows.Management.Update.WindowsSoftwareUpdateArchitecture";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateInstallationType> = L"Windows.Management.Update.WindowsSoftwareUpdateInstallationType";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderRegistrationType> = L"Windows.Management.Update.WindowsSoftwareUpdateProviderRegistrationType";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderTrustState> = L"Windows.Management.Update.WindowsSoftwareUpdateProviderTrustState";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderType> = L"Windows.Management.Update.WindowsSoftwareUpdateProviderType";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsSoftwareUpdateRestartReason> = L"Windows.Management.Update.WindowsSoftwareUpdateRestartReason";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateAdministratorOptions> = L"Windows.Management.Update.WindowsUpdateAdministratorOptions";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateAdministratorStatus> = L"Windows.Management.Update.WindowsUpdateAdministratorStatus";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredReason> = L"Windows.Management.Update.WindowsUpdateAttentionRequiredReason";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IPreviewBuildsManager> = L"Windows.Management.Update.IPreviewBuildsManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IPreviewBuildsManagerStatics> = L"Windows.Management.Update.IPreviewBuildsManagerStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IPreviewBuildsState> = L"Windows.Management.Update.IPreviewBuildsState";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdate> = L"Windows.Management.Update.IWindowsSoftwareUpdate";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateActionInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfoFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateActionInfoFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionProgress> = L"Windows.Management.Update.IWindowsSoftwareUpdateActionProgress";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionResultInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateActionResultInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateAppPackageInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfoFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateAppPackageInfoFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateApprovalInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfoFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateApprovalInfoFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateExecutionInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfoFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateExecutionInfoFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateLocalizationInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfoFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateLocalizationInfoFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateOptionalActionInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfoFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateOptionalActionInfoFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateOptionalInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfoFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateOptionalInfoFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProvider> = L"Windows.Management.Update.IWindowsSoftwareUpdateProvider";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResult> = L"Windows.Management.Update.IWindowsSoftwareUpdateProviderActionResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResultFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateProviderActionResultFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateProviderFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderPayloadFileInfo> = L"Windows.Management.Update.IWindowsSoftwareUpdateProviderPayloadFileInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatus> = L"Windows.Management.Update.IWindowsSoftwareUpdateProviderStatus";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatusFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateProviderStatusFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResult> = L"Windows.Management.Update.IWindowsSoftwareUpdateResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResultFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateResultFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResult> = L"Windows.Management.Update.IWindowsSoftwareUpdateScanResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResultFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateScanResultFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersion> = L"Windows.Management.Update.IWindowsSoftwareUpdateVersion";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersionFactory> = L"Windows.Management.Update.IWindowsSoftwareUpdateVersionFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdate> = L"Windows.Management.Update.IWindowsUpdate";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateActionCompletedEventArgs> = L"Windows.Management.Update.IWindowsUpdateActionCompletedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateActionProgress> = L"Windows.Management.Update.IWindowsUpdateActionProgress";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateActionResult> = L"Windows.Management.Update.IWindowsUpdateActionResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateAdministrator> = L"Windows.Management.Update.IWindowsUpdateAdministrator";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateAdministratorStatics> = L"Windows.Management.Update.IWindowsUpdateAdministratorStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateApprovalData> = L"Windows.Management.Update.IWindowsUpdateApprovalData";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredInfo> = L"Windows.Management.Update.IWindowsUpdateAttentionRequiredInfo";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredReasonChangedEventArgs> = L"Windows.Management.Update.IWindowsUpdateAttentionRequiredReasonChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateGetAdministratorResult> = L"Windows.Management.Update.IWindowsUpdateGetAdministratorResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateItem> = L"Windows.Management.Update.IWindowsUpdateItem";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateManager> = L"Windows.Management.Update.IWindowsUpdateManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateManager2> = L"Windows.Management.Update.IWindowsUpdateManager2";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory> = L"Windows.Management.Update.IWindowsUpdateManagerFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory2> = L"Windows.Management.Update.IWindowsUpdateManagerFactory2";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptions> = L"Windows.Management.Update.IWindowsUpdateManagerScanOptions";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptionsFactory> = L"Windows.Management.Update.IWindowsUpdateManagerScanOptionsFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateProgressChangedEventArgs> = L"Windows.Management.Update.IWindowsUpdateProgressChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptions> = L"Windows.Management.Update.IWindowsUpdateRestartRequestOptions";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptionsFactory> = L"Windows.Management.Update.IWindowsUpdateRestartRequestOptionsFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::IWindowsUpdateScanCompletedEventArgs> = L"Windows.Management.Update.IWindowsUpdateScanCompletedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Management::Update::WindowsUpdateContract> = L"Windows.Management.Update.WindowsUpdateContract";
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IPreviewBuildsManager>{ 0xFA07DD61,0x7E4F,0x59F7,{ 0x7C,0x9F,0xDE,0xF9,0x05,0x1C,0x5F,0x62 } }; // FA07DD61-7E4F-59F7-7C9F-DEF9051C5F62
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IPreviewBuildsManagerStatics>{ 0x3E422887,0xB112,0x5A70,{ 0x7D,0xA1,0x97,0xD7,0x8D,0x32,0xAA,0x29 } }; // 3E422887-B112-5A70-7DA1-97D78D32AA29
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IPreviewBuildsState>{ 0xA2F2903E,0xB223,0x5F63,{ 0x75,0x46,0x3E,0x8E,0xAC,0x07,0x0A,0x2E } }; // A2F2903E-B223-5F63-7546-3E8EAC070A2E
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdate>{ 0xD8F19211,0x98FE,0x58DD,{ 0xAF,0x0F,0x47,0x05,0x32,0xAA,0x33,0x41 } }; // D8F19211-98FE-58DD-AF0F-470532AA3341
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfo>{ 0x2F6723B5,0xF704,0x5362,{ 0xB6,0x00,0xD1,0x88,0x08,0xF3,0x97,0x3E } }; // 2F6723B5-F704-5362-B600-D18808F3973E
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfoFactory>{ 0x5E83B58E,0xD982,0x5D93,{ 0xA7,0xCB,0xBF,0x6C,0x9B,0x6E,0xE5,0xA6 } }; // 5E83B58E-D982-5D93-A7CB-BF6C9B6EE5A6
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionProgress>{ 0x17DC15FD,0x75F2,0x522B,{ 0xB5,0x55,0x35,0x9D,0xA8,0xDE,0x55,0x81 } }; // 17DC15FD-75F2-522B-B555-359DA8DE5581
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionResultInfo>{ 0xBCF26FBA,0x98C8,0x51CB,{ 0x8B,0x7E,0x1E,0xED,0xC3,0xD8,0x2A,0x69 } }; // BCF26FBA-98C8-51CB-8B7E-1EEDC3D82A69
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfo>{ 0xA5BD59F4,0xE624,0x5552,{ 0x82,0xF9,0x26,0x7A,0x45,0x74,0xA2,0x03 } }; // A5BD59F4-E624-5552-82F9-267A4574A203
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfoFactory>{ 0xA8BDA639,0xA4F6,0x5A4A,{ 0x8A,0x54,0x26,0xC1,0xC5,0x08,0xCD,0x0F } }; // A8BDA639-A4F6-5A4A-8A54-26C1C508CD0F
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfo>{ 0x691E6B9E,0x80AF,0x5882,{ 0x94,0x04,0x25,0x43,0x7E,0xCB,0x79,0x1B } }; // 691E6B9E-80AF-5882-9404-25437ECB791B
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfoFactory>{ 0xAB291C7C,0xD29F,0x5AC5,{ 0xB4,0x47,0x0B,0xFC,0xAB,0xDC,0x2C,0xC3 } }; // AB291C7C-D29F-5AC5-B447-0BFCABDC2CC3
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfo>{ 0x091AEA19,0x9128,0x5F24,{ 0xAF,0xC1,0xA6,0x22,0x52,0xDF,0x55,0xC0 } }; // 091AEA19-9128-5F24-AFC1-A62252DF55C0
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfoFactory>{ 0x88596F7E,0xB9EF,0x5583,{ 0x81,0x35,0x94,0xD6,0x2E,0xD6,0x6E,0xD4 } }; // 88596F7E-B9EF-5583-8135-94D62ED66ED4
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateFactory>{ 0x28E7E01B,0x4225,0x52C8,{ 0xBB,0x51,0xC6,0x8F,0x0B,0x07,0x1B,0xE5 } }; // 28E7E01B-4225-52C8-BB51-C68F0B071BE5
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfo>{ 0xADC2DE4B,0x5966,0x5F9F,{ 0xAE,0x07,0x00,0xD4,0xA2,0x85,0xD9,0x33 } }; // ADC2DE4B-5966-5F9F-AE07-00D4A285D933
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfoFactory>{ 0x76979B24,0xF5BD,0x5C8C,{ 0xBD,0xB7,0xA4,0x61,0x87,0x37,0x4A,0xFF } }; // 76979B24-F5BD-5C8C-BDB7-A46187374AFF
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfo>{ 0x4AC035D0,0xE50E,0x5CCB,{ 0xBF,0xD8,0xA3,0x03,0x56,0x28,0x91,0xD2 } }; // 4AC035D0-E50E-5CCB-BFD8-A303562891D2
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfoFactory>{ 0x88D2FCC1,0x4791,0x51B6,{ 0xB9,0x88,0x96,0x6E,0xF9,0x3A,0x18,0x0B } }; // 88D2FCC1-4791-51B6-B988-966EF93A180B
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfo>{ 0x78084A73,0x50C4,0x5C33,{ 0xA7,0x51,0x7A,0x12,0x1F,0x5A,0xAE,0x70 } }; // 78084A73-50C4-5C33-A751-7A121F5AAE70
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfoFactory>{ 0xD837DEED,0xA5F2,0x5C89,{ 0x8B,0xEB,0x85,0x2D,0x28,0x97,0xB2,0xEF } }; // D837DEED-A5F2-5C89-8BEB-852D2897B2EF
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProvider>{ 0x20B67F4A,0xE28E,0x5D20,{ 0x9C,0x00,0xBF,0x24,0x99,0x22,0xEF,0xBE } }; // 20B67F4A-E28E-5D20-9C00-BF249922EFBE
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResult>{ 0xAFD92B50,0x6BB9,0x54DE,{ 0xBD,0xDA,0x9D,0xFB,0x6C,0xC1,0x7C,0x16 } }; // AFD92B50-6BB9-54DE-BDDA-9DFB6CC17C16
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResultFactory>{ 0x0C002684,0x30C9,0x59E9,{ 0xB5,0x3F,0x88,0x46,0xA8,0x5D,0x2D,0xC6 } }; // 0C002684-30C9-59E9-B53F-8846A85D2DC6
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderFactory>{ 0xFC0D5FC4,0xE15E,0x5116,{ 0xB2,0xED,0xDB,0x0A,0x64,0x99,0x7F,0xFA } }; // FC0D5FC4-E15E-5116-B2ED-DB0A64997FFA
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderPayloadFileInfo>{ 0xF1DA16DA,0x1B01,0x5367,{ 0xB4,0xAE,0x20,0xDB,0x8C,0xAE,0x1E,0x9B } }; // F1DA16DA-1B01-5367-B4AE-20DB8CAE1E9B
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatus>{ 0x076741B8,0x7A8E,0x53B6,{ 0x9F,0xB7,0xE2,0x90,0xB1,0x3C,0x52,0xE9 } }; // 076741B8-7A8E-53B6-9FB7-E290B13C52E9
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatusFactory>{ 0xD1E1B416,0x7DFD,0x55EF,{ 0x9E,0x3C,0x18,0xD1,0x45,0x9E,0x31,0x23 } }; // D1E1B416-7DFD-55EF-9E3C-18D1459E3123
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResult>{ 0xA6D7ED98,0x6212,0x5AD3,{ 0xAA,0x9D,0x15,0xE8,0x3B,0xB8,0x5E,0xE4 } }; // A6D7ED98-6212-5AD3-AA9D-15E83BB85EE4
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResultFactory>{ 0x512CE0BF,0x9977,0x5301,{ 0x9B,0x29,0x9E,0x50,0x42,0xC8,0xCF,0x7D } }; // 512CE0BF-9977-5301-9B29-9E5042C8CF7D
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResult>{ 0x43CA6D96,0x3E6D,0x56DA,{ 0xA9,0x03,0x65,0xD4,0xAB,0x72,0x92,0x99 } }; // 43CA6D96-3E6D-56DA-A903-65D4AB729299
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResultFactory>{ 0x21148E4C,0xE7CE,0x574E,{ 0xBF,0xA7,0x69,0xDC,0x77,0x45,0x7D,0x21 } }; // 21148E4C-E7CE-574E-BFA7-69DC77457D21
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersion>{ 0x215E22E7,0x6D57,0x5305,{ 0x9C,0x79,0x4E,0xCD,0x4A,0x4D,0x78,0x71 } }; // 215E22E7-6D57-5305-9C79-4ECD4A4D7871
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersionFactory>{ 0x650ED994,0x0858,0x5528,{ 0xA1,0xF2,0xF7,0x3C,0xA6,0x4D,0xAB,0xC9 } }; // 650ED994-0858-5528-A1F2-F73CA64DABC9
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdate>{ 0xC3C88DD7,0x0EF3,0x52B2,{ 0xA9,0xAD,0x66,0xBF,0xC6,0xBD,0x95,0x82 } }; // C3C88DD7-0EF3-52B2-A9AD-66BFC6BD9582
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateActionCompletedEventArgs>{ 0x2C44B950,0xA655,0x5321,{ 0xAE,0xC1,0xAE,0xE7,0x62,0x92,0x21,0x31 } }; // 2C44B950-A655-5321-AEC1-AEE762922131
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateActionProgress>{ 0x83B22D8A,0x4BB0,0x549F,{ 0xBA,0x39,0x59,0x72,0x48,0x82,0xD1,0x37 } }; // 83B22D8A-4BB0-549F-BA39-59724882D137
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateActionResult>{ 0xE6692C62,0xF697,0x51B7,{ 0xAB,0x7F,0xE7,0x3E,0x5E,0x68,0x8F,0x12 } }; // E6692C62-F697-51B7-AB7F-E73E5E688F12
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateAdministrator>{ 0x7A60181C,0xBA1E,0x5CF9,{ 0xAA,0x65,0x30,0x41,0x20,0xB7,0x3D,0x72 } }; // 7A60181C-BA1E-5CF9-AA65-304120B73D72
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateAdministratorStatics>{ 0x013E6D36,0xEF69,0x53BC,{ 0x8D,0xB8,0xC4,0x03,0xBC,0xA5,0x50,0xED } }; // 013E6D36-EF69-53BC-8DB8-C403BCA550ED
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateApprovalData>{ 0xAADF5BFD,0x84DB,0x59BC,{ 0x85,0xE2,0xAD,0x4F,0xC1,0xF6,0x2F,0x7C } }; // AADF5BFD-84DB-59BC-85E2-AD4FC1F62F7C
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredInfo>{ 0x44DF2579,0x74D3,0x5FFA,{ 0xB6,0xCE,0x09,0xE1,0x87,0xE1,0xE0,0xED } }; // 44DF2579-74D3-5FFA-B6CE-09E187E1E0ED
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredReasonChangedEventArgs>{ 0x0627ABCA,0xDBB8,0x524A,{ 0xB1,0xD2,0xD9,0xDF,0x00,0x4E,0xEB,0x31 } }; // 0627ABCA-DBB8-524A-B1D2-D9DF004EEB31
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateGetAdministratorResult>{ 0xBB39FFC4,0x2C42,0x5B1C,{ 0x89,0x95,0x34,0x33,0x41,0xC9,0x2C,0x50 } }; // BB39FFC4-2C42-5B1C-8995-343341C92C50
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateItem>{ 0xB222E44A,0x49B6,0x59BF,{ 0xA0,0x33,0xEF,0x61,0x7C,0xD7,0x3A,0x98 } }; // B222E44A-49B6-59BF-A033-EF617CD73A98
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateManager>{ 0x5DD966C0,0xA71A,0x5602,{ 0xBB,0xD0,0x09,0xA7,0x0E,0x45,0x73,0xFA } }; // 5DD966C0-A71A-5602-BBD0-09A70E4573FA
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateManager2>{ 0x564E7683,0xBD21,0x57A4,{ 0xB1,0x7F,0x7B,0xF6,0x35,0x0F,0x4C,0x75 } }; // 564E7683-BD21-57A4-B17F-7BF6350F4C75
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory>{ 0x1B394DF8,0xDECB,0x5F44,{ 0xB4,0x7C,0x6C,0xCF,0x3B,0xCF,0xDB,0x37 } }; // 1B394DF8-DECB-5F44-B47C-6CCF3BCFDB37
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory2>{ 0xBA08D663,0xD160,0x59B9,{ 0x98,0x98,0x97,0xA1,0x86,0xAD,0x52,0xEA } }; // BA08D663-D160-59B9-9898-97A186AD52EA
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptions>{ 0xB7C30113,0x5E4B,0x59D8,{ 0x99,0xAD,0xF5,0x8D,0x67,0xB2,0xAE,0xFC } }; // B7C30113-5E4B-59D8-99AD-F58D67B2AEFC
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptionsFactory>{ 0x1A0F9198,0xF18D,0x5CFD,{ 0x8C,0xB9,0x08,0xF3,0xFB,0x74,0xDA,0x70 } }; // 1A0F9198-F18D-5CFD-8CB9-08F3FB74DA70
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateProgressChangedEventArgs>{ 0xBBFBDEEB,0x94C8,0x5AA7,{ 0xB0,0xFB,0x66,0xC6,0x7C,0x23,0x3B,0x0A } }; // BBFBDEEB-94C8-5AA7-B0FB-66C67C233B0A
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptions>{ 0x38CFB7D3,0x4188,0x5222,{ 0x90,0x5C,0x6C,0x44,0x43,0xC9,0x51,0xEE } }; // 38CFB7D3-4188-5222-905C-6C4443C951EE
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptionsFactory>{ 0x75F41D04,0x0E17,0x50D0,{ 0x8C,0x15,0x6B,0x9D,0x05,0x39,0xB3,0xA9 } }; // 75F41D04-0E17-50D0-8C15-6B9D0539B3A9
    template <> inline constexpr guid guid_v<winrt::Windows::Management::Update::IWindowsUpdateScanCompletedEventArgs>{ 0x95B6953E,0xBA5C,0x5FE8,{ 0xB1,0x15,0x12,0xDE,0x18,0x4A,0x6B,0xB0 } }; // 95B6953E-BA5C-5FE8-B115-12DE184A6BB0
    template <> struct default_interface<winrt::Windows::Management::Update::PreviewBuildsManager>{ using type = winrt::Windows::Management::Update::IPreviewBuildsManager; };
    template <> struct default_interface<winrt::Windows::Management::Update::PreviewBuildsState>{ using type = winrt::Windows::Management::Update::IPreviewBuildsState; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdate>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdate; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionProgress>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionProgress; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateActionResultInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionResultInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateAppPackageInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateApprovalInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateExecutionInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateLocalizationInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalActionInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateProvider>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateProvider; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderActionResult>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResult; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderPayloadFileInfo>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderPayloadFileInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderStatus>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatus; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateResult>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateResult; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateScanResult>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResult; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsSoftwareUpdateVersion>{ using type = winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersion; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdate>{ using type = winrt::Windows::Management::Update::IWindowsUpdate; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateActionCompletedEventArgs>{ using type = winrt::Windows::Management::Update::IWindowsUpdateActionCompletedEventArgs; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateActionProgress>{ using type = winrt::Windows::Management::Update::IWindowsUpdateActionProgress; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateActionResult>{ using type = winrt::Windows::Management::Update::IWindowsUpdateActionResult; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateAdministrator>{ using type = winrt::Windows::Management::Update::IWindowsUpdateAdministrator; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateApprovalData>{ using type = winrt::Windows::Management::Update::IWindowsUpdateApprovalData; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredInfo>{ using type = winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredInfo; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredReasonChangedEventArgs>{ using type = winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredReasonChangedEventArgs; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateGetAdministratorResult>{ using type = winrt::Windows::Management::Update::IWindowsUpdateGetAdministratorResult; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateItem>{ using type = winrt::Windows::Management::Update::IWindowsUpdateItem; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateManager>{ using type = winrt::Windows::Management::Update::IWindowsUpdateManager; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateManagerScanOptions>{ using type = winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptions; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateProgressChangedEventArgs>{ using type = winrt::Windows::Management::Update::IWindowsUpdateProgressChangedEventArgs; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateRestartRequestOptions>{ using type = winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptions; };
    template <> struct default_interface<winrt::Windows::Management::Update::WindowsUpdateScanCompletedEventArgs>{ using type = winrt::Windows::Management::Update::IWindowsUpdateScanCompletedEventArgs; };
    template <> struct abi<winrt::Windows::Management::Update::IPreviewBuildsManager>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ArePreviewBuildsAllowed(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ArePreviewBuildsAllowed(bool) noexcept = 0;
            virtual int32_t __stdcall GetCurrentState(void**) noexcept = 0;
            virtual int32_t __stdcall SyncAsync(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IPreviewBuildsManagerStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetDefault(void**) noexcept = 0;
            virtual int32_t __stdcall IsSupported(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IPreviewBuildsState>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Properties(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdate>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_InstallationType(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ProviderId(void**) noexcept = 0;
            virtual int32_t __stdcall get_UpdateId(void**) noexcept = 0;
            virtual int32_t __stdcall get_Title(void**) noexcept = 0;
            virtual int32_t __stdcall get_Description(void**) noexcept = 0;
            virtual int32_t __stdcall get_MoreInfoUrl(void**) noexcept = 0;
            virtual int32_t __stdcall get_DownloadSizeInBytes(uint64_t*) noexcept = 0;
            virtual int32_t __stdcall get_InstallSizeInBytes(uint64_t*) noexcept = 0;
            virtual int32_t __stdcall get_SourceVersion(void**) noexcept = 0;
            virtual int32_t __stdcall get_TargetVersion(void**) noexcept = 0;
            virtual int32_t __stdcall get_ProductCode(void**) noexcept = 0;
            virtual int32_t __stdcall get_PackageFamilyName(void**) noexcept = 0;
            virtual int32_t __stdcall Approve(void*, void**) noexcept = 0;
            virtual int32_t __stdcall ApproveCurrentAction(bool, void**) noexcept = 0;
            virtual int32_t __stdcall get_CurrentAction(void**) noexcept = 0;
            virtual int32_t __stdcall get_ActionResultInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_ApprovalInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_ApprovedActions(void**) noexcept = 0;
            virtual int32_t __stdcall get_AttentionRequiredInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_ActionProgress(void**) noexcept = 0;
            virtual int32_t __stdcall get_RestartReason(void**) noexcept = 0;
            virtual int32_t __stdcall get_AppPackageInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_ExecutionInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_OptionalInfo(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FileName(void**) noexcept = 0;
            virtual int32_t __stdcall get_FileArguments(void**) noexcept = 0;
            virtual int32_t __stdcall get_ActionType(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfoFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void*, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionProgress>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Action(void**) noexcept = 0;
            virtual int32_t __stdcall get_CurrentProgress(uint64_t*) noexcept = 0;
            virtual int32_t __stdcall get_TotalProgress(uint64_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionResultInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Timestamp(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_Succeeded(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ResultCode(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(uint64_t*) noexcept = 0;
            virtual int32_t __stdcall get_Action(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_PackageFamilyName(void**) noexcept = 0;
            virtual int32_t __stdcall get_PackageArchitecture(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_InstallUri(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfoFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, int32_t, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_UserInitiated(bool*) noexcept = 0;
            virtual int32_t __stdcall get_AppClosure(bool*) noexcept = 0;
            virtual int32_t __stdcall get_MeteredNetwork(bool*) noexcept = 0;
            virtual int32_t __stdcall get_Seeker(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfoFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(bool, bool, bool, bool, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DownloadInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_InstallInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_DeployInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_OptionalActionInfo(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfoFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateInstance2(void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, int32_t, void*, void*, void*, void*, uint64_t, uint64_t, void*, void*, void*, void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateInstance2(void*, int32_t, void*, void*, void*, void*, uint64_t, uint64_t, void*, void*, void*, void*, void*, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_LanguageId(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Title(void**) noexcept = 0;
            virtual int32_t __stdcall get_Description(void**) noexcept = 0;
            virtual int32_t __stdcall get_MoreInfoUrl(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfoFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(uint32_t, void*, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CloseAndDeployInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_CloseAndInstallInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_CloseAndRestartInfo(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfoFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_LocalizationInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_ComplianceDeadlineInDays(void**) noexcept = 0;
            virtual int32_t __stdcall get_ComplianceGracePeriodInDays(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfoFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateInstance2(void*, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Register(void**) noexcept = 0;
            virtual int32_t __stdcall Unregister(void**) noexcept = 0;
            virtual int32_t __stdcall Validate(void**) noexcept = 0;
            virtual int32_t __stdcall get_Id(void**) noexcept = 0;
            virtual int32_t __stdcall get_Version(void**) noexcept = 0;
            virtual int32_t __stdcall get_FolderPath(void**) noexcept = 0;
            virtual int32_t __stdcall get_CatalogFile(void**) noexcept = 0;
            virtual int32_t __stdcall get_ScanFileName(void**) noexcept = 0;
            virtual int32_t __stdcall get_ScanFileArguments(void**) noexcept = 0;
            virtual int32_t __stdcall get_Type(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_PayloadFiles(void**) noexcept = 0;
            virtual int32_t __stdcall get_TrustState(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_RegistrationType(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Properties(void**) noexcept = 0;
            virtual int32_t __stdcall GetPropertyValue(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Result(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_RestartReason(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ResultCode(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(uint64_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResultFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(int32_t, int32_t, uint32_t, uint64_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderPayloadFileInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Filename(void**) noexcept = 0;
            virtual int32_t __stdcall get_FileHash(void**) noexcept = 0;
            virtual int32_t __stdcall get_CatalogFile(void**) noexcept = 0;
            virtual int32_t __stdcall get_TrustState(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatus>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall add_CancelRequested(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_CancelRequested(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall SetScanResult(bool, uint32_t, uint64_t, void*, void**) noexcept = 0;
            virtual int32_t __stdcall SetActionProgress(uint64_t, uint64_t, void**) noexcept = 0;
            virtual int32_t __stdcall SetActionResult(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatusFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Succeeded(bool*) noexcept = 0;
            virtual int32_t __stdcall get_CancelRequested(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ResultCode(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(uint64_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResultFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(bool, uint32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateInstance2(bool, uint32_t, uint64_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateInstance3(bool, bool, uint32_t, uint64_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Succeeded(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ResultCode(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(uint64_t*) noexcept = 0;
            virtual int32_t __stdcall get_Updates(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResultFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(bool, uint32_t, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateInstance2(bool, uint32_t, uint64_t, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersion>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Major(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Minor(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_RevisionMajor(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_RevisionMinor(uint32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersionFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(uint32_t, uint32_t, uint32_t, uint32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdate>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ProviderId(void**) noexcept = 0;
            virtual int32_t __stdcall get_UpdateId(void**) noexcept = 0;
            virtual int32_t __stdcall get_Title(void**) noexcept = 0;
            virtual int32_t __stdcall get_Description(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsFeatureUpdate(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsMinorImpact(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsSecurity(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsCritical(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsForOS(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsDriver(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsMandatory(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsUrgent(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsSeeker(bool*) noexcept = 0;
            virtual int32_t __stdcall get_MoreInfoUrl(void**) noexcept = 0;
            virtual int32_t __stdcall get_SupportUrl(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsEulaAccepted(bool*) noexcept = 0;
            virtual int32_t __stdcall get_EulaText(void**) noexcept = 0;
            virtual int32_t __stdcall get_Deadline(void**) noexcept = 0;
            virtual int32_t __stdcall get_AttentionRequiredInfo(void**) noexcept = 0;
            virtual int32_t __stdcall get_ActionResult(void**) noexcept = 0;
            virtual int32_t __stdcall get_CurrentAction(void**) noexcept = 0;
            virtual int32_t __stdcall get_ActionProgress(void**) noexcept = 0;
            virtual int32_t __stdcall GetPropertyValue(void*, void**) noexcept = 0;
            virtual int32_t __stdcall AcceptEula() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateActionCompletedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Update(void**) noexcept = 0;
            virtual int32_t __stdcall get_Action(void**) noexcept = 0;
            virtual int32_t __stdcall get_Succeeded(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateActionProgress>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Action(void**) noexcept = 0;
            virtual int32_t __stdcall get_Progress(double*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateActionResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Timestamp(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_Succeeded(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0;
            virtual int32_t __stdcall get_Action(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateAdministrator>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall StartAdministratorScan() noexcept = 0;
            virtual int32_t __stdcall ApproveWindowsUpdateAction(void*, void*) noexcept = 0;
            virtual int32_t __stdcall RevokeWindowsUpdateActionApproval(void*, void*) noexcept = 0;
            virtual int32_t __stdcall ApproveWindowsUpdate(void*, void*) noexcept = 0;
            virtual int32_t __stdcall RevokeWindowsUpdateApproval(void*) noexcept = 0;
            virtual int32_t __stdcall GetUpdates(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateAdministratorStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetRegisteredAdministrator(void*, void**) noexcept = 0;
            virtual int32_t __stdcall RegisterForAdministration(void*, uint32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall UnregisterForAdministration(void*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetRegisteredAdministratorName(void**) noexcept = 0;
            virtual int32_t __stdcall RequestRestart(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CancelRestartRequest(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateApprovalData>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Seeker(void**) noexcept = 0;
            virtual int32_t __stdcall put_Seeker(void*) noexcept = 0;
            virtual int32_t __stdcall get_AllowDownloadOnMetered(void**) noexcept = 0;
            virtual int32_t __stdcall put_AllowDownloadOnMetered(void*) noexcept = 0;
            virtual int32_t __stdcall get_ComplianceDeadlineInDays(void**) noexcept = 0;
            virtual int32_t __stdcall put_ComplianceDeadlineInDays(void*) noexcept = 0;
            virtual int32_t __stdcall get_ComplianceGracePeriodInDays(void**) noexcept = 0;
            virtual int32_t __stdcall put_ComplianceGracePeriodInDays(void*) noexcept = 0;
            virtual int32_t __stdcall get_OptOutOfAutoReboot(void**) noexcept = 0;
            virtual int32_t __stdcall put_OptOutOfAutoReboot(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Reason(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Timestamp(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredReasonChangedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Update(void**) noexcept = 0;
            virtual int32_t __stdcall get_Reason(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateGetAdministratorResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Administrator(void**) noexcept = 0;
            virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateItem>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ProviderId(void**) noexcept = 0;
            virtual int32_t __stdcall get_UpdateId(void**) noexcept = 0;
            virtual int32_t __stdcall get_Timestamp(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_Title(void**) noexcept = 0;
            virtual int32_t __stdcall get_Description(void**) noexcept = 0;
            virtual int32_t __stdcall get_MoreInfoUrl(void**) noexcept = 0;
            virtual int32_t __stdcall get_Category(void**) noexcept = 0;
            virtual int32_t __stdcall get_Operation(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateManager>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall add_ScanningStateChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ScanningStateChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_WorkingStateChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_WorkingStateChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_ProgressChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ProgressChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_AttentionRequiredReasonChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_AttentionRequiredReasonChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_ActionCompleted(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ActionCompleted(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_ScanCompleted(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ScanCompleted(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_IsScanning(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsWorking(bool*) noexcept = 0;
            virtual int32_t __stdcall get_LastSuccessfulScanTimestamp(void**) noexcept = 0;
            virtual int32_t __stdcall GetApplicableUpdates(void**) noexcept = 0;
            virtual int32_t __stdcall GetMostRecentCompletedUpdates(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall GetMostRecentCompletedUpdatesAsync(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall StartScan(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateManager2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetProvider(void*, void**) noexcept = 0;
            virtual int32_t __stdcall get_ProviderIds(uint32_t* __valueSize, void***) noexcept = 0;
            virtual int32_t __stdcall GetApplicableSoftwareUpdates(void**) noexcept = 0;
            virtual int32_t __stdcall PerformScan(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, uint32_t, void**, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsUserInitiated(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsUserInitiated(bool) noexcept = 0;
            virtual int32_t __stdcall get_AllowBypassThrottling(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AllowBypassThrottling(bool) noexcept = 0;
            virtual int32_t __stdcall get_PerformUpdateActions(bool*) noexcept = 0;
            virtual int32_t __stdcall put_PerformUpdateActions(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptionsFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(bool, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateProgressChangedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Update(void**) noexcept = 0;
            virtual int32_t __stdcall get_ActionProgress(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Title(void**) noexcept = 0;
            virtual int32_t __stdcall put_Title(void*) noexcept = 0;
            virtual int32_t __stdcall get_Description(void**) noexcept = 0;
            virtual int32_t __stdcall put_Description(void*) noexcept = 0;
            virtual int32_t __stdcall get_MoreInfoUrl(void**) noexcept = 0;
            virtual int32_t __stdcall put_MoreInfoUrl(void*) noexcept = 0;
            virtual int32_t __stdcall get_ComplianceDeadlineInDays(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_ComplianceDeadlineInDays(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_ComplianceGracePeriodInDays(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_ComplianceGracePeriodInDays(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_OrganizationName(void**) noexcept = 0;
            virtual int32_t __stdcall put_OrganizationName(void*) noexcept = 0;
            virtual int32_t __stdcall get_OptOutOfAutoReboot(bool*) noexcept = 0;
            virtual int32_t __stdcall put_OptOutOfAutoReboot(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptionsFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void*, void*, int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Management::Update::IWindowsUpdateScanCompletedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ProviderId(void**) noexcept = 0;
            virtual int32_t __stdcall get_Succeeded(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0;
            virtual int32_t __stdcall get_Updates(void**) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Windows_Management_Update_IPreviewBuildsManager
    {
        [[nodiscard]] auto ArePreviewBuildsAllowed() const;
        auto ArePreviewBuildsAllowed(bool value) const;
        auto GetCurrentState() const;
        auto SyncAsync() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IPreviewBuildsManager>
    {
        template <typename D> using type = consume_Windows_Management_Update_IPreviewBuildsManager<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IPreviewBuildsManagerStatics
    {
        auto GetDefault() const;
        auto IsSupported() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IPreviewBuildsManagerStatics>
    {
        template <typename D> using type = consume_Windows_Management_Update_IPreviewBuildsManagerStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IPreviewBuildsState
    {
        [[nodiscard]] auto Properties() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IPreviewBuildsState>
    {
        template <typename D> using type = consume_Windows_Management_Update_IPreviewBuildsState<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdate
    {
        [[nodiscard]] auto InstallationType() const;
        [[nodiscard]] auto ProviderId() const;
        [[nodiscard]] auto UpdateId() const;
        [[nodiscard]] auto Title() const;
        [[nodiscard]] auto Description() const;
        [[nodiscard]] auto MoreInfoUrl() const;
        [[nodiscard]] auto DownloadSizeInBytes() const;
        [[nodiscard]] auto InstallSizeInBytes() const;
        [[nodiscard]] auto SourceVersion() const;
        [[nodiscard]] auto TargetVersion() const;
        [[nodiscard]] auto ProductCode() const;
        [[nodiscard]] auto PackageFamilyName() const;
        auto Approve(winrt::Windows::Management::Update::WindowsSoftwareUpdateApprovalInfo const& approvalInfo) const;
        auto ApproveCurrentAction(bool approve) const;
        [[nodiscard]] auto CurrentAction() const;
        [[nodiscard]] auto ActionResultInfo() const;
        [[nodiscard]] auto ApprovalInfo() const;
        [[nodiscard]] auto ApprovedActions() const;
        [[nodiscard]] auto AttentionRequiredInfo() const;
        [[nodiscard]] auto ActionProgress() const;
        [[nodiscard]] auto RestartReason() const;
        [[nodiscard]] auto AppPackageInfo() const;
        [[nodiscard]] auto ExecutionInfo() const;
        [[nodiscard]] auto OptionalInfo() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdate>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdate<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateActionInfo
    {
        [[nodiscard]] auto FileName() const;
        [[nodiscard]] auto FileArguments() const;
        [[nodiscard]] auto ActionType() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateActionInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateActionInfoFactory
    {
        auto CreateInstance(param::hstring const& fileName, param::hstring const& fileArguments, winrt::Windows::Management::Update::WindowsSoftwareUpdateActionType const& actionType) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionInfoFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateActionInfoFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateActionProgress
    {
        [[nodiscard]] auto Action() const;
        [[nodiscard]] auto CurrentProgress() const;
        [[nodiscard]] auto TotalProgress() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionProgress>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateActionProgress<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateActionResultInfo
    {
        [[nodiscard]] auto Timestamp() const;
        [[nodiscard]] auto Succeeded() const;
        [[nodiscard]] auto ResultCode() const;
        [[nodiscard]] auto ExtendedError() const;
        [[nodiscard]] auto Action() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateActionResultInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateActionResultInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateAppPackageInfo
    {
        [[nodiscard]] auto PackageFamilyName() const;
        [[nodiscard]] auto PackageArchitecture() const;
        [[nodiscard]] auto InstallUri() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateAppPackageInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateAppPackageInfoFactory
    {
        auto CreateInstance(param::hstring const& packageFamilyName, winrt::Windows::Management::Update::WindowsSoftwareUpdateArchitecture const& packageArchitecture, winrt::Windows::Foundation::Uri const& installUri) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateAppPackageInfoFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateAppPackageInfoFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateApprovalInfo
    {
        [[nodiscard]] auto UserInitiated() const;
        [[nodiscard]] auto AppClosure() const;
        [[nodiscard]] auto MeteredNetwork() const;
        [[nodiscard]] auto Seeker() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateApprovalInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateApprovalInfoFactory
    {
        auto CreateInstance(bool userInitiated, bool appClosure, bool meteredNetwork, bool seeker) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateApprovalInfoFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateApprovalInfoFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateExecutionInfo
    {
        [[nodiscard]] auto DownloadInfo() const;
        [[nodiscard]] auto InstallInfo() const;
        [[nodiscard]] auto DeployInfo() const;
        [[nodiscard]] auto OptionalActionInfo() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateExecutionInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateExecutionInfoFactory
    {
        auto CreateInstance(winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo const& downloadInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo const& installInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalActionInfo const& actions) const;
        auto CreateInstance2(winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo const& deployInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalActionInfo const& actions) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateExecutionInfoFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateExecutionInfoFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateFactory
    {
        auto CreateInstance(param::hstring const& providerId, winrt::Windows::Management::Update::WindowsSoftwareUpdateInstallationType const& installationType, param::hstring const& updateId, param::hstring const& title, param::hstring const& description, winrt::Windows::Foundation::Uri const& moreInfoUrl, uint64_t downloadSizeInBytes, uint64_t installSizeInBytes, winrt::Windows::Management::Update::WindowsSoftwareUpdateVersion const& sourceVersion, winrt::Windows::Management::Update::WindowsSoftwareUpdateVersion const& targetVersion, winrt::Windows::Management::Update::WindowsSoftwareUpdateAppPackageInfo const& appPackageInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateExecutionInfo const& executionInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalInfo const& optionalInfo) const;
        auto CreateInstance2(param::hstring const& providerId, winrt::Windows::Management::Update::WindowsSoftwareUpdateInstallationType const& installationType, param::hstring const& updateId, param::hstring const& title, param::hstring const& description, winrt::Windows::Foundation::Uri const& moreInfoUrl, uint64_t downloadSizeInBytes, uint64_t installSizeInBytes, winrt::Windows::Foundation::IReference<winrt::guid> const& productCode, param::hstring const& packageFamilyName, winrt::Windows::Management::Update::WindowsSoftwareUpdateVersion const& sourceVersion, winrt::Windows::Management::Update::WindowsSoftwareUpdateVersion const& targetVersion, winrt::Windows::Management::Update::WindowsSoftwareUpdateAppPackageInfo const& appPackageInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateExecutionInfo const& executionInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateOptionalInfo const& optionalInfo) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateLocalizationInfo
    {
        [[nodiscard]] auto LanguageId() const;
        [[nodiscard]] auto Title() const;
        [[nodiscard]] auto Description() const;
        [[nodiscard]] auto MoreInfoUrl() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateLocalizationInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateLocalizationInfoFactory
    {
        auto CreateInstance(uint32_t languageId, param::hstring const& title, param::hstring const& description, winrt::Windows::Foundation::Uri const& moreInfoUrl) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateLocalizationInfoFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateLocalizationInfoFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateOptionalActionInfo
    {
        [[nodiscard]] auto CloseAndDeployInfo() const;
        [[nodiscard]] auto CloseAndInstallInfo() const;
        [[nodiscard]] auto CloseAndRestartInfo() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateOptionalActionInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateOptionalActionInfoFactory
    {
        auto CreateInstance(winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo const& closeAndDeployInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo const& closeAndInstallInfo, winrt::Windows::Management::Update::WindowsSoftwareUpdateActionInfo const& closeAndRestartInfo) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalActionInfoFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateOptionalActionInfoFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateOptionalInfo
    {
        [[nodiscard]] auto LocalizationInfo() const;
        [[nodiscard]] auto ComplianceDeadlineInDays() const;
        [[nodiscard]] auto ComplianceGracePeriodInDays() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateOptionalInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateOptionalInfoFactory
    {
        auto CreateInstance(winrt::Windows::Foundation::IReference<int32_t> const& complianceDeadlineInDays, winrt::Windows::Foundation::IReference<int32_t> const& complianceGracePeriodInDays) const;
        auto CreateInstance2(param::iterable<winrt::Windows::Management::Update::WindowsSoftwareUpdateLocalizationInfo> const& localizationInfo, winrt::Windows::Foundation::IReference<int32_t> const& complianceDeadlineInDays, winrt::Windows::Foundation::IReference<int32_t> const& complianceGracePeriodInDays) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateOptionalInfoFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateOptionalInfoFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateProvider
    {
        auto Register() const;
        auto Unregister() const;
        auto Validate() const;
        [[nodiscard]] auto Id() const;
        [[nodiscard]] auto Version() const;
        [[nodiscard]] auto FolderPath() const;
        [[nodiscard]] auto CatalogFile() const;
        [[nodiscard]] auto ScanFileName() const;
        [[nodiscard]] auto ScanFileArguments() const;
        [[nodiscard]] auto Type() const;
        [[nodiscard]] auto PayloadFiles() const;
        [[nodiscard]] auto TrustState() const;
        [[nodiscard]] auto RegistrationType() const;
        [[nodiscard]] auto Properties() const;
        auto GetPropertyValue(param::hstring const& name) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProvider>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateProvider<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderActionResult
    {
        [[nodiscard]] auto Result() const;
        [[nodiscard]] auto RestartReason() const;
        [[nodiscard]] auto ResultCode() const;
        [[nodiscard]] auto ExtendedError() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResult>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderActionResult<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderActionResultFactory
    {
        auto CreateInstance(winrt::Windows::Management::Update::WindowsSoftwareUpdateActionResult const& actionResult, winrt::Windows::Management::Update::WindowsSoftwareUpdateRestartReason const& restartReason, uint32_t resultCode, uint64_t extendedError) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderActionResultFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderActionResultFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderFactory
    {
        auto CreateInstance(param::hstring const& folderPath) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderPayloadFileInfo
    {
        [[nodiscard]] auto Filename() const;
        [[nodiscard]] auto FileHash() const;
        [[nodiscard]] auto CatalogFile() const;
        [[nodiscard]] auto TrustState() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderPayloadFileInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderPayloadFileInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderStatus
    {
        auto CancelRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderStatus, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using CancelRequested_revoker = impl::event_revoker<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatus, &impl::abi_t<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatus>::remove_CancelRequested>;
        [[nodiscard]] auto CancelRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderStatus, winrt::Windows::Foundation::IInspectable> const& handler) const;
        auto CancelRequested(winrt::event_token const& token) const noexcept;
        auto SetScanResult(bool succeeded, uint32_t resultCode, uint64_t extendedError, param::iterable<winrt::Windows::Management::Update::WindowsSoftwareUpdate> const& updates) const;
        auto SetActionProgress(uint64_t current, uint64_t total) const;
        auto SetActionResult(winrt::Windows::Management::Update::WindowsSoftwareUpdateProviderActionResult const& actionResult) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatus>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderStatus<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderStatusFactory
    {
        auto CreateInstance(param::hstring const& providerId) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateProviderStatusFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateProviderStatusFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateResult
    {
        [[nodiscard]] auto Succeeded() const;
        [[nodiscard]] auto CancelRequested() const;
        [[nodiscard]] auto ResultCode() const;
        [[nodiscard]] auto ExtendedError() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResult>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateResult<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateResultFactory
    {
        auto CreateInstance(bool succeeded, uint32_t resultCode) const;
        auto CreateInstance2(bool succeeded, uint32_t resultCode, uint64_t extendedError) const;
        auto CreateInstance3(bool succeeded, bool cancelRequested, uint32_t resultCode, uint64_t extendedError) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateResultFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateResultFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateScanResult
    {
        [[nodiscard]] auto Succeeded() const;
        [[nodiscard]] auto ResultCode() const;
        [[nodiscard]] auto ExtendedError() const;
        [[nodiscard]] auto Updates() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResult>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateScanResult<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateScanResultFactory
    {
        auto CreateInstance(bool succeeded, uint32_t resultCode, param::iterable<winrt::Windows::Management::Update::WindowsSoftwareUpdate> const& updates) const;
        auto CreateInstance2(bool succeeded, uint32_t resultCode, uint64_t extendedError, param::iterable<winrt::Windows::Management::Update::WindowsSoftwareUpdate> const& updates) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateScanResultFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateScanResultFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateVersion
    {
        [[nodiscard]] auto Major() const;
        [[nodiscard]] auto Minor() const;
        [[nodiscard]] auto RevisionMajor() const;
        [[nodiscard]] auto RevisionMinor() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersion>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateVersion<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsSoftwareUpdateVersionFactory
    {
        auto CreateInstance(uint32_t major, uint32_t minor, uint32_t revisionMajor, uint32_t revisionMinor) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsSoftwareUpdateVersionFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsSoftwareUpdateVersionFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdate
    {
        [[nodiscard]] auto ProviderId() const;
        [[nodiscard]] auto UpdateId() const;
        [[nodiscard]] auto Title() const;
        [[nodiscard]] auto Description() const;
        [[nodiscard]] auto IsFeatureUpdate() const;
        [[nodiscard]] auto IsMinorImpact() const;
        [[nodiscard]] auto IsSecurity() const;
        [[nodiscard]] auto IsCritical() const;
        [[nodiscard]] auto IsForOS() const;
        [[nodiscard]] auto IsDriver() const;
        [[nodiscard]] auto IsMandatory() const;
        [[nodiscard]] auto IsUrgent() const;
        [[nodiscard]] auto IsSeeker() const;
        [[nodiscard]] auto MoreInfoUrl() const;
        [[nodiscard]] auto SupportUrl() const;
        [[nodiscard]] auto IsEulaAccepted() const;
        [[nodiscard]] auto EulaText() const;
        [[nodiscard]] auto Deadline() const;
        [[nodiscard]] auto AttentionRequiredInfo() const;
        [[nodiscard]] auto ActionResult() const;
        [[nodiscard]] auto CurrentAction() const;
        [[nodiscard]] auto ActionProgress() const;
        auto GetPropertyValue(param::hstring const& propertyName) const;
        auto AcceptEula() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdate>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdate<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateActionCompletedEventArgs
    {
        [[nodiscard]] auto Update() const;
        [[nodiscard]] auto Action() const;
        [[nodiscard]] auto Succeeded() const;
        [[nodiscard]] auto ExtendedError() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateActionCompletedEventArgs>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateActionCompletedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateActionProgress
    {
        [[nodiscard]] auto Action() const;
        [[nodiscard]] auto Progress() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateActionProgress>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateActionProgress<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateActionResult
    {
        [[nodiscard]] auto Timestamp() const;
        [[nodiscard]] auto Succeeded() const;
        [[nodiscard]] auto ExtendedError() const;
        [[nodiscard]] auto Action() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateActionResult>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateActionResult<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateAdministrator
    {
        auto StartAdministratorScan() const;
        auto ApproveWindowsUpdateAction(param::hstring const& updateId, param::hstring const& action) const;
        auto RevokeWindowsUpdateActionApproval(param::hstring const& updateId, param::hstring const& action) const;
        auto ApproveWindowsUpdate(param::hstring const& updateId, winrt::Windows::Management::Update::WindowsUpdateApprovalData const& approvalData) const;
        auto RevokeWindowsUpdateApproval(param::hstring const& updateId) const;
        auto GetUpdates() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateAdministrator>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateAdministrator<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateAdministratorStatics
    {
        auto GetRegisteredAdministrator(param::hstring const& organizationName) const;
        auto RegisterForAdministration(param::hstring const& organizationName, winrt::Windows::Management::Update::WindowsUpdateAdministratorOptions const& options) const;
        auto UnregisterForAdministration(param::hstring const& organizationName) const;
        auto GetRegisteredAdministratorName() const;
        auto RequestRestart(winrt::Windows::Management::Update::WindowsUpdateRestartRequestOptions const& restartOptions) const;
        auto CancelRestartRequest(param::hstring const& requestRestartToken) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateAdministratorStatics>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateAdministratorStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateApprovalData
    {
        [[nodiscard]] auto Seeker() const;
        auto Seeker(winrt::Windows::Foundation::IReference<bool> const& value) const;
        [[nodiscard]] auto AllowDownloadOnMetered() const;
        auto AllowDownloadOnMetered(winrt::Windows::Foundation::IReference<bool> const& value) const;
        [[nodiscard]] auto ComplianceDeadlineInDays() const;
        auto ComplianceDeadlineInDays(winrt::Windows::Foundation::IReference<int32_t> const& value) const;
        [[nodiscard]] auto ComplianceGracePeriodInDays() const;
        auto ComplianceGracePeriodInDays(winrt::Windows::Foundation::IReference<int32_t> const& value) const;
        [[nodiscard]] auto OptOutOfAutoReboot() const;
        auto OptOutOfAutoReboot(winrt::Windows::Foundation::IReference<bool> const& value) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateApprovalData>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateApprovalData<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateAttentionRequiredInfo
    {
        [[nodiscard]] auto Reason() const;
        [[nodiscard]] auto Timestamp() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredInfo>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateAttentionRequiredInfo<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateAttentionRequiredReasonChangedEventArgs
    {
        [[nodiscard]] auto Update() const;
        [[nodiscard]] auto Reason() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateAttentionRequiredReasonChangedEventArgs>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateAttentionRequiredReasonChangedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateGetAdministratorResult
    {
        [[nodiscard]] auto Administrator() const;
        [[nodiscard]] auto Status() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateGetAdministratorResult>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateGetAdministratorResult<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateItem
    {
        [[nodiscard]] auto ProviderId() const;
        [[nodiscard]] auto UpdateId() const;
        [[nodiscard]] auto Timestamp() const;
        [[nodiscard]] auto Title() const;
        [[nodiscard]] auto Description() const;
        [[nodiscard]] auto MoreInfoUrl() const;
        [[nodiscard]] auto Category() const;
        [[nodiscard]] auto Operation() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateItem>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateItem<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateManager
    {
        auto ScanningStateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using ScanningStateChanged_revoker = impl::event_revoker<winrt::Windows::Management::Update::IWindowsUpdateManager, &impl::abi_t<winrt::Windows::Management::Update::IWindowsUpdateManager>::remove_ScanningStateChanged>;
        [[nodiscard]] auto ScanningStateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Foundation::IInspectable> const& handler) const;
        auto ScanningStateChanged(winrt::event_token const& token) const noexcept;
        auto WorkingStateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using WorkingStateChanged_revoker = impl::event_revoker<winrt::Windows::Management::Update::IWindowsUpdateManager, &impl::abi_t<winrt::Windows::Management::Update::IWindowsUpdateManager>::remove_WorkingStateChanged>;
        [[nodiscard]] auto WorkingStateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Foundation::IInspectable> const& handler) const;
        auto WorkingStateChanged(winrt::event_token const& token) const noexcept;
        auto ProgressChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Management::Update::WindowsUpdateProgressChangedEventArgs> const& handler) const;
        using ProgressChanged_revoker = impl::event_revoker<winrt::Windows::Management::Update::IWindowsUpdateManager, &impl::abi_t<winrt::Windows::Management::Update::IWindowsUpdateManager>::remove_ProgressChanged>;
        [[nodiscard]] auto ProgressChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Management::Update::WindowsUpdateProgressChangedEventArgs> const& handler) const;
        auto ProgressChanged(winrt::event_token const& token) const noexcept;
        auto AttentionRequiredReasonChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredReasonChangedEventArgs> const& handler) const;
        using AttentionRequiredReasonChanged_revoker = impl::event_revoker<winrt::Windows::Management::Update::IWindowsUpdateManager, &impl::abi_t<winrt::Windows::Management::Update::IWindowsUpdateManager>::remove_AttentionRequiredReasonChanged>;
        [[nodiscard]] auto AttentionRequiredReasonChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Management::Update::WindowsUpdateAttentionRequiredReasonChangedEventArgs> const& handler) const;
        auto AttentionRequiredReasonChanged(winrt::event_token const& token) const noexcept;
        auto ActionCompleted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Management::Update::WindowsUpdateActionCompletedEventArgs> const& handler) const;
        using ActionCompleted_revoker = impl::event_revoker<winrt::Windows::Management::Update::IWindowsUpdateManager, &impl::abi_t<winrt::Windows::Management::Update::IWindowsUpdateManager>::remove_ActionCompleted>;
        [[nodiscard]] auto ActionCompleted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Management::Update::WindowsUpdateActionCompletedEventArgs> const& handler) const;
        auto ActionCompleted(winrt::event_token const& token) const noexcept;
        auto ScanCompleted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Management::Update::WindowsUpdateScanCompletedEventArgs> const& handler) const;
        using ScanCompleted_revoker = impl::event_revoker<winrt::Windows::Management::Update::IWindowsUpdateManager, &impl::abi_t<winrt::Windows::Management::Update::IWindowsUpdateManager>::remove_ScanCompleted>;
        [[nodiscard]] auto ScanCompleted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Management::Update::WindowsUpdateManager, winrt::Windows::Management::Update::WindowsUpdateScanCompletedEventArgs> const& handler) const;
        auto ScanCompleted(winrt::event_token const& token) const noexcept;
        [[nodiscard]] auto IsScanning() const;
        [[nodiscard]] auto IsWorking() const;
        [[nodiscard]] auto LastSuccessfulScanTimestamp() const;
        auto GetApplicableUpdates() const;
        auto GetMostRecentCompletedUpdates(int32_t count) const;
        auto GetMostRecentCompletedUpdatesAsync(int32_t count) const;
        auto StartScan(bool userInitiated) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateManager>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateManager<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateManager2
    {
        auto GetProvider(param::hstring const& id) const;
        [[nodiscard]] auto ProviderIds() const;
        auto GetApplicableSoftwareUpdates() const;
        auto PerformScan(winrt::Windows::Management::Update::WindowsUpdateManagerScanOptions const& options) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateManager2>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateManager2<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateManagerFactory
    {
        auto CreateInstance(param::hstring const& clientId) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateManagerFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateManagerFactory2
    {
        auto CreateInstance(param::hstring const& clientId, array_view<hstring const> providerIdFilter) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateManagerFactory2>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateManagerFactory2<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateManagerScanOptions
    {
        [[nodiscard]] auto IsUserInitiated() const;
        auto IsUserInitiated(bool value) const;
        [[nodiscard]] auto AllowBypassThrottling() const;
        auto AllowBypassThrottling(bool value) const;
        [[nodiscard]] auto PerformUpdateActions() const;
        auto PerformUpdateActions(bool value) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptions>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateManagerScanOptions<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateManagerScanOptionsFactory
    {
        auto CreateInstance(bool isUserInitiated) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateManagerScanOptionsFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateManagerScanOptionsFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateProgressChangedEventArgs
    {
        [[nodiscard]] auto Update() const;
        [[nodiscard]] auto ActionProgress() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateProgressChangedEventArgs>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateProgressChangedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateRestartRequestOptions
    {
        [[nodiscard]] auto Title() const;
        auto Title(param::hstring const& value) const;
        [[nodiscard]] auto Description() const;
        auto Description(param::hstring const& value) const;
        [[nodiscard]] auto MoreInfoUrl() const;
        auto MoreInfoUrl(winrt::Windows::Foundation::Uri const& value) const;
        [[nodiscard]] auto ComplianceDeadlineInDays() const;
        auto ComplianceDeadlineInDays(int32_t value) const;
        [[nodiscard]] auto ComplianceGracePeriodInDays() const;
        auto ComplianceGracePeriodInDays(int32_t value) const;
        [[nodiscard]] auto OrganizationName() const;
        auto OrganizationName(param::hstring const& value) const;
        [[nodiscard]] auto OptOutOfAutoReboot() const;
        auto OptOutOfAutoReboot(bool value) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptions>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateRestartRequestOptions<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateRestartRequestOptionsFactory
    {
        auto CreateInstance(param::hstring const& title, param::hstring const& description, winrt::Windows::Foundation::Uri const& moreInfoUrl, int32_t complianceDeadlineInDays, int32_t complianceGracePeriodInDays) const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateRestartRequestOptionsFactory>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateRestartRequestOptionsFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Management_Update_IWindowsUpdateScanCompletedEventArgs
    {
        [[nodiscard]] auto ProviderId() const;
        [[nodiscard]] auto Succeeded() const;
        [[nodiscard]] auto ExtendedError() const;
        [[nodiscard]] auto Updates() const;
    };
    template <> struct consume<winrt::Windows::Management::Update::IWindowsUpdateScanCompletedEventArgs>
    {
        template <typename D> using type = consume_Windows_Management_Update_IWindowsUpdateScanCompletedEventArgs<D>;
    };
}
#endif
