// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.230225.1

#pragma once
#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.230225.1"), "Mismatched C++/WinRT headers.");
#define CPPWINRT_VERSION "2.0.230225.1"
#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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto consume_Windows_Phone_Notification_Management_IAccessoryManager<D>::DisableAllAccessoryNotificationTypes() const
    {
        check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager)->DisableAllAccessoryNotificationTypes());
    }
    template <typename D> auto 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> auto 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> auto consume_Windows_Phone_Notification_Management_IAccessoryManager2<D>::RingDevice() const
    {
        check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Phone::Notification::Management::IAccessoryManager2)->RingDevice());
    }
    template <typename D> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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> auto 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
#ifdef __cpp_lib_format
#endif
}
#endif
