// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Networking_PushNotifications_0_H #define WINRT_Windows_Networking_PushNotifications_0_H WINRT_EXPORT namespace winrt::Windows::Foundation { template struct WINRT_IMPL_EMPTY_BASES EventHandler; struct EventRegistrationToken; template struct WINRT_IMPL_EMPTY_BASES TypedEventHandler; } WINRT_EXPORT namespace winrt::Windows::Storage::Streams { struct IBuffer; } WINRT_EXPORT namespace winrt::Windows::System { struct User; } WINRT_EXPORT namespace winrt::Windows::UI::Notifications { struct BadgeNotification; struct TileNotification; struct ToastNotification; } WINRT_EXPORT namespace winrt::Windows::Networking::PushNotifications { enum class PushNotificationType : int32_t { Toast = 0, Tile = 1, Badge = 2, Raw = 3, TileFlyout = 4, }; struct IPushNotificationChannel; struct IPushNotificationChannelManagerForUser; struct IPushNotificationChannelManagerForUser2; struct IPushNotificationChannelManagerStatics; struct IPushNotificationChannelManagerStatics2; struct IPushNotificationChannelManagerStatics3; struct IPushNotificationChannelManagerStatics4; struct IPushNotificationChannelsRevokedEventArgs; struct IPushNotificationReceivedEventArgs; struct IRawNotification; struct IRawNotification2; struct IRawNotification3; struct PushNotificationChannel; struct PushNotificationChannelManager; struct PushNotificationChannelManagerForUser; struct PushNotificationChannelsRevokedEventArgs; struct PushNotificationReceivedEventArgs; struct RawNotification; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.PushNotificationChannel"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.PushNotificationChannelManager"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.PushNotificationChannelManagerForUser"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.PushNotificationChannelsRevokedEventArgs"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.PushNotificationReceivedEventArgs"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.RawNotification"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.PushNotificationType"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationChannel"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationChannelManagerForUser"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationChannelManagerForUser2"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationChannelManagerStatics"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationChannelManagerStatics2"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationChannelManagerStatics3"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationChannelManagerStatics4"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationChannelsRevokedEventArgs"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IPushNotificationReceivedEventArgs"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IRawNotification"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IRawNotification2"; template <> inline constexpr auto& name_v = L"Windows.Networking.PushNotifications.IRawNotification3"; template <> inline constexpr guid guid_v{ 0x2B28102E,0xEF0B,0x4F39,{ 0x9B,0x8A,0xA3,0xC1,0x94,0xDE,0x70,0x81 } }; // 2B28102E-EF0B-4F39-9B8A-A3C194DE7081 template <> inline constexpr guid guid_v{ 0xA4C45704,0x1182,0x42C7,{ 0x88,0x90,0xF5,0x63,0xC4,0x89,0x0D,0xC4 } }; // A4C45704-1182-42C7-8890-F563C4890DC4 template <> inline constexpr guid guid_v{ 0xC38B066A,0x7CC1,0x4DAC,{ 0x87,0xFD,0xBE,0x6E,0x92,0x04,0x14,0xA4 } }; // C38B066A-7CC1-4DAC-87FD-BE6E920414A4 template <> inline constexpr guid guid_v{ 0x8BAF9B65,0x77A1,0x4588,{ 0xBD,0x19,0x86,0x15,0x29,0xA9,0xDC,0xF0 } }; // 8BAF9B65-77A1-4588-BD19-861529A9DCF0 template <> inline constexpr guid guid_v{ 0xB444A65D,0xA7E9,0x4B28,{ 0x95,0x0E,0xF3,0x75,0xA9,0x07,0xF9,0xDF } }; // B444A65D-A7E9-4B28-950E-F375A907F9DF template <> inline constexpr guid guid_v{ 0x4701FEFE,0x0EDE,0x4A3F,{ 0xAE,0x78,0xBF,0xA4,0x71,0x49,0x69,0x25 } }; // 4701FEFE-0EDE-4A3F-AE78-BFA471496925 template <> inline constexpr guid guid_v{ 0xBC540EFB,0x7820,0x5A5B,{ 0x9C,0x01,0xB4,0x75,0x7F,0x77,0x40,0x25 } }; // BC540EFB-7820-5A5B-9C01-B4757F774025 template <> inline constexpr guid guid_v{ 0x20E1A24C,0x1A34,0x5BEB,{ 0xAA,0xE2,0x40,0xC2,0x32,0xC8,0xC1,0x40 } }; // 20E1A24C-1A34-5BEB-AAE2-40C232C8C140 template <> inline constexpr guid guid_v{ 0xD1065E0C,0x36CD,0x484C,{ 0xB9,0x35,0x0A,0x99,0xB7,0x53,0xCF,0x00 } }; // D1065E0C-36CD-484C-B935-0A99B753CF00 template <> inline constexpr guid guid_v{ 0x1A227281,0x3B79,0x42AC,{ 0x99,0x63,0x22,0xAB,0x00,0xD4,0xF0,0xB7 } }; // 1A227281-3B79-42AC-9963-22AB00D4F0B7 template <> inline constexpr guid guid_v{ 0xE6D0CF19,0x0C6F,0x4CDD,{ 0x94,0x24,0xEE,0xC5,0xBE,0x01,0x4D,0x26 } }; // E6D0CF19-0C6F-4CDD-9424-EEC5BE014D26 template <> inline constexpr guid guid_v{ 0x62737DDE,0x8A73,0x424C,{ 0xAB,0x44,0x56,0x35,0xF4,0x0A,0x96,0xE5 } }; // 62737DDE-8A73-424C-AB44-5635F40A96E5 template <> struct default_interface{ using type = winrt::Windows::Networking::PushNotifications::IPushNotificationChannel; }; template <> struct default_interface{ using type = winrt::Windows::Networking::PushNotifications::IPushNotificationChannelManagerForUser; }; template <> struct default_interface{ using type = winrt::Windows::Networking::PushNotifications::IPushNotificationChannelsRevokedEventArgs; }; template <> struct default_interface{ using type = winrt::Windows::Networking::PushNotifications::IPushNotificationReceivedEventArgs; }; template <> struct default_interface{ using type = winrt::Windows::Networking::PushNotifications::IRawNotification; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Uri(void**) noexcept = 0; virtual int32_t __stdcall get_ExpirationTime(int64_t*) noexcept = 0; virtual int32_t __stdcall Close() noexcept = 0; virtual int32_t __stdcall add_PushNotificationReceived(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_PushNotificationReceived(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreatePushNotificationChannelForApplicationAsync(void**) noexcept = 0; virtual int32_t __stdcall CreatePushNotificationChannelForApplicationAsyncWithId(void*, void**) noexcept = 0; virtual int32_t __stdcall CreatePushNotificationChannelForSecondaryTileAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall get_User(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(void*, void*, void**) noexcept = 0; virtual int32_t __stdcall CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsyncWithId(void*, void*, void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreatePushNotificationChannelForApplicationAsync(void**) noexcept = 0; virtual int32_t __stdcall CreatePushNotificationChannelForApplicationAsyncWithId(void*, void**) noexcept = 0; virtual int32_t __stdcall CreatePushNotificationChannelForSecondaryTileAsync(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetForUser(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetDefault(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall add_ChannelsRevoked(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_ChannelsRevoked(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall put_Cancel(bool) noexcept = 0; virtual int32_t __stdcall get_Cancel(bool*) noexcept = 0; virtual int32_t __stdcall get_NotificationType(int32_t*) noexcept = 0; virtual int32_t __stdcall get_ToastNotification(void**) noexcept = 0; virtual int32_t __stdcall get_TileNotification(void**) noexcept = 0; virtual int32_t __stdcall get_BadgeNotification(void**) noexcept = 0; virtual int32_t __stdcall get_RawNotification(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Content(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Headers(void**) noexcept = 0; virtual int32_t __stdcall get_ChannelId(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_ContentBytes(void**) noexcept = 0; }; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationChannel { [[nodiscard]] auto Uri() const; [[nodiscard]] auto ExpirationTime() const; auto Close() const; auto PushNotificationReceived(winrt::Windows::Foundation::TypedEventHandler const& handler) const; using PushNotificationReceived_revoker = impl::event_revoker::remove_PushNotificationReceived>; [[nodiscard]] auto PushNotificationReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const; auto PushNotificationReceived(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationChannel; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser { auto CreatePushNotificationChannelForApplicationAsync() const; auto CreatePushNotificationChannelForApplicationAsync(param::hstring const& applicationId) const; auto CreatePushNotificationChannelForSecondaryTileAsync(param::hstring const& tileId) const; [[nodiscard]] auto User() const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser2 { auto CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(winrt::Windows::Storage::Streams::IBuffer const& appServerKey, param::hstring const& channelId) const; auto CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(winrt::Windows::Storage::Streams::IBuffer const& appServerKey, param::hstring const& channelId, param::hstring const& appId) const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerForUser2; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics { auto CreatePushNotificationChannelForApplicationAsync() const; auto CreatePushNotificationChannelForApplicationAsync(param::hstring const& applicationId) const; auto CreatePushNotificationChannelForSecondaryTileAsync(param::hstring const& tileId) const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics2 { auto GetForUser(winrt::Windows::System::User const& user) const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics2; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics3 { auto GetDefault() const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics3; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics4 { auto ChannelsRevoked(winrt::Windows::Foundation::EventHandler const& handler) const; using ChannelsRevoked_revoker = impl::event_revoker::remove_ChannelsRevoked>; [[nodiscard]] auto ChannelsRevoked(auto_revoke_t, winrt::Windows::Foundation::EventHandler const& handler) const; auto ChannelsRevoked(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationChannelManagerStatics4; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationChannelsRevokedEventArgs { }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationChannelsRevokedEventArgs; }; template struct consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs { auto Cancel(bool value) const; [[nodiscard]] auto Cancel() const; [[nodiscard]] auto NotificationType() const; [[nodiscard]] auto ToastNotification() const; [[nodiscard]] auto TileNotification() const; [[nodiscard]] auto BadgeNotification() const; [[nodiscard]] auto RawNotification() const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IPushNotificationReceivedEventArgs; }; template struct consume_Windows_Networking_PushNotifications_IRawNotification { [[nodiscard]] auto Content() const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IRawNotification; }; template struct consume_Windows_Networking_PushNotifications_IRawNotification2 { [[nodiscard]] auto Headers() const; [[nodiscard]] auto ChannelId() const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IRawNotification2; }; template struct consume_Windows_Networking_PushNotifications_IRawNotification3 { [[nodiscard]] auto ContentBytes() const; }; template <> struct consume { template using type = consume_Windows_Networking_PushNotifications_IRawNotification3; }; } #endif