// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15 #pragma once #ifndef WINRT_Windows_UI_Xaml_Navigation_H #define WINRT_Windows_UI_Xaml_Navigation_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.UI.Xaml.h" #include "winrt/impl/Windows.Foundation.2.h" #include "winrt/impl/Windows.UI.Xaml.2.h" #include "winrt/impl/Windows.UI.Xaml.Interop.2.h" #include "winrt/impl/Windows.UI.Xaml.Media.Animation.2.h" #include "winrt/impl/Windows.UI.Xaml.Navigation.2.h" namespace winrt::impl { template auto consume_Windows_UI_Xaml_Navigation_IFrameNavigationOptions::IsNavigationStackEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IFrameNavigationOptions)->get_IsNavigationStackEnabled(&value)); return value; } template auto consume_Windows_UI_Xaml_Navigation_IFrameNavigationOptions::IsNavigationStackEnabled(bool value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IFrameNavigationOptions)->put_IsNavigationStackEnabled(value)); } template auto consume_Windows_UI_Xaml_Navigation_IFrameNavigationOptions::TransitionInfoOverride() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IFrameNavigationOptions)->get_TransitionInfoOverride(&value)); return winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_IFrameNavigationOptions::TransitionInfoOverride(winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IFrameNavigationOptions)->put_TransitionInfoOverride(*(void**)(&value))); } template auto consume_Windows_UI_Xaml_Navigation_IFrameNavigationOptionsFactory::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IFrameNavigationOptionsFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value)); return winrt::Windows::UI::Xaml::Navigation::FrameNavigationOptions{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_INavigatingCancelEventArgs::Cancel() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigatingCancelEventArgs)->get_Cancel(&value)); return value; } template auto consume_Windows_UI_Xaml_Navigation_INavigatingCancelEventArgs::Cancel(bool value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigatingCancelEventArgs)->put_Cancel(value)); } template auto consume_Windows_UI_Xaml_Navigation_INavigatingCancelEventArgs::NavigationMode() const { winrt::Windows::UI::Xaml::Navigation::NavigationMode value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigatingCancelEventArgs)->get_NavigationMode(reinterpret_cast(&value))); return value; } template auto consume_Windows_UI_Xaml_Navigation_INavigatingCancelEventArgs::SourcePageType() const { winrt::Windows::UI::Xaml::Interop::TypeName value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigatingCancelEventArgs)->get_SourcePageType(put_abi(value))); return value; } template auto consume_Windows_UI_Xaml_Navigation_INavigatingCancelEventArgs2::Parameter() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigatingCancelEventArgs2)->get_Parameter(&value)); return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_INavigatingCancelEventArgs2::NavigationTransitionInfo() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigatingCancelEventArgs2)->get_NavigationTransitionInfo(&value)); return winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_INavigationEventArgs::Content() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationEventArgs)->get_Content(&value)); return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_INavigationEventArgs::Parameter() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationEventArgs)->get_Parameter(&value)); return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_INavigationEventArgs::SourcePageType() const { winrt::Windows::UI::Xaml::Interop::TypeName value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationEventArgs)->get_SourcePageType(put_abi(value))); return value; } template auto consume_Windows_UI_Xaml_Navigation_INavigationEventArgs::NavigationMode() const { winrt::Windows::UI::Xaml::Navigation::NavigationMode value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationEventArgs)->get_NavigationMode(reinterpret_cast(&value))); return value; } template auto consume_Windows_UI_Xaml_Navigation_INavigationEventArgs::Uri() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationEventArgs)->get_Uri(&value)); return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_INavigationEventArgs::Uri(winrt::Windows::Foundation::Uri const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationEventArgs)->put_Uri(*(void**)(&value))); } template auto consume_Windows_UI_Xaml_Navigation_INavigationEventArgs2::NavigationTransitionInfo() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationEventArgs2)->get_NavigationTransitionInfo(&value)); return winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_INavigationFailedEventArgs::Exception() const { winrt::hresult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationFailedEventArgs)->get_Exception(put_abi(value))); return value; } template auto consume_Windows_UI_Xaml_Navigation_INavigationFailedEventArgs::Handled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationFailedEventArgs)->get_Handled(&value)); return value; } template auto consume_Windows_UI_Xaml_Navigation_INavigationFailedEventArgs::Handled(bool value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationFailedEventArgs)->put_Handled(value)); } template auto consume_Windows_UI_Xaml_Navigation_INavigationFailedEventArgs::SourcePageType() const { winrt::Windows::UI::Xaml::Interop::TypeName value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::INavigationFailedEventArgs)->get_SourcePageType(put_abi(value))); return value; } template auto consume_Windows_UI_Xaml_Navigation_IPageStackEntry::SourcePageType() const { winrt::Windows::UI::Xaml::Interop::TypeName value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IPageStackEntry)->get_SourcePageType(put_abi(value))); return value; } template auto consume_Windows_UI_Xaml_Navigation_IPageStackEntry::Parameter() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IPageStackEntry)->get_Parameter(&value)); return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_IPageStackEntry::NavigationTransitionInfo() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IPageStackEntry)->get_NavigationTransitionInfo(&value)); return winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_IPageStackEntryFactory::CreateInstance(winrt::Windows::UI::Xaml::Interop::TypeName const& sourcePageType, winrt::Windows::Foundation::IInspectable const& parameter, winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const& navigationTransitionInfo) const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IPageStackEntryFactory)->CreateInstance(impl::bind_in(sourcePageType), *(void**)(¶meter), *(void**)(&navigationTransitionInfo), &value)); return winrt::Windows::UI::Xaml::Navigation::PageStackEntry{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Xaml_Navigation_IPageStackEntryStatics::SourcePageTypeProperty() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::UI::Xaml::Navigation::IPageStackEntryStatics)->get_SourcePageTypeProperty(&value)); return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi }; } template struct delegate final : implements_delegate { delegate(H&& handler) : implements_delegate(std::forward(handler)) {} int32_t __stdcall Invoke(void* sender, void* e) noexcept final try { (*this)(*reinterpret_cast(&sender), *reinterpret_cast(&e)); return 0; } catch (...) { return to_hresult(); } }; template struct delegate final : implements_delegate { delegate(H&& handler) : implements_delegate(std::forward(handler)) {} int32_t __stdcall Invoke(void* sender, void* e) noexcept final try { (*this)(*reinterpret_cast(&sender), *reinterpret_cast(&e)); return 0; } catch (...) { return to_hresult(); } }; template struct delegate final : implements_delegate { delegate(H&& handler) : implements_delegate(std::forward(handler)) {} int32_t __stdcall Invoke(void* sender, void* e) noexcept final try { (*this)(*reinterpret_cast(&sender), *reinterpret_cast(&e)); return 0; } catch (...) { return to_hresult(); } }; template struct delegate final : implements_delegate { delegate(H&& handler) : implements_delegate(std::forward(handler)) {} int32_t __stdcall Invoke(void* sender, void* e) noexcept final try { (*this)(*reinterpret_cast(&sender), *reinterpret_cast(&e)); return 0; } catch (...) { return to_hresult(); } }; template struct delegate final : implements_delegate { delegate(H&& handler) : implements_delegate(std::forward(handler)) {} int32_t __stdcall Invoke(void* sender, void* e) noexcept final try { (*this)(*reinterpret_cast(&sender), *reinterpret_cast(&e)); return 0; } catch (...) { return to_hresult(); } }; #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_IsNavigationStackEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsNavigationStackEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_IsNavigationStackEnabled(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().IsNavigationStackEnabled(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TransitionInfoOverride(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TransitionInfoOverride()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_TransitionInfoOverride(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().TransitionInfoOverride(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try { if (innerInterface) *innerInterface = nullptr; winrt::Windows::Foundation::IInspectable winrt_impl_innerInterface; clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CreateInstance(*reinterpret_cast(&baseInterface), winrt_impl_innerInterface)); if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { 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 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_NavigationMode(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NavigationMode()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SourcePageType()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Parameter(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Parameter()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NavigationTransitionInfo(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NavigationTransitionInfo()); 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(); } int32_t __stdcall get_Parameter(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Parameter()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SourcePageType()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NavigationMode(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NavigationMode()); return 0; } catch (...) { return to_hresult(); } 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 put_Uri(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Uri(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_NavigationTransitionInfo(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NavigationTransitionInfo()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Exception(winrt::hresult* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Exception()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Handled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Handled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Handled(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Handled(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SourcePageType()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SourcePageType()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Parameter(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Parameter()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NavigationTransitionInfo(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NavigationTransitionInfo()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateInstance(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, void* navigationTransitionInfo, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CreateInstance(*reinterpret_cast(&sourcePageType), *reinterpret_cast(¶meter), *reinterpret_cast(&navigationTransitionInfo))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_SourcePageTypeProperty(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SourcePageTypeProperty()); return 0; } catch (...) { return to_hresult(); } }; #endif } WINRT_EXPORT namespace winrt::Windows::UI::Xaml::Navigation { inline FrameNavigationOptions::FrameNavigationOptions() { winrt::Windows::Foundation::IInspectable baseInterface, innerInterface; *this = impl::call_factory([&](IFrameNavigationOptionsFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); }); } inline PageStackEntry::PageStackEntry(winrt::Windows::UI::Xaml::Interop::TypeName const& sourcePageType, winrt::Windows::Foundation::IInspectable const& parameter, winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const& navigationTransitionInfo) : PageStackEntry(impl::call_factory([&](IPageStackEntryFactory const& f) { return f.CreateInstance(sourcePageType, parameter, navigationTransitionInfo); })) { } inline auto PageStackEntry::SourcePageTypeProperty() { return impl::call_factory_cast([](IPageStackEntryStatics const& f) { return f.SourcePageTypeProperty(); }); } template LoadCompletedEventHandler::LoadCompletedEventHandler(L handler) : LoadCompletedEventHandler(impl::make_delegate(std::forward(handler))) { } template LoadCompletedEventHandler::LoadCompletedEventHandler(F* handler) : LoadCompletedEventHandler([=](auto&&... args) { return handler(args...); }) { } template LoadCompletedEventHandler::LoadCompletedEventHandler(O* object, M method) : LoadCompletedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); }) { } template LoadCompletedEventHandler::LoadCompletedEventHandler(com_ptr&& object, M method) : LoadCompletedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template LoadCompletedEventHandler::LoadCompletedEventHandler(weak_ref&& object, LM&& lambda_or_method) : LoadCompletedEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.get()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } template LoadCompletedEventHandler::LoadCompletedEventHandler(std::shared_ptr&& object, M method) : LoadCompletedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template LoadCompletedEventHandler::LoadCompletedEventHandler(std::weak_ptr&& object, LM&& lambda_or_method) : LoadCompletedEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } inline auto LoadCompletedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const { check_hresult((*(impl::abi_t**)this)->Invoke(*(void**)(&sender), *(void**)(&e))); } template NavigatedEventHandler::NavigatedEventHandler(L handler) : NavigatedEventHandler(impl::make_delegate(std::forward(handler))) { } template NavigatedEventHandler::NavigatedEventHandler(F* handler) : NavigatedEventHandler([=](auto&&... args) { return handler(args...); }) { } template NavigatedEventHandler::NavigatedEventHandler(O* object, M method) : NavigatedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); }) { } template NavigatedEventHandler::NavigatedEventHandler(com_ptr&& object, M method) : NavigatedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template NavigatedEventHandler::NavigatedEventHandler(weak_ref&& object, LM&& lambda_or_method) : NavigatedEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.get()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } template NavigatedEventHandler::NavigatedEventHandler(std::shared_ptr&& object, M method) : NavigatedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template NavigatedEventHandler::NavigatedEventHandler(std::weak_ptr&& object, LM&& lambda_or_method) : NavigatedEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } inline auto NavigatedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const { check_hresult((*(impl::abi_t**)this)->Invoke(*(void**)(&sender), *(void**)(&e))); } template NavigatingCancelEventHandler::NavigatingCancelEventHandler(L handler) : NavigatingCancelEventHandler(impl::make_delegate(std::forward(handler))) { } template NavigatingCancelEventHandler::NavigatingCancelEventHandler(F* handler) : NavigatingCancelEventHandler([=](auto&&... args) { return handler(args...); }) { } template NavigatingCancelEventHandler::NavigatingCancelEventHandler(O* object, M method) : NavigatingCancelEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); }) { } template NavigatingCancelEventHandler::NavigatingCancelEventHandler(com_ptr&& object, M method) : NavigatingCancelEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template NavigatingCancelEventHandler::NavigatingCancelEventHandler(weak_ref&& object, LM&& lambda_or_method) : NavigatingCancelEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.get()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } template NavigatingCancelEventHandler::NavigatingCancelEventHandler(std::shared_ptr&& object, M method) : NavigatingCancelEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template NavigatingCancelEventHandler::NavigatingCancelEventHandler(std::weak_ptr&& object, LM&& lambda_or_method) : NavigatingCancelEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } inline auto NavigatingCancelEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e) const { check_hresult((*(impl::abi_t**)this)->Invoke(*(void**)(&sender), *(void**)(&e))); } template NavigationFailedEventHandler::NavigationFailedEventHandler(L handler) : NavigationFailedEventHandler(impl::make_delegate(std::forward(handler))) { } template NavigationFailedEventHandler::NavigationFailedEventHandler(F* handler) : NavigationFailedEventHandler([=](auto&&... args) { return handler(args...); }) { } template NavigationFailedEventHandler::NavigationFailedEventHandler(O* object, M method) : NavigationFailedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); }) { } template NavigationFailedEventHandler::NavigationFailedEventHandler(com_ptr&& object, M method) : NavigationFailedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template NavigationFailedEventHandler::NavigationFailedEventHandler(weak_ref&& object, LM&& lambda_or_method) : NavigationFailedEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.get()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } template NavigationFailedEventHandler::NavigationFailedEventHandler(std::shared_ptr&& object, M method) : NavigationFailedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template NavigationFailedEventHandler::NavigationFailedEventHandler(std::weak_ptr&& object, LM&& lambda_or_method) : NavigationFailedEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } inline auto NavigationFailedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Navigation::NavigationFailedEventArgs const& e) const { check_hresult((*(impl::abi_t**)this)->Invoke(*(void**)(&sender), *(void**)(&e))); } template NavigationStoppedEventHandler::NavigationStoppedEventHandler(L handler) : NavigationStoppedEventHandler(impl::make_delegate(std::forward(handler))) { } template NavigationStoppedEventHandler::NavigationStoppedEventHandler(F* handler) : NavigationStoppedEventHandler([=](auto&&... args) { return handler(args...); }) { } template NavigationStoppedEventHandler::NavigationStoppedEventHandler(O* object, M method) : NavigationStoppedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); }) { } template NavigationStoppedEventHandler::NavigationStoppedEventHandler(com_ptr&& object, M method) : NavigationStoppedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template NavigationStoppedEventHandler::NavigationStoppedEventHandler(weak_ref&& object, LM&& lambda_or_method) : NavigationStoppedEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.get()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } template NavigationStoppedEventHandler::NavigationStoppedEventHandler(std::shared_ptr&& object, M method) : NavigationStoppedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template NavigationStoppedEventHandler::NavigationStoppedEventHandler(std::weak_ptr&& object, LM&& lambda_or_method) : NavigationStoppedEventHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } inline auto NavigationStoppedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const { check_hresult((*(impl::abi_t**)this)->Invoke(*(void**)(&sender), *(void**)(&e))); } template struct FrameNavigationOptionsT : implements, impl::require, impl::base { using composable = FrameNavigationOptions; protected: FrameNavigationOptionsT() { impl::call_factory([&](IFrameNavigationOptionsFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); }); } }; } 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 {}; #endif #ifdef __cpp_lib_format #endif } #endif