text: // WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.220131.2
  
  #pragma once
  #ifndef WINRT_Windows_Devices_Sms_0_H
  #define WINRT_Windows_Devices_Sms_0_H
  WINRT_EXPORT namespace winrt::Windows::Foundation
  {
      struct EventRegistrationToken;
      template <typename TResult> struct __declspec(empty_bases) IAsyncOperation;
      template <typename T> struct __declspec(empty_bases) IReference;
      template <typename TSender, typename TResult> struct __declspec(empty_bases) TypedEventHandler;
  }
  WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
  {
      template <typename K, typename V> struct __declspec(empty_bases) IMap;
      template <typename T> struct __declspec(empty_bases) IVectorView;
      template <typename T> struct __declspec(empty_bases) IVector;
  }
  WINRT_EXPORT namespace winrt::Windows::Storage::Streams
  {
      struct IBuffer;
  }
  WINRT_EXPORT namespace winrt::Windows::Devices::Sms
  {
      enum class CellularClass : int32_t
      {
          None = 0,
          Gsm = 1,
          Cdma = 2,
      };
      enum class SmsBroadcastType : int32_t
      {
          Other = 0,
          CmasPresidential = 1,
          CmasExtreme = 2,
          CmasSevere = 3,
          CmasAmber = 4,
          CmasTest = 5,
          EUAlert1 = 6,
          EUAlert2 = 7,
          EUAlert3 = 8,
          EUAlertAmber = 9,
          EUAlertInfo = 10,
          EtwsEarthquake = 11,
          EtwsTsunami = 12,
          EtwsTsunamiAndEarthquake = 13,
          LatAlertLocal = 14,
      };
      enum class SmsDataFormat : int32_t
      {
          Unknown = 0,
          CdmaSubmit = 1,
          GsmSubmit = 2,
          CdmaDeliver = 3,
          GsmDeliver = 4,
      };
      enum class SmsDeviceStatus : int32_t
      {
          Off = 0,
          Ready = 1,
          SimNotInserted = 2,
          BadSim = 3,
          DeviceFailure = 4,
          SubscriptionNotActivated = 5,
          DeviceLocked = 6,
          DeviceBlocked = 7,
      };
      enum class SmsEncoding : int32_t
      {
          Unknown = 0,
          Optimal = 1,
          SevenBitAscii = 2,
          Unicode = 3,
          GsmSevenBit = 4,
          EightBit = 5,
          Latin = 6,
          Korean = 7,
          IA5 = 8,
          ShiftJis = 9,
          LatinHebrew = 10,
      };
      enum class SmsFilterActionType : int32_t
      {
          AcceptImmediately = 0,
          Drop = 1,
          Peek = 2,
          Accept = 3,
      };
      enum class SmsGeographicalScope : int32_t
      {
          None = 0,
          CellWithImmediateDisplay = 1,
          LocationArea = 2,
          Plmn = 3,
          Cell = 4,
      };
      enum class SmsMessageClass : int32_t
      {
          None = 0,
          Class0 = 1,
          Class1 = 2,
          Class2 = 3,
          Class3 = 4,
      };
      enum class SmsMessageType : int32_t
      {
          Binary = 0,
          Text = 1,
          Wap = 2,
          App = 3,
          Broadcast = 4,
          Voicemail = 5,
          Status = 6,
      };
      enum class SmsModemErrorCode : int32_t
      {
          Other = 0,
          MessagingNetworkError = 1,
          SmsOperationNotSupportedByDevice = 2,
          SmsServiceNotSupportedByNetwork = 3,
          DeviceFailure = 4,
          MessageNotEncodedProperly = 5,
          MessageTooLarge = 6,
          DeviceNotReady = 7,
          NetworkNotReady = 8,
          InvalidSmscAddress = 9,
          NetworkFailure = 10,
          FixedDialingNumberRestricted = 11,
      };
      struct ISmsAppMessage;
      struct ISmsBroadcastMessage;
      struct ISmsDevice2;
      struct ISmsDevice2Statics;
      struct ISmsFilterRule;
      struct ISmsFilterRuleFactory;
      struct ISmsFilterRules;
      struct ISmsFilterRulesFactory;
      struct ISmsMessageBase;
      struct ISmsMessageReceivedTriggerDetails;
      struct ISmsMessageRegistration;
      struct ISmsMessageRegistrationStatics;
      struct ISmsSendMessageResult;
      struct ISmsStatusMessage;
      struct ISmsTextMessage2;
      struct ISmsVoicemailMessage;
      struct ISmsWapMessage;
      struct SmsAppMessage;
      struct SmsBroadcastMessage;
      struct SmsDevice2;
      struct SmsFilterRule;
      struct SmsFilterRules;
      struct SmsMessageReceivedTriggerDetails;
      struct SmsMessageRegistration;
      struct SmsSendMessageResult;
      struct SmsStatusMessage;
      struct SmsTextMessage2;
      struct SmsVoicemailMessage;
      struct SmsWapMessage;
      struct SmsEncodedLength;
  }
  namespace winrt::impl
  {
      template <> struct category<winrt::Windows::Devices::Sms::ISmsAppMessage>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsBroadcastMessage>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsDevice2>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsDevice2Statics>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsFilterRule>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsFilterRuleFactory>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsFilterRules>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsFilterRulesFactory>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsMessageBase>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsMessageReceivedTriggerDetails>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsMessageRegistration>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsMessageRegistrationStatics>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsSendMessageResult>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsStatusMessage>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsTextMessage2>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsVoicemailMessage>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::ISmsWapMessage>{ using type = interface_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsAppMessage>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsBroadcastMessage>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsDevice2>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsFilterRule>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsFilterRules>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsMessageReceivedTriggerDetails>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsMessageRegistration>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsSendMessageResult>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsStatusMessage>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsTextMessage2>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsVoicemailMessage>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsWapMessage>{ using type = class_category; };
      template <> struct category<winrt::Windows::Devices::Sms::CellularClass>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsBroadcastType>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsDataFormat>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsDeviceStatus>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsEncoding>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsFilterActionType>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsGeographicalScope>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsMessageClass>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsMessageType>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsModemErrorCode>{ using type = enum_category; };
      template <> struct category<winrt::Windows::Devices::Sms::SmsEncodedLength>{ using type = struct_category<uint32_t, uint32_t, uint32_t, uint32_t, uint32_t>; };
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsAppMessage> = L"Windows.Devices.Sms.SmsAppMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsBroadcastMessage> = L"Windows.Devices.Sms.SmsBroadcastMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsDevice2> = L"Windows.Devices.Sms.SmsDevice2";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsFilterRule> = L"Windows.Devices.Sms.SmsFilterRule";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsFilterRules> = L"Windows.Devices.Sms.SmsFilterRules";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsMessageReceivedTriggerDetails> = L"Windows.Devices.Sms.SmsMessageReceivedTriggerDetails";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsMessageRegistration> = L"Windows.Devices.Sms.SmsMessageRegistration";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsSendMessageResult> = L"Windows.Devices.Sms.SmsSendMessageResult";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsStatusMessage> = L"Windows.Devices.Sms.SmsStatusMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsTextMessage2> = L"Windows.Devices.Sms.SmsTextMessage2";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsVoicemailMessage> = L"Windows.Devices.Sms.SmsVoicemailMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsWapMessage> = L"Windows.Devices.Sms.SmsWapMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::CellularClass> = L"Windows.Devices.Sms.CellularClass";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsBroadcastType> = L"Windows.Devices.Sms.SmsBroadcastType";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsDataFormat> = L"Windows.Devices.Sms.SmsDataFormat";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsDeviceStatus> = L"Windows.Devices.Sms.SmsDeviceStatus";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsEncoding> = L"Windows.Devices.Sms.SmsEncoding";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsFilterActionType> = L"Windows.Devices.Sms.SmsFilterActionType";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsGeographicalScope> = L"Windows.Devices.Sms.SmsGeographicalScope";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsMessageClass> = L"Windows.Devices.Sms.SmsMessageClass";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsMessageType> = L"Windows.Devices.Sms.SmsMessageType";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsModemErrorCode> = L"Windows.Devices.Sms.SmsModemErrorCode";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::SmsEncodedLength> = L"Windows.Devices.Sms.SmsEncodedLength";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsAppMessage> = L"Windows.Devices.Sms.ISmsAppMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsBroadcastMessage> = L"Windows.Devices.Sms.ISmsBroadcastMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsDevice2> = L"Windows.Devices.Sms.ISmsDevice2";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsDevice2Statics> = L"Windows.Devices.Sms.ISmsDevice2Statics";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsFilterRule> = L"Windows.Devices.Sms.ISmsFilterRule";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsFilterRuleFactory> = L"Windows.Devices.Sms.ISmsFilterRuleFactory";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsFilterRules> = L"Windows.Devices.Sms.ISmsFilterRules";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsFilterRulesFactory> = L"Windows.Devices.Sms.ISmsFilterRulesFactory";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsMessageBase> = L"Windows.Devices.Sms.ISmsMessageBase";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsMessageReceivedTriggerDetails> = L"Windows.Devices.Sms.ISmsMessageReceivedTriggerDetails";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsMessageRegistration> = L"Windows.Devices.Sms.ISmsMessageRegistration";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsMessageRegistrationStatics> = L"Windows.Devices.Sms.ISmsMessageRegistrationStatics";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsSendMessageResult> = L"Windows.Devices.Sms.ISmsSendMessageResult";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsStatusMessage> = L"Windows.Devices.Sms.ISmsStatusMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsTextMessage2> = L"Windows.Devices.Sms.ISmsTextMessage2";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsVoicemailMessage> = L"Windows.Devices.Sms.ISmsVoicemailMessage";
      template <> inline constexpr auto& name_v<winrt::Windows::Devices::Sms::ISmsWapMessage> = L"Windows.Devices.Sms.ISmsWapMessage";
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsAppMessage>{ 0xE8BB8494,0xD3A0,0x4A0A,{ 0x86,0xD7,0x29,0x10,0x33,0xA8,0xCF,0x54 } }; // E8BB8494-D3A0-4A0A-86D7-291033A8CF54
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsBroadcastMessage>{ 0x75AEBBF1,0xE4B7,0x4874,{ 0xA0,0x9C,0x29,0x56,0xE5,0x92,0xF9,0x57 } }; // 75AEBBF1-E4B7-4874-A09C-2956E592F957
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsDevice2>{ 0xBD8A5C13,0xE522,0x46CB,{ 0xB8,0xD5,0x9E,0xAD,0x30,0xFB,0x6C,0x47 } }; // BD8A5C13-E522-46CB-B8D5-9EAD30FB6C47
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsDevice2Statics>{ 0x65C78325,0x1031,0x491E,{ 0x8F,0xB6,0xEF,0x99,0x91,0xAF,0xE3,0x63 } }; // 65C78325-1031-491E-8FB6-EF9991AFE363
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsFilterRule>{ 0x40E32FAE,0xB049,0x4FBC,{ 0xAF,0xE9,0xE2,0xA6,0x10,0xEF,0xF5,0x5C } }; // 40E32FAE-B049-4FBC-AFE9-E2A610EFF55C
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsFilterRuleFactory>{ 0x00C36508,0x6296,0x4F29,{ 0x9A,0xAD,0x89,0x20,0xCE,0xBA,0x3C,0xE8 } }; // 00C36508-6296-4F29-9AAD-8920CEBA3CE8
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsFilterRules>{ 0x4E47EAFB,0x79CD,0x4881,{ 0x98,0x94,0x55,0xA4,0x13,0x5B,0x23,0xFA } }; // 4E47EAFB-79CD-4881-9894-55A4135B23FA
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsFilterRulesFactory>{ 0xA09924ED,0x6E2E,0x4530,{ 0x9F,0xDE,0x46,0x5D,0x02,0xEE,0xD0,0x0E } }; // A09924ED-6E2E-4530-9FDE-465D02EED00E
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsMessageBase>{ 0x2CF0FE30,0xFE50,0x4FC6,{ 0xAA,0x88,0x4C,0xCF,0xE2,0x7A,0x29,0xEA } }; // 2CF0FE30-FE50-4FC6-AA88-4CCFE27A29EA
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsMessageReceivedTriggerDetails>{ 0x2BCFCBD4,0x2657,0x4128,{ 0xAD,0x5F,0xE3,0x87,0x71,0x32,0xBD,0xB1 } }; // 2BCFCBD4-2657-4128-AD5F-E3877132BDB1
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsMessageRegistration>{ 0x1720503E,0xF34F,0x446B,{ 0x83,0xB3,0x0F,0xF1,0x99,0x23,0xB4,0x09 } }; // 1720503E-F34F-446B-83B3-0FF19923B409
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsMessageRegistrationStatics>{ 0x63A05464,0x2898,0x4778,{ 0xA0,0x3C,0x6F,0x99,0x49,0x07,0xD6,0x3A } }; // 63A05464-2898-4778-A03C-6F994907D63A
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsSendMessageResult>{ 0xDB139AF2,0x78C9,0x4FEB,{ 0x96,0x22,0x45,0x23,0x28,0x08,0x8D,0x62 } }; // DB139AF2-78C9-4FEB-9622-452328088D62
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsStatusMessage>{ 0xE6D28342,0xB70B,0x4677,{ 0x93,0x79,0xC9,0x78,0x3F,0xDF,0xF8,0xF4 } }; // E6D28342-B70B-4677-9379-C9783FDFF8F4
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsTextMessage2>{ 0x22A0D893,0x4555,0x4755,{ 0xB5,0xA1,0xE7,0xFD,0x84,0x95,0x5F,0x8D } }; // 22A0D893-4555-4755-B5A1-E7FD84955F8D
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsVoicemailMessage>{ 0x271AA0A6,0x95B1,0x44FF,{ 0xBC,0xB8,0xB8,0xFD,0xD7,0xE0,0x8B,0xC3 } }; // 271AA0A6-95B1-44FF-BCB8-B8FDD7E08BC3
      template <> inline constexpr guid guid_v<winrt::Windows::Devices::Sms::ISmsWapMessage>{ 0xCD937743,0x7A55,0x4D3B,{ 0x90,0x21,0xF2,0x2E,0x02,0x2D,0x09,0xC5 } }; // CD937743-7A55-4D3B-9021-F22E022D09C5
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsAppMessage>{ using type = winrt::Windows::Devices::Sms::ISmsAppMessage; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsBroadcastMessage>{ using type = winrt::Windows::Devices::Sms::ISmsBroadcastMessage; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsDevice2>{ using type = winrt::Windows::Devices::Sms::ISmsDevice2; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsFilterRule>{ using type = winrt::Windows::Devices::Sms::ISmsFilterRule; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsFilterRules>{ using type = winrt::Windows::Devices::Sms::ISmsFilterRules; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsMessageReceivedTriggerDetails>{ using type = winrt::Windows::Devices::Sms::ISmsMessageReceivedTriggerDetails; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsMessageRegistration>{ using type = winrt::Windows::Devices::Sms::ISmsMessageRegistration; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsSendMessageResult>{ using type = winrt::Windows::Devices::Sms::ISmsSendMessageResult; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsStatusMessage>{ using type = winrt::Windows::Devices::Sms::ISmsStatusMessage; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsTextMessage2>{ using type = winrt::Windows::Devices::Sms::ISmsTextMessage2; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsVoicemailMessage>{ using type = winrt::Windows::Devices::Sms::ISmsVoicemailMessage; };
      template <> struct default_interface<winrt::Windows::Devices::Sms::SmsWapMessage>{ using type = winrt::Windows::Devices::Sms::ISmsWapMessage; };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsAppMessage>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Timestamp(int64_t*) noexcept = 0;
              virtual int32_t __stdcall get_To(void**) noexcept = 0;
              virtual int32_t __stdcall put_To(void*) noexcept = 0;
              virtual int32_t __stdcall get_From(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_CallbackNumber(void**) noexcept = 0;
              virtual int32_t __stdcall put_CallbackNumber(void*) noexcept = 0;
              virtual int32_t __stdcall get_IsDeliveryNotificationEnabled(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsDeliveryNotificationEnabled(bool) noexcept = 0;
              virtual int32_t __stdcall get_RetryAttemptCount(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_RetryAttemptCount(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_Encoding(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_Encoding(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_PortNumber(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_PortNumber(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_TeleserviceId(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_TeleserviceId(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_ProtocolId(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_ProtocolId(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_BinaryBody(void**) noexcept = 0;
              virtual int32_t __stdcall put_BinaryBody(void*) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsBroadcastMessage>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Timestamp(int64_t*) noexcept = 0;
              virtual int32_t __stdcall get_To(void**) noexcept = 0;
              virtual int32_t __stdcall get_Body(void**) noexcept = 0;
              virtual int32_t __stdcall get_Channel(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_GeographicalScope(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_MessageCode(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_UpdateNumber(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_BroadcastType(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_IsEmergencyAlert(bool*) noexcept = 0;
              virtual int32_t __stdcall get_IsUserPopupRequested(bool*) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsDevice2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_SmscAddress(void**) noexcept = 0;
              virtual int32_t __stdcall put_SmscAddress(void*) noexcept = 0;
              virtual int32_t __stdcall get_DeviceId(void**) noexcept = 0;
              virtual int32_t __stdcall get_ParentDeviceId(void**) noexcept = 0;
              virtual int32_t __stdcall get_AccountPhoneNumber(void**) noexcept = 0;
              virtual int32_t __stdcall get_CellularClass(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_DeviceStatus(int32_t*) noexcept = 0;
              virtual int32_t __stdcall CalculateLength(void*, struct struct_Windows_Devices_Sms_SmsEncodedLength*) noexcept = 0;
              virtual int32_t __stdcall SendMessageAndGetResultAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall add_DeviceStatusChanged(void*, winrt::event_token*) noexcept = 0;
              virtual int32_t __stdcall remove_DeviceStatusChanged(winrt::event_token) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsDevice2Statics>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall GetDeviceSelector(void**) noexcept = 0;
              virtual int32_t __stdcall FromId(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GetDefault(void**) noexcept = 0;
              virtual int32_t __stdcall FromParentId(void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsFilterRule>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_MessageType(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_ImsiPrefixes(void**) noexcept = 0;
              virtual int32_t __stdcall get_DeviceIds(void**) noexcept = 0;
              virtual int32_t __stdcall get_SenderNumbers(void**) noexcept = 0;
              virtual int32_t __stdcall get_TextMessagePrefixes(void**) noexcept = 0;
              virtual int32_t __stdcall get_PortNumbers(void**) noexcept = 0;
              virtual int32_t __stdcall get_CellularClass(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_CellularClass(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_ProtocolIds(void**) noexcept = 0;
              virtual int32_t __stdcall get_TeleserviceIds(void**) noexcept = 0;
              virtual int32_t __stdcall get_WapApplicationIds(void**) noexcept = 0;
              virtual int32_t __stdcall get_WapContentTypes(void**) noexcept = 0;
              virtual int32_t __stdcall get_BroadcastTypes(void**) noexcept = 0;
              virtual int32_t __stdcall get_BroadcastChannels(void**) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsFilterRuleFactory>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall CreateFilterRule(int32_t, void**) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsFilterRules>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_ActionType(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_Rules(void**) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsFilterRulesFactory>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall CreateFilterRules(int32_t, void**) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsMessageBase>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_MessageType(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_DeviceId(void**) noexcept = 0;
              virtual int32_t __stdcall get_CellularClass(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_MessageClass(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_SimIccId(void**) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsMessageReceivedTriggerDetails>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_MessageType(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_TextMessage(void**) noexcept = 0;
              virtual int32_t __stdcall get_WapMessage(void**) noexcept = 0;
              virtual int32_t __stdcall get_AppMessage(void**) noexcept = 0;
              virtual int32_t __stdcall get_BroadcastMessage(void**) noexcept = 0;
              virtual int32_t __stdcall get_VoicemailMessage(void**) noexcept = 0;
              virtual int32_t __stdcall get_StatusMessage(void**) noexcept = 0;
              virtual int32_t __stdcall Drop() noexcept = 0;
              virtual int32_t __stdcall Accept() noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsMessageRegistration>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Id(void**) noexcept = 0;
              virtual int32_t __stdcall Unregister() noexcept = 0;
              virtual int32_t __stdcall add_MessageReceived(void*, winrt::event_token*) noexcept = 0;
              virtual int32_t __stdcall remove_MessageReceived(winrt::event_token) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsMessageRegistrationStatics>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_AllRegistrations(void**) noexcept = 0;
              virtual int32_t __stdcall Register(void*, void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsSendMessageResult>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_IsSuccessful(bool*) noexcept = 0;
              virtual int32_t __stdcall get_MessageReferenceNumbers(void**) noexcept = 0;
              virtual int32_t __stdcall get_CellularClass(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_ModemErrorCode(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_IsErrorTransient(bool*) noexcept = 0;
              virtual int32_t __stdcall get_NetworkCauseCode(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_TransportFailureCause(int32_t*) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsStatusMessage>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_To(void**) noexcept = 0;
              virtual int32_t __stdcall get_From(void**) noexcept = 0;
              virtual int32_t __stdcall get_Body(void**) noexcept = 0;
              virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_MessageReferenceNumber(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_ServiceCenterTimestamp(int64_t*) noexcept = 0;
              virtual int32_t __stdcall get_DischargeTime(int64_t*) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsTextMessage2>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Timestamp(int64_t*) noexcept = 0;
              virtual int32_t __stdcall get_To(void**) noexcept = 0;
              virtual int32_t __stdcall put_To(void*) noexcept = 0;
              virtual int32_t __stdcall get_From(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_Encoding(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_Encoding(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_CallbackNumber(void**) noexcept = 0;
              virtual int32_t __stdcall put_CallbackNumber(void*) noexcept = 0;
              virtual int32_t __stdcall get_IsDeliveryNotificationEnabled(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsDeliveryNotificationEnabled(bool) noexcept = 0;
              virtual int32_t __stdcall get_RetryAttemptCount(int32_t*) noexcept = 0;
              virtual int32_t __stdcall put_RetryAttemptCount(int32_t) noexcept = 0;
              virtual int32_t __stdcall get_TeleserviceId(int32_t*) noexcept = 0;
              virtual int32_t __stdcall get_ProtocolId(int32_t*) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsVoicemailMessage>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Timestamp(int64_t*) noexcept = 0;
              virtual int32_t __stdcall get_To(void**) noexcept = 0;
              virtual int32_t __stdcall get_Body(void**) noexcept = 0;
              virtual int32_t __stdcall get_MessageCount(void**) noexcept = 0;
          };
      };
      template <> struct abi<winrt::Windows::Devices::Sms::ISmsWapMessage>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_Timestamp(int64_t*) noexcept = 0;
              virtual int32_t __stdcall get_To(void**) noexcept = 0;
              virtual int32_t __stdcall get_From(void**) noexcept = 0;
              virtual int32_t __stdcall get_ApplicationId(void**) noexcept = 0;
              virtual int32_t __stdcall get_ContentType(void**) noexcept = 0;
              virtual int32_t __stdcall get_BinaryBody(void**) noexcept = 0;
              virtual int32_t __stdcall get_Headers(void**) noexcept = 0;
          };
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsAppMessage
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) Timestamp() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) To() const;
          WINRT_IMPL_AUTO(void) To(param::hstring const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) From() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) Body() const;
          WINRT_IMPL_AUTO(void) Body(param::hstring const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) CallbackNumber() const;
          WINRT_IMPL_AUTO(void) CallbackNumber(param::hstring const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(bool) IsDeliveryNotificationEnabled() const;
          WINRT_IMPL_AUTO(void) IsDeliveryNotificationEnabled(bool value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) RetryAttemptCount() const;
          WINRT_IMPL_AUTO(void) RetryAttemptCount(int32_t value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsEncoding) Encoding() const;
          WINRT_IMPL_AUTO(void) Encoding(winrt::Windows::Devices::Sms::SmsEncoding const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) PortNumber() const;
          WINRT_IMPL_AUTO(void) PortNumber(int32_t value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) TeleserviceId() const;
          WINRT_IMPL_AUTO(void) TeleserviceId(int32_t value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) ProtocolId() const;
          WINRT_IMPL_AUTO(void) ProtocolId(int32_t value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Storage::Streams::IBuffer) BinaryBody() const;
          WINRT_IMPL_AUTO(void) BinaryBody(winrt::Windows::Storage::Streams::IBuffer const& value) const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsAppMessage>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsAppMessage<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsBroadcastMessage
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) Timestamp() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) To() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) Body() const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) Channel() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsGeographicalScope) GeographicalScope() const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) MessageCode() const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) UpdateNumber() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsBroadcastType) BroadcastType() const;
          [[nodiscard]] WINRT_IMPL_AUTO(bool) IsEmergencyAlert() const;
          [[nodiscard]] WINRT_IMPL_AUTO(bool) IsUserPopupRequested() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsBroadcastMessage>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsBroadcastMessage<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsDevice2
      {
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) SmscAddress() const;
          WINRT_IMPL_AUTO(void) SmscAddress(param::hstring const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) DeviceId() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) ParentDeviceId() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) AccountPhoneNumber() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::CellularClass) CellularClass() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsDeviceStatus) DeviceStatus() const;
          WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsEncodedLength) CalculateLength(winrt::Windows::Devices::Sms::ISmsMessageBase const& message) const;
          WINRT_IMPL_AUTO(winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Devices::Sms::SmsSendMessageResult>) SendMessageAndGetResultAsync(winrt::Windows::Devices::Sms::ISmsMessageBase const& message) const;
          WINRT_IMPL_AUTO(winrt::event_token) DeviceStatusChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Devices::Sms::SmsDevice2, winrt::Windows::Foundation::IInspectable> const& eventHandler) const;
          using DeviceStatusChanged_revoker = impl::event_revoker<winrt::Windows::Devices::Sms::ISmsDevice2, &impl::abi_t<winrt::Windows::Devices::Sms::ISmsDevice2>::remove_DeviceStatusChanged>;
          [[nodiscard]] DeviceStatusChanged_revoker DeviceStatusChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Devices::Sms::SmsDevice2, winrt::Windows::Foundation::IInspectable> const& eventHandler) const;
          WINRT_IMPL_AUTO(void) DeviceStatusChanged(winrt::event_token const& eventCookie) const noexcept;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsDevice2>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsDevice2<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsDevice2Statics
      {
          WINRT_IMPL_AUTO(hstring) GetDeviceSelector() const;
          WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsDevice2) FromId(param::hstring const& deviceId) const;
          WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsDevice2) GetDefault() const;
          WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsDevice2) FromParentId(param::hstring const& parentDeviceId) const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsDevice2Statics>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsDevice2Statics<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsFilterRule
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsMessageType) MessageType() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<hstring>) ImsiPrefixes() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<hstring>) DeviceIds() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<hstring>) SenderNumbers() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<hstring>) TextMessagePrefixes() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<int32_t>) PortNumbers() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::CellularClass) CellularClass() const;
          WINRT_IMPL_AUTO(void) CellularClass(winrt::Windows::Devices::Sms::CellularClass const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<int32_t>) ProtocolIds() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<int32_t>) TeleserviceIds() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<hstring>) WapApplicationIds() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<hstring>) WapContentTypes() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Devices::Sms::SmsBroadcastType>) BroadcastTypes() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<int32_t>) BroadcastChannels() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsFilterRule>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsFilterRule<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsFilterRuleFactory
      {
          WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsFilterRule) CreateFilterRule(winrt::Windows::Devices::Sms::SmsMessageType const& messageType) const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsFilterRuleFactory>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsFilterRuleFactory<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsFilterRules
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsFilterActionType) ActionType() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Devices::Sms::SmsFilterRule>) Rules() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsFilterRules>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsFilterRules<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsFilterRulesFactory
      {
          WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsFilterRules) CreateFilterRules(winrt::Windows::Devices::Sms::SmsFilterActionType const& actionType) const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsFilterRulesFactory>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsFilterRulesFactory<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsMessageBase
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsMessageType) MessageType() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) DeviceId() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::CellularClass) CellularClass() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsMessageClass) MessageClass() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) SimIccId() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsMessageBase>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsMessageBase<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsMessageReceivedTriggerDetails
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsMessageType) MessageType() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsTextMessage2) TextMessage() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsWapMessage) WapMessage() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsAppMessage) AppMessage() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsBroadcastMessage) BroadcastMessage() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsVoicemailMessage) VoicemailMessage() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsStatusMessage) StatusMessage() const;
          WINRT_IMPL_AUTO(void) Drop() const;
          WINRT_IMPL_AUTO(void) Accept() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsMessageReceivedTriggerDetails>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsMessageReceivedTriggerDetails<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsMessageRegistration
      {
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) Id() const;
          WINRT_IMPL_AUTO(void) Unregister() const;
          WINRT_IMPL_AUTO(winrt::event_token) MessageReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Devices::Sms::SmsMessageRegistration, winrt::Windows::Devices::Sms::SmsMessageReceivedTriggerDetails> const& eventHandler) const;
          using MessageReceived_revoker = impl::event_revoker<winrt::Windows::Devices::Sms::ISmsMessageRegistration, &impl::abi_t<winrt::Windows::Devices::Sms::ISmsMessageRegistration>::remove_MessageReceived>;
          [[nodiscard]] MessageReceived_revoker MessageReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Devices::Sms::SmsMessageRegistration, winrt::Windows::Devices::Sms::SmsMessageReceivedTriggerDetails> const& eventHandler) const;
          WINRT_IMPL_AUTO(void) MessageReceived(winrt::event_token const& eventCookie) const noexcept;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsMessageRegistration>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsMessageRegistration<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsMessageRegistrationStatics
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Devices::Sms::SmsMessageRegistration>) AllRegistrations() const;
          WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsMessageRegistration) Register(param::hstring const& id, winrt::Windows::Devices::Sms::SmsFilterRules const& filterRules) const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsMessageRegistrationStatics>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsMessageRegistrationStatics<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsSendMessageResult
      {
          [[nodiscard]] WINRT_IMPL_AUTO(bool) IsSuccessful() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<int32_t>) MessageReferenceNumbers() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::CellularClass) CellularClass() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsModemErrorCode) ModemErrorCode() const;
          [[nodiscard]] WINRT_IMPL_AUTO(bool) IsErrorTransient() const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) NetworkCauseCode() const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) TransportFailureCause() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsSendMessageResult>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsSendMessageResult<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsStatusMessage
      {
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) To() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) From() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) Body() const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) Status() const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) MessageReferenceNumber() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) ServiceCenterTimestamp() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) DischargeTime() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsStatusMessage>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsStatusMessage<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsTextMessage2
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) Timestamp() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) To() const;
          WINRT_IMPL_AUTO(void) To(param::hstring const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) From() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) Body() const;
          WINRT_IMPL_AUTO(void) Body(param::hstring const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Sms::SmsEncoding) Encoding() const;
          WINRT_IMPL_AUTO(void) Encoding(winrt::Windows::Devices::Sms::SmsEncoding const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) CallbackNumber() const;
          WINRT_IMPL_AUTO(void) CallbackNumber(param::hstring const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(bool) IsDeliveryNotificationEnabled() const;
          WINRT_IMPL_AUTO(void) IsDeliveryNotificationEnabled(bool value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) RetryAttemptCount() const;
          WINRT_IMPL_AUTO(void) RetryAttemptCount(int32_t value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) TeleserviceId() const;
          [[nodiscard]] WINRT_IMPL_AUTO(int32_t) ProtocolId() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsTextMessage2>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsTextMessage2<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsVoicemailMessage
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) Timestamp() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) To() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) Body() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::IReference<int32_t>) MessageCount() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsVoicemailMessage>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsVoicemailMessage<D>;
      };
      template <typename D>
      struct consume_Windows_Devices_Sms_ISmsWapMessage
      {
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) Timestamp() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) To() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) From() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) ApplicationId() const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) ContentType() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Storage::Streams::IBuffer) BinaryBody() const;
          [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IMap<hstring, hstring>) Headers() const;
      };
      template <> struct consume<winrt::Windows::Devices::Sms::ISmsWapMessage>
      {
          template <typename D> using type = consume_Windows_Devices_Sms_ISmsWapMessage<D>;
      };
      struct struct_Windows_Devices_Sms_SmsEncodedLength
      {
          uint32_t SegmentCount;
          uint32_t CharacterCountLastSegment;
          uint32_t CharactersPerSegment;
          uint32_t ByteCountLastSegment;
          uint32_t BytesPerSegment;
      };
      template <> struct abi<Windows::Devices::Sms::SmsEncodedLength>
      {
          using type = struct_Windows_Devices_Sms_SmsEncodedLength;
      };
  }
  #endif
  