// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_UI_Shell_CompanionWindows_0_H #define WINRT_Windows_UI_Shell_CompanionWindows_0_H WINRT_EXPORT namespace winrt::Windows::Foundation { struct Deferral; struct EventRegistrationToken; struct HResult; template struct WINRT_IMPL_EMPTY_BASES TypedEventHandler; struct Uri; } WINRT_EXPORT namespace winrt::Windows::UI { struct WindowId; } WINRT_EXPORT namespace winrt::Windows::UI::Shell::CompanionWindows { enum class CompanionWindowRequestResultStatus : int32_t { Success = 0, UnknownFailure = 1, RegistrationNotFound = 2, ActivationTimedOut = 3, RejectedByCompanionApp = 4, }; struct ICompanionWindowCoordinator; struct ICompanionWindowCoordinatorStatics; struct ICompanionWindowRequest; struct ICompanionWindowRequestResult; struct ICompanionWindowRequestStatics; struct CompanionWindowCoordinator; struct CompanionWindowRequest; struct CompanionWindowRequestResult; struct CompanionWindowsContract; } 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 = 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.UI.Shell.CompanionWindows.CompanionWindowCoordinator"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.CompanionWindowRequest"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.CompanionWindowRequestResult"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.CompanionWindowRequestResultStatus"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.ICompanionWindowCoordinator"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.ICompanionWindowCoordinatorStatics"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.ICompanionWindowRequest"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.ICompanionWindowRequestResult"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.ICompanionWindowRequestStatics"; template <> inline constexpr auto& name_v = L"Windows.UI.Shell.CompanionWindows.CompanionWindowsContract"; template <> inline constexpr guid guid_v{ 0x05620E87,0xB0F7,0x59BA,{ 0xB3,0xA5,0xD6,0x14,0xBD,0xC1,0xEB,0xE3 } }; // 05620E87-B0F7-59BA-B3A5-D614BDC1EBE3 template <> inline constexpr guid guid_v{ 0x964022FA,0x380E,0x518C,{ 0xBF,0xC8,0x0F,0x3B,0x84,0xFA,0xFE,0xA3 } }; // 964022FA-380E-518C-BFC8-0F3B84FAFEA3 template <> inline constexpr guid guid_v{ 0xD92C351A,0x2D66,0x59A8,{ 0xB3,0x45,0x78,0x48,0x95,0x62,0xC4,0xD8 } }; // D92C351A-2D66-59A8-B345-78489562C4D8 template <> inline constexpr guid guid_v{ 0xD728D2EF,0xE6D4,0x5CC0,{ 0x9F,0xF4,0x20,0xC1,0x7A,0x2C,0xE7,0x2D } }; // D728D2EF-E6D4-5CC0-9FF4-20C17A2CE72D template <> inline constexpr guid guid_v{ 0x585E4544,0xD474,0x506A,{ 0x96,0xC2,0x35,0x97,0xA4,0x48,0x82,0xDA } }; // 585E4544-D474-506A-96C2-3597A44882DA template <> struct default_interface{ using type = winrt::Windows::UI::Shell::CompanionWindows::ICompanionWindowCoordinator; }; template <> struct default_interface{ using type = winrt::Windows::UI::Shell::CompanionWindows::ICompanionWindowRequest; }; template <> struct default_interface{ using type = winrt::Windows::UI::Shell::CompanionWindows::ICompanionWindowRequestResult; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall RequestWindowFromAppAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall DetachCompanionWindow() noexcept = 0; virtual int32_t __stdcall get_CompanionWindowId(struct struct_Windows_UI_WindowId*) noexcept = 0; virtual int32_t __stdcall add_Changed(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_Changed(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetForWindow(struct struct_Windows_UI_WindowId, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Accept(struct struct_Windows_UI_WindowId, void**) noexcept = 0; virtual int32_t __stdcall Reject() noexcept = 0; virtual int32_t __stdcall GetDeferral(void**) noexcept = 0; virtual int32_t __stdcall get_RequestingWindowId(struct struct_Windows_UI_WindowId*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Succeeded(bool*) noexcept = 0; virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0; virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0; virtual int32_t __stdcall get_CompanionWindowId(struct struct_Windows_UI_WindowId*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetFromLaunchUri(void*, void**) noexcept = 0; }; }; template struct consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowCoordinator { auto RequestWindowFromAppAsync(param::hstring const& appId) const; auto DetachCompanionWindow() const; [[nodiscard]] auto CompanionWindowId() const; auto Changed(winrt::Windows::Foundation::TypedEventHandler const& handler) const; using Changed_revoker = impl::event_revoker::remove_Changed>; [[nodiscard]] auto Changed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const; auto Changed(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowCoordinator; }; template struct consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowCoordinatorStatics { auto GetForWindow(winrt::Windows::UI::WindowId const& windowId) const; }; template <> struct consume { template using type = consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowCoordinatorStatics; }; template struct consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowRequest { auto Accept(winrt::Windows::UI::WindowId const& windowId) const; auto Reject() const; auto GetDeferral() const; [[nodiscard]] auto RequestingWindowId() const; }; template <> struct consume { template using type = consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowRequest; }; template struct consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowRequestResult { [[nodiscard]] auto Succeeded() const; [[nodiscard]] auto Status() const; [[nodiscard]] auto ExtendedError() const; [[nodiscard]] auto CompanionWindowId() const; }; template <> struct consume { template using type = consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowRequestResult; }; template struct consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowRequestStatics { auto GetFromLaunchUri(winrt::Windows::Foundation::Uri const& launchUri) const; }; template <> struct consume { template using type = consume_Windows_UI_Shell_CompanionWindows_ICompanionWindowRequestStatics; }; } #endif