text: // C++/WinRT v2.0.190620.2
  
  // Copyright (c) Microsoft Corporation. All rights reserved.
  // Licensed under the MIT License.
  
  #ifndef WINRT_Windows_ApplicationModel_Email_0_H
  #define WINRT_Windows_ApplicationModel_Email_0_H
  namespace winrt::Windows::ApplicationModel::Appointments
  {
      struct AppointmentRecurrence;
  }
  namespace winrt::Windows::Foundation
  {
      struct EventRegistrationToken;
      struct IAsyncAction;
      template <typename T> struct IReference;
      template <typename TSender, typename TResult> struct TypedEventHandler;
  }
  namespace winrt::Windows::Foundation::Collections
  {
      template <typename T> struct IIterable;
  }
  namespace winrt::Windows::Security::Cryptography::Certificates
  {
      struct Certificate;
  }
  namespace winrt::Windows::Storage::Streams
  {
      struct IRandomAccessStreamReference;
  }
  namespace winrt::Windows::System
  {
      struct User;
  }
  namespace winrt::Windows::ApplicationModel::Email
  {
      enum class EmailAttachmentDownloadState : int32_t
      {
          NotDownloaded = 0,
          Downloading = 1,
          Downloaded = 2,
          Failed = 3,
      };
      enum class EmailBatchStatus : int32_t
      {
          Success = 0,
          ServerSearchSyncManagerError = 1,
          ServerSearchUnknownError = 2,
      };
      enum class EmailCertificateValidationStatus : int32_t
      {
          Success = 0,
          NoMatch = 1,
          InvalidUsage = 2,
          InvalidCertificate = 3,
          Revoked = 4,
          ChainRevoked = 5,
          RevocationServerFailure = 6,
          Expired = 7,
          Untrusted = 8,
          ServerError = 9,
          UnknownFailure = 10,
      };
      enum class EmailFlagState : int32_t
      {
          Unflagged = 0,
          Flagged = 1,
          Completed = 2,
          Cleared = 3,
      };
      enum class EmailImportance : int32_t
      {
          Normal = 0,
          High = 1,
          Low = 2,
      };
      enum class EmailMailboxActionKind : int32_t
      {
          MarkMessageAsSeen = 0,
          MarkMessageRead = 1,
          ChangeMessageFlagState = 2,
          MoveMessage = 3,
          SaveDraft = 4,
          SendMessage = 5,
          CreateResponseReplyMessage = 6,
          CreateResponseReplyAllMessage = 7,
          CreateResponseForwardMessage = 8,
          MoveFolder = 9,
          MarkFolderForSyncEnabled = 10,
      };
      enum class EmailMailboxAllowedSmimeEncryptionAlgorithmNegotiation : int32_t
      {
          None = 0,
          StrongAlgorithm = 1,
          AnyAlgorithm = 2,
      };
      enum class EmailMailboxAutoReplyMessageResponseKind : int32_t
      {
          Html = 0,
          PlainText = 1,
      };
      enum class EmailMailboxChangeType : int32_t
      {
          MessageCreated = 0,
          MessageModified = 1,
          MessageDeleted = 2,
          FolderCreated = 3,
          FolderModified = 4,
          FolderDeleted = 5,
          ChangeTrackingLost = 6,
      };
      enum class EmailMailboxCreateFolderStatus : int32_t
      {
          Success = 0,
          NetworkError = 1,
          PermissionsError = 2,
          ServerError = 3,
          UnknownFailure = 4,
          NameCollision = 5,
          ServerRejected = 6,
      };
      enum class EmailMailboxDeleteFolderStatus : int32_t
      {
          Success = 0,
          NetworkError = 1,
          PermissionsError = 2,
          ServerError = 3,
          UnknownFailure = 4,
          CouldNotDeleteEverything = 5,
      };
      enum class EmailMailboxEmptyFolderStatus : int32_t
      {
          Success = 0,
          NetworkError = 1,
          PermissionsError = 2,
          ServerError = 3,
          UnknownFailure = 4,
          CouldNotDeleteEverything = 5,
      };
      enum class EmailMailboxOtherAppReadAccess : int32_t
      {
          SystemOnly = 0,
          Full = 1,
          None = 2,
      };
      enum class EmailMailboxOtherAppWriteAccess : int32_t
      {
          None = 0,
          Limited = 1,
      };
      enum class EmailMailboxSmimeEncryptionAlgorithm : int32_t
      {
          Any = 0,
          TripleDes = 1,
          Des = 2,
          RC2128Bit = 3,
          RC264Bit = 4,
          RC240Bit = 5,
      };
      enum class EmailMailboxSmimeSigningAlgorithm : int32_t
      {
          Any = 0,
          Sha1 = 1,
          MD5 = 2,
      };
      enum class EmailMailboxSyncStatus : int32_t
      {
          Idle = 0,
          Syncing = 1,
          UpToDate = 2,
          AuthenticationError = 3,
          PolicyError = 4,
          UnknownError = 5,
          ManualAccountRemovalRequired = 6,
      };
      enum class EmailMeetingResponseType : int32_t
      {
          Accept = 0,
          Decline = 1,
          Tentative = 2,
      };
      enum class EmailMessageBodyKind : int32_t
      {
          Html = 0,
          PlainText = 1,
      };
      enum class EmailMessageDownloadState : int32_t
      {
          PartiallyDownloaded = 0,
          Downloading = 1,
          Downloaded = 2,
          Failed = 3,
      };
      enum class EmailMessageResponseKind : int32_t
      {
          None = 0,
          Reply = 1,
          ReplyAll = 2,
          Forward = 3,
      };
      enum class EmailMessageSmimeKind : int32_t
      {
          None = 0,
          ClearSigned = 1,
          OpaqueSigned = 2,
          Encrypted = 3,
      };
      enum class EmailQueryKind : int32_t
      {
          All = 0,
          Important = 1,
          Flagged = 2,
          Unread = 3,
          Read = 4,
          Unseen = 5,
      };
      enum class EmailQuerySearchFields : uint32_t
      {
          None = 0,
          Subject = 0x1,
          Sender = 0x2,
          Preview = 0x4,
          Recipients = 0x8,
          All = 0xffffffff,
      };
      enum class EmailQuerySearchScope : int32_t
      {
          Local = 0,
          Server = 1,
      };
      enum class EmailQuerySortDirection : int32_t
      {
          Descending = 0,
          Ascending = 1,
      };
      enum class EmailQuerySortProperty : int32_t
      {
          Date = 0,
      };
      enum class EmailRecipientResolutionStatus : int32_t
      {
          Success = 0,
          RecipientNotFound = 1,
          AmbiguousRecipient = 2,
          NoCertificate = 3,
          CertificateRequestLimitReached = 4,
          CannotResolveDistributionList = 5,
          ServerError = 6,
          UnknownFailure = 7,
      };
      enum class EmailSpecialFolderKind : int32_t
      {
          None = 0,
          Root = 1,
          Inbox = 2,
          Outbox = 3,
          Drafts = 4,
          DeletedItems = 5,
          Sent = 6,
      };
      enum class EmailStoreAccessType : int32_t
      {
          AppMailboxesReadWrite = 0,
          AllMailboxesLimitedReadWrite = 1,
      };
      struct IEmailAttachment;
      struct IEmailAttachment2;
      struct IEmailAttachmentFactory;
      struct IEmailAttachmentFactory2;
      struct IEmailConversation;
      struct IEmailConversationBatch;
      struct IEmailConversationReader;
      struct IEmailFolder;
      struct IEmailIrmInfo;
      struct IEmailIrmInfoFactory;
      struct IEmailIrmTemplate;
      struct IEmailIrmTemplateFactory;
      struct IEmailItemCounts;
      struct IEmailMailbox;
      struct IEmailMailbox2;
      struct IEmailMailbox3;
      struct IEmailMailbox4;
      struct IEmailMailbox5;
      struct IEmailMailboxAction;
      struct IEmailMailboxAutoReply;
      struct IEmailMailboxAutoReplySettings;
      struct IEmailMailboxCapabilities;
      struct IEmailMailboxCapabilities2;
      struct IEmailMailboxCapabilities3;
      struct IEmailMailboxChange;
      struct IEmailMailboxChangeReader;
      struct IEmailMailboxChangeTracker;
      struct IEmailMailboxChangedDeferral;
      struct IEmailMailboxChangedEventArgs;
      struct IEmailMailboxCreateFolderResult;
      struct IEmailMailboxPolicies;
      struct IEmailMailboxPolicies2;
      struct IEmailMailboxPolicies3;
      struct IEmailMailboxSyncManager;
      struct IEmailMailboxSyncManager2;
      struct IEmailManagerForUser;
      struct IEmailManagerStatics;
      struct IEmailManagerStatics2;
      struct IEmailManagerStatics3;
      struct IEmailMeetingInfo;
      struct IEmailMeetingInfo2;
      struct IEmailMessage;
      struct IEmailMessage2;
      struct IEmailMessage3;
      struct IEmailMessage4;
      struct IEmailMessageBatch;
      struct IEmailMessageReader;
      struct IEmailQueryOptions;
      struct IEmailQueryOptionsFactory;
      struct IEmailQueryTextSearch;
      struct IEmailRecipient;
      struct IEmailRecipientFactory;
      struct IEmailRecipientResolutionResult;
      struct IEmailRecipientResolutionResult2;
      struct IEmailStore;
      struct IEmailStoreNotificationTriggerDetails;
      struct EmailAttachment;
      struct EmailConversation;
      struct EmailConversationBatch;
      struct EmailConversationReader;
      struct EmailFolder;
      struct EmailIrmInfo;
      struct EmailIrmTemplate;
      struct EmailItemCounts;
      struct EmailMailbox;
      struct EmailMailboxAction;
      struct EmailMailboxAutoReply;
      struct EmailMailboxAutoReplySettings;
      struct EmailMailboxCapabilities;
      struct EmailMailboxChange;
      struct EmailMailboxChangeReader;
      struct EmailMailboxChangeTracker;
      struct EmailMailboxChangedDeferral;
      struct EmailMailboxChangedEventArgs;
      struct EmailMailboxCreateFolderResult;
      struct EmailMailboxPolicies;
      struct EmailMailboxSyncManager;
      struct EmailManager;
      struct EmailManagerForUser;
      struct EmailMeetingInfo;
      struct EmailMessage;
      struct EmailMessageBatch;
      struct EmailMessageReader;
      struct EmailQueryOptions;
      struct EmailQueryTextSearch;
      struct EmailRecipient;
      struct EmailRecipientResolutionResult;
      struct EmailStore;
      struct EmailStoreNotificationTriggerDetails;
  }
  namespace winrt::impl
  {
      template <> struct category<Windows::ApplicationModel::Email::IEmailAttachment>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailAttachment2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailAttachmentFactory>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailAttachmentFactory2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailConversation>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailConversationBatch>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailConversationReader>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailFolder>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailIrmInfo>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailIrmInfoFactory>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailIrmTemplate>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailIrmTemplateFactory>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailItemCounts>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailbox>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailbox2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailbox3>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailbox4>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailbox5>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxAction>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxAutoReply>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxAutoReplySettings>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxCapabilities>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxCapabilities2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxCapabilities3>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxChange>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxChangeReader>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxChangeTracker>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxChangedDeferral>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxChangedEventArgs>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxCreateFolderResult>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxPolicies>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxPolicies2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxPolicies3>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxSyncManager>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMailboxSyncManager2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailManagerForUser>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailManagerStatics>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailManagerStatics2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailManagerStatics3>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMeetingInfo>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMeetingInfo2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMessage>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMessage2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMessage3>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMessage4>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMessageBatch>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailMessageReader>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailQueryOptions>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailQueryOptionsFactory>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailQueryTextSearch>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailRecipient>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailRecipientFactory>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult2>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailStore>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::IEmailStoreNotificationTriggerDetails>
      {
          using type = interface_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailAttachment>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailConversation>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailConversationBatch>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailConversationReader>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailFolder>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailIrmInfo>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailIrmTemplate>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailItemCounts>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailbox>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxAction>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxAutoReply>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxAutoReplySettings>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxCapabilities>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxChange>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxChangeReader>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxChangeTracker>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxChangedDeferral>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxChangedEventArgs>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxCreateFolderResult>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxPolicies>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxSyncManager>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailManager>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailManagerForUser>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMeetingInfo>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMessage>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMessageBatch>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMessageReader>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailQueryOptions>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailQueryTextSearch>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailRecipient>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailRecipientResolutionResult>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailStore>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailStoreNotificationTriggerDetails>
      {
          using type = class_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailAttachmentDownloadState>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailBatchStatus>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailCertificateValidationStatus>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailFlagState>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailImportance>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxActionKind>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxAllowedSmimeEncryptionAlgorithmNegotiation>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxAutoReplyMessageResponseKind>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxChangeType>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxCreateFolderStatus>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxDeleteFolderStatus>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxEmptyFolderStatus>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxOtherAppReadAccess>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxOtherAppWriteAccess>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxSmimeEncryptionAlgorithm>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxSmimeSigningAlgorithm>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMailboxSyncStatus>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMeetingResponseType>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMessageBodyKind>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMessageDownloadState>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMessageResponseKind>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailMessageSmimeKind>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailQueryKind>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailQuerySearchFields>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailQuerySearchScope>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailQuerySortDirection>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailQuerySortProperty>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailRecipientResolutionStatus>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailSpecialFolderKind>
      {
          using type = enum_category;
      };
      template <> struct category<Windows::ApplicationModel::Email::EmailStoreAccessType>
      {
          using type = enum_category;
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailAttachment>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailAttachment" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailAttachment2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailAttachment2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailAttachmentFactory>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailAttachmentFactory" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailAttachmentFactory2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailAttachmentFactory2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailConversation>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailConversation" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailConversationBatch>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailConversationBatch" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailConversationReader>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailConversationReader" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailFolder>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailFolder" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailIrmInfo>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailIrmInfo" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailIrmInfoFactory>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailIrmInfoFactory" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailIrmTemplate>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailIrmTemplate" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailIrmTemplateFactory>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailIrmTemplateFactory" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailItemCounts>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailItemCounts" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailbox>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailbox" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailbox2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailbox2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailbox3>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailbox3" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailbox4>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailbox4" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailbox5>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailbox5" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxAction>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxAction" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxAutoReply>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxAutoReply" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxAutoReplySettings>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxAutoReplySettings" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxCapabilities>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxCapabilities" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxCapabilities2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxCapabilities2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxCapabilities3>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxCapabilities3" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxChange>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxChange" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxChangeReader>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxChangeReader" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxChangeTracker>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxChangeTracker" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxChangedDeferral>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxChangedDeferral" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxChangedEventArgs>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxChangedEventArgs" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxCreateFolderResult>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxCreateFolderResult" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxPolicies>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxPolicies" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxPolicies2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxPolicies2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxPolicies3>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxPolicies3" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxSyncManager>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxSyncManager" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMailboxSyncManager2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMailboxSyncManager2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailManagerForUser>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailManagerForUser" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailManagerStatics>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailManagerStatics" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailManagerStatics2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailManagerStatics2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailManagerStatics3>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailManagerStatics3" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMeetingInfo>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMeetingInfo" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMeetingInfo2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMeetingInfo2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMessage>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMessage" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMessage2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMessage2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMessage3>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMessage3" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMessage4>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMessage4" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMessageBatch>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMessageBatch" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailMessageReader>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailMessageReader" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailQueryOptions>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailQueryOptions" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailQueryOptionsFactory>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailQueryOptionsFactory" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailQueryTextSearch>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailQueryTextSearch" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailRecipient>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailRecipient" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailRecipientFactory>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailRecipientFactory" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailRecipientResolutionResult" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult2>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailRecipientResolutionResult2" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailStore>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailStore" };
      };
      template <> struct name<Windows::ApplicationModel::Email::IEmailStoreNotificationTriggerDetails>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.IEmailStoreNotificationTriggerDetails" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailAttachment>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailAttachment" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailConversation>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailConversation" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailConversationBatch>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailConversationBatch" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailConversationReader>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailConversationReader" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailFolder>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailFolder" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailIrmInfo>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailIrmInfo" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailIrmTemplate>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailIrmTemplate" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailItemCounts>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailItemCounts" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailbox>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailbox" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxAction>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxAction" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxAutoReply>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxAutoReply" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxAutoReplySettings>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxAutoReplySettings" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxCapabilities>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxCapabilities" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxChange>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxChange" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxChangeReader>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxChangeReader" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxChangeTracker>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxChangeTracker" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxChangedDeferral>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxChangedDeferral" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxChangedEventArgs>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxChangedEventArgs" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxCreateFolderResult>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxCreateFolderResult" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxPolicies>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxPolicies" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxSyncManager>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxSyncManager" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailManager>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailManager" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailManagerForUser>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailManagerForUser" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMeetingInfo>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMeetingInfo" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMessage>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMessage" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMessageBatch>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMessageBatch" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMessageReader>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMessageReader" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailQueryOptions>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailQueryOptions" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailQueryTextSearch>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailQueryTextSearch" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailRecipient>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailRecipient" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailRecipientResolutionResult>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailRecipientResolutionResult" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailStore>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailStore" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailStoreNotificationTriggerDetails>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailStoreNotificationTriggerDetails" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailAttachmentDownloadState>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailAttachmentDownloadState" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailBatchStatus>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailBatchStatus" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailCertificateValidationStatus>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailCertificateValidationStatus" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailFlagState>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailFlagState" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailImportance>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailImportance" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxActionKind>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxActionKind" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxAllowedSmimeEncryptionAlgorithmNegotiation>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxAllowedSmimeEncryptionAlgorithmNegotiation" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxAutoReplyMessageResponseKind>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxAutoReplyMessageResponseKind" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxChangeType>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxChangeType" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxCreateFolderStatus>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxCreateFolderStatus" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxDeleteFolderStatus>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxDeleteFolderStatus" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxEmptyFolderStatus>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxEmptyFolderStatus" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxOtherAppReadAccess>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxOtherAppReadAccess" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxOtherAppWriteAccess>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxOtherAppWriteAccess" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxSmimeEncryptionAlgorithm>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxSmimeEncryptionAlgorithm" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxSmimeSigningAlgorithm>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxSmimeSigningAlgorithm" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMailboxSyncStatus>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMailboxSyncStatus" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMeetingResponseType>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMeetingResponseType" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMessageBodyKind>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMessageBodyKind" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMessageDownloadState>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMessageDownloadState" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMessageResponseKind>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMessageResponseKind" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailMessageSmimeKind>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailMessageSmimeKind" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailQueryKind>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailQueryKind" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailQuerySearchFields>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailQuerySearchFields" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailQuerySearchScope>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailQuerySearchScope" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailQuerySortDirection>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailQuerySortDirection" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailQuerySortProperty>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailQuerySortProperty" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailRecipientResolutionStatus>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailRecipientResolutionStatus" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailSpecialFolderKind>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailSpecialFolderKind" };
      };
      template <> struct name<Windows::ApplicationModel::Email::EmailStoreAccessType>
      {
          static constexpr auto & value{ L"Windows.ApplicationModel.Email.EmailStoreAccessType" };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailAttachment>
      {
          static constexpr guid value{ 0xF353CAF9,0x57C8,0x4ADB,{ 0xB9,0x92,0x60,0xFC,0xEB,0x58,0x4F,0x54 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailAttachment2>
      {
          static constexpr guid value{ 0x225F1070,0xB0FF,0x4571,{ 0x9D,0x54,0xA7,0x06,0xC4,0x8D,0x55,0xC6 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailAttachmentFactory>
      {
          static constexpr guid value{ 0x796EAC46,0xED56,0x4979,{ 0x87,0x08,0xAB,0xB8,0xBC,0x85,0x4B,0x7D } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailAttachmentFactory2>
      {
          static constexpr guid value{ 0x23259435,0x51F9,0x427D,{ 0xAD,0xCD,0x24,0x10,0x23,0xC8,0xCF,0xB7 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailConversation>
      {
          static constexpr guid value{ 0xDA18C248,0xA0BC,0x4349,{ 0x90,0x2D,0x90,0xF6,0x63,0x89,0xF5,0x1B } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailConversationBatch>
      {
          static constexpr guid value{ 0xB8C1AB81,0x01C5,0x432A,{ 0x9D,0xF1,0xFE,0x85,0xD9,0x8A,0x27,0x9A } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailConversationReader>
      {
          static constexpr guid value{ 0xB4630F82,0x2875,0x44C8,{ 0x9B,0x8C,0x85,0xBE,0xB3,0xA3,0xC6,0x53 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailFolder>
      {
          static constexpr guid value{ 0xA24F7771,0x996C,0x4864,{ 0xB1,0xBA,0xED,0x12,0x40,0xE5,0x7D,0x11 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailIrmInfo>
      {
          static constexpr guid value{ 0x90F52193,0xB1A0,0x4EBD,{ 0xA6,0xB6,0xDD,0xCA,0x55,0x60,0x6E,0x0E } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailIrmInfoFactory>
      {
          static constexpr guid value{ 0x314BB18C,0xE3E6,0x4D7B,{ 0xBE,0x8D,0x91,0xA9,0x63,0x11,0xB0,0x1B } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailIrmTemplate>
      {
          static constexpr guid value{ 0xF327758D,0x546D,0x4BEA,{ 0xA9,0x63,0x54,0xA3,0x8B,0x2C,0xC0,0x16 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailIrmTemplateFactory>
      {
          static constexpr guid value{ 0x3DA31876,0x8738,0x4418,{ 0xB9,0xCB,0x47,0x1B,0x93,0x6F,0xE7,0x1E } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailItemCounts>
      {
          static constexpr guid value{ 0x5BD13321,0xFEC8,0x4BAB,{ 0x83,0xBA,0x0B,0xAF,0x3C,0x1F,0x6C,0xBD } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailbox>
      {
          static constexpr guid value{ 0xA8790649,0xCF5B,0x411B,{ 0x80,0xB1,0x4A,0x6A,0x14,0x84,0xCE,0x25 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailbox2>
      {
          static constexpr guid value{ 0x14F8E404,0x6CA2,0x4AB2,{ 0x92,0x41,0x79,0xCD,0x7B,0xF4,0x63,0x46 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailbox3>
      {
          static constexpr guid value{ 0x3DA5897B,0x458B,0x408A,{ 0x8E,0x37,0xAC,0x8B,0x05,0xD8,0xAF,0x56 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailbox4>
      {
          static constexpr guid value{ 0x5D1F301B,0xF222,0x48A7,{ 0xB7,0xB6,0x71,0x63,0x56,0xCD,0x26,0xA1 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailbox5>
      {
          static constexpr guid value{ 0x39967087,0x0092,0x49BE,{ 0xBD,0x0E,0x5D,0x4D,0xC9,0xD9,0x6D,0x90 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxAction>
      {
          static constexpr guid value{ 0xAC9889FA,0x21FA,0x4927,{ 0x92,0x10,0xD4,0x10,0x58,0x2F,0xDF,0x3E } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxAutoReply>
      {
          static constexpr guid value{ 0xE223254C,0x8AB4,0x485B,{ 0xB3,0x1F,0x04,0xD1,0x54,0x76,0xBD,0x59 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxAutoReplySettings>
      {
          static constexpr guid value{ 0xA87A9FA8,0x0AC6,0x4B77,{ 0xBA,0x77,0xA6,0xB9,0x9E,0x9A,0x27,0xB8 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxCapabilities>
      {
          static constexpr guid value{ 0xEEDEC3A6,0x89DB,0x4305,{ 0x82,0xC4,0x43,0x9E,0x0A,0x33,0xDA,0x11 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxCapabilities2>
      {
          static constexpr guid value{ 0x69723EE4,0x2F21,0x4CBC,{ 0x88,0xAB,0x2E,0x76,0x02,0xA4,0x80,0x6B } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxCapabilities3>
      {
          static constexpr guid value{ 0xF690E944,0x56F2,0x45AA,{ 0x87,0x2C,0x0C,0xE9,0xF3,0xDB,0x0B,0x5C } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxChange>
      {
          static constexpr guid value{ 0x61EDF54B,0x11EF,0x400C,{ 0xAD,0xDE,0x8C,0xDE,0x65,0xC8,0x5E,0x66 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxChangeReader>
      {
          static constexpr guid value{ 0xBDBD0EBB,0xC53D,0x4331,{ 0x97,0xBE,0xBE,0x75,0xA2,0x14,0x6A,0x75 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxChangeTracker>
      {
          static constexpr guid value{ 0x7AE48638,0x5166,0x42B7,{ 0x88,0x82,0xFD,0x21,0xC9,0x2B,0xDD,0x4B } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxChangedDeferral>
      {
          static constexpr guid value{ 0x779A74C1,0x97C5,0x4B54,{ 0xB3,0x0D,0x30,0x62,0x32,0x62,0x3E,0x6D } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxChangedEventArgs>
      {
          static constexpr guid value{ 0x3CFD5F6E,0x01D4,0x4E4A,{ 0xA4,0x4C,0xB2,0x2D,0xD4,0x2E,0xC2,0x07 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxCreateFolderResult>
      {
          static constexpr guid value{ 0xB228557F,0x2885,0x4998,{ 0xB5,0x95,0x8A,0x2D,0x37,0x4C,0xE9,0x50 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxPolicies>
      {
          static constexpr guid value{ 0x1F3345C5,0x1C3B,0x4DC7,{ 0xB4,0x10,0x63,0x73,0x78,0x3E,0x54,0x5D } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxPolicies2>
      {
          static constexpr guid value{ 0xBAB58AFB,0xA14B,0x497C,{ 0xA8,0xE2,0x55,0xEA,0xC2,0x9C,0xC4,0xB5 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxPolicies3>
      {
          static constexpr guid value{ 0xBDD4A01F,0x4867,0x414A,{ 0x81,0xA2,0x80,0x39,0x19,0xC4,0x41,0x91 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxSyncManager>
      {
          static constexpr guid value{ 0x517AC55A,0x3591,0x4B5D,{ 0x85,0xBC,0xC7,0x1D,0xDE,0x86,0x22,0x63 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMailboxSyncManager2>
      {
          static constexpr guid value{ 0xCD8DC97E,0x95C1,0x4F89,{ 0x81,0xB7,0xE6,0xAE,0xCB,0x66,0x95,0xFC } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailManagerForUser>
      {
          static constexpr guid value{ 0xF773DE9F,0x3CA5,0x4B0F,{ 0x90,0xC1,0x15,0x6E,0x40,0x17,0x4C,0xE5 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailManagerStatics>
      {
          static constexpr guid value{ 0xF5128654,0x55C5,0x4890,{ 0xA8,0x24,0x21,0x6C,0x26,0x18,0xCE,0x7F } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailManagerStatics2>
      {
          static constexpr guid value{ 0xAC052DA3,0xB194,0x425D,{ 0xB6,0xD9,0xD0,0xF0,0x41,0x35,0xED,0xA2 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailManagerStatics3>
      {
          static constexpr guid value{ 0x4A722395,0x843E,0x4945,{ 0xB3,0xAA,0x34,0x9E,0x07,0xA3,0x62,0xC5 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMeetingInfo>
      {
          static constexpr guid value{ 0x31C03FA9,0x7933,0x415F,{ 0xA2,0x75,0xD1,0x65,0xBA,0x07,0x02,0x6B } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMeetingInfo2>
      {
          static constexpr guid value{ 0x7E59386D,0xB0D9,0x4FE5,{ 0x86,0x7C,0xE3,0x1E,0xD2,0xB5,0x88,0xB8 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMessage>
      {
          static constexpr guid value{ 0x6C6D948D,0x80B5,0x48F8,{ 0xB0,0xB1,0xE0,0x4E,0x43,0x0F,0x44,0xE5 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMessage2>
      {
          static constexpr guid value{ 0xFDC8248B,0x9F1A,0x44DB,{ 0xBD,0x3C,0x65,0xC3,0x84,0x77,0x0F,0x86 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMessage3>
      {
          static constexpr guid value{ 0xA1EA675C,0xE598,0x4D29,{ 0xA0,0x18,0xFC,0x7B,0x7E,0xEC,0xE0,0xA1 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMessage4>
      {
          static constexpr guid value{ 0x317CF181,0x3E7F,0x4A05,{ 0x83,0x94,0x3E,0x10,0x33,0x6D,0xD4,0x35 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMessageBatch>
      {
          static constexpr guid value{ 0x605CD08F,0x25D9,0x4F1B,{ 0x9E,0x51,0x05,0x14,0xC0,0x14,0x96,0x53 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailMessageReader>
      {
          static constexpr guid value{ 0x2F4ABE9F,0x6213,0x4A85,{ 0xA3,0xB0,0xF9,0x2D,0x1A,0x83,0x9D,0x19 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailQueryOptions>
      {
          static constexpr guid value{ 0x45504B9B,0x3E7F,0x4D52,{ 0xB6,0xDD,0xD6,0xFD,0x4E,0x1F,0xBD,0x9A } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailQueryOptionsFactory>
      {
          static constexpr guid value{ 0x88F1A1B8,0x78AB,0x4EE8,{ 0xB4,0xE3,0x04,0x6D,0x6E,0x2F,0xE5,0xE2 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailQueryTextSearch>
      {
          static constexpr guid value{ 0x9FA0A288,0x3C5D,0x46A5,{ 0xA6,0xE2,0x31,0xD6,0xFD,0x17,0xE5,0x40 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailRecipient>
      {
          static constexpr guid value{ 0xCAE825B3,0x4478,0x4814,{ 0xB9,0x00,0xC9,0x02,0xB5,0xE1,0x9B,0x53 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailRecipientFactory>
      {
          static constexpr guid value{ 0x5500B84D,0xC79A,0x4EF8,{ 0xB9,0x09,0x72,0x2E,0x18,0xE3,0x93,0x5D } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult>
      {
          static constexpr guid value{ 0x918338FA,0x8D8D,0x4573,{ 0x80,0xD1,0x07,0x17,0x2A,0x34,0xB9,0x8D } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult2>
      {
          static constexpr guid value{ 0x5E420BB6,0xCE5B,0x4BDE,{ 0xB9,0xD4,0xE1,0x6D,0xA0,0xB0,0x9F,0xCA } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailStore>
      {
          static constexpr guid value{ 0xF803226E,0x9137,0x4F8B,{ 0xA4,0x70,0x27,0x9A,0xC3,0x05,0x8E,0xB6 } };
      };
      template <> struct guid_storage<Windows::ApplicationModel::Email::IEmailStoreNotificationTriggerDetails>
      {
          static constexpr guid value{ 0xCE17563C,0x46E6,0x43C9,{ 0x96,0xF7,0xFA,0xCF,0x7D,0xD7,0x10,0xCB } };
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailAttachment>
      {
          using type = Windows::ApplicationModel::Email::IEmailAttachment;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailConversation>
      {
          using type = Windows::ApplicationModel::Email::IEmailConversation;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailConversationBatch>
      {
          using type = Windows::ApplicationModel::Email::IEmailConversationBatch;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailConversationReader>
      {
          using type = Windows::ApplicationModel::Email::IEmailConversationReader;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailFolder>
      {
          using type = Windows::ApplicationModel::Email::IEmailFolder;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailIrmInfo>
      {
          using type = Windows::ApplicationModel::Email::IEmailIrmInfo;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailIrmTemplate>
      {
          using type = Windows::ApplicationModel::Email::IEmailIrmTemplate;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailItemCounts>
      {
          using type = Windows::ApplicationModel::Email::IEmailItemCounts;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailbox>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailbox;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxAction>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxAction;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxAutoReply>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxAutoReply;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxAutoReplySettings>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxAutoReplySettings;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxCapabilities>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxCapabilities;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxChange>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxChange;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxChangeReader>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxChangeReader;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxChangeTracker>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxChangeTracker;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxChangedDeferral>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxChangedDeferral;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxChangedEventArgs>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxChangedEventArgs;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxCreateFolderResult>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxCreateFolderResult;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxPolicies>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxPolicies;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMailboxSyncManager>
      {
          using type = Windows::ApplicationModel::Email::IEmailMailboxSyncManager;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailManagerForUser>
      {
          using type = Windows::ApplicationModel::Email::IEmailManagerForUser;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMeetingInfo>
      {
          using type = Windows::ApplicationModel::Email::IEmailMeetingInfo;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMessage>
      {
          using type = Windows::ApplicationModel::Email::IEmailMessage;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMessageBatch>
      {
          using type = Windows::ApplicationModel::Email::IEmailMessageBatch;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailMessageReader>
      {
          using type = Windows::ApplicationModel::Email::IEmailMessageReader;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailQueryOptions>
      {
          using type = Windows::ApplicationModel::Email::IEmailQueryOptions;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailQueryTextSearch>
      {
          using type = Windows::ApplicationModel::Email::IEmailQueryTextSearch;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailRecipient>
      {
          using type = Windows::ApplicationModel::Email::IEmailRecipient;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailRecipientResolutionResult>
      {
          using type = Windows::ApplicationModel::Email::IEmailRecipientResolutionResult;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailStore>
      {
          using type = Windows::ApplicationModel::Email::IEmailStore;
      };
      template <> struct default_interface<Windows::ApplicationModel::Email::EmailStoreNotificationTriggerDetails>
      {
          using type = Windows::ApplicationModel::Email::IEmailStoreNotificationTriggerDetails;
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailAttachment>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_FileName(void**) noexcept = 0;
              virtual int32_t __stdcall put_FileName(void*) noexcept = 0;
              virtual int32_t __stdcall get_Data(void**) noexcept = 0;
              virtual int32_t __stdcall put_Data(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailAttachment2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Id(void**) noexcept = 0;
              virtual int32_t __stdcall get_ContentId(void**) noexcept = 0;
              virtual int32_t __stdcall put_ContentId(void*) noexcept = 0;
              virtual int32_t __stdcall get_ContentLocation(void**) noexcept = 0;
              virtual int32_t __stdcall put_ContentLocation(void*) noexcept = 0;
              virtual int32_t __stdcall get_DownloadState(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_DownloadState(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_EstimatedDownloadSizeInBytes(uint64_t*) noexcept = 0;
              virtual int32_t __stdcall put_EstimatedDownloadSizeInBytes(uint64_t) noexcept = 0;
              virtual int32_t __stdcall get_IsFromBaseMessage(bool*) noexcept = 0;
              virtual int32_t __stdcall get_IsInline(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsInline(bool) noexcept = 0;
              virtual int32_t __stdcall get_MimeType(void**) noexcept = 0;
              virtual int32_t __stdcall put_MimeType(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailAttachmentFactory>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall Create(void*, void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailAttachmentFactory2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall Create(void*, void*, void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailConversation>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Id(void**) noexcept = 0;
              virtual int32_t __stdcall get_MailboxId(void**) noexcept = 0;
              virtual int32_t __stdcall get_FlagState(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_HasAttachment(bool*) noexcept = 0;
              virtual int32_t __stdcall get_Importance(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_LastEmailResponseKind(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_MessageCount(uint32_t*) noexcept = 0;
              virtual int32_t __stdcall get_MostRecentMessageId(void**) noexcept = 0;
              virtual int32_t __stdcall get_MostRecentMessageTime(int64_t*) noexcept = 0;
              virtual int32_t __stdcall get_Preview(void**) noexcept = 0;
              virtual int32_t __stdcall get_LatestSender(void**) noexcept = 0;
              virtual int32_t __stdcall get_Subject(void**) noexcept = 0;
              virtual int32_t __stdcall get_UnreadMessageCount(uint32_t*) noexcept = 0;
              virtual int32_t __stdcall FindMessagesAsync(void**) noexcept = 0;
              virtual int32_t __stdcall FindMessagesWithCountAsync(uint32_t, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailConversationBatch>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Conversations(void**) noexcept = 0;
              virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailConversationReader>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall ReadBatchAsync(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailFolder>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Id(void**) noexcept = 0;
              virtual int32_t __stdcall get_RemoteId(void**) noexcept = 0;
              virtual int32_t __stdcall put_RemoteId(void*) noexcept = 0;
              virtual int32_t __stdcall get_MailboxId(void**) noexcept = 0;
              virtual int32_t __stdcall get_ParentFolderId(void**) noexcept = 0;
              virtual int32_t __stdcall get_DisplayName(void**) noexcept = 0;
              virtual int32_t __stdcall put_DisplayName(void*) noexcept = 0;
              virtual int32_t __stdcall get_IsSyncEnabled(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsSyncEnabled(bool) noexcept = 0;
              virtual int32_t __stdcall get_LastSuccessfulSyncTime(int64_t*) noexcept = 0;
              virtual int32_t __stdcall put_LastSuccessfulSyncTime(int64_t) noexcept = 0;
              virtual int32_t __stdcall get_Kind(int32_t*) noexcept = 0;
              virtual int32_t __stdcall CreateFolderAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall DeleteAsync(void**) noexcept = 0;
              virtual int32_t __stdcall FindChildFoldersAsync(void**) noexcept = 0;
              virtual int32_t __stdcall GetConversationReader(void**) noexcept = 0;
              virtual int32_t __stdcall GetConversationReaderWithOptions(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageReader(void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageReaderWithOptions(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageCountsAsync(void**) noexcept = 0;
              virtual int32_t __stdcall TryMoveAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryMoveWithNewNameAsync(void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall TrySaveAsync(void**) noexcept = 0;
              virtual int32_t __stdcall SaveMessageAsync(void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailIrmInfo>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_CanEdit(bool*) noexcept = 0;
              virtual int32_t __stdcall put_CanEdit(bool) noexcept = 0;
              virtual int32_t __stdcall get_CanExtractData(bool*) noexcept = 0;
              virtual int32_t __stdcall put_CanExtractData(bool) noexcept = 0;
              virtual int32_t __stdcall get_CanForward(bool*) noexcept = 0;
              virtual int32_t __stdcall put_CanForward(bool) noexcept = 0;
              virtual int32_t __stdcall get_CanModifyRecipientsOnResponse(bool*) noexcept = 0;
              virtual int32_t __stdcall put_CanModifyRecipientsOnResponse(bool) noexcept = 0;
              virtual int32_t __stdcall get_CanPrintData(bool*) noexcept = 0;
              virtual int32_t __stdcall put_CanPrintData(bool) noexcept = 0;
              virtual int32_t __stdcall get_CanRemoveIrmOnResponse(bool*) noexcept = 0;
              virtual int32_t __stdcall put_CanRemoveIrmOnResponse(bool) noexcept = 0;
              virtual int32_t __stdcall get_CanReply(bool*) noexcept = 0;
              virtual int32_t __stdcall put_CanReply(bool) noexcept = 0;
              virtual int32_t __stdcall get_CanReplyAll(bool*) noexcept = 0;
              virtual int32_t __stdcall put_CanReplyAll(bool) noexcept = 0;
              virtual int32_t __stdcall get_ExpirationDate(int64_t*) noexcept = 0;
              virtual int32_t __stdcall put_ExpirationDate(int64_t) noexcept = 0;
              virtual int32_t __stdcall get_IsIrmOriginator(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsIrmOriginator(bool) noexcept = 0;
              virtual int32_t __stdcall get_IsProgramaticAccessAllowed(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsProgramaticAccessAllowed(bool) noexcept = 0;
              virtual int32_t __stdcall get_Template(void**) noexcept = 0;
              virtual int32_t __stdcall put_Template(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailIrmInfoFactory>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall Create(int64_t, void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailIrmTemplate>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Id(void**) noexcept = 0;
              virtual int32_t __stdcall put_Id(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_Name(void**) noexcept = 0;
              virtual int32_t __stdcall put_Name(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailIrmTemplateFactory>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall Create(void*, void*, void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailItemCounts>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Flagged(uint32_t*) noexcept = 0;
              virtual int32_t __stdcall get_Important(uint32_t*) noexcept = 0;
              virtual int32_t __stdcall get_Total(uint32_t*) noexcept = 0;
              virtual int32_t __stdcall get_Unread(uint32_t*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailbox>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Capabilities(void**) noexcept = 0;
              virtual int32_t __stdcall get_ChangeTracker(void**) noexcept = 0;
              virtual int32_t __stdcall get_DisplayName(void**) noexcept = 0;
              virtual int32_t __stdcall put_DisplayName(void*) noexcept = 0;
              virtual int32_t __stdcall get_Id(void**) noexcept = 0;
              virtual int32_t __stdcall get_IsOwnedByCurrentApp(bool*) noexcept = 0;
              virtual int32_t __stdcall get_IsDataEncryptedUnderLock(bool*) noexcept = 0;
              virtual int32_t __stdcall get_MailAddress(void**) noexcept = 0;
              virtual int32_t __stdcall put_MailAddress(void*) noexcept = 0;
              virtual int32_t __stdcall get_MailAddressAliases(void**) noexcept = 0;
              virtual int32_t __stdcall get_OtherAppReadAccess(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_OtherAppReadAccess(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_OtherAppWriteAccess(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_OtherAppWriteAccess(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_Policies(void**) noexcept = 0;
              virtual int32_t __stdcall get_SourceDisplayName(void**) noexcept = 0;
              virtual int32_t __stdcall get_SyncManager(void**) noexcept = 0;
              virtual int32_t __stdcall get_UserDataAccountId(void**) noexcept = 0;
              virtual int32_t __stdcall GetConversationReader(void**) noexcept = 0;
              virtual int32_t __stdcall GetConversationReaderWithOptions(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageReader(void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageReaderWithOptions(void*, void**) noexcept = 0;
              virtual int32_t __stdcall DeleteAsync(void**) noexcept = 0;
              virtual int32_t __stdcall GetConversationAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetFolderAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetSpecialFolderAsync(int32_t, void**) noexcept = 0;
              virtual int32_t __stdcall SaveAsync(void**) noexcept = 0;
              virtual int32_t __stdcall MarkMessageAsSeenAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall MarkFolderAsSeenAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall MarkMessageReadAsync(void*, bool, void**) noexcept = 0;
              virtual int32_t __stdcall ChangeMessageFlagStateAsync(void*, int32_t, void**) noexcept = 0;
              virtual int32_t __stdcall TryMoveMessageAsync(void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryMoveFolderAsync(void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryMoveFolderWithNewNameAsync(void*, void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall DeleteMessageAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall MarkFolderSyncEnabledAsync(void*, bool, void**) noexcept = 0;
              virtual int32_t __stdcall SendMessageAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall SaveDraftAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall DownloadMessageAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall DownloadAttachmentAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall CreateResponseMessageAsync(void*, int32_t, void*, int32_t, void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryUpdateMeetingResponseAsync(void*, int32_t, void*, void*, bool, void**) noexcept = 0;
              virtual int32_t __stdcall TryForwardMeetingAsync(void*, void*, void*, int32_t, void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryProposeNewTimeForMeetingAsync(void*, int64_t, int64_t, void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall add_MailboxChanged(void*, winrt::event_token*) noexcept = 0;
              virtual int32_t __stdcall remove_MailboxChanged(winrt::event_token) noexcept = 0;
              virtual int32_t __stdcall SmartSendMessageAsync(void*, bool, void**) noexcept = 0;
              virtual int32_t __stdcall TrySetAutoReplySettingsAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryGetAutoReplySettingsAsync(int32_t, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailbox2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_LinkedMailboxId(void**) noexcept = 0;
              virtual int32_t __stdcall get_NetworkAccountId(void**) noexcept = 0;
              virtual int32_t __stdcall get_NetworkId(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailbox3>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall ResolveRecipientsAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall ValidateCertificatesAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryEmptyFolderAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryCreateFolderAsync(void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall TryDeleteFolderAsync(void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailbox4>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall RegisterSyncManagerAsync(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailbox5>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall GetChangeTracker(void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxAction>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Kind(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_ChangeNumber(uint64_t*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxAutoReply>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_IsEnabled(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsEnabled(bool) noexcept = 0;
              virtual int32_t __stdcall get_Response(void**) noexcept = 0;
              virtual int32_t __stdcall put_Response(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxAutoReplySettings>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_IsEnabled(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsEnabled(bool) noexcept = 0;
              virtual int32_t __stdcall get_ResponseKind(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_ResponseKind(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_StartTime(void**) noexcept = 0;
              virtual int32_t __stdcall put_StartTime(void*) noexcept = 0;
              virtual int32_t __stdcall get_EndTime(void**) noexcept = 0;
              virtual int32_t __stdcall put_EndTime(void*) noexcept = 0;
              virtual int32_t __stdcall get_InternalReply(void**) noexcept = 0;
              virtual int32_t __stdcall get_KnownExternalReply(void**) noexcept = 0;
              virtual int32_t __stdcall get_UnknownExternalReply(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxCapabilities>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_CanForwardMeetings(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanGetAndSetExternalAutoReplies(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanGetAndSetInternalAutoReplies(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanUpdateMeetingResponses(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanServerSearchFolders(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanServerSearchMailbox(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanProposeNewTimeForMeetings(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanSmartSend(bool*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxCapabilities2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_CanResolveRecipients(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanValidateCertificates(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanEmptyFolder(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanCreateFolder(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanDeleteFolder(bool*) noexcept = 0;
              virtual int32_t __stdcall get_CanMoveFolder(bool*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxCapabilities3>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall put_CanForwardMeetings(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanGetAndSetExternalAutoReplies(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanGetAndSetInternalAutoReplies(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanUpdateMeetingResponses(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanServerSearchFolders(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanServerSearchMailbox(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanProposeNewTimeForMeetings(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanSmartSend(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanResolveRecipients(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanValidateCertificates(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanEmptyFolder(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanCreateFolder(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanDeleteFolder(bool) noexcept = 0;
              virtual int32_t __stdcall put_CanMoveFolder(bool) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxChange>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_ChangeType(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_MailboxActions(void**) noexcept = 0;
              virtual int32_t __stdcall get_Message(void**) noexcept = 0;
              virtual int32_t __stdcall get_Folder(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxChangeReader>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall AcceptChanges() noexcept = 0;
              virtual int32_t __stdcall AcceptChangesThrough(void*) noexcept = 0;
              virtual int32_t __stdcall ReadBatchAsync(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxChangeTracker>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_IsTracking(bool*) noexcept = 0;
              virtual int32_t __stdcall Enable() noexcept = 0;
              virtual int32_t __stdcall GetChangeReader(void**) noexcept = 0;
              virtual int32_t __stdcall Reset() noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxChangedDeferral>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall Complete() noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxChangedEventArgs>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxCreateFolderResult>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_Folder(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxPolicies>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_AllowedSmimeEncryptionAlgorithmNegotiation(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_AllowSmimeSoftCertificates(bool*) noexcept = 0;
              virtual int32_t __stdcall get_RequiredSmimeEncryptionAlgorithm(void**) noexcept = 0;
              virtual int32_t __stdcall get_RequiredSmimeSigningAlgorithm(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxPolicies2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_MustEncryptSmimeMessages(bool*) noexcept = 0;
              virtual int32_t __stdcall get_MustSignSmimeMessages(bool*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxPolicies3>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall put_AllowedSmimeEncryptionAlgorithmNegotiation(int32_t) noexcept = 0;
              virtual int32_t __stdcall put_AllowSmimeSoftCertificates(bool) noexcept = 0;
              virtual int32_t __stdcall put_RequiredSmimeEncryptionAlgorithm(void*) noexcept = 0;
              virtual int32_t __stdcall put_RequiredSmimeSigningAlgorithm(void*) noexcept = 0;
              virtual int32_t __stdcall put_MustEncryptSmimeMessages(bool) noexcept = 0;
              virtual int32_t __stdcall put_MustSignSmimeMessages(bool) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxSyncManager>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_LastSuccessfulSyncTime(int64_t*) noexcept = 0;
              virtual int32_t __stdcall get_LastAttemptedSyncTime(int64_t*) noexcept = 0;
              virtual int32_t __stdcall SyncAsync(void**) noexcept = 0;
              virtual int32_t __stdcall add_SyncStatusChanged(void*, winrt::event_token*) noexcept = 0;
              virtual int32_t __stdcall remove_SyncStatusChanged(winrt::event_token) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMailboxSyncManager2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall put_Status(int32_t) noexcept = 0;
              virtual int32_t __stdcall put_LastSuccessfulSyncTime(int64_t) noexcept = 0;
              virtual int32_t __stdcall put_LastAttemptedSyncTime(int64_t) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailManagerForUser>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall ShowComposeNewEmailAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall RequestStoreAsync(int32_t, void**) noexcept = 0;
              virtual int32_t __stdcall get_User(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailManagerStatics>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall ShowComposeNewEmailAsync(void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailManagerStatics2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall RequestStoreAsync(int32_t, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailManagerStatics3>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall GetForUser(void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMeetingInfo>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_AllowNewTimeProposal(bool*) noexcept = 0;
              virtual int32_t __stdcall put_AllowNewTimeProposal(bool) noexcept = 0;
              virtual int32_t __stdcall get_AppointmentRoamingId(void**) noexcept = 0;
              virtual int32_t __stdcall put_AppointmentRoamingId(void*) noexcept = 0;
              virtual int32_t __stdcall get_AppointmentOriginalStartTime(void**) noexcept = 0;
              virtual int32_t __stdcall put_AppointmentOriginalStartTime(void*) noexcept = 0;
              virtual int32_t __stdcall get_Duration(int64_t*) noexcept = 0;
              virtual int32_t __stdcall put_Duration(int64_t) noexcept = 0;
              virtual int32_t __stdcall get_IsAllDay(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsAllDay(bool) noexcept = 0;
              virtual int32_t __stdcall get_IsResponseRequested(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsResponseRequested(bool) noexcept = 0;
              virtual int32_t __stdcall get_Location(void**) noexcept = 0;
              virtual int32_t __stdcall put_Location(void*) noexcept = 0;
              virtual int32_t __stdcall get_ProposedStartTime(void**) noexcept = 0;
              virtual int32_t __stdcall put_ProposedStartTime(void*) noexcept = 0;
              virtual int32_t __stdcall get_ProposedDuration(void**) noexcept = 0;
              virtual int32_t __stdcall put_ProposedDuration(void*) noexcept = 0;
              virtual int32_t __stdcall get_RecurrenceStartTime(void**) noexcept = 0;
              virtual int32_t __stdcall put_RecurrenceStartTime(void*) noexcept = 0;
              virtual int32_t __stdcall get_Recurrence(void**) noexcept = 0;
              virtual int32_t __stdcall put_Recurrence(void*) noexcept = 0;
              virtual int32_t __stdcall get_RemoteChangeNumber(uint64_t*) noexcept = 0;
              virtual int32_t __stdcall put_RemoteChangeNumber(uint64_t) noexcept = 0;
              virtual int32_t __stdcall get_StartTime(int64_t*) noexcept = 0;
              virtual int32_t __stdcall put_StartTime(int64_t) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMeetingInfo2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_IsReportedOutOfDateByServer(bool*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMessage>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Subject(void**) noexcept = 0;
              virtual int32_t __stdcall put_Subject(void*) noexcept = 0;
              virtual int32_t __stdcall get_Body(void**) noexcept = 0;
              virtual int32_t __stdcall put_Body(void*) noexcept = 0;
              virtual int32_t __stdcall get_To(void**) noexcept = 0;
              virtual int32_t __stdcall get_CC(void**) noexcept = 0;
              virtual int32_t __stdcall get_Bcc(void**) noexcept = 0;
              virtual int32_t __stdcall get_Attachments(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMessage2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Id(void**) noexcept = 0;
              virtual int32_t __stdcall get_RemoteId(void**) noexcept = 0;
              virtual int32_t __stdcall put_RemoteId(void*) noexcept = 0;
              virtual int32_t __stdcall get_MailboxId(void**) noexcept = 0;
              virtual int32_t __stdcall get_ConversationId(void**) noexcept = 0;
              virtual int32_t __stdcall get_FolderId(void**) noexcept = 0;
              virtual int32_t __stdcall get_AllowInternetImages(bool*) noexcept = 0;
              virtual int32_t __stdcall put_AllowInternetImages(bool) noexcept = 0;
              virtual int32_t __stdcall get_ChangeNumber(uint64_t*) noexcept = 0;
              virtual int32_t __stdcall get_DownloadState(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_DownloadState(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_EstimatedDownloadSizeInBytes(uint32_t*) noexcept = 0;
              virtual int32_t __stdcall put_EstimatedDownloadSizeInBytes(uint32_t) noexcept = 0;
              virtual int32_t __stdcall get_FlagState(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_FlagState(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_HasPartialBodies(bool*) noexcept = 0;
              virtual int32_t __stdcall get_Importance(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_Importance(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_InResponseToMessageId(void**) noexcept = 0;
              virtual int32_t __stdcall get_IrmInfo(void**) noexcept = 0;
              virtual int32_t __stdcall put_IrmInfo(void*) noexcept = 0;
              virtual int32_t __stdcall get_IsDraftMessage(bool*) noexcept = 0;
              virtual int32_t __stdcall get_IsRead(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsRead(bool) noexcept = 0;
              virtual int32_t __stdcall get_IsSeen(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsSeen(bool) noexcept = 0;
              virtual int32_t __stdcall get_IsServerSearchMessage(bool*) noexcept = 0;
              virtual int32_t __stdcall get_IsSmartSendable(bool*) noexcept = 0;
              virtual int32_t __stdcall get_MessageClass(void**) noexcept = 0;
              virtual int32_t __stdcall put_MessageClass(void*) noexcept = 0;
              virtual int32_t __stdcall get_NormalizedSubject(void**) noexcept = 0;
              virtual int32_t __stdcall get_OriginalCodePage(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_OriginalCodePage(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_Preview(void**) noexcept = 0;
              virtual int32_t __stdcall put_Preview(void*) noexcept = 0;
              virtual int32_t __stdcall get_LastResponseKind(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_LastResponseKind(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_Sender(void**) noexcept = 0;
              virtual int32_t __stdcall put_Sender(void*) noexcept = 0;
              virtual int32_t __stdcall get_SentTime(void**) noexcept = 0;
              virtual int32_t __stdcall put_SentTime(void*) noexcept = 0;
              virtual int32_t __stdcall get_MeetingInfo(void**) noexcept = 0;
              virtual int32_t __stdcall put_MeetingInfo(void*) noexcept = 0;
              virtual int32_t __stdcall GetBodyStream(int32_t, void**) noexcept = 0;
              virtual int32_t __stdcall SetBodyStream(int32_t, void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMessage3>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_SmimeData(void**) noexcept = 0;
              virtual int32_t __stdcall put_SmimeData(void*) noexcept = 0;
              virtual int32_t __stdcall get_SmimeKind(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_SmimeKind(int32_t) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMessage4>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_ReplyTo(void**) noexcept = 0;
              virtual int32_t __stdcall get_SentRepresenting(void**) noexcept = 0;
              virtual int32_t __stdcall put_SentRepresenting(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMessageBatch>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Messages(void**) noexcept = 0;
              virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailMessageReader>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall ReadBatchAsync(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailQueryOptions>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_TextSearch(void**) noexcept = 0;
              virtual int32_t __stdcall get_SortDirection(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_SortDirection(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_SortProperty(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_SortProperty(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_Kind(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_Kind(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_FolderIds(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailQueryOptionsFactory>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall CreateWithText(void*, void**) noexcept = 0;
              virtual int32_t __stdcall CreateWithTextAndFields(void*, uint32_t, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailQueryTextSearch>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Fields(uint32_t*) noexcept = 0;
              virtual int32_t __stdcall put_Fields(uint32_t) noexcept = 0;
              virtual int32_t __stdcall get_SearchScope(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_SearchScope(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_Text(void**) noexcept = 0;
              virtual int32_t __stdcall put_Text(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailRecipient>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Name(void**) noexcept = 0;
              virtual int32_t __stdcall put_Name(void*) noexcept = 0;
              virtual int32_t __stdcall get_Address(void**) noexcept = 0;
              virtual int32_t __stdcall put_Address(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailRecipientFactory>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall Create(void*, void**) noexcept = 0;
              virtual int32_t __stdcall CreateWithName(void*, void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_PublicKeys(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall put_Status(int32_t) noexcept = 0;
              virtual int32_t __stdcall SetPublicKeys(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailStore>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall FindMailboxesAsync(void**) noexcept = 0;
              virtual int32_t __stdcall GetConversationReader(void**) noexcept = 0;
              virtual int32_t __stdcall GetConversationReaderWithOptions(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageReader(void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageReaderWithOptions(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetMailboxAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetConversationAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetFolderAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetMessageAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall CreateMailboxAsync(void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall CreateMailboxInAccountAsync(void*, void*, void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::ApplicationModel::Email::IEmailStoreNotificationTriggerDetails>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
          };
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailAttachment
      {
          [[nodiscard]] auto FileName() const;
          auto FileName(param::hstring const& value) const;
          [[nodiscard]] auto Data() const;
          auto Data(Windows::Storage::Streams::IRandomAccessStreamReference const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailAttachment>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailAttachment<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailAttachment2
      {
          [[nodiscard]] auto Id() const;
          [[nodiscard]] auto ContentId() const;
          auto ContentId(param::hstring const& value) const;
          [[nodiscard]] auto ContentLocation() const;
          auto ContentLocation(param::hstring const& value) const;
          [[nodiscard]] auto DownloadState() const;
          auto DownloadState(Windows::ApplicationModel::Email::EmailAttachmentDownloadState const& value) const;
          [[nodiscard]] auto EstimatedDownloadSizeInBytes() const;
          auto EstimatedDownloadSizeInBytes(uint64_t value) const;
          [[nodiscard]] auto IsFromBaseMessage() const;
          [[nodiscard]] auto IsInline() const;
          auto IsInline(bool value) const;
          [[nodiscard]] auto MimeType() const;
          auto MimeType(param::hstring const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailAttachment2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailAttachment2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailAttachmentFactory
      {
          auto Create(param::hstring const& fileName, Windows::Storage::Streams::IRandomAccessStreamReference const& data) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailAttachmentFactory>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailAttachmentFactory<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailAttachmentFactory2
      {
          auto Create(param::hstring const& fileName, Windows::Storage::Streams::IRandomAccessStreamReference const& data, param::hstring const& mimeType) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailAttachmentFactory2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailAttachmentFactory2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailConversation
      {
          [[nodiscard]] auto Id() const;
          [[nodiscard]] auto MailboxId() const;
          [[nodiscard]] auto FlagState() const;
          [[nodiscard]] auto HasAttachment() const;
          [[nodiscard]] auto Importance() const;
          [[nodiscard]] auto LastEmailResponseKind() const;
          [[nodiscard]] auto MessageCount() const;
          [[nodiscard]] auto MostRecentMessageId() const;
          [[nodiscard]] auto MostRecentMessageTime() const;
          [[nodiscard]] auto Preview() const;
          [[nodiscard]] auto LatestSender() const;
          [[nodiscard]] auto Subject() const;
          [[nodiscard]] auto UnreadMessageCount() const;
          auto FindMessagesAsync() const;
          auto FindMessagesAsync(uint32_t count) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailConversation>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailConversation<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailConversationBatch
      {
          [[nodiscard]] auto Conversations() const;
          [[nodiscard]] auto Status() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailConversationBatch>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailConversationBatch<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailConversationReader
      {
          auto ReadBatchAsync() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailConversationReader>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailConversationReader<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailFolder
      {
          [[nodiscard]] auto Id() const;
          [[nodiscard]] auto RemoteId() const;
          auto RemoteId(param::hstring const& value) const;
          [[nodiscard]] auto MailboxId() const;
          [[nodiscard]] auto ParentFolderId() const;
          [[nodiscard]] auto DisplayName() const;
          auto DisplayName(param::hstring const& value) const;
          [[nodiscard]] auto IsSyncEnabled() const;
          auto IsSyncEnabled(bool value) const;
          [[nodiscard]] auto LastSuccessfulSyncTime() const;
          auto LastSuccessfulSyncTime(Windows::Foundation::DateTime const& value) const;
          [[nodiscard]] auto Kind() const;
          auto CreateFolderAsync(param::hstring const& name) const;
          auto DeleteAsync() const;
          auto FindChildFoldersAsync() const;
          auto GetConversationReader() const;
          auto GetConversationReader(Windows::ApplicationModel::Email::EmailQueryOptions const& options) const;
          auto GetMessageAsync(param::hstring const& id) const;
          auto GetMessageReader() const;
          auto GetMessageReader(Windows::ApplicationModel::Email::EmailQueryOptions const& options) const;
          auto GetMessageCountsAsync() const;
          auto TryMoveAsync(Windows::ApplicationModel::Email::EmailFolder const& newParentFolder) const;
          auto TryMoveAsync(Windows::ApplicationModel::Email::EmailFolder const& newParentFolder, param::hstring const& newFolderName) const;
          auto TrySaveAsync() const;
          auto SaveMessageAsync(Windows::ApplicationModel::Email::EmailMessage const& message) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailFolder>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailFolder<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailIrmInfo
      {
          [[nodiscard]] auto CanEdit() const;
          auto CanEdit(bool value) const;
          [[nodiscard]] auto CanExtractData() const;
          auto CanExtractData(bool value) const;
          [[nodiscard]] auto CanForward() const;
          auto CanForward(bool value) const;
          [[nodiscard]] auto CanModifyRecipientsOnResponse() const;
          auto CanModifyRecipientsOnResponse(bool value) const;
          [[nodiscard]] auto CanPrintData() const;
          auto CanPrintData(bool value) const;
          [[nodiscard]] auto CanRemoveIrmOnResponse() const;
          auto CanRemoveIrmOnResponse(bool value) const;
          [[nodiscard]] auto CanReply() const;
          auto CanReply(bool value) const;
          [[nodiscard]] auto CanReplyAll() const;
          auto CanReplyAll(bool value) const;
          [[nodiscard]] auto ExpirationDate() const;
          auto ExpirationDate(Windows::Foundation::DateTime const& value) const;
          [[nodiscard]] auto IsIrmOriginator() const;
          auto IsIrmOriginator(bool value) const;
          [[nodiscard]] auto IsProgramaticAccessAllowed() const;
          auto IsProgramaticAccessAllowed(bool value) const;
          [[nodiscard]] auto Template() const;
          auto Template(Windows::ApplicationModel::Email::EmailIrmTemplate const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailIrmInfo>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailIrmInfo<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailIrmInfoFactory
      {
          auto Create(Windows::Foundation::DateTime const& expiration, Windows::ApplicationModel::Email::EmailIrmTemplate const& irmTemplate) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailIrmInfoFactory>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailIrmInfoFactory<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailIrmTemplate
      {
          [[nodiscard]] auto Id() const;
          auto Id(param::hstring const& value) const;
          [[nodiscard]] auto Description() const;
          auto Description(param::hstring const& value) const;
          [[nodiscard]] auto Name() const;
          auto Name(param::hstring const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailIrmTemplate>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailIrmTemplate<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailIrmTemplateFactory
      {
          auto Create(param::hstring const& id, param::hstring const& name, param::hstring const& description) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailIrmTemplateFactory>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailIrmTemplateFactory<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailItemCounts
      {
          [[nodiscard]] auto Flagged() const;
          [[nodiscard]] auto Important() const;
          [[nodiscard]] auto Total() const;
          [[nodiscard]] auto Unread() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailItemCounts>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailItemCounts<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailbox
      {
          [[nodiscard]] auto Capabilities() const;
          [[nodiscard]] auto ChangeTracker() const;
          [[nodiscard]] auto DisplayName() const;
          auto DisplayName(param::hstring const& value) const;
          [[nodiscard]] auto Id() const;
          [[nodiscard]] auto IsOwnedByCurrentApp() const;
          [[nodiscard]] auto IsDataEncryptedUnderLock() const;
          [[nodiscard]] auto MailAddress() const;
          auto MailAddress(param::hstring const& value) const;
          [[nodiscard]] auto MailAddressAliases() const;
          [[nodiscard]] auto OtherAppReadAccess() const;
          auto OtherAppReadAccess(Windows::ApplicationModel::Email::EmailMailboxOtherAppReadAccess const& value) const;
          [[nodiscard]] auto OtherAppWriteAccess() const;
          auto OtherAppWriteAccess(Windows::ApplicationModel::Email::EmailMailboxOtherAppWriteAccess const& value) const;
          [[nodiscard]] auto Policies() const;
          [[nodiscard]] auto SourceDisplayName() const;
          [[nodiscard]] auto SyncManager() const;
          [[nodiscard]] auto UserDataAccountId() const;
          auto GetConversationReader() const;
          auto GetConversationReader(Windows::ApplicationModel::Email::EmailQueryOptions const& options) const;
          auto GetMessageReader() const;
          auto GetMessageReader(Windows::ApplicationModel::Email::EmailQueryOptions const& options) const;
          auto DeleteAsync() const;
          auto GetConversationAsync(param::hstring const& id) const;
          auto GetFolderAsync(param::hstring const& id) const;
          auto GetMessageAsync(param::hstring const& id) const;
          auto GetSpecialFolderAsync(Windows::ApplicationModel::Email::EmailSpecialFolderKind const& folderType) const;
          auto SaveAsync() const;
          auto MarkMessageAsSeenAsync(param::hstring const& messageId) const;
          auto MarkFolderAsSeenAsync(param::hstring const& folderId) const;
          auto MarkMessageReadAsync(param::hstring const& messageId, bool isRead) const;
          auto ChangeMessageFlagStateAsync(param::hstring const& messageId, Windows::ApplicationModel::Email::EmailFlagState const& flagState) const;
          auto TryMoveMessageAsync(param::hstring const& messageId, param::hstring const& newParentFolderId) const;
          auto TryMoveFolderAsync(param::hstring const& folderId, param::hstring const& newParentFolderId) const;
          auto TryMoveFolderAsync(param::hstring const& folderId, param::hstring const& newParentFolderId, param::hstring const& newFolderName) const;
          auto DeleteMessageAsync(param::hstring const& messageId) const;
          auto MarkFolderSyncEnabledAsync(param::hstring const& folderId, bool isSyncEnabled) const;
          auto SendMessageAsync(Windows::ApplicationModel::Email::EmailMessage const& message) const;
          auto SaveDraftAsync(Windows::ApplicationModel::Email::EmailMessage const& message) const;
          auto DownloadMessageAsync(param::hstring const& messageId) const;
          auto DownloadAttachmentAsync(param::hstring const& attachmentId) const;
          auto CreateResponseMessageAsync(param::hstring const& messageId, Windows::ApplicationModel::Email::EmailMessageResponseKind const& responseType, param::hstring const& subject, Windows::ApplicationModel::Email::EmailMessageBodyKind const& responseHeaderType, param::hstring const& responseHeader) const;
          auto TryUpdateMeetingResponseAsync(Windows::ApplicationModel::Email::EmailMessage const& meeting, Windows::ApplicationModel::Email::EmailMeetingResponseType const& response, param::hstring const& subject, param::hstring const& comment, bool sendUpdate) const;
          auto TryForwardMeetingAsync(Windows::ApplicationModel::Email::EmailMessage const& meeting, param::async_iterable<Windows::ApplicationModel::Email::EmailRecipient> const& recipients, param::hstring const& subject, Windows::ApplicationModel::Email::EmailMessageBodyKind const& forwardHeaderType, param::hstring const& forwardHeader, param::hstring const& comment) const;
          auto TryProposeNewTimeForMeetingAsync(Windows::ApplicationModel::Email::EmailMessage const& meeting, Windows::Foundation::DateTime const& newStartTime, Windows::Foundation::TimeSpan const& newDuration, param::hstring const& subject, param::hstring const& comment) const;
          auto MailboxChanged(Windows::Foundation::TypedEventHandler<Windows::ApplicationModel::Email::EmailMailbox, Windows::ApplicationModel::Email::EmailMailboxChangedEventArgs> const& pHandler) const;
          using MailboxChanged_revoker = impl::event_revoker<Windows::ApplicationModel::Email::IEmailMailbox, &impl::abi_t<Windows::ApplicationModel::Email::IEmailMailbox>::remove_MailboxChanged>;
          MailboxChanged_revoker MailboxChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::ApplicationModel::Email::EmailMailbox, Windows::ApplicationModel::Email::EmailMailboxChangedEventArgs> const& pHandler) const;
          auto MailboxChanged(winrt::event_token const& token) const noexcept;
          auto SendMessageAsync(Windows::ApplicationModel::Email::EmailMessage const& message, bool smartSend) const;
          auto TrySetAutoReplySettingsAsync(Windows::ApplicationModel::Email::EmailMailboxAutoReplySettings const& autoReplySettings) const;
          auto TryGetAutoReplySettingsAsync(Windows::ApplicationModel::Email::EmailMailboxAutoReplyMessageResponseKind const& requestedFormat) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailbox>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailbox<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailbox2
      {
          [[nodiscard]] auto LinkedMailboxId() const;
          [[nodiscard]] auto NetworkAccountId() const;
          [[nodiscard]] auto NetworkId() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailbox2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailbox2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailbox3
      {
          auto ResolveRecipientsAsync(param::async_iterable<hstring> const& recipients) const;
          auto ValidateCertificatesAsync(param::async_iterable<Windows::Security::Cryptography::Certificates::Certificate> const& certificates) const;
          auto TryEmptyFolderAsync(param::hstring const& folderId) const;
          auto TryCreateFolderAsync(param::hstring const& parentFolderId, param::hstring const& name) const;
          auto TryDeleteFolderAsync(param::hstring const& folderId) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailbox3>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailbox3<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailbox4
      {
          auto RegisterSyncManagerAsync() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailbox4>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailbox4<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailbox5
      {
          auto GetChangeTracker(param::hstring const& identity) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailbox5>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailbox5<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxAction
      {
          [[nodiscard]] auto Kind() const;
          [[nodiscard]] auto ChangeNumber() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxAction>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxAction<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxAutoReply
      {
          [[nodiscard]] auto IsEnabled() const;
          auto IsEnabled(bool value) const;
          [[nodiscard]] auto Response() const;
          auto Response(param::hstring const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxAutoReply>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxAutoReply<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxAutoReplySettings
      {
          [[nodiscard]] auto IsEnabled() const;
          auto IsEnabled(bool value) const;
          [[nodiscard]] auto ResponseKind() const;
          auto ResponseKind(Windows::ApplicationModel::Email::EmailMailboxAutoReplyMessageResponseKind const& value) const;
          [[nodiscard]] auto StartTime() const;
          auto StartTime(Windows::Foundation::IReference<Windows::Foundation::DateTime> const& value) const;
          [[nodiscard]] auto EndTime() const;
          auto EndTime(Windows::Foundation::IReference<Windows::Foundation::DateTime> const& value) const;
          [[nodiscard]] auto InternalReply() const;
          [[nodiscard]] auto KnownExternalReply() const;
          [[nodiscard]] auto UnknownExternalReply() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxAutoReplySettings>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxAutoReplySettings<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxCapabilities
      {
          [[nodiscard]] auto CanForwardMeetings() const;
          [[nodiscard]] auto CanGetAndSetExternalAutoReplies() const;
          [[nodiscard]] auto CanGetAndSetInternalAutoReplies() const;
          [[nodiscard]] auto CanUpdateMeetingResponses() const;
          [[nodiscard]] auto CanServerSearchFolders() const;
          [[nodiscard]] auto CanServerSearchMailbox() const;
          [[nodiscard]] auto CanProposeNewTimeForMeetings() const;
          [[nodiscard]] auto CanSmartSend() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxCapabilities>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxCapabilities<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxCapabilities2
      {
          [[nodiscard]] auto CanResolveRecipients() const;
          [[nodiscard]] auto CanValidateCertificates() const;
          [[nodiscard]] auto CanEmptyFolder() const;
          [[nodiscard]] auto CanCreateFolder() const;
          [[nodiscard]] auto CanDeleteFolder() const;
          [[nodiscard]] auto CanMoveFolder() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxCapabilities2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxCapabilities2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxCapabilities3
      {
          auto CanForwardMeetings(bool value) const;
          auto CanGetAndSetExternalAutoReplies(bool value) const;
          auto CanGetAndSetInternalAutoReplies(bool value) const;
          auto CanUpdateMeetingResponses(bool value) const;
          auto CanServerSearchFolders(bool value) const;
          auto CanServerSearchMailbox(bool value) const;
          auto CanProposeNewTimeForMeetings(bool value) const;
          auto CanSmartSend(bool value) const;
          auto CanResolveRecipients(bool value) const;
          auto CanValidateCertificates(bool value) const;
          auto CanEmptyFolder(bool value) const;
          auto CanCreateFolder(bool value) const;
          auto CanDeleteFolder(bool value) const;
          auto CanMoveFolder(bool value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxCapabilities3>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxCapabilities3<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxChange
      {
          [[nodiscard]] auto ChangeType() const;
          [[nodiscard]] auto MailboxActions() const;
          [[nodiscard]] auto Message() const;
          [[nodiscard]] auto Folder() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxChange>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxChange<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxChangeReader
      {
          auto AcceptChanges() const;
          auto AcceptChangesThrough(Windows::ApplicationModel::Email::EmailMailboxChange const& lastChangeToAcknowledge) const;
          auto ReadBatchAsync() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxChangeReader>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxChangeReader<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxChangeTracker
      {
          [[nodiscard]] auto IsTracking() const;
          auto Enable() const;
          auto GetChangeReader() const;
          auto Reset() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxChangeTracker>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxChangeTracker<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxChangedDeferral
      {
          auto Complete() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxChangedDeferral>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxChangedDeferral<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxChangedEventArgs
      {
          auto GetDeferral() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxChangedEventArgs>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxChangedEventArgs<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxCreateFolderResult
      {
          [[nodiscard]] auto Status() const;
          [[nodiscard]] auto Folder() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxCreateFolderResult>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxCreateFolderResult<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxPolicies
      {
          [[nodiscard]] auto AllowedSmimeEncryptionAlgorithmNegotiation() const;
          [[nodiscard]] auto AllowSmimeSoftCertificates() const;
          [[nodiscard]] auto RequiredSmimeEncryptionAlgorithm() const;
          [[nodiscard]] auto RequiredSmimeSigningAlgorithm() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxPolicies>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxPolicies<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxPolicies2
      {
          [[nodiscard]] auto MustEncryptSmimeMessages() const;
          [[nodiscard]] auto MustSignSmimeMessages() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxPolicies2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxPolicies2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxPolicies3
      {
          auto AllowedSmimeEncryptionAlgorithmNegotiation(Windows::ApplicationModel::Email::EmailMailboxAllowedSmimeEncryptionAlgorithmNegotiation const& value) const;
          auto AllowSmimeSoftCertificates(bool value) const;
          auto RequiredSmimeEncryptionAlgorithm(Windows::Foundation::IReference<Windows::ApplicationModel::Email::EmailMailboxSmimeEncryptionAlgorithm> const& value) const;
          auto RequiredSmimeSigningAlgorithm(Windows::Foundation::IReference<Windows::ApplicationModel::Email::EmailMailboxSmimeSigningAlgorithm> const& value) const;
          auto MustEncryptSmimeMessages(bool value) const;
          auto MustSignSmimeMessages(bool value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxPolicies3>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxPolicies3<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxSyncManager
      {
          [[nodiscard]] auto Status() const;
          [[nodiscard]] auto LastSuccessfulSyncTime() const;
          [[nodiscard]] auto LastAttemptedSyncTime() const;
          auto SyncAsync() const;
          auto SyncStatusChanged(Windows::Foundation::TypedEventHandler<Windows::ApplicationModel::Email::EmailMailboxSyncManager, Windows::Foundation::IInspectable> const& handler) const;
          using SyncStatusChanged_revoker = impl::event_revoker<Windows::ApplicationModel::Email::IEmailMailboxSyncManager, &impl::abi_t<Windows::ApplicationModel::Email::IEmailMailboxSyncManager>::remove_SyncStatusChanged>;
          SyncStatusChanged_revoker SyncStatusChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::ApplicationModel::Email::EmailMailboxSyncManager, Windows::Foundation::IInspectable> const& handler) const;
          auto SyncStatusChanged(winrt::event_token const& token) const noexcept;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxSyncManager>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxSyncManager<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMailboxSyncManager2
      {
          auto Status(Windows::ApplicationModel::Email::EmailMailboxSyncStatus const& value) const;
          auto LastSuccessfulSyncTime(Windows::Foundation::DateTime const& value) const;
          auto LastAttemptedSyncTime(Windows::Foundation::DateTime const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMailboxSyncManager2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMailboxSyncManager2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailManagerForUser
      {
          auto ShowComposeNewEmailAsync(Windows::ApplicationModel::Email::EmailMessage const& message) const;
          auto RequestStoreAsync(Windows::ApplicationModel::Email::EmailStoreAccessType const& accessType) const;
          [[nodiscard]] auto User() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailManagerForUser>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailManagerForUser<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailManagerStatics
      {
          auto ShowComposeNewEmailAsync(Windows::ApplicationModel::Email::EmailMessage const& message) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailManagerStatics>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailManagerStatics<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailManagerStatics2
      {
          auto RequestStoreAsync(Windows::ApplicationModel::Email::EmailStoreAccessType const& accessType) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailManagerStatics2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailManagerStatics2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailManagerStatics3
      {
          auto GetForUser(Windows::System::User const& user) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailManagerStatics3>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailManagerStatics3<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMeetingInfo
      {
          [[nodiscard]] auto AllowNewTimeProposal() const;
          auto AllowNewTimeProposal(bool value) const;
          [[nodiscard]] auto AppointmentRoamingId() const;
          auto AppointmentRoamingId(param::hstring const& value) const;
          [[nodiscard]] auto AppointmentOriginalStartTime() const;
          auto AppointmentOriginalStartTime(Windows::Foundation::IReference<Windows::Foundation::DateTime> const& value) const;
          [[nodiscard]] auto Duration() const;
          auto Duration(Windows::Foundation::TimeSpan const& value) const;
          [[nodiscard]] auto IsAllDay() const;
          auto IsAllDay(bool value) const;
          [[nodiscard]] auto IsResponseRequested() const;
          auto IsResponseRequested(bool value) const;
          [[nodiscard]] auto Location() const;
          auto Location(param::hstring const& value) const;
          [[nodiscard]] auto ProposedStartTime() const;
          auto ProposedStartTime(Windows::Foundation::IReference<Windows::Foundation::DateTime> const& proposedStartTime) const;
          [[nodiscard]] auto ProposedDuration() const;
          auto ProposedDuration(Windows::Foundation::IReference<Windows::Foundation::TimeSpan> const& duration) const;
          [[nodiscard]] auto RecurrenceStartTime() const;
          auto RecurrenceStartTime(Windows::Foundation::IReference<Windows::Foundation::DateTime> const& value) const;
          [[nodiscard]] auto Recurrence() const;
          auto Recurrence(Windows::ApplicationModel::Appointments::AppointmentRecurrence const& value) const;
          [[nodiscard]] auto RemoteChangeNumber() const;
          auto RemoteChangeNumber(uint64_t value) const;
          [[nodiscard]] auto StartTime() const;
          auto StartTime(Windows::Foundation::DateTime const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMeetingInfo>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMeetingInfo<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMeetingInfo2
      {
          [[nodiscard]] auto IsReportedOutOfDateByServer() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMeetingInfo2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMeetingInfo2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMessage
      {
          [[nodiscard]] auto Subject() const;
          auto Subject(param::hstring const& value) const;
          [[nodiscard]] auto Body() const;
          auto Body(param::hstring const& value) const;
          [[nodiscard]] auto To() const;
          [[nodiscard]] auto CC() const;
          [[nodiscard]] auto Bcc() const;
          [[nodiscard]] auto Attachments() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMessage>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMessage<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMessage2
      {
          [[nodiscard]] auto Id() const;
          [[nodiscard]] auto RemoteId() const;
          auto RemoteId(param::hstring const& value) const;
          [[nodiscard]] auto MailboxId() const;
          [[nodiscard]] auto ConversationId() const;
          [[nodiscard]] auto FolderId() const;
          [[nodiscard]] auto AllowInternetImages() const;
          auto AllowInternetImages(bool value) const;
          [[nodiscard]] auto ChangeNumber() const;
          [[nodiscard]] auto DownloadState() const;
          auto DownloadState(Windows::ApplicationModel::Email::EmailMessageDownloadState const& value) const;
          [[nodiscard]] auto EstimatedDownloadSizeInBytes() const;
          auto EstimatedDownloadSizeInBytes(uint32_t value) const;
          [[nodiscard]] auto FlagState() const;
          auto FlagState(Windows::ApplicationModel::Email::EmailFlagState const& value) const;
          [[nodiscard]] auto HasPartialBodies() const;
          [[nodiscard]] auto Importance() const;
          auto Importance(Windows::ApplicationModel::Email::EmailImportance const& value) const;
          [[nodiscard]] auto InResponseToMessageId() const;
          [[nodiscard]] auto IrmInfo() const;
          auto IrmInfo(Windows::ApplicationModel::Email::EmailIrmInfo const& value) const;
          [[nodiscard]] auto IsDraftMessage() const;
          [[nodiscard]] auto IsRead() const;
          auto IsRead(bool value) const;
          [[nodiscard]] auto IsSeen() const;
          auto IsSeen(bool value) const;
          [[nodiscard]] auto IsServerSearchMessage() const;
          [[nodiscard]] auto IsSmartSendable() const;
          [[nodiscard]] auto MessageClass() const;
          auto MessageClass(param::hstring const& value) const;
          [[nodiscard]] auto NormalizedSubject() const;
          [[nodiscard]] auto OriginalCodePage() const;
          auto OriginalCodePage(int32_t value) const;
          [[nodiscard]] auto Preview() const;
          auto Preview(param::hstring const& value) const;
          [[nodiscard]] auto LastResponseKind() const;
          auto LastResponseKind(Windows::ApplicationModel::Email::EmailMessageResponseKind const& value) const;
          [[nodiscard]] auto Sender() const;
          auto Sender(Windows::ApplicationModel::Email::EmailRecipient const& value) const;
          [[nodiscard]] auto SentTime() const;
          auto SentTime(Windows::Foundation::IReference<Windows::Foundation::DateTime> const& value) const;
          [[nodiscard]] auto MeetingInfo() const;
          auto MeetingInfo(Windows::ApplicationModel::Email::EmailMeetingInfo const& value) const;
          auto GetBodyStream(Windows::ApplicationModel::Email::EmailMessageBodyKind const& type) const;
          auto SetBodyStream(Windows::ApplicationModel::Email::EmailMessageBodyKind const& type, Windows::Storage::Streams::IRandomAccessStreamReference const& stream) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMessage2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMessage2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMessage3
      {
          [[nodiscard]] auto SmimeData() const;
          auto SmimeData(Windows::Storage::Streams::IRandomAccessStreamReference const& value) const;
          [[nodiscard]] auto SmimeKind() const;
          auto SmimeKind(Windows::ApplicationModel::Email::EmailMessageSmimeKind const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMessage3>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMessage3<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMessage4
      {
          [[nodiscard]] auto ReplyTo() const;
          [[nodiscard]] auto SentRepresenting() const;
          auto SentRepresenting(Windows::ApplicationModel::Email::EmailRecipient const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMessage4>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMessage4<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMessageBatch
      {
          [[nodiscard]] auto Messages() const;
          [[nodiscard]] auto Status() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMessageBatch>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMessageBatch<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailMessageReader
      {
          auto ReadBatchAsync() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailMessageReader>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailMessageReader<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailQueryOptions
      {
          [[nodiscard]] auto TextSearch() const;
          [[nodiscard]] auto SortDirection() const;
          auto SortDirection(Windows::ApplicationModel::Email::EmailQuerySortDirection const& value) const;
          [[nodiscard]] auto SortProperty() const;
          auto SortProperty(Windows::ApplicationModel::Email::EmailQuerySortProperty const& value) const;
          [[nodiscard]] auto Kind() const;
          auto Kind(Windows::ApplicationModel::Email::EmailQueryKind const& value) const;
          [[nodiscard]] auto FolderIds() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailQueryOptions>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailQueryOptions<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailQueryOptionsFactory
      {
          auto CreateWithText(param::hstring const& text) const;
          auto CreateWithTextAndFields(param::hstring const& text, Windows::ApplicationModel::Email::EmailQuerySearchFields const& fields) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailQueryOptionsFactory>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailQueryOptionsFactory<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailQueryTextSearch
      {
          [[nodiscard]] auto Fields() const;
          auto Fields(Windows::ApplicationModel::Email::EmailQuerySearchFields const& value) const;
          [[nodiscard]] auto SearchScope() const;
          auto SearchScope(Windows::ApplicationModel::Email::EmailQuerySearchScope const& value) const;
          [[nodiscard]] auto Text() const;
          auto Text(param::hstring const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailQueryTextSearch>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailQueryTextSearch<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailRecipient
      {
          [[nodiscard]] auto Name() const;
          auto Name(param::hstring const& value) const;
          [[nodiscard]] auto Address() const;
          auto Address(param::hstring const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailRecipient>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailRecipient<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailRecipientFactory
      {
          auto Create(param::hstring const& address) const;
          auto CreateWithName(param::hstring const& address, param::hstring const& name) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailRecipientFactory>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailRecipientFactory<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailRecipientResolutionResult
      {
          [[nodiscard]] auto Status() const;
          [[nodiscard]] auto PublicKeys() const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailRecipientResolutionResult<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailRecipientResolutionResult2
      {
          auto Status(Windows::ApplicationModel::Email::EmailRecipientResolutionStatus const& value) const;
          auto SetPublicKeys(param::iterable<Windows::Security::Cryptography::Certificates::Certificate> const& value) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailRecipientResolutionResult2>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailRecipientResolutionResult2<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailStore
      {
          auto FindMailboxesAsync() const;
          auto GetConversationReader() const;
          auto GetConversationReader(Windows::ApplicationModel::Email::EmailQueryOptions const& options) const;
          auto GetMessageReader() const;
          auto GetMessageReader(Windows::ApplicationModel::Email::EmailQueryOptions const& options) const;
          auto GetMailboxAsync(param::hstring const& id) const;
          auto GetConversationAsync(param::hstring const& id) const;
          auto GetFolderAsync(param::hstring const& id) const;
          auto GetMessageAsync(param::hstring const& id) const;
          auto CreateMailboxAsync(param::hstring const& accountName, param::hstring const& accountAddress) const;
          auto CreateMailboxAsync(param::hstring const& accountName, param::hstring const& accountAddress, param::hstring const& userDataAccountId) const;
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailStore>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailStore<D>;
      };
      template <typename D>
      struct consume_Windows_ApplicationModel_Email_IEmailStoreNotificationTriggerDetails
      {
      };
      template <> struct consume<Windows::ApplicationModel::Email::IEmailStoreNotificationTriggerDetails>
      {
          template <typename D> using type = consume_Windows_ApplicationModel_Email_IEmailStoreNotificationTriggerDetails<D>;
      };
  }
  #endif
  