// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15 #pragma once #ifndef WINRT_Windows_Networking_PushNotifications_H #define WINRT_Windows_Networking_PushNotifications_H #include "winrt/base.h" static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.240405.15"), "Mismatched C++/WinRT headers."); #define CPPWINRT_VERSION "2.0.240405.15" #include "winrt/Windows.Networking.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.System.2.h" #include "winrt/impl/Windows.UI.Notifications.2.h" #include "winrt/impl/Windows.Networking.PushNotifications.2.h" namespace winrt::impl { template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannel::Uri() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannel)->get_Uri(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannel::ExpirationTime() const { winrt::Windows::Foundation::DateTime value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannel)->get_ExpirationTime(put_abi(value))); return value; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannel::Close() const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannel)->Close()); } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannel::PushNotificationReceived(winrt::Windows::Foundation::TypedEventHandler const& handler) const { winrt::event_token token{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannel)->add_PushNotificationReceived(*(void**)(&handler), put_abi(token))); return token; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannel::PushNotificationReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const { return impl::make_event_revoker(this, PushNotificationReceived(handler)); } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannel::PushNotificationReceived(winrt::event_token const& token) const noexcept { WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannel)->remove_PushNotificationReceived(impl::bind_in(token)); } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser::CreatePushNotificationChannelForApplicationAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerForUser)->CreatePushNotificationChannelForApplicationAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser::CreatePushNotificationChannelForApplicationAsync(param::hstring const& applicationId) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerForUser)->CreatePushNotificationChannelForApplicationAsyncWithId(*(void**)(&applicationId), &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser::CreatePushNotificationChannelForSecondaryTileAsync(param::hstring const& tileId) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerForUser)->CreatePushNotificationChannelForSecondaryTileAsync(*(void**)(&tileId), &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser::User() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerForUser)->get_User(&value)); return winrt::Windows::System::User{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser2::CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(winrt::Windows::Storage::Streams::IBuffer const& appServerKey, param::hstring const& channelId) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerForUser2)->CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(*(void**)(&appServerKey), *(void**)(&channelId), &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser2::CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(winrt::Windows::Storage::Streams::IBuffer const& appServerKey, param::hstring const& channelId, param::hstring const& appId) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerForUser2)->CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsyncWithId(*(void**)(&appServerKey), *(void**)(&channelId), *(void**)(&appId), &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics::CreatePushNotificationChannelForApplicationAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerStatics)->CreatePushNotificationChannelForApplicationAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics::CreatePushNotificationChannelForApplicationAsync(param::hstring const& applicationId) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerStatics)->CreatePushNotificationChannelForApplicationAsyncWithId(*(void**)(&applicationId), &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics::CreatePushNotificationChannelForSecondaryTileAsync(param::hstring const& tileId) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerStatics)->CreatePushNotificationChannelForSecondaryTileAsync(*(void**)(&tileId), &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics2::GetForUser(winrt::Windows::System::User const& user) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerStatics2)->GetForUser(*(void**)(&user), &result)); return winrt::Windows::Networking::PushNotifications::PushNotificationChannelManagerForUser{ result, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics3::GetDefault() const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerStatics3)->GetDefault(&result)); return winrt::Windows::Networking::PushNotifications::PushNotificationChannelManagerForUser{ result, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics4::ChannelsRevoked(winrt::Windows::Foundation::EventHandler const& handler) const { winrt::event_token token{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerStatics4)->add_ChannelsRevoked(*(void**)(&handler), put_abi(token))); return token; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics4::ChannelsRevoked(auto_revoke_t, winrt::Windows::Foundation::EventHandler const& handler) const { return impl::make_event_revoker(this, ChannelsRevoked(handler)); } template auto consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics4::ChannelsRevoked(winrt::event_token const& token) const noexcept { WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerStatics4)->remove_ChannelsRevoked(impl::bind_in(token)); } template auto consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs::Cancel(bool value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationReceivedEventArgs)->put_Cancel(value)); } template auto consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs::Cancel() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationReceivedEventArgs)->get_Cancel(&value)); return value; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs::NotificationType() const { winrt::Windows::Networking::PushNotifications::PushNotificationType value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationReceivedEventArgs)->get_NotificationType(reinterpret_cast(&value))); return value; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs::ToastNotification() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationReceivedEventArgs)->get_ToastNotification(&value)); return winrt::Windows::UI::Notifications::ToastNotification{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs::TileNotification() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationReceivedEventArgs)->get_TileNotification(&value)); return winrt::Windows::UI::Notifications::TileNotification{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs::BadgeNotification() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationReceivedEventArgs)->get_BadgeNotification(&value)); return winrt::Windows::UI::Notifications::BadgeNotification{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs::RawNotification() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IPushNotificationReceivedEventArgs)->get_RawNotification(&value)); return winrt::Windows::Networking::PushNotifications::RawNotification{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IRawNotification::Content() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IRawNotification)->get_Content(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IRawNotification2::Headers() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IRawNotification2)->get_Headers(&value)); return winrt::Windows::Foundation::Collections::IMapView{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IRawNotification2::ChannelId() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IRawNotification2)->get_ChannelId(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Networking_PushNotifications_IRawNotification3::ContentBytes() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Networking::PushNotifications::IRawNotification3)->get_ContentBytes(&value)); return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Uri(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Uri()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ExpirationTime(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ExpirationTime()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall Close() noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Close(); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall add_PushNotificationReceived(void* handler, winrt::event_token* token) noexcept final try { zero_abi(token); typename D::abi_guard guard(this->shim()); *token = detach_from(this->shim().PushNotificationReceived(*reinterpret_cast const*>(&handler))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall remove_PushNotificationReceived(winrt::event_token token) noexcept final { typename D::abi_guard guard(this->shim()); this->shim().PushNotificationReceived(*reinterpret_cast(&token)); return 0; } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreatePushNotificationChannelForApplicationAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().CreatePushNotificationChannelForApplicationAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreatePushNotificationChannelForApplicationAsyncWithId(void* applicationId, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().CreatePushNotificationChannelForApplicationAsync(*reinterpret_cast(&applicationId))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreatePushNotificationChannelForSecondaryTileAsync(void* tileId, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().CreatePushNotificationChannelForSecondaryTileAsync(*reinterpret_cast(&tileId))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_User(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().User()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(void* appServerKey, void* channelId, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(*reinterpret_cast(&appServerKey), *reinterpret_cast(&channelId))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsyncWithId(void* appServerKey, void* channelId, void* appId, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(*reinterpret_cast(&appServerKey), *reinterpret_cast(&channelId), *reinterpret_cast(&appId))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreatePushNotificationChannelForApplicationAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().CreatePushNotificationChannelForApplicationAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreatePushNotificationChannelForApplicationAsyncWithId(void* applicationId, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().CreatePushNotificationChannelForApplicationAsync(*reinterpret_cast(&applicationId))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreatePushNotificationChannelForSecondaryTileAsync(void* tileId, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().CreatePushNotificationChannelForSecondaryTileAsync(*reinterpret_cast(&tileId))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall GetForUser(void* user, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetForUser(*reinterpret_cast(&user))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall GetDefault(void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetDefault()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall add_ChannelsRevoked(void* handler, winrt::event_token* token) noexcept final try { zero_abi(token); typename D::abi_guard guard(this->shim()); *token = detach_from(this->shim().ChannelsRevoked(*reinterpret_cast const*>(&handler))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall remove_ChannelsRevoked(winrt::event_token token) noexcept final { typename D::abi_guard guard(this->shim()); this->shim().ChannelsRevoked(*reinterpret_cast(&token)); return 0; } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall put_Cancel(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Cancel(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Cancel(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Cancel()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NotificationType(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NotificationType()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ToastNotification(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ToastNotification()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TileNotification(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TileNotification()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BadgeNotification(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BadgeNotification()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RawNotification(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RawNotification()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Content(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Content()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Headers(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Headers()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ChannelId(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ChannelId()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_ContentBytes(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ContentBytes()); return 0; } catch (...) { return to_hresult(); } }; #endif } WINRT_EXPORT namespace winrt::Windows::Networking::PushNotifications { inline auto PushNotificationChannelManager::CreatePushNotificationChannelForApplicationAsync() { return impl::call_factory_cast(*)(IPushNotificationChannelManagerStatics const&), PushNotificationChannelManager, IPushNotificationChannelManagerStatics>([](IPushNotificationChannelManagerStatics const& f) { return f.CreatePushNotificationChannelForApplicationAsync(); }); } inline auto PushNotificationChannelManager::CreatePushNotificationChannelForApplicationAsync(param::hstring const& applicationId) { return impl::call_factory([&](IPushNotificationChannelManagerStatics const& f) { return f.CreatePushNotificationChannelForApplicationAsync(applicationId); }); } inline auto PushNotificationChannelManager::CreatePushNotificationChannelForSecondaryTileAsync(param::hstring const& tileId) { return impl::call_factory([&](IPushNotificationChannelManagerStatics const& f) { return f.CreatePushNotificationChannelForSecondaryTileAsync(tileId); }); } inline auto PushNotificationChannelManager::GetForUser(winrt::Windows::System::User const& user) { return impl::call_factory([&](IPushNotificationChannelManagerStatics2 const& f) { return f.GetForUser(user); }); } inline auto PushNotificationChannelManager::GetDefault() { return impl::call_factory_cast([](IPushNotificationChannelManagerStatics3 const& f) { return f.GetDefault(); }); } inline auto PushNotificationChannelManager::ChannelsRevoked(winrt::Windows::Foundation::EventHandler const& handler) { return impl::call_factory([&](IPushNotificationChannelManagerStatics4 const& f) { return f.ChannelsRevoked(handler); }); } inline auto PushNotificationChannelManager::ChannelsRevoked(auto_revoke_t, winrt::Windows::Foundation::EventHandler const& handler) { auto f = get_activation_factory(); return PushNotificationChannelManager::ChannelsRevoked_revoker{ f, f.ChannelsRevoked(handler) }; } inline auto PushNotificationChannelManager::ChannelsRevoked(winrt::event_token const& token) { impl::call_factory([&](IPushNotificationChannelManagerStatics4 const& f) { return f.ChannelsRevoked(token); }); } } namespace std { #ifndef WINRT_LEAN_AND_MEAN template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; #endif #ifdef __cpp_lib_format #endif } #endif