text: // WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.210505.3
  
  #ifndef WINRT_Windows_Phone_Notification_Management_H
  #define WINRT_Windows_Phone_Notification_Management_H
  #include "winrt/base.h"
  static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.210505.3"), "Mismatched C++/WinRT headers.");
  #define CPPWINRT_VERSION "2.0.210505.3"
  #include "winrt/impl/Windows.ApplicationModel.Appointments.2.h"
  #include "winrt/impl/Windows.ApplicationModel.Email.2.h"
  #include "winrt/impl/Windows.Foundation.2.h"
  #include "winrt/impl/Windows.Foundation.Collections.2.h"
  #include "winrt/impl/Windows.Storage.Streams.2.h"
  #include "winrt/impl/Windows.Phone.Notification.Management.2.h"
  namespace winrt::impl
  {
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::RegisterAccessoryApp() const
      {
          void* triggerId{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->RegisterAccessoryApp(&triggerId));
          return hstring{ triggerId, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::GetNextTriggerDetails() const
      {
          void* pDetails{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->GetNextTriggerDetails(&pDetails));
          return winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails{ pDetails, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::ProcessTriggerDetails(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails const& pDetails) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->ProcessTriggerDetails(*(void**)(&pDetails)));
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::PhoneLineDetails>) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::PhoneLineDetails() const
      {
          void* ppvalue{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->get_PhoneLineDetails(&ppvalue));
          return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::PhoneLineDetails>{ ppvalue, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneLineDetails) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::GetPhoneLineDetails(winrt::guid const& phoneLine) const
      {
          void* ppdetails{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->GetPhoneLineDetails(impl::bind_in(phoneLine), &ppdetails));
          return winrt::Windows::Phone::Notification::Management::PhoneLineDetails{ ppdetails, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::AcceptPhoneCall(uint32_t phoneCallId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->AcceptPhoneCall(phoneCallId));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::AcceptPhoneCall(uint32_t phoneCallId, winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& endPoint) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->AcceptPhoneCallOnEndpoint(phoneCallId, static_cast<int32_t>(endPoint)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::AcceptPhoneCallWithVideo(uint32_t phoneCallId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->AcceptPhoneCallWithVideo(phoneCallId));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::AcceptPhoneCallWithVideo(uint32_t phoneCallId, winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& endPoint) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->AcceptPhoneCallWithVideoOnAudioEndpoint(phoneCallId, static_cast<int32_t>(endPoint)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::RejectPhoneCall(uint32_t phoneCallId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->RejectPhoneCall(phoneCallId));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::RejectPhoneCall(uint32_t phoneCallId, uint32_t textResponseID) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->RejectPhoneCallWithText(phoneCallId, textResponseID));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::MakePhoneCall(winrt::guid const& phoneLine, param::hstring const& phoneNumber) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->MakePhoneCall(impl::bind_in(phoneLine), *(void**)(&phoneNumber)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::MakePhoneCall(winrt::guid const& phoneLine, param::hstring const& phoneNumber, winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& endPoint) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->MakePhoneCallOnAudioEndpoint(impl::bind_in(phoneLine), *(void**)(&phoneNumber), static_cast<int32_t>(endPoint)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::MakePhoneCallWithVideo(winrt::guid const& phoneLine, param::hstring const& phoneNumber) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->MakePhoneCallWithVideo(impl::bind_in(phoneLine), *(void**)(&phoneNumber)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::MakePhoneCallWithVideo(winrt::guid const& phoneLine, param::hstring const& phoneNumber, winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& endPoint) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->MakePhoneCallWithVideoOnAudioEndpoint(impl::bind_in(phoneLine), *(void**)(&phoneNumber), static_cast<int32_t>(endPoint)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::SwapPhoneCalls(uint32_t phoneCallIdToHold, uint32_t phoneCallIdOnHold) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->SwapPhoneCalls(phoneCallIdToHold, phoneCallIdOnHold));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::HoldPhoneCall(uint32_t phoneCallId, bool holdCall) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->HoldPhoneCall(phoneCallId, holdCall));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::EndPhoneCall(uint32_t phoneCallId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->EndPhoneCall(phoneCallId));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::PhoneMute(bool value) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->put_PhoneMute(value));
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::PhoneMute() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->get_PhoneMute(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::PhoneCallAudioEndpoint(winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& value) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->put_PhoneCallAudioEndpoint(static_cast<int32_t>(value)));
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::PhoneCallAudioEndpoint() const
      {
          winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->get_PhoneCallAudioEndpoint(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::SnoozeAlarm(winrt::guid const& alarmId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->SnoozeAlarm(impl::bind_in(alarmId)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::SnoozeAlarm(winrt::guid const& alarmId, winrt::Windows::Foundation::TimeSpan const& timeSpan) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->SnoozeAlarmForSpecifiedTime(impl::bind_in(alarmId), impl::bind_in(timeSpan)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::DismissAlarm(winrt::guid const& alarmId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->DismissAlarm(impl::bind_in(alarmId)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::SnoozeReminder(winrt::guid const& reminderId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->SnoozeReminder(impl::bind_in(reminderId)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::SnoozeReminder(winrt::guid const& reminderId, winrt::Windows::Foundation::TimeSpan const& timeSpan) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->SnoozeReminderForSpecifiedTime(impl::bind_in(reminderId), impl::bind_in(timeSpan)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::DismissReminder(winrt::guid const& reminderId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->DismissReminder(impl::bind_in(reminderId)));
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::MediaMetadata) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::GetMediaMetadata() const
      {
          void* ppMetadata{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->GetMediaMetadata(&ppMetadata));
          return winrt::Windows::Phone::Notification::Management::MediaMetadata{ ppMetadata, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PlaybackCapability) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::MediaPlaybackCapabilities() const
      {
          winrt::Windows::Phone::Notification::Management::PlaybackCapability value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->get_MediaPlaybackCapabilities(reinterpret_cast<uint32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PlaybackStatus) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::MediaPlaybackStatus() const
      {
          winrt::Windows::Phone::Notification::Management::PlaybackStatus value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->get_MediaPlaybackStatus(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::PerformMediaPlaybackCommand(winrt::Windows::Phone::Notification::Management::PlaybackCommand const& command) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->PerformMediaPlaybackCommand(static_cast<int32_t>(command)));
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::DoNotDisturbEnabled() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->get_DoNotDisturbEnabled(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::DrivingModeEnabled() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->get_DrivingModeEnabled(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::BatterySaverState() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->get_BatterySaverState(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IMapView<hstring, winrt::Windows::Phone::Notification::Management::AppNotificationInfo>) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::GetApps() const
      {
          void* returnValue{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->GetApps(&returnValue));
          return winrt::Windows::Foundation::Collections::IMapView<hstring, winrt::Windows::Phone::Notification::Management::AppNotificationInfo>{ returnValue, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::EnableNotificationsForApplication(param::hstring const& appId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->EnableNotificationsForApplication(*(void**)(&appId)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::DisableNotificationsForApplication(param::hstring const& appId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->DisableNotificationsForApplication(*(void**)(&appId)));
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::IsNotificationEnabledForApplication(param::hstring const& appId) const
      {
          bool enabled{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->IsNotificationEnabledForApplication(*(void**)(&appId), &enabled));
          return enabled;
      }
      template <typename D> WINRT_IMPL_AUTO(int32_t) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::GetEnabledAccessoryNotificationTypes() const
      {
          int32_t enabledAccessoryNotificationTypes{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->GetEnabledAccessoryNotificationTypes(&enabledAccessoryNotificationTypes));
          return enabledAccessoryNotificationTypes;
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::EnableAccessoryNotificationTypes(int32_t accessoryNotificationTypes) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->EnableAccessoryNotificationTypes(accessoryNotificationTypes));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::DisableAllAccessoryNotificationTypes() const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->DisableAllAccessoryNotificationTypes());
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::GetUserConsent() const
      {
          bool enabled{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->GetUserConsent(&enabled));
          return enabled;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Storage::Streams::IRandomAccessStreamReference) consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::GetAppIcon(param::hstring const& appId) const
      {
          void* returnValue{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->GetAppIcon(*(void**)(&appId), &returnValue));
          return winrt::Windows::Storage::Streams::IRandomAccessStreamReference{ returnValue, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::RingDevice() const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->RingDevice());
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::SpeedDialEntry>) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::SpeedDialList() const
      {
          void* ppvalue{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->get_SpeedDialList(&ppvalue));
          return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::SpeedDialEntry>{ ppvalue, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::ClearToast(param::hstring const& instanceId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->ClearToast(*(void**)(&instanceId)));
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::IsPhonePinLocked() const
      {
          bool pinLocked{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->get_IsPhonePinLocked(&pinLocked));
          return pinLocked;
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::IncreaseVolume(int32_t step) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->IncreaseVolume(step));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::DecreaseVolume(int32_t step) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->DecreaseVolume(step));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::SetMute(bool mute) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->SetMute(mute));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::SetRingerVibrate(bool ringer, bool vibrate) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->SetRingerVibrate(ringer, vibrate));
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::VolumeInfo) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::VolumeInfo() const
      {
          void* ppVolume{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->get_VolumeInfo(&ppVolume));
          return winrt::Windows::Phone::Notification::Management::VolumeInfo{ ppVolume, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::EmailAccountInfo>) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::GetAllEmailAccounts() const
      {
          void* emailAccounts{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->GetAllEmailAccounts(&emailAccounts));
          return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::EmailAccountInfo>{ emailAccounts, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::EmailFolderInfo>) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::GetFolders(param::hstring const& emailAccount) const
      {
          void* folders{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->GetFolders(*(void**)(&emailAccount), &folders));
          return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::EmailFolderInfo>{ folders, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::EnableEmailNotificationEmailAccount(param::hstring const& emailAccount) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->EnableEmailNotificationEmailAccount(*(void**)(&emailAccount)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::DisableEmailNotificationEmailAccount(param::hstring const& emailAccount) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->DisableEmailNotificationEmailAccount(*(void**)(&emailAccount)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::EnableEmailNotificationFolderFilter(param::hstring const& emailAccount, param::vector_view<hstring> const& folders) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->EnableEmailNotificationFolderFilter(*(void**)(&emailAccount), *(void**)(&folders)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::UpdateEmailReadStatus(winrt::Windows::Phone::Notification::Management::BinaryId const& messageEntryId, bool isRead) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->UpdateEmailReadStatus(*(void**)(&messageEntryId), isRead));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager3<D>::SnoozeAlarmByInstanceId(param::hstring const& instanceId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager3)->SnoozeAlarmByInstanceId(*(void**)(&instanceId)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager3<D>::DismissAlarmByInstanceId(param::hstring const& instanceId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager3)->DismissAlarmByInstanceId(*(void**)(&instanceId)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager3<D>::SnoozeReminderByInstanceId(param::hstring const& instanceId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager3)->SnoozeReminderByInstanceId(*(void**)(&instanceId)));
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryManager3<D>::DismissReminderByInstanceId(param::hstring const& instanceId) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager3)->DismissReminderByInstanceId(*(void**)(&instanceId)));
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) consume_Windows_Phone_Notification_Management_IAccessoryNotificationTriggerDetails<D>::TimeCreated() const
      {
          winrt::Windows::Foundation::DateTime value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails)->get_TimeCreated(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IAccessoryNotificationTriggerDetails<D>::AppDisplayName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails)->get_AppDisplayName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IAccessoryNotificationTriggerDetails<D>::AppId() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails)->get_AppId(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::AccessoryNotificationType) consume_Windows_Phone_Notification_Management_IAccessoryNotificationTriggerDetails<D>::AccessoryNotificationType() const
      {
          winrt::Windows::Phone::Notification::Management::AccessoryNotificationType value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails)->get_AccessoryNotificationType(reinterpret_cast<uint32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IAccessoryNotificationTriggerDetails<D>::StartedProcessing() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails)->get_StartedProcessing(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(void) consume_Windows_Phone_Notification_Management_IAccessoryNotificationTriggerDetails<D>::StartedProcessing(bool value) const
      {
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails)->put_StartedProcessing(value));
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::guid) consume_Windows_Phone_Notification_Management_IAlarmNotificationTriggerDetails<D>::AlarmId() const
      {
          winrt::guid value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails)->get_AlarmId(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IAlarmNotificationTriggerDetails<D>::Title() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails)->get_Title(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) consume_Windows_Phone_Notification_Management_IAlarmNotificationTriggerDetails<D>::Timestamp() const
      {
          winrt::Windows::Foundation::DateTime value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails)->get_Timestamp(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::ReminderState) consume_Windows_Phone_Notification_Management_IAlarmNotificationTriggerDetails<D>::ReminderState() const
      {
          winrt::Windows::Phone::Notification::Management::ReminderState value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails)->get_ReminderState(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IAlarmNotificationTriggerDetails2<D>::InstanceId() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails2)->get_InstanceId(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IAppNotificationInfo<D>::Id() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAppNotificationInfo)->get_Id(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IAppNotificationInfo<D>::Name() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAppNotificationInfo)->get_Name(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(uint8_t) consume_Windows_Phone_Notification_Management_IBinaryId<D>::Id() const
      {
          uint8_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IBinaryId)->get_Id(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IBinaryId<D>::Length() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IBinaryId)->get_Length(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::CalendarChangedEvent) consume_Windows_Phone_Notification_Management_ICalendarChangedNotificationTriggerDetails<D>::EventType() const
      {
          winrt::Windows::Phone::Notification::Management::CalendarChangedEvent value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICalendarChangedNotificationTriggerDetails)->get_EventType(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICalendarChangedNotificationTriggerDetails<D>::ItemId() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICalendarChangedNotificationTriggerDetails)->get_ItemId(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::TileId() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_TileId(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::Content() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_Content(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::LargeContent1() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_LargeContent1(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::LargeContent2() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_LargeContent2(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::EmphasizedText() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_EmphasizedText(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::NonWrappedSmallContent1() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_NonWrappedSmallContent1(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::NonWrappedSmallContent2() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_NonWrappedSmallContent2(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::NonWrappedSmallContent3() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_NonWrappedSmallContent3(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::NonWrappedSmallContent4() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_NonWrappedSmallContent4(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ICortanaTileNotificationTriggerDetails<D>::Source() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails)->get_Source(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IEmailAccountInfo<D>::DisplayName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailAccountInfo)->get_DisplayName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IEmailAccountInfo<D>::IsNotificationEnabled() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailAccountInfo)->get_IsNotificationEnabled(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IEmailFolderInfo<D>::DisplayName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailFolderInfo)->get_DisplayName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IEmailFolderInfo<D>::IsNotificationEnabled() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailFolderInfo)->get_IsNotificationEnabled(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IEmailNotificationTriggerDetails<D>::AccountName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails)->get_AccountName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IEmailNotificationTriggerDetails<D>::ParentFolderName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails)->get_ParentFolderName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IEmailNotificationTriggerDetails<D>::SenderName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails)->get_SenderName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IEmailNotificationTriggerDetails<D>::SenderAddress() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails)->get_SenderAddress(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::ApplicationModel::Email::EmailMessage) consume_Windows_Phone_Notification_Management_IEmailNotificationTriggerDetails<D>::EmailMessage() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails)->get_EmailMessage(&value));
          return winrt::Windows::ApplicationModel::Email::EmailMessage{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) consume_Windows_Phone_Notification_Management_IEmailNotificationTriggerDetails<D>::Timestamp() const
      {
          winrt::Windows::Foundation::DateTime value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails)->get_Timestamp(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::BinaryId) consume_Windows_Phone_Notification_Management_IEmailNotificationTriggerDetails2<D>::MessageEntryId() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails2)->get_MessageEntryId(&value));
          return winrt::Windows::Phone::Notification::Management::BinaryId{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IEmailReadNotificationTriggerDetails<D>::AccountName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailReadNotificationTriggerDetails)->get_AccountName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IEmailReadNotificationTriggerDetails<D>::ParentFolderName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailReadNotificationTriggerDetails)->get_ParentFolderName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::BinaryId) consume_Windows_Phone_Notification_Management_IEmailReadNotificationTriggerDetails<D>::MessageEntryId() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailReadNotificationTriggerDetails)->get_MessageEntryId(&value));
          return winrt::Windows::Phone::Notification::Management::BinaryId{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IEmailReadNotificationTriggerDetails<D>::IsRead() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IEmailReadNotificationTriggerDetails)->get_IsRead(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PlaybackStatus) consume_Windows_Phone_Notification_Management_IMediaControlsTriggerDetails<D>::PlaybackStatus() const
      {
          winrt::Windows::Phone::Notification::Management::PlaybackStatus value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaControlsTriggerDetails)->get_PlaybackStatus(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::MediaMetadata) consume_Windows_Phone_Notification_Management_IMediaControlsTriggerDetails<D>::MediaMetadata() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaControlsTriggerDetails)->get_MediaMetadata(&value));
          return winrt::Windows::Phone::Notification::Management::MediaMetadata{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IMediaMetadata<D>::Title() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaMetadata)->get_Title(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IMediaMetadata<D>::Subtitle() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaMetadata)->get_Subtitle(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IMediaMetadata<D>::Artist() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaMetadata)->get_Artist(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IMediaMetadata<D>::Album() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaMetadata)->get_Album(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IMediaMetadata<D>::Track() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaMetadata)->get_Track(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) consume_Windows_Phone_Notification_Management_IMediaMetadata<D>::Duration() const
      {
          winrt::Windows::Foundation::TimeSpan value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaMetadata)->get_Duration(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Storage::Streams::IRandomAccessStreamReference) consume_Windows_Phone_Notification_Management_IMediaMetadata<D>::Thumbnail() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IMediaMetadata)->get_Thumbnail(&value));
          return winrt::Windows::Storage::Streams::IRandomAccessStreamReference{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::guid) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::PhoneLine() const
      {
          winrt::guid value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_PhoneLine(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::CallId() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_CallId(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneCallTransport) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::CallTransport() const
      {
          winrt::Windows::Phone::Notification::Management::PhoneCallTransport value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_CallTransport(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneMediaType) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::CallMediaType() const
      {
          winrt::Windows::Phone::Notification::Management::PhoneMediaType value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_CallMediaType(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneCallDirection) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::CallDirection() const
      {
          winrt::Windows::Phone::Notification::Management::PhoneCallDirection value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_CallDirection(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneCallState) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::State() const
      {
          winrt::Windows::Phone::Notification::Management::PhoneCallState value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_State(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::ConferenceCallId() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_ConferenceCallId(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::StartTime() const
      {
          winrt::Windows::Foundation::DateTime value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_StartTime(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::EndTime() const
      {
          winrt::Windows::Foundation::DateTime value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_EndTime(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::PhoneNumber() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_PhoneNumber(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::ContactName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_ContactName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::TextResponse>) consume_Windows_Phone_Notification_Management_IPhoneCallDetails<D>::PresetTextResponses() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneCallDetails)->get_PresetTextResponses(&value));
          return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::TextResponse>{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::guid) consume_Windows_Phone_Notification_Management_IPhoneLineDetails<D>::LineId() const
      {
          winrt::guid value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneLineDetails)->get_LineId(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IPhoneLineDetails<D>::DisplayName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneLineDetails)->get_DisplayName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IPhoneLineDetails<D>::LineNumber() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneLineDetails)->get_LineNumber(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IPhoneLineDetails<D>::DefaultOutgoingLine() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneLineDetails)->get_DefaultOutgoingLine(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IPhoneLineDetails<D>::VoicemailCount() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneLineDetails)->get_VoicemailCount(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneLineRegistrationState) consume_Windows_Phone_Notification_Management_IPhoneLineDetails<D>::RegistrationState() const
      {
          winrt::Windows::Phone::Notification::Management::PhoneLineRegistrationState value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneLineDetails)->get_RegistrationState(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IPhoneLineDetails2<D>::MissedCallCount() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneLineDetails2)->get_MissedCallCount(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneNotificationType) consume_Windows_Phone_Notification_Management_IPhoneNotificationTriggerDetails<D>::PhoneNotificationType() const
      {
          winrt::Windows::Phone::Notification::Management::PhoneNotificationType value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneNotificationTriggerDetails)->get_PhoneNotificationType(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::PhoneCallDetails) consume_Windows_Phone_Notification_Management_IPhoneNotificationTriggerDetails<D>::CallDetails() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneNotificationTriggerDetails)->get_CallDetails(&value));
          return winrt::Windows::Phone::Notification::Management::PhoneCallDetails{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::guid) consume_Windows_Phone_Notification_Management_IPhoneNotificationTriggerDetails<D>::PhoneLineChangedId() const
      {
          winrt::guid value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IPhoneNotificationTriggerDetails)->get_PhoneLineChangedId(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::guid) consume_Windows_Phone_Notification_Management_IReminderNotificationTriggerDetails<D>::ReminderId() const
      {
          winrt::guid value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails)->get_ReminderId(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IReminderNotificationTriggerDetails<D>::Title() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails)->get_Title(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IReminderNotificationTriggerDetails<D>::Description() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails)->get_Description(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IReminderNotificationTriggerDetails<D>::Details() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails)->get_Details(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Foundation::DateTime) consume_Windows_Phone_Notification_Management_IReminderNotificationTriggerDetails<D>::Timestamp() const
      {
          winrt::Windows::Foundation::DateTime value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails)->get_Timestamp(put_abi(value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::ApplicationModel::Appointments::Appointment) consume_Windows_Phone_Notification_Management_IReminderNotificationTriggerDetails<D>::Appointment() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails)->get_Appointment(&value));
          return winrt::Windows::ApplicationModel::Appointments::Appointment{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::ReminderState) consume_Windows_Phone_Notification_Management_IReminderNotificationTriggerDetails<D>::ReminderState() const
      {
          winrt::Windows::Phone::Notification::Management::ReminderState value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails)->get_ReminderState(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IReminderNotificationTriggerDetails2<D>::InstanceId() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails2)->get_InstanceId(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ISpeedDialEntry<D>::PhoneNumber() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ISpeedDialEntry)->get_PhoneNumber(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ISpeedDialEntry<D>::NumberType() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ISpeedDialEntry)->get_NumberType(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ISpeedDialEntry<D>::ContactName() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ISpeedDialEntry)->get_ContactName(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_ITextResponse<D>::Id() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ITextResponse)->get_Id(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_ITextResponse<D>::Content() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::ITextResponse)->get_Content(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IToastNotificationTriggerDetails<D>::Text1() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails)->get_Text1(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IToastNotificationTriggerDetails<D>::Text2() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails)->get_Text2(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IToastNotificationTriggerDetails<D>::Text3() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails)->get_Text3(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IToastNotificationTriggerDetails<D>::Text4() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails)->get_Text4(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IToastNotificationTriggerDetails<D>::SuppressPopup() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails)->get_SuppressPopup(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(hstring) consume_Windows_Phone_Notification_Management_IToastNotificationTriggerDetails2<D>::InstanceId() const
      {
          void* value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails2)->get_InstanceId(&value));
          return hstring{ value, take_ownership_from_abi };
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IVolumeInfo<D>::SystemVolume() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IVolumeInfo)->get_SystemVolume(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IVolumeInfo<D>::CallVolume() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IVolumeInfo)->get_CallVolume(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(uint32_t) consume_Windows_Phone_Notification_Management_IVolumeInfo<D>::MediaVolume() const
      {
          uint32_t value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IVolumeInfo)->get_MediaVolume(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(bool) consume_Windows_Phone_Notification_Management_IVolumeInfo<D>::IsMuted() const
      {
          bool value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IVolumeInfo)->get_IsMuted(&value));
          return value;
      }
      template <typename D> WINRT_IMPL_AUTO(winrt::Windows::Phone::Notification::Management::VibrateState) consume_Windows_Phone_Notification_Management_IVolumeInfo<D>::IsVibrateEnabled() const
      {
          winrt::Windows::Phone::Notification::Management::VibrateState value{};
          check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IVolumeInfo)->get_IsVibrateEnabled(reinterpret_cast<int32_t*>(&value)));
          return value;
      }
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IAccessoryManager> : produce_base<D, winrt::Windows::Phone::Notification::Management::IAccessoryManager>
      {
          int32_t __stdcall RegisterAccessoryApp(void** triggerId) noexcept final try
          {
              clear_abi(triggerId);
              typename D::abi_guard guard(this->shim());
              *triggerId = detach_from<hstring>(this->shim().RegisterAccessoryApp());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetNextTriggerDetails(void** pDetails) noexcept final try
          {
              clear_abi(pDetails);
              typename D::abi_guard guard(this->shim());
              *pDetails = detach_from<winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails>(this->shim().GetNextTriggerDetails());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall ProcessTriggerDetails(void* pDetails) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().ProcessTriggerDetails(*reinterpret_cast<winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails const*>(&pDetails));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_PhoneLineDetails(void** ppvalue) noexcept final try
          {
              clear_abi(ppvalue);
              typename D::abi_guard guard(this->shim());
              *ppvalue = detach_from<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::PhoneLineDetails>>(this->shim().PhoneLineDetails());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetPhoneLineDetails(winrt::guid phoneLine, void** ppdetails) noexcept final try
          {
              clear_abi(ppdetails);
              typename D::abi_guard guard(this->shim());
              *ppdetails = detach_from<winrt::Windows::Phone::Notification::Management::PhoneLineDetails>(this->shim().GetPhoneLineDetails(*reinterpret_cast<winrt::guid const*>(&phoneLine)));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall AcceptPhoneCall(uint32_t phoneCallId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().AcceptPhoneCall(phoneCallId);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall AcceptPhoneCallOnEndpoint(uint32_t phoneCallId, int32_t endPoint) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().AcceptPhoneCall(phoneCallId, *reinterpret_cast<winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const*>(&endPoint));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall AcceptPhoneCallWithVideo(uint32_t phoneCallId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().AcceptPhoneCallWithVideo(phoneCallId);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall AcceptPhoneCallWithVideoOnAudioEndpoint(uint32_t phoneCallId, int32_t endPoint) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().AcceptPhoneCallWithVideo(phoneCallId, *reinterpret_cast<winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const*>(&endPoint));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall RejectPhoneCall(uint32_t phoneCallId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().RejectPhoneCall(phoneCallId);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall RejectPhoneCallWithText(uint32_t phoneCallId, uint32_t textResponseID) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().RejectPhoneCall(phoneCallId, textResponseID);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall MakePhoneCall(winrt::guid phoneLine, void* phoneNumber) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().MakePhoneCall(*reinterpret_cast<winrt::guid const*>(&phoneLine), *reinterpret_cast<hstring const*>(&phoneNumber));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall MakePhoneCallOnAudioEndpoint(winrt::guid phoneLine, void* phoneNumber, int32_t endPoint) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().MakePhoneCall(*reinterpret_cast<winrt::guid const*>(&phoneLine), *reinterpret_cast<hstring const*>(&phoneNumber), *reinterpret_cast<winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const*>(&endPoint));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall MakePhoneCallWithVideo(winrt::guid phoneLine, void* phoneNumber) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().MakePhoneCallWithVideo(*reinterpret_cast<winrt::guid const*>(&phoneLine), *reinterpret_cast<hstring const*>(&phoneNumber));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall MakePhoneCallWithVideoOnAudioEndpoint(winrt::guid phoneLine, void* phoneNumber, int32_t endPoint) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().MakePhoneCallWithVideo(*reinterpret_cast<winrt::guid const*>(&phoneLine), *reinterpret_cast<hstring const*>(&phoneNumber), *reinterpret_cast<winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const*>(&endPoint));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall SwapPhoneCalls(uint32_t phoneCallIdToHold, uint32_t phoneCallIdOnHold) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SwapPhoneCalls(phoneCallIdToHold, phoneCallIdOnHold);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall HoldPhoneCall(uint32_t phoneCallId, bool holdCall) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().HoldPhoneCall(phoneCallId, holdCall);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall EndPhoneCall(uint32_t phoneCallId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().EndPhoneCall(phoneCallId);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall put_PhoneMute(bool value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().PhoneMute(value);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_PhoneMute(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().PhoneMute());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall put_PhoneCallAudioEndpoint(int32_t value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().PhoneCallAudioEndpoint(*reinterpret_cast<winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const*>(&value));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_PhoneCallAudioEndpoint(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint>(this->shim().PhoneCallAudioEndpoint());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall SnoozeAlarm(winrt::guid alarmId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SnoozeAlarm(*reinterpret_cast<winrt::guid const*>(&alarmId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall SnoozeAlarmForSpecifiedTime(winrt::guid alarmId, int64_t timeSpan) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SnoozeAlarm(*reinterpret_cast<winrt::guid const*>(&alarmId), *reinterpret_cast<winrt::Windows::Foundation::TimeSpan const*>(&timeSpan));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall DismissAlarm(winrt::guid alarmId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().DismissAlarm(*reinterpret_cast<winrt::guid const*>(&alarmId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall SnoozeReminder(winrt::guid reminderId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SnoozeReminder(*reinterpret_cast<winrt::guid const*>(&reminderId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall SnoozeReminderForSpecifiedTime(winrt::guid reminderId, int64_t timeSpan) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SnoozeReminder(*reinterpret_cast<winrt::guid const*>(&reminderId), *reinterpret_cast<winrt::Windows::Foundation::TimeSpan const*>(&timeSpan));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall DismissReminder(winrt::guid reminderId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().DismissReminder(*reinterpret_cast<winrt::guid const*>(&reminderId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetMediaMetadata(void** ppMetadata) noexcept final try
          {
              clear_abi(ppMetadata);
              typename D::abi_guard guard(this->shim());
              *ppMetadata = detach_from<winrt::Windows::Phone::Notification::Management::MediaMetadata>(this->shim().GetMediaMetadata());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_MediaPlaybackCapabilities(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PlaybackCapability>(this->shim().MediaPlaybackCapabilities());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_MediaPlaybackStatus(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PlaybackStatus>(this->shim().MediaPlaybackStatus());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall PerformMediaPlaybackCommand(int32_t command) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().PerformMediaPlaybackCommand(*reinterpret_cast<winrt::Windows::Phone::Notification::Management::PlaybackCommand const*>(&command));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_DoNotDisturbEnabled(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().DoNotDisturbEnabled());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_DrivingModeEnabled(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().DrivingModeEnabled());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_BatterySaverState(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().BatterySaverState());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetApps(void** returnValue) noexcept final try
          {
              clear_abi(returnValue);
              typename D::abi_guard guard(this->shim());
              *returnValue = detach_from<winrt::Windows::Foundation::Collections::IMapView<hstring, winrt::Windows::Phone::Notification::Management::AppNotificationInfo>>(this->shim().GetApps());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall EnableNotificationsForApplication(void* appId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().EnableNotificationsForApplication(*reinterpret_cast<hstring const*>(&appId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall DisableNotificationsForApplication(void* appId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().DisableNotificationsForApplication(*reinterpret_cast<hstring const*>(&appId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall IsNotificationEnabledForApplication(void* appId, bool* enabled) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *enabled = detach_from<bool>(this->shim().IsNotificationEnabledForApplication(*reinterpret_cast<hstring const*>(&appId)));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetEnabledAccessoryNotificationTypes(int32_t* enabledAccessoryNotificationTypes) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *enabledAccessoryNotificationTypes = detach_from<int32_t>(this->shim().GetEnabledAccessoryNotificationTypes());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall EnableAccessoryNotificationTypes(int32_t accessoryNotificationTypes) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().EnableAccessoryNotificationTypes(accessoryNotificationTypes);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall DisableAllAccessoryNotificationTypes() noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().DisableAllAccessoryNotificationTypes();
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetUserConsent(bool* enabled) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *enabled = detach_from<bool>(this->shim().GetUserConsent());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetAppIcon(void* appId, void** returnValue) noexcept final try
          {
              clear_abi(returnValue);
              typename D::abi_guard guard(this->shim());
              *returnValue = detach_from<winrt::Windows::Storage::Streams::IRandomAccessStreamReference>(this->shim().GetAppIcon(*reinterpret_cast<hstring const*>(&appId)));
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IAccessoryManager2> : produce_base<D, winrt::Windows::Phone::Notification::Management::IAccessoryManager2>
      {
          int32_t __stdcall RingDevice() noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().RingDevice();
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_SpeedDialList(void** ppvalue) noexcept final try
          {
              clear_abi(ppvalue);
              typename D::abi_guard guard(this->shim());
              *ppvalue = detach_from<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::SpeedDialEntry>>(this->shim().SpeedDialList());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall ClearToast(void* instanceId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().ClearToast(*reinterpret_cast<hstring const*>(&instanceId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_IsPhonePinLocked(bool* pinLocked) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *pinLocked = detach_from<bool>(this->shim().IsPhonePinLocked());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall IncreaseVolume(int32_t step) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().IncreaseVolume(step);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall DecreaseVolume(int32_t step) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().DecreaseVolume(step);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall SetMute(bool mute) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SetMute(mute);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall SetRingerVibrate(bool ringer, bool vibrate) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SetRingerVibrate(ringer, vibrate);
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_VolumeInfo(void** ppVolume) noexcept final try
          {
              clear_abi(ppVolume);
              typename D::abi_guard guard(this->shim());
              *ppVolume = detach_from<winrt::Windows::Phone::Notification::Management::VolumeInfo>(this->shim().VolumeInfo());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetAllEmailAccounts(void** emailAccounts) noexcept final try
          {
              clear_abi(emailAccounts);
              typename D::abi_guard guard(this->shim());
              *emailAccounts = detach_from<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::EmailAccountInfo>>(this->shim().GetAllEmailAccounts());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall GetFolders(void* emailAccount, void** folders) noexcept final try
          {
              clear_abi(folders);
              typename D::abi_guard guard(this->shim());
              *folders = detach_from<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::EmailFolderInfo>>(this->shim().GetFolders(*reinterpret_cast<hstring const*>(&emailAccount)));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall EnableEmailNotificationEmailAccount(void* emailAccount) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().EnableEmailNotificationEmailAccount(*reinterpret_cast<hstring const*>(&emailAccount));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall DisableEmailNotificationEmailAccount(void* emailAccount) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().DisableEmailNotificationEmailAccount(*reinterpret_cast<hstring const*>(&emailAccount));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall EnableEmailNotificationFolderFilter(void* emailAccount, void* folders) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().EnableEmailNotificationFolderFilter(*reinterpret_cast<hstring const*>(&emailAccount), *reinterpret_cast<winrt::Windows::Foundation::Collections::IVectorView<hstring> const*>(&folders));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall UpdateEmailReadStatus(void* messageEntryId, bool isRead) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().UpdateEmailReadStatus(*reinterpret_cast<winrt::Windows::Phone::Notification::Management::BinaryId const*>(&messageEntryId), isRead);
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IAccessoryManager3> : produce_base<D, winrt::Windows::Phone::Notification::Management::IAccessoryManager3>
      {
          int32_t __stdcall SnoozeAlarmByInstanceId(void* instanceId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SnoozeAlarmByInstanceId(*reinterpret_cast<hstring const*>(&instanceId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall DismissAlarmByInstanceId(void* instanceId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().DismissAlarmByInstanceId(*reinterpret_cast<hstring const*>(&instanceId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall SnoozeReminderByInstanceId(void* instanceId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().SnoozeReminderByInstanceId(*reinterpret_cast<hstring const*>(&instanceId));
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall DismissReminderByInstanceId(void* instanceId) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().DismissReminderByInstanceId(*reinterpret_cast<hstring const*>(&instanceId));
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails>
      {
          int32_t __stdcall get_TimeCreated(int64_t* value) noexcept final try
          {
              zero_abi<winrt::Windows::Foundation::DateTime>(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Foundation::DateTime>(this->shim().TimeCreated());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_AppDisplayName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().AppDisplayName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_AppId(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().AppId());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_AccessoryNotificationType(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::AccessoryNotificationType>(this->shim().AccessoryNotificationType());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_StartedProcessing(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().StartedProcessing());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall put_StartedProcessing(bool value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              this->shim().StartedProcessing(value);
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails>
      {
          int32_t __stdcall get_AlarmId(winrt::guid* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::guid>(this->shim().AlarmId());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Title(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Title());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Timestamp(int64_t* value) noexcept final try
          {
              zero_abi<winrt::Windows::Foundation::DateTime>(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Foundation::DateTime>(this->shim().Timestamp());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_ReminderState(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::ReminderState>(this->shim().ReminderState());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails2> : produce_base<D, winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails2>
      {
          int32_t __stdcall get_InstanceId(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().InstanceId());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IAppNotificationInfo> : produce_base<D, winrt::Windows::Phone::Notification::Management::IAppNotificationInfo>
      {
          int32_t __stdcall get_Id(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Id());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Name(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Name());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IBinaryId> : produce_base<D, winrt::Windows::Phone::Notification::Management::IBinaryId>
      {
          int32_t __stdcall get_Id(uint8_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint8_t>(this->shim().Id());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Length(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().Length());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::ICalendarChangedNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::ICalendarChangedNotificationTriggerDetails>
      {
          int32_t __stdcall get_EventType(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::CalendarChangedEvent>(this->shim().EventType());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_ItemId(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().ItemId());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails>
      {
          int32_t __stdcall get_TileId(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().TileId());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Content(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Content());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_LargeContent1(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().LargeContent1());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_LargeContent2(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().LargeContent2());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_EmphasizedText(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().EmphasizedText());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_NonWrappedSmallContent1(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().NonWrappedSmallContent1());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_NonWrappedSmallContent2(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().NonWrappedSmallContent2());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_NonWrappedSmallContent3(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().NonWrappedSmallContent3());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_NonWrappedSmallContent4(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().NonWrappedSmallContent4());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Source(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Source());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IEmailAccountInfo> : produce_base<D, winrt::Windows::Phone::Notification::Management::IEmailAccountInfo>
      {
          int32_t __stdcall get_DisplayName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().DisplayName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_IsNotificationEnabled(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().IsNotificationEnabled());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IEmailFolderInfo> : produce_base<D, winrt::Windows::Phone::Notification::Management::IEmailFolderInfo>
      {
          int32_t __stdcall get_DisplayName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().DisplayName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_IsNotificationEnabled(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().IsNotificationEnabled());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails>
      {
          int32_t __stdcall get_AccountName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().AccountName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_ParentFolderName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().ParentFolderName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_SenderName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().SenderName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_SenderAddress(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().SenderAddress());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_EmailMessage(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::ApplicationModel::Email::EmailMessage>(this->shim().EmailMessage());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Timestamp(int64_t* value) noexcept final try
          {
              zero_abi<winrt::Windows::Foundation::DateTime>(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Foundation::DateTime>(this->shim().Timestamp());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails2> : produce_base<D, winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails2>
      {
          int32_t __stdcall get_MessageEntryId(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::BinaryId>(this->shim().MessageEntryId());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IEmailReadNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IEmailReadNotificationTriggerDetails>
      {
          int32_t __stdcall get_AccountName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().AccountName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_ParentFolderName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().ParentFolderName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_MessageEntryId(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::BinaryId>(this->shim().MessageEntryId());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_IsRead(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().IsRead());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IMediaControlsTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IMediaControlsTriggerDetails>
      {
          int32_t __stdcall get_PlaybackStatus(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PlaybackStatus>(this->shim().PlaybackStatus());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_MediaMetadata(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::MediaMetadata>(this->shim().MediaMetadata());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IMediaMetadata> : produce_base<D, winrt::Windows::Phone::Notification::Management::IMediaMetadata>
      {
          int32_t __stdcall get_Title(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Title());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Subtitle(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Subtitle());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Artist(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Artist());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Album(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Album());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Track(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().Track());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Duration(int64_t* value) noexcept final try
          {
              zero_abi<winrt::Windows::Foundation::TimeSpan>(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Foundation::TimeSpan>(this->shim().Duration());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Thumbnail(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Storage::Streams::IRandomAccessStreamReference>(this->shim().Thumbnail());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IPhoneCallDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IPhoneCallDetails>
      {
          int32_t __stdcall get_PhoneLine(winrt::guid* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::guid>(this->shim().PhoneLine());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_CallId(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().CallId());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_CallTransport(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PhoneCallTransport>(this->shim().CallTransport());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_CallMediaType(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PhoneMediaType>(this->shim().CallMediaType());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_CallDirection(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PhoneCallDirection>(this->shim().CallDirection());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_State(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PhoneCallState>(this->shim().State());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_ConferenceCallId(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().ConferenceCallId());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_StartTime(int64_t* value) noexcept final try
          {
              zero_abi<winrt::Windows::Foundation::DateTime>(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Foundation::DateTime>(this->shim().StartTime());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_EndTime(int64_t* value) noexcept final try
          {
              zero_abi<winrt::Windows::Foundation::DateTime>(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Foundation::DateTime>(this->shim().EndTime());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_PhoneNumber(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().PhoneNumber());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_ContactName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().ContactName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_PresetTextResponses(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::TextResponse>>(this->shim().PresetTextResponses());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IPhoneLineDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IPhoneLineDetails>
      {
          int32_t __stdcall get_LineId(winrt::guid* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::guid>(this->shim().LineId());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_DisplayName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().DisplayName());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_LineNumber(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().LineNumber());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_DefaultOutgoingLine(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().DefaultOutgoingLine());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_VoicemailCount(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().VoicemailCount());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_RegistrationState(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PhoneLineRegistrationState>(this->shim().RegistrationState());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IPhoneLineDetails2> : produce_base<D, winrt::Windows::Phone::Notification::Management::IPhoneLineDetails2>
      {
          int32_t __stdcall get_MissedCallCount(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().MissedCallCount());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IPhoneNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IPhoneNotificationTriggerDetails>
      {
          int32_t __stdcall get_PhoneNotificationType(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PhoneNotificationType>(this->shim().PhoneNotificationType());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_CallDetails(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::PhoneCallDetails>(this->shim().CallDetails());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_PhoneLineChangedId(winrt::guid* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::guid>(this->shim().PhoneLineChangedId());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails>
      {
          int32_t __stdcall get_ReminderId(winrt::guid* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::guid>(this->shim().ReminderId());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Title(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Title());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Description(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Description());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Details(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Details());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Timestamp(int64_t* value) noexcept final try
          {
              zero_abi<winrt::Windows::Foundation::DateTime>(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Foundation::DateTime>(this->shim().Timestamp());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Appointment(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::ApplicationModel::Appointments::Appointment>(this->shim().Appointment());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_ReminderState(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::ReminderState>(this->shim().ReminderState());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails2> : produce_base<D, winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails2>
      {
          int32_t __stdcall get_InstanceId(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().InstanceId());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::ISpeedDialEntry> : produce_base<D, winrt::Windows::Phone::Notification::Management::ISpeedDialEntry>
      {
          int32_t __stdcall get_PhoneNumber(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().PhoneNumber());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_NumberType(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().NumberType());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_ContactName(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().ContactName());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::ITextResponse> : produce_base<D, winrt::Windows::Phone::Notification::Management::ITextResponse>
      {
          int32_t __stdcall get_Id(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().Id());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Content(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Content());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails> : produce_base<D, winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails>
      {
          int32_t __stdcall get_Text1(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Text1());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Text2(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Text2());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Text3(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Text3());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_Text4(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().Text4());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_SuppressPopup(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().SuppressPopup());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails2> : produce_base<D, winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails2>
      {
          int32_t __stdcall get_InstanceId(void** value) noexcept final try
          {
              clear_abi(value);
              typename D::abi_guard guard(this->shim());
              *value = detach_from<hstring>(this->shim().InstanceId());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  #ifndef WINRT_LEAN_AND_MEAN
      template <typename D>
      struct produce<D, winrt::Windows::Phone::Notification::Management::IVolumeInfo> : produce_base<D, winrt::Windows::Phone::Notification::Management::IVolumeInfo>
      {
          int32_t __stdcall get_SystemVolume(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().SystemVolume());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_CallVolume(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().CallVolume());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_MediaVolume(uint32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<uint32_t>(this->shim().MediaVolume());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_IsMuted(bool* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<bool>(this->shim().IsMuted());
              return 0;
          }
          catch (...) { return to_hresult(); }
          int32_t __stdcall get_IsVibrateEnabled(int32_t* value) noexcept final try
          {
              typename D::abi_guard guard(this->shim());
              *value = detach_from<winrt::Windows::Phone::Notification::Management::VibrateState>(this->shim().IsVibrateEnabled());
              return 0;
          }
          catch (...) { return to_hresult(); }
      };
  #endif
  }
  WINRT_EXPORT namespace winrt::Windows::Phone::Notification::Management
  {
      constexpr auto operator|(AccessoryNotificationType const left, AccessoryNotificationType const right) noexcept
      {
          return static_cast<AccessoryNotificationType>(impl::to_underlying_type(left) | impl::to_underlying_type(right));
      }
      constexpr auto operator|=(AccessoryNotificationType& left, AccessoryNotificationType const right) noexcept
      {
          left = left | right;
          return left;
      }
      constexpr auto operator&(AccessoryNotificationType const left, AccessoryNotificationType const right) noexcept
      {
          return static_cast<AccessoryNotificationType>(impl::to_underlying_type(left) & impl::to_underlying_type(right));
      }
      constexpr auto operator&=(AccessoryNotificationType& left, AccessoryNotificationType const right) noexcept
      {
          left = left & right;
          return left;
      }
      constexpr auto operator~(AccessoryNotificationType const value) noexcept
      {
          return static_cast<AccessoryNotificationType>(~impl::to_underlying_type(value));
      }
      constexpr auto operator^(AccessoryNotificationType const left, AccessoryNotificationType const right) noexcept
      {
          return static_cast<AccessoryNotificationType>(impl::to_underlying_type(left) ^ impl::to_underlying_type(right));
      }
      constexpr auto operator^=(AccessoryNotificationType& left, AccessoryNotificationType const right) noexcept
      {
          left = left ^ right;
          return left;
      }
      constexpr auto operator|(PlaybackCapability const left, PlaybackCapability const right) noexcept
      {
          return static_cast<PlaybackCapability>(impl::to_underlying_type(left) | impl::to_underlying_type(right));
      }
      constexpr auto operator|=(PlaybackCapability& left, PlaybackCapability const right) noexcept
      {
          left = left | right;
          return left;
      }
      constexpr auto operator&(PlaybackCapability const left, PlaybackCapability const right) noexcept
      {
          return static_cast<PlaybackCapability>(impl::to_underlying_type(left) & impl::to_underlying_type(right));
      }
      constexpr auto operator&=(PlaybackCapability& left, PlaybackCapability const right) noexcept
      {
          left = left & right;
          return left;
      }
      constexpr auto operator~(PlaybackCapability const value) noexcept
      {
          return static_cast<PlaybackCapability>(~impl::to_underlying_type(value));
      }
      constexpr auto operator^(PlaybackCapability const left, PlaybackCapability const right) noexcept
      {
          return static_cast<PlaybackCapability>(impl::to_underlying_type(left) ^ impl::to_underlying_type(right));
      }
      constexpr auto operator^=(PlaybackCapability& left, PlaybackCapability const right) noexcept
      {
          left = left ^ right;
          return left;
      }
      inline auto AccessoryManager::RegisterAccessoryApp()
      {
          return impl::call_factory_cast<hstring(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.RegisterAccessoryApp(); });
      }
      inline auto AccessoryManager::GetNextTriggerDetails()
      {
          return impl::call_factory_cast<winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.GetNextTriggerDetails(); });
      }
      inline auto AccessoryManager::ProcessTriggerDetails(winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails const& pDetails)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.ProcessTriggerDetails(pDetails); });
      }
      inline auto AccessoryManager::PhoneLineDetails()
      {
          return impl::call_factory_cast<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::PhoneLineDetails>(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.PhoneLineDetails(); });
      }
      inline auto AccessoryManager::GetPhoneLineDetails(winrt::guid const& phoneLine)
      {
          return impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.GetPhoneLineDetails(phoneLine); });
      }
      inline auto AccessoryManager::AcceptPhoneCall(uint32_t phoneCallId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.AcceptPhoneCall(phoneCallId); });
      }
      inline auto AccessoryManager::AcceptPhoneCall(uint32_t phoneCallId, winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& endPoint)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.AcceptPhoneCall(phoneCallId, endPoint); });
      }
      inline auto AccessoryManager::AcceptPhoneCallWithVideo(uint32_t phoneCallId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.AcceptPhoneCallWithVideo(phoneCallId); });
      }
      inline auto AccessoryManager::AcceptPhoneCallWithVideo(uint32_t phoneCallId, winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& endPoint)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.AcceptPhoneCallWithVideo(phoneCallId, endPoint); });
      }
      inline auto AccessoryManager::RejectPhoneCall(uint32_t phoneCallId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.RejectPhoneCall(phoneCallId); });
      }
      inline auto AccessoryManager::RejectPhoneCall(uint32_t phoneCallId, uint32_t textResponseID)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.RejectPhoneCall(phoneCallId, textResponseID); });
      }
      inline auto AccessoryManager::MakePhoneCall(winrt::guid const& phoneLine, param::hstring const& phoneNumber)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.MakePhoneCall(phoneLine, phoneNumber); });
      }
      inline auto AccessoryManager::MakePhoneCall(winrt::guid const& phoneLine, param::hstring const& phoneNumber, winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& endPoint)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.MakePhoneCall(phoneLine, phoneNumber, endPoint); });
      }
      inline auto AccessoryManager::MakePhoneCallWithVideo(winrt::guid const& phoneLine, param::hstring const& phoneNumber)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.MakePhoneCallWithVideo(phoneLine, phoneNumber); });
      }
      inline auto AccessoryManager::MakePhoneCallWithVideo(winrt::guid const& phoneLine, param::hstring const& phoneNumber, winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& endPoint)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.MakePhoneCallWithVideo(phoneLine, phoneNumber, endPoint); });
      }
      inline auto AccessoryManager::SwapPhoneCalls(uint32_t phoneCallIdToHold, uint32_t phoneCallIdOnHold)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.SwapPhoneCalls(phoneCallIdToHold, phoneCallIdOnHold); });
      }
      inline auto AccessoryManager::HoldPhoneCall(uint32_t phoneCallId, bool holdCall)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.HoldPhoneCall(phoneCallId, holdCall); });
      }
      inline auto AccessoryManager::EndPhoneCall(uint32_t phoneCallId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.EndPhoneCall(phoneCallId); });
      }
      inline auto AccessoryManager::PhoneMute(bool value)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.PhoneMute(value); });
      }
      inline auto AccessoryManager::PhoneMute()
      {
          return impl::call_factory_cast<bool(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.PhoneMute(); });
      }
      inline auto AccessoryManager::PhoneCallAudioEndpoint(winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint const& value)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.PhoneCallAudioEndpoint(value); });
      }
      inline auto AccessoryManager::PhoneCallAudioEndpoint()
      {
          return impl::call_factory_cast<winrt::Windows::Phone::Notification::Management::PhoneCallAudioEndpoint(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.PhoneCallAudioEndpoint(); });
      }
      inline auto AccessoryManager::SnoozeAlarm(winrt::guid const& alarmId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.SnoozeAlarm(alarmId); });
      }
      inline auto AccessoryManager::SnoozeAlarm(winrt::guid const& alarmId, winrt::Windows::Foundation::TimeSpan const& timeSpan)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.SnoozeAlarm(alarmId, timeSpan); });
      }
      inline auto AccessoryManager::DismissAlarm(winrt::guid const& alarmId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.DismissAlarm(alarmId); });
      }
      inline auto AccessoryManager::SnoozeReminder(winrt::guid const& reminderId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.SnoozeReminder(reminderId); });
      }
      inline auto AccessoryManager::SnoozeReminder(winrt::guid const& reminderId, winrt::Windows::Foundation::TimeSpan const& timeSpan)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.SnoozeReminder(reminderId, timeSpan); });
      }
      inline auto AccessoryManager::DismissReminder(winrt::guid const& reminderId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.DismissReminder(reminderId); });
      }
      inline auto AccessoryManager::GetMediaMetadata()
      {
          return impl::call_factory_cast<winrt::Windows::Phone::Notification::Management::MediaMetadata(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.GetMediaMetadata(); });
      }
      inline auto AccessoryManager::MediaPlaybackCapabilities()
      {
          return impl::call_factory_cast<winrt::Windows::Phone::Notification::Management::PlaybackCapability(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.MediaPlaybackCapabilities(); });
      }
      inline auto AccessoryManager::MediaPlaybackStatus()
      {
          return impl::call_factory_cast<winrt::Windows::Phone::Notification::Management::PlaybackStatus(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.MediaPlaybackStatus(); });
      }
      inline auto AccessoryManager::PerformMediaPlaybackCommand(winrt::Windows::Phone::Notification::Management::PlaybackCommand const& command)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.PerformMediaPlaybackCommand(command); });
      }
      inline auto AccessoryManager::DoNotDisturbEnabled()
      {
          return impl::call_factory_cast<bool(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.DoNotDisturbEnabled(); });
      }
      inline auto AccessoryManager::DrivingModeEnabled()
      {
          return impl::call_factory_cast<bool(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.DrivingModeEnabled(); });
      }
      inline auto AccessoryManager::BatterySaverState()
      {
          return impl::call_factory_cast<bool(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.BatterySaverState(); });
      }
      inline auto AccessoryManager::GetApps()
      {
          return impl::call_factory_cast<winrt::Windows::Foundation::Collections::IMapView<hstring, winrt::Windows::Phone::Notification::Management::AppNotificationInfo>(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.GetApps(); });
      }
      inline auto AccessoryManager::EnableNotificationsForApplication(param::hstring const& appId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.EnableNotificationsForApplication(appId); });
      }
      inline auto AccessoryManager::DisableNotificationsForApplication(param::hstring const& appId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.DisableNotificationsForApplication(appId); });
      }
      inline auto AccessoryManager::IsNotificationEnabledForApplication(param::hstring const& appId)
      {
          return impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.IsNotificationEnabledForApplication(appId); });
      }
      inline auto AccessoryManager::GetEnabledAccessoryNotificationTypes()
      {
          return impl::call_factory_cast<int32_t(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.GetEnabledAccessoryNotificationTypes(); });
      }
      inline auto AccessoryManager::EnableAccessoryNotificationTypes(int32_t accessoryNotificationTypes)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.EnableAccessoryNotificationTypes(accessoryNotificationTypes); });
      }
      inline auto AccessoryManager::DisableAllAccessoryNotificationTypes()
      {
          impl::call_factory_cast<void(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.DisableAllAccessoryNotificationTypes(); });
      }
      inline auto AccessoryManager::GetUserConsent()
      {
          return impl::call_factory_cast<bool(*)(IAccessoryManager const&), AccessoryManager, IAccessoryManager>([](IAccessoryManager const& f) { return f.GetUserConsent(); });
      }
      inline auto AccessoryManager::GetAppIcon(param::hstring const& appId)
      {
          return impl::call_factory<AccessoryManager, IAccessoryManager>([&](IAccessoryManager const& f) { return f.GetAppIcon(appId); });
      }
      inline auto AccessoryManager::RingDevice()
      {
          impl::call_factory_cast<void(*)(IAccessoryManager2 const&), AccessoryManager, IAccessoryManager2>([](IAccessoryManager2 const& f) { return f.RingDevice(); });
      }
      inline auto AccessoryManager::SpeedDialList()
      {
          return impl::call_factory_cast<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::SpeedDialEntry>(*)(IAccessoryManager2 const&), AccessoryManager, IAccessoryManager2>([](IAccessoryManager2 const& f) { return f.SpeedDialList(); });
      }
      inline auto AccessoryManager::ClearToast(param::hstring const& instanceId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.ClearToast(instanceId); });
      }
      inline auto AccessoryManager::IsPhonePinLocked()
      {
          return impl::call_factory_cast<bool(*)(IAccessoryManager2 const&), AccessoryManager, IAccessoryManager2>([](IAccessoryManager2 const& f) { return f.IsPhonePinLocked(); });
      }
      inline auto AccessoryManager::IncreaseVolume(int32_t step)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.IncreaseVolume(step); });
      }
      inline auto AccessoryManager::DecreaseVolume(int32_t step)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.DecreaseVolume(step); });
      }
      inline auto AccessoryManager::SetMute(bool mute)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.SetMute(mute); });
      }
      inline auto AccessoryManager::SetRingerVibrate(bool ringer, bool vibrate)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.SetRingerVibrate(ringer, vibrate); });
      }
      inline auto AccessoryManager::VolumeInfo()
      {
          return impl::call_factory_cast<winrt::Windows::Phone::Notification::Management::VolumeInfo(*)(IAccessoryManager2 const&), AccessoryManager, IAccessoryManager2>([](IAccessoryManager2 const& f) { return f.VolumeInfo(); });
      }
      inline auto AccessoryManager::GetAllEmailAccounts()
      {
          return impl::call_factory_cast<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Phone::Notification::Management::EmailAccountInfo>(*)(IAccessoryManager2 const&), AccessoryManager, IAccessoryManager2>([](IAccessoryManager2 const& f) { return f.GetAllEmailAccounts(); });
      }
      inline auto AccessoryManager::GetFolders(param::hstring const& emailAccount)
      {
          return impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.GetFolders(emailAccount); });
      }
      inline auto AccessoryManager::EnableEmailNotificationEmailAccount(param::hstring const& emailAccount)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.EnableEmailNotificationEmailAccount(emailAccount); });
      }
      inline auto AccessoryManager::DisableEmailNotificationEmailAccount(param::hstring const& emailAccount)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.DisableEmailNotificationEmailAccount(emailAccount); });
      }
      inline auto AccessoryManager::EnableEmailNotificationFolderFilter(param::hstring const& emailAccount, param::vector_view<hstring> const& folders)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.EnableEmailNotificationFolderFilter(emailAccount, folders); });
      }
      inline auto AccessoryManager::UpdateEmailReadStatus(winrt::Windows::Phone::Notification::Management::BinaryId const& messageEntryId, bool isRead)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager2>([&](IAccessoryManager2 const& f) { return f.UpdateEmailReadStatus(messageEntryId, isRead); });
      }
      inline auto AccessoryManager::SnoozeAlarmByInstanceId(param::hstring const& instanceId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager3>([&](IAccessoryManager3 const& f) { return f.SnoozeAlarmByInstanceId(instanceId); });
      }
      inline auto AccessoryManager::DismissAlarmByInstanceId(param::hstring const& instanceId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager3>([&](IAccessoryManager3 const& f) { return f.DismissAlarmByInstanceId(instanceId); });
      }
      inline auto AccessoryManager::SnoozeReminderByInstanceId(param::hstring const& instanceId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager3>([&](IAccessoryManager3 const& f) { return f.SnoozeReminderByInstanceId(instanceId); });
      }
      inline auto AccessoryManager::DismissReminderByInstanceId(param::hstring const& instanceId)
      {
          impl::call_factory<AccessoryManager, IAccessoryManager3>([&](IAccessoryManager3 const& f) { return f.DismissReminderByInstanceId(instanceId); });
      }
  }
  namespace std
  {
  #ifndef WINRT_LEAN_AND_MEAN
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IAccessoryManager> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IAccessoryManager2> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IAccessoryManager3> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IAccessoryNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IAlarmNotificationTriggerDetails2> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IAppNotificationInfo> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IBinaryId> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::ICalendarChangedNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::ICortanaTileNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IEmailAccountInfo> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IEmailFolderInfo> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IEmailNotificationTriggerDetails2> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IEmailReadNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IMediaControlsTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IMediaMetadata> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IPhoneCallDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IPhoneLineDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IPhoneLineDetails2> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IPhoneNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IReminderNotificationTriggerDetails2> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::ISpeedDialEntry> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::ITextResponse> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IToastNotificationTriggerDetails2> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::IVolumeInfo> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::AccessoryManager> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::AlarmNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::AppNotificationInfo> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::BinaryId> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::CalendarChangedNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::CortanaTileNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::EmailAccountInfo> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::EmailFolderInfo> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::EmailNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::EmailReadNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::MediaControlsTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::MediaMetadata> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::PhoneCallDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::PhoneLineDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::PhoneNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::ReminderNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::SpeedDialEntry> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::TextResponse> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::ToastNotificationTriggerDetails> : winrt::impl::hash_base {};
      template<> struct hash<winrt::Windows::Phone::Notification::Management::VolumeInfo> : winrt::impl::hash_base {};
  #endif
  }
  #endif
  